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

修改请假功能

parent 491d88ab
<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 disabled label="请假人" prop="leavePerson" v-model="form.leavePerson" placeholder="请输入请假人"/>
<Field disabled label="所属部门" prop="deptName" v-model="form.deptName" type="textarea" placeholder="请输入所属部门"/>
<Field disabled label="电话号码" prop="phoneNumber" v-model="form.phoneNumber" placeholder="请输入电话号码"/>
<Field disabled label="请假类型" prop="leaveType" v-model="form.leaveType" type="select" :enumData="dict.leaveType" placeholder="请选择请假类型"/>
<Field disabled label="开始时间" prop="startTime" v-model="form.startTime" type="date" />
<Field disabled label="结束时间" prop="endTime" v-model="form.endTime" type="date" />
<Field disabled label="时长,单位秒" prop="duration" v-model="form.duration" placeholder="请输入时长,单位秒"/>
<Field disabled label="请假事由" prop="reason" v-model="form.reason" type="textarea" placeholder="请输入请假事由"/>
<Field disabled label="审批负责人" prop="approver" v-model="form.approver" placeholder="请输入审批负责人"/>
<Field disabled label="附件" prop="attachment" v-model="form.attachment" type="textarea" placeholder="请输入附件"/>
<Field disabled label="附件路径" prop="attachmentPath" v-model="form.attachmentPath" type="textarea" placeholder="请输入附件路径"/>
<Field disabled label="备注" prop="remark" v-model="form.remark" type="textarea" placeholder="请输入备注"/>
<Field disabled label="申请时间" prop="appealTime" v-model="form.appealTime" type="date" />
<Field label="审核结果" prop="auditResult" v-model="form.auditResult" type="radio" :enumData="dict.auditResult" placeholder="请选择审核结果"/>
<Field label="审核说明" prop="auditDesc" v-model="form.auditDesc" 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,
// urls: { saveUrl: "/check/attend/record/examine" },
toString:[
"leaveType",
"auditResult",
"processStatus",
],
// 表单校验
rules: {
}
};
},
methods: {
/** 编辑 */
edit(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="attendance/leave/record/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改请假记录信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "attendance/leave/record/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增请假记录信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="attendance/leave/record/view";
this.getData();
this.pageInfo.type="view"
this.title = "请假记录信息详细";
},
/**取消按钮 */
cancel() {
this.open = false;
},
/**获取数据后弹框 */
afterRender(data) {
this.open = true;
},
beforeSubmit(data) {
data.processStatus=2;
return data;
},
afterSubmit(data) {
this.open = false;
this.$emit("ok");
},
// 表单重置
reset() {
this.form = {
leavePersonId : null,
leavePerson : "",
deptId : null,
deptName : "",
phoneNumber : "",
leaveType : null,
startTime : null,
endTime : null,
duration : null,
reason : "",
approverId : null,
approver : "",
attachment : "",
attachmentPath : "",
remark : "",
appealTime : null,
auditResult : null,
auditDesc : "",
auditTime : null,
processStatus : 1,
};
this.resetForm("form");
},
resetForm(refName) {
if (this.$refs[refName]) {
this.$refs[refName].resetFields();
}
},
},
};
</script>
<template> <template>
<div class="page"> <div class="page">
<LayoutTable :data="tableData" :config="tableConfig" notDel> <LayoutTable :data="tableData" :config="tableConfig" notDel>
<el-button type="primary" @click="doExport" :disabled="isExport" <el-button type="primary" @click="doExport" :disabled="isExport"
size="mini" slot="table-head-left2">导出</el-button> size="mini" slot="table-head-left2">导出
</LayoutTable> </el-button>
<drawer-show ref="drawerform" @ok="getData" /> </LayoutTable>
</div> <drawer-show ref="drawerform" @ok="getData"/>
<drawer-audit ref="draweraudit" @ok="getData"/>
</div>
</template> </template>
<script> <script>
/** 表单弹出框模式需引入 */ /** 表单弹出框模式需引入 */
import drawerShow from "./drawershow"; import drawerShow from "./drawershow";
import table from "@/assets/mixins/table"; import table from "@/assets/mixins/table";
export default {
name: "AttendanceLeaveRecordList", export default {
components: { name: "AttendanceLeaveRecordList",
drawerShow components: {
}, drawerShow
mixins: [table], },
created() { mixins: [table],
}, created() {
methods: { },
/** 重写新增方法 */ methods: {
toAdd(row) { /** 重写新增方法 */
this.$refs.drawerform.add(row); toAdd(row) {
}, this.$refs.drawerform.add(row);
/** 重写编辑方法 */ },
toEdit(row) { /** 重写编辑方法 */
this.$refs.drawerform.edit(row); toEdit(row) {
}, this.$refs.drawerform.edit(row);
/** 重写查看方法 */ },
toView(row) { /** 重写查看方法 */
this.$refs.drawerform.view(row); toView(row) {
}, this.$refs.drawerform.view(row);
doExport(){ },
this.isExport = true; audit(row) {
this.$download("/leave/record/exportExcel", { //todo 审核页面进行审核
"idList": this.selection, this.$refs.draweraudit.view(row);
'name': this.$route.query['name'],
}, { type: "excel" }).then(() => this.isExport = false).catch(error => { },
this.isExport = false; doExport() {
this.$message.error(error.message); this.isExport = true;
}) this.$download("/leave/record/exportExcel", {
}, "idList": this.selection,
}, 'name': this.$route.query['name'],
data() { }, {type: "excel"}).then(() => this.isExport = false).catch(error => {
return { this.isExport = false;
isExport:false, this.$message.error(error.message);
config: { })
isshowTabPane:true, },
search: [ },
{ data() {
name: "leavePerson", return {
type: "text", isExport: false,
label: "请假人", config: {
fuzzy: true isshowTabPane: true,
}, search: [
{ {
name: "phoneNumber", name: "leavePerson",
type: "text", type: "text",
label: "电话号码", label: "请假人",
fuzzy: true fuzzy: true
}, },
{ {
name: "deptId", name: "phoneNumber",
type: "select", type: "text",
label: "全部部门", label: "电话号码",
fuzzy: false fuzzy: true
}, },
{ {
name: "leaveType", name: "deptId",
type: "select", type: "select",
label: "请假类型", label: "全部部门",
fuzzy: false fuzzy: false
}, },
{ {
name: "startTime", name: "leaveType",
type: "date", type: "select",
label: "开始时间", label: "请假类型",
fuzzy: false fuzzy: false
}, },
{ {
name: "endTime", name: "startTime",
type: "date", type: "date",
label: "结束时间", label: "开始时间",
fuzzy: false fuzzy: false
}, },
], {
columns: [ name: "endTime",
{type: "selection", width: 60}, type: "date",
{type: "index",label: "序号",width: 50}, label: "结束时间",
fuzzy: false
// {label: "请假人id", prop: "leavePersonId", formatter: this.formatter}, },
],
{label: "请假人", prop: "leavePerson"}, columns: [
{type: "selection", width: 60},
// {label: "所属部门id", prop: "deptId", formatter: this.formatter}, {type: "index", label: "序号", width: 50},
{label: "所属部门", prop: "deptName"}, // {label: "请假人id", prop: "leavePersonId", formatter: this.formatter},
{label: "电话号码", prop: "phoneNumber"}, {label: "请假人", prop: "leavePerson"},
{label: "请假类型", prop: "leaveType",formatter: this.formatterLeaveType}, // {label: "所属部门id", prop: "deptId", formatter: this.formatter},
{label: "开始时间", prop: "startTime", formatter: this.formatterDate}, {label: "所属部门", prop: "deptName"},
{label: "结束时间", prop: "endTime", formatter: this.formatterDate}, {label: "电话号码", prop: "phoneNumber"},
{label: "时长", prop: "duration",formatter: this.formatter}, {label: "请假类型", prop: "leaveType", formatter: this.formatterLeaveType},
// {label: "审批负责人Id", prop: "approverId", formatter: this.formatter}, {label: "开始时间", prop: "startTime", formatter: this.formatterDate},
{label: "审批负责人", prop: "approver"}, {label: "结束时间", prop: "endTime", formatter: this.formatterDate},
{label: "创建用户", prop: "createUserId", formatter: this.formatter}, {label: "时长", prop: "duration", formatter: this.formatter},
{
label: "操作", // {label: "审批负责人Id", prop: "approverId", formatter: this.formatter},
width: 240,
formatter: row => { {label: "审批负责人", prop: "approver"},
return (
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel} /> {label: "处理状态", prop: "processStatus", formatter: this.formatter},
);
} {label: "审核状态", prop: "auditResult", formatter: this.formatter},
}
] {label: "创建用户", prop: "createUserId", formatter: this.formatter},
} {
}; label: "操作",
} width: 240,
formatter: row => {
return (
<div>
<table-buttons noAdd row={row} onEdit={this.toEdit} onView={this.toView} onDel={this.toDel}/>
<span> </span>
{row.processStatus === 1 ? (
<el-button
size="mini"
type="text"
icon="el-icon-open"
onClick={() => {
this.audit(row);
}}
>
审核
</el-button>
) : (
""
)}
</div>
);
}
}
]
}
}; };
</script> }
\ No newline at end of file };
</script>
...@@ -205,6 +205,19 @@ public class TestController { ...@@ -205,6 +205,19 @@ public class TestController {
} }
/**
* 生成模拟数据
* @return
*/
@GetMapping("randomStatData")
@UnAuth
public Rest<Void> randomMockStatData() {
return Rest.ok();
}
public static void main(String[] args) { public static void main(String[] args) {
} }
......
...@@ -97,6 +97,6 @@ public class PerformInfo { ...@@ -97,6 +97,6 @@ public class PerformInfo {
*/ */
private Date createTime; private Date createTime;
private String result;
} }
...@@ -112,8 +112,8 @@ public class InspectApiController extends AbstractBaseController<PerformReq> { ...@@ -112,8 +112,8 @@ public class InspectApiController extends AbstractBaseController<PerformReq> {
} }
log.info("【{}】【请求体】--> 用户:{}", busiDesc, context.getUser().getRealName()); log.info("【{}】【请求体】--> 用户:{}", busiDesc, context.getUser().getRealName());
try { try {
Integer totalTimes=0; Integer totalTimes = 0;
Integer todayTimes=0; Integer todayTimes = 0;
CheckAllRecordQuery checkAllRecordQuery = new CheckAllRecordQuery(); CheckAllRecordQuery checkAllRecordQuery = new CheckAllRecordQuery();
checkAllRecordQuery.setSubMethod(SubMethodEnum.大厅巡查.getValue()); checkAllRecordQuery.setSubMethod(SubMethodEnum.大厅巡查.getValue());
checkAllRecordQuery.setCreateUserId(context.getUser().getId()); checkAllRecordQuery.setCreateUserId(context.getUser().getId());
...@@ -172,6 +172,12 @@ public class InspectApiController extends AbstractBaseController<PerformReq> { ...@@ -172,6 +172,12 @@ public class InspectApiController extends AbstractBaseController<PerformReq> {
List<PerformInfo> collect = allCheckRecord.stream().map(item -> { List<PerformInfo> collect = allCheckRecord.stream().map(item -> {
PerformInfo performInfo = new PerformInfo(); PerformInfo performInfo = new PerformInfo();
BeanUtils.copyProperties(item, performInfo, BeanUtil.getNullPropertyNames(item)); BeanUtils.copyProperties(item, performInfo, BeanUtil.getNullPropertyNames(item));
if (CheckStatusEnum.未处理.getValue() == item.getCheckStatus()) {
performInfo.setResult(CheckStatusEnum.未处理.getDesc());
} else {
performInfo.setResult(item.getCheckResult());
}
return performInfo; return performInfo;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
model.put(KEY_RESULT_DATA, collect); model.put(KEY_RESULT_DATA, collect);
...@@ -186,6 +192,12 @@ public class InspectApiController extends AbstractBaseController<PerformReq> { ...@@ -186,6 +192,12 @@ public class InspectApiController extends AbstractBaseController<PerformReq> {
List<PerformInfo> collect = allCheckRecord.stream().map(item -> { List<PerformInfo> collect = allCheckRecord.stream().map(item -> {
PerformInfo performInfo = new PerformInfo(); PerformInfo performInfo = new PerformInfo();
BeanUtils.copyProperties(item, performInfo, BeanUtil.getNullPropertyNames(item)); BeanUtils.copyProperties(item, performInfo, BeanUtil.getNullPropertyNames(item));
if (CheckStatusEnum.未处理.getValue() == item.getCheckStatus()) {
performInfo.setResult(CheckStatusEnum.未处理.getDesc());
} else {
performInfo.setResult(item.getCheckResult());
}
return performInfo; return performInfo;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
model.put(KEY_RESULT_DATA, collect); model.put(KEY_RESULT_DATA, collect);
...@@ -199,6 +211,12 @@ public class InspectApiController extends AbstractBaseController<PerformReq> { ...@@ -199,6 +211,12 @@ public class InspectApiController extends AbstractBaseController<PerformReq> {
List<PerformInfo> collect = allCheckRecord.stream().map(item -> { List<PerformInfo> collect = allCheckRecord.stream().map(item -> {
PerformInfo performInfo = new PerformInfo(); PerformInfo performInfo = new PerformInfo();
BeanUtils.copyProperties(item, performInfo, BeanUtil.getNullPropertyNames(item)); BeanUtils.copyProperties(item, performInfo, BeanUtil.getNullPropertyNames(item));
if (CheckStatusEnum.未处理.getValue() == item.getCheckStatus()) {
performInfo.setResult(CheckStatusEnum.未处理.getDesc());
} else {
performInfo.setResult(item.getCheckResult());
}
return performInfo; return performInfo;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
model.put(KEY_RESULT_DATA, collect); model.put(KEY_RESULT_DATA, collect);
......
...@@ -119,11 +119,11 @@ public class PerformApiController extends AbstractBaseController<PerformReq> { ...@@ -119,11 +119,11 @@ public class PerformApiController extends AbstractBaseController<PerformReq> {
StaffPerformStatQuery staffPerformStatQuery = new StaffPerformStatQuery(); StaffPerformStatQuery staffPerformStatQuery = new StaffPerformStatQuery();
staffPerformStatQuery.setStaffId(context.getUser().getCustomerId()); staffPerformStatQuery.setStaffId(context.getUser().getCustomerId());
staffPerformStatQuery.setYear(DateUtil.year(new Date())); staffPerformStatQuery.setYear(DateUtil.year(new Date()));
staffPerformStatQuery.setMonth(DateUtil.month(new Date())+1); staffPerformStatQuery.setMonth(DateUtil.month(new Date()) + 1);
List<StaffPerformStatEntity> staffPerformStatEntities = staffPerformStatService.find(staffPerformStatQuery); List<StaffPerformStatEntity> staffPerformStatEntities = staffPerformStatService.find(staffPerformStatQuery);
BigDecimal totalScore=new BigDecimal(0.0); BigDecimal totalScore = new BigDecimal(0.0);
if(ObjectUtils.isEmpty(staffPerformStatEntities)){ if (ObjectUtils.isEmpty(staffPerformStatEntities)) {
totalScore = staffPerformStatEntities.stream().map(item -> item.getTotalSubScore()).reduce(BigDecimal.ZERO, BigDecimal::add); totalScore = staffPerformStatEntities.stream().map(item -> item.getTotalSubScore()).reduce(BigDecimal.ZERO, BigDecimal::add);
} }
...@@ -131,9 +131,9 @@ public class PerformApiController extends AbstractBaseController<PerformReq> { ...@@ -131,9 +131,9 @@ public class PerformApiController extends AbstractBaseController<PerformReq> {
//今日得分 //今日得分
StaffPerformStatEntity staffPerformStatEntity = staffPerformStatService.selectOne(staffPerformStatQuery); StaffPerformStatEntity staffPerformStatEntity = staffPerformStatService.selectOne(staffPerformStatQuery);
BigDecimal todayScore=new BigDecimal(0.0); BigDecimal todayScore = new BigDecimal(0.0);
if(!ObjectUtils.isEmpty(staffPerformStatEntity)){ if (!ObjectUtils.isEmpty(staffPerformStatEntity)) {
todayScore=staffPerformStatEntity.getTotalSubScore(); todayScore = staffPerformStatEntity.getTotalSubScore();
} }
PerformStatInfo performStatInfo = new PerformStatInfo(); PerformStatInfo performStatInfo = new PerformStatInfo();
...@@ -207,12 +207,7 @@ public class PerformApiController extends AbstractBaseController<PerformReq> { ...@@ -207,12 +207,7 @@ public class PerformApiController extends AbstractBaseController<PerformReq> {
performInfo.setPerformType(PerformTypeEnum.考勤绩效.getValue()); performInfo.setPerformType(PerformTypeEnum.考勤绩效.getValue());
//判断是否存在申诉 //判断是否存在申诉
PerformAttendAppealEntity entity = appealService.selectOne(new PerformAttendAppealQuery().checkRecordId(item.getId())); PerformAttendAppealEntity entity = appealService.selectOne(new PerformAttendAppealQuery().checkRecordId(item.getId()));
if (!ObjectUtils.isEmpty(entity)) { updateAppealResult(performInfo, entity);
Boolean bool = entity.newEntity();
updateAppealStatus(performInfo, bool, entity.getProcessStatus(), entity.getAppealResult());
} else {
performInfo.setAppealStatus(AppealStatusEnum.未申诉.getValue());
}
return performInfo; return performInfo;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
...@@ -233,12 +228,7 @@ public class PerformApiController extends AbstractBaseController<PerformReq> { ...@@ -233,12 +228,7 @@ public class PerformApiController extends AbstractBaseController<PerformReq> {
//判断是否存在申诉 //判断是否存在申诉
PerformAttendAppealEntity entity = appealService.selectOne(new PerformAttendAppealQuery().checkRecordId(item.getId())); PerformAttendAppealEntity entity = appealService.selectOne(new PerformAttendAppealQuery().checkRecordId(item.getId()));
if (!ObjectUtils.isEmpty(entity)) { updateAppealResult(performInfo, entity);
Boolean bool = entity.newEntity();
updateAppealStatus(performInfo, bool, entity.getProcessStatus(), entity.getAppealResult());
} else {
performInfo.setAppealStatus(AppealStatusEnum.未申诉.getValue());
}
return performInfo; return performInfo;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
model.put(KEY_RESULT_DATA, collect); model.put(KEY_RESULT_DATA, collect);
...@@ -258,12 +248,7 @@ public class PerformApiController extends AbstractBaseController<PerformReq> { ...@@ -258,12 +248,7 @@ public class PerformApiController extends AbstractBaseController<PerformReq> {
//判断是否存在申诉 //判断是否存在申诉
PerformAttendAppealEntity entity = appealService.selectOne(new PerformAttendAppealQuery().checkRecordId(item.getId())); PerformAttendAppealEntity entity = appealService.selectOne(new PerformAttendAppealQuery().checkRecordId(item.getId()));
if (!ObjectUtils.isEmpty(entity)) { updateAppealResult(performInfo, entity);
Boolean bool = entity.newEntity();
updateAppealStatus(performInfo, bool, entity.getProcessStatus(), entity.getAppealResult());
} else {
performInfo.setAppealStatus(AppealStatusEnum.未申诉.getValue());
}
return performInfo; return performInfo;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
model.put(KEY_RESULT_DATA, collect); model.put(KEY_RESULT_DATA, collect);
...@@ -283,13 +268,7 @@ public class PerformApiController extends AbstractBaseController<PerformReq> { ...@@ -283,13 +268,7 @@ public class PerformApiController extends AbstractBaseController<PerformReq> {
//判断是否存在申诉 //判断是否存在申诉
PerformAttendAppealEntity entity = appealService.selectOne(new PerformAttendAppealQuery().checkRecordId(item.getId())); PerformAttendAppealEntity entity = appealService.selectOne(new PerformAttendAppealQuery().checkRecordId(item.getId()));
if (!ObjectUtils.isEmpty(entity)) { updateAppealResult(performInfo, entity);
Boolean bool = entity.newEntity();
updateAppealStatus(performInfo, bool, entity.getProcessStatus(), entity.getAppealResult());
} else {
performInfo.setAppealStatus(AppealStatusEnum.未申诉.getValue());
}
return performInfo; return performInfo;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
model.put(KEY_RESULT_DATA, collect); model.put(KEY_RESULT_DATA, collect);
...@@ -308,12 +287,7 @@ public class PerformApiController extends AbstractBaseController<PerformReq> { ...@@ -308,12 +287,7 @@ public class PerformApiController extends AbstractBaseController<PerformReq> {
performInfo.setPerformType(PerformTypeEnum.效能绩效.getValue()); performInfo.setPerformType(PerformTypeEnum.效能绩效.getValue());
//判断是否存在申诉 //判断是否存在申诉
PerformAttendAppealEntity entity = appealService.selectOne(new PerformAttendAppealQuery().checkRecordId(item.getId())); PerformAttendAppealEntity entity = appealService.selectOne(new PerformAttendAppealQuery().checkRecordId(item.getId()));
if (!ObjectUtils.isEmpty(entity)) { updateAppealResult(performInfo, entity);
Boolean bool = entity.newEntity();
updateAppealStatus(performInfo, bool, entity.getProcessStatus(), entity.getAppealResult());
} else {
performInfo.setAppealStatus(AppealStatusEnum.未申诉.getValue());
}
return performInfo; return performInfo;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
model.put(KEY_RESULT_DATA, collect); model.put(KEY_RESULT_DATA, collect);
...@@ -333,12 +307,7 @@ public class PerformApiController extends AbstractBaseController<PerformReq> { ...@@ -333,12 +307,7 @@ public class PerformApiController extends AbstractBaseController<PerformReq> {
//判断是否存在申诉 //判断是否存在申诉
PerformAttendAppealEntity entity = appealService.selectOne(new PerformAttendAppealQuery().checkRecordId(item.getId())); PerformAttendAppealEntity entity = appealService.selectOne(new PerformAttendAppealQuery().checkRecordId(item.getId()));
if (!ObjectUtils.isEmpty(entity)) { updateAppealResult(performInfo, entity);
Boolean bool = entity.newEntity();
updateAppealStatus(performInfo, bool, entity.getProcessStatus(), entity.getAppealResult());
} else {
performInfo.setAppealStatus(AppealStatusEnum.未申诉.getValue());
}
return performInfo; return performInfo;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
model.put(KEY_RESULT_DATA, collect); model.put(KEY_RESULT_DATA, collect);
...@@ -359,6 +328,22 @@ public class PerformApiController extends AbstractBaseController<PerformReq> { ...@@ -359,6 +328,22 @@ public class PerformApiController extends AbstractBaseController<PerformReq> {
return rest; return rest;
} }
private void updateAppealResult(PerformInfo performInfo, PerformAttendAppealEntity entity) {
if (!ObjectUtils.isEmpty(entity)) {
Boolean bool = entity.newEntity();
updateAppealStatus(performInfo, bool, entity.getProcessStatus(), entity.getAppealResult());
if (AppealResultEnum.通过.getValue() == entity.getAppealResult()) {
performInfo.setAppealStatus(AppealStatusEnum.申诉通过.getValue());
} else if (AppealResultEnum.不通过.getValue() == entity.getAppealResult()) {
performInfo.setAppealStatus(AppealStatusEnum.申诉拒绝.getValue());
} else {
performInfo.setAppealStatus(AppealStatusEnum.申诉中.getValue());
}
} else {
performInfo.setAppealStatus(AppealStatusEnum.未申诉.getValue());
}
}
private void updateAppealStatus(PerformInfo performInfo, Boolean bool, Integer processStatus, Integer appealResult) { private void updateAppealStatus(PerformInfo performInfo, Boolean bool, Integer processStatus, Integer appealResult) {
if (!bool) { if (!bool) {
performInfo.setAppealStatus(AppealStatusEnum.未申诉.getValue()); performInfo.setAppealStatus(AppealStatusEnum.未申诉.getValue());
......
package com.mortals.xhx.module.attendance.model; 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.annotation.Excel;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.attendance.model.vo.AttendanceLeaveRecordVo; import com.mortals.xhx.module.attendance.model.vo.AttendanceLeaveRecordVo;
import lombok.Data;
import java.util.Date;
/** /**
* 请假记录信息实体对象 * 请假记录信息实体对象
* *
* @author zxfei * @author zxfei
* @date 2023-04-14 * @date 2023-07-18
*/ */
@Data
public class AttendanceLeaveRecordEntity extends AttendanceLeaveRecordVo { public class AttendanceLeaveRecordEntity extends AttendanceLeaveRecordVo {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
...@@ -75,224 +78,26 @@ public class AttendanceLeaveRecordEntity extends AttendanceLeaveRecordVo { ...@@ -75,224 +78,26 @@ public class AttendanceLeaveRecordEntity extends AttendanceLeaveRecordVo {
* 备注 * 备注
*/ */
private String remark; private String remark;
public AttendanceLeaveRecordEntity(){}
/**
* 获取 请假人id
* @return Long
*/
public Long getLeavePersonId(){
return leavePersonId;
}
/**
* 设置 请假人id
* @param leavePersonId
*/
public void setLeavePersonId(Long leavePersonId){
this.leavePersonId = leavePersonId;
}
/**
* 获取 请假人
* @return String
*/
public String getLeavePerson(){
return leavePerson;
}
/**
* 设置 请假人
* @param leavePerson
*/
public void setLeavePerson(String leavePerson){
this.leavePerson = leavePerson;
}
/**
* 获取 所属部门id
* @return Long
*/
public Long getDeptId(){
return deptId;
}
/**
* 设置 所属部门id
* @param deptId
*/
public void setDeptId(Long deptId){
this.deptId = deptId;
}
/** /**
* 获取 所属部门 * 申请时间
* @return String
*/ */
public String getDeptName(){ private Date appealTime;
return deptName;
}
/** /**
* 设置 所属部门 * 审核结果(1.申请通过,2.申请不通过)
* @param deptName
*/ */
public void setDeptName(String deptName){ private Integer auditResult;
this.deptName = deptName;
}
/** /**
* 获取 电话号码 * 审核说明
* @return String
*/ */
public String getPhoneNumber(){ private String auditDesc;
return phoneNumber;
}
/** /**
* 设置 电话号码 * 审核时间
* @param phoneNumber
*/ */
public void setPhoneNumber(String phoneNumber){ private Date auditTime;
this.phoneNumber = phoneNumber;
}
/** /**
* 获取 请假类型(1.事假,2.调休,3.病假,4.年假,5.产假,6.陪产假,7.婚假,8.例假,9.哺乳假,10.丧假,11.回单位,12.因公请假,13.外出勘验,14.值班补班,15.体检,16.隔离,17.因公外出,18.公休,19.育儿假,20.调回单位,21.探亲假) * 处理状态
* @return Integer
*/ */
public Integer getLeaveType(){ private Integer processStatus;
return leaveType;
}
/**
* 设置 请假类型(1.事假,2.调休,3.病假,4.年假,5.产假,6.陪产假,7.婚假,8.例假,9.哺乳假,10.丧假,11.回单位,12.因公请假,13.外出勘验,14.值班补班,15.体检,16.隔离,17.因公外出,18.公休,19.育儿假,20.调回单位,21.探亲假)
* @param leaveType
*/
public void setLeaveType(Integer leaveType){
this.leaveType = leaveType;
}
/**
* 获取 开始时间
* @return Date
*/
public Date getStartTime(){
return startTime;
}
/**
* 设置 开始时间
* @param startTime
*/
public void setStartTime(Date startTime){
this.startTime = startTime;
}
/**
* 获取 结束时间
* @return Date
*/
public Date getEndTime(){
return endTime;
}
/**
* 设置 结束时间
* @param endTime
*/
public void setEndTime(Date endTime){
this.endTime = endTime;
}
/**
* 获取 时长,单位秒
* @return Integer
*/
public Integer getDuration(){
return duration;
}
/**
* 设置 时长,单位秒
* @param duration
*/
public void setDuration(Integer duration){
this.duration = duration;
}
/**
* 获取 请假事由
* @return String
*/
public String getReason(){
return reason;
}
/**
* 设置 请假事由
* @param reason
*/
public void setReason(String reason){
this.reason = reason;
}
/**
* 获取 审批负责人Id
* @return Long
*/
public Long getApproverId(){
return approverId;
}
/**
* 设置 审批负责人Id
* @param approverId
*/
public void setApproverId(Long approverId){
this.approverId = approverId;
}
/**
* 获取 审批负责人
* @return String
*/
public String getApprover(){
return approver;
}
/**
* 设置 审批负责人
* @param approver
*/
public void setApprover(String approver){
this.approver = approver;
}
/**
* 获取 附件
* @return String
*/
public String getAttachment(){
return attachment;
}
/**
* 设置 附件
* @param attachment
*/
public void setAttachment(String attachment){
this.attachment = attachment;
}
/**
* 获取 附件路径
* @return String
*/
public String getAttachmentPath(){
return attachmentPath;
}
/**
* 设置 附件路径
* @param attachmentPath
*/
public void setAttachmentPath(String attachmentPath){
this.attachmentPath = attachmentPath;
}
/**
* 获取 备注
* @return String
*/
public String getRemark(){
return remark;
}
/**
* 设置 备注
* @param remark
*/
public void setRemark(String remark){
this.remark = remark;
}
@Override @Override
public int hashCode() { public int hashCode() {
return this.getId().hashCode(); return this.getId().hashCode();
...@@ -309,49 +114,29 @@ public class AttendanceLeaveRecordEntity extends AttendanceLeaveRecordVo { ...@@ -309,49 +114,29 @@ public class AttendanceLeaveRecordEntity extends AttendanceLeaveRecordVo {
return false; return false;
} }
public String toString(){
StringBuilder sb = new StringBuilder("");
sb.append(",leavePersonId:").append(getLeavePersonId());
sb.append(",leavePerson:").append(getLeavePerson());
sb.append(",deptId:").append(getDeptId());
sb.append(",deptName:").append(getDeptName());
sb.append(",phoneNumber:").append(getPhoneNumber());
sb.append(",leaveType:").append(getLeaveType());
sb.append(",startTime:").append(getStartTime());
sb.append(",endTime:").append(getEndTime());
sb.append(",duration:").append(getDuration());
sb.append(",reason:").append(getReason());
sb.append(",approverId:").append(getApproverId());
sb.append(",approver:").append(getApprover());
sb.append(",attachment:").append(getAttachment());
sb.append(",attachmentPath:").append(getAttachmentPath());
sb.append(",remark:").append(getRemark());
return sb.toString();
}
public void initAttrValue(){ public void initAttrValue(){
this.leavePersonId = null; this.leavePersonId = -1L;
this.leavePerson = ""; this.leavePerson = "";
this.deptId = null; this.deptId = -1L;
this.deptName = ""; this.deptName = "";
this.phoneNumber = ""; this.phoneNumber = "";
this.leaveType = null; this.leaveType = -1;
this.startTime = null; this.startTime = null;
this.endTime = null; this.endTime = null;
this.duration = null; this.duration = -1;
this.reason = ""; this.reason = "";
this.approverId = null; this.approverId = -1L;
this.approver = ""; this.approver = "";
...@@ -360,5 +145,15 @@ public class AttendanceLeaveRecordEntity extends AttendanceLeaveRecordVo { ...@@ -360,5 +145,15 @@ public class AttendanceLeaveRecordEntity extends AttendanceLeaveRecordVo {
this.attachmentPath = ""; this.attachmentPath = "";
this.remark = ""; this.remark = "";
this.appealTime = null;
this.auditResult = null;
this.auditDesc = "";
this.auditTime = null;
this.processStatus = 1;
} }
} }
\ No newline at end of file
...@@ -72,4 +72,11 @@ public class CheckAllRecordVo extends BaseEntityLong { ...@@ -72,4 +72,11 @@ public class CheckAllRecordVo extends BaseEntityLong {
private String performType; private String performType;
private String result;
private Integer checkStatus;
private String checkResult;
} }
...@@ -2,6 +2,8 @@ package com.mortals.xhx.module.staff.web; ...@@ -2,6 +2,8 @@ package com.mortals.xhx.module.staff.web;
import com.mortals.framework.exception.AppException; import com.mortals.framework.exception.AppException;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.base.system.param.service.ParamService; import com.mortals.xhx.base.system.param.service.ParamService;
import com.mortals.xhx.module.dept.model.DeptQuery;
import com.mortals.xhx.module.dept.service.DeptService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
...@@ -36,6 +38,9 @@ public class StaffPerformSummaryController extends BaseCRUDJsonBodyMappingContro ...@@ -36,6 +38,9 @@ public class StaffPerformSummaryController extends BaseCRUDJsonBodyMappingContro
@Autowired @Autowired
private ParamService paramService; private ParamService paramService;
@Autowired
private DeptService deptService;
public StaffPerformSummaryController(){ public StaffPerformSummaryController(){
super.setModuleDesc( "员工绩效统计"); super.setModuleDesc( "员工绩效统计");
...@@ -44,6 +49,7 @@ public class StaffPerformSummaryController extends BaseCRUDJsonBodyMappingContro ...@@ -44,6 +49,7 @@ public class StaffPerformSummaryController extends BaseCRUDJsonBodyMappingContro
@Override @Override
protected void init(Map<String, Object> model, Context context) { protected void init(Map<String, Object> model, Context context) {
this.addDict(model, "month", paramService.getParamBySecondOrganize("StaffPerformSummary","month")); this.addDict(model, "month", paramService.getParamBySecondOrganize("StaffPerformSummary","month"));
this.addDict(model, "deptId", deptService.find(new DeptQuery()).stream().collect(Collectors.toMap(x -> x.getId().toString(), y -> y.getDeptName(), (o, n) -> n)));
super.init(model, context); super.init(model, context);
} }
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<select id="getList" parameterType="com.mortals.xhx.module.check.model.CheckAllRecordQuery" resultType="com.mortals.xhx.module.check.model.vo.CheckAllRecordVo"> <select id="getList" parameterType="com.mortals.xhx.module.check.model.CheckAllRecordQuery" resultType="com.mortals.xhx.module.check.model.vo.CheckAllRecordVo">
SELECT * FROM ( SELECT * FROM (
SELECT id,recordId,staffId,staffName,workNum,deptId,deptName,ruleId,ruleName,subAddType,score,subMethod,checkTime,deductTime,1 AS checkType ,'attend' AS performType FROM mortals_xhx_check_attend_record WHERE 1=1 SELECT id,recordId,staffId,staffName,workNum,deptId,deptName,ruleId,ruleName,subAddType,checkStatus,checkResult,score,subMethod,checkTime,deductTime,1 AS checkType ,'attend' AS performType FROM mortals_xhx_check_attend_record WHERE 1=1
<if test="checkStatus != null and checkStatus!=''"> AND checkStatus = #{checkStatus} </if> <if test="checkStatus != null and checkStatus!=''"> AND checkStatus = #{checkStatus} </if>
<if test="subMethod != null and subMethod!=''"> AND subMethod = #{subMethod} </if> <if test="subMethod != null and subMethod!=''"> AND subMethod = #{subMethod} </if>
<if test="subAddType != null and subAddType!=''"> AND subAddType = #{subAddType} </if> <if test="subAddType != null and subAddType!=''"> AND subAddType = #{subAddType} </if>
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
<if test="checkTimeEnd != null and checkTimeEnd!=''"> AND checkTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{checkTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s') </if> <if test="checkTimeEnd != null and checkTimeEnd!=''"> AND checkTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{checkTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s') </if>
<if test="createUserId != null and createUserId!=''"> AND createUserId = #{createUserId} </if> <if test="createUserId != null and createUserId!=''"> AND createUserId = #{createUserId} </if>
UNION UNION
SELECT id,recordId,staffId,staffName,workNum,deptId,deptName,ruleId,ruleName,subAddType,score,subMethod,checkTime,deductTime,4 AS checkType ,'effect' AS performType FROM mortals_xhx_check_effect_record WHERE 1=1 SELECT id,recordId,staffId,staffName,workNum,deptId,deptName,ruleId,ruleName,subAddType,checkStatus,checkResult,score,subMethod,checkTime,deductTime,4 AS checkType ,'effect' AS performType FROM mortals_xhx_check_effect_record WHERE 1=1
<if test="checkStatus != null and checkStatus!=''"> AND checkStatus = #{checkStatus} </if> <if test="checkStatus != null and checkStatus!=''"> AND checkStatus = #{checkStatus} </if>
<if test="subMethod != null and subMethod!=''"> AND subMethod = #{subMethod} </if> <if test="subMethod != null and subMethod!=''"> AND subMethod = #{subMethod} </if>
<if test="subAddType != null and subAddType!=''"> AND subAddType = #{subAddType} </if> <if test="subAddType != null and subAddType!=''"> AND subAddType = #{subAddType} </if>
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
<if test="checkTimeEnd != null and checkTimeEnd!=''"> AND checkTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{checkTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s') </if> <if test="checkTimeEnd != null and checkTimeEnd!=''"> AND checkTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{checkTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s') </if>
<if test="createUserId != null and createUserId!=''"> AND createUserId = #{createUserId} </if> <if test="createUserId != null and createUserId!=''"> AND createUserId = #{createUserId} </if>
UNION UNION
SELECT id,recordId,staffId,staffName,workNum,deptId,deptName,ruleId,ruleName,subAddType,score,subMethod,checkTime, deductTime,6 AS checkType ,'complain' AS performType FROM mortals_xhx_check_complain_record WHERE 1=1 SELECT id,recordId,staffId,staffName,workNum,deptId,deptName,ruleId,ruleName,subAddType,checkStatus,checkResult,score,subMethod,checkTime, deductTime,6 AS checkType ,'complain' AS performType FROM mortals_xhx_check_complain_record WHERE 1=1
<if test="checkStatus != null and checkStatus!=''"> AND checkStatus = #{checkStatus} </if> <if test="checkStatus != null and checkStatus!=''"> AND checkStatus = #{checkStatus} </if>
<if test="subMethod != null and subMethod!=''"> AND subMethod = #{subMethod} </if> <if test="subMethod != null and subMethod!=''"> AND subMethod = #{subMethod} </if>
<if test="subAddType != null and subAddType!=''"> AND subAddType = #{subAddType} </if> <if test="subAddType != null and subAddType!=''"> AND subAddType = #{subAddType} </if>
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
<if test="checkTimeEnd != null and checkTimeEnd!=''"> AND checkTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{checkTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s') </if> <if test="checkTimeEnd != null and checkTimeEnd!=''"> AND checkTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{checkTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s') </if>
<if test="createUserId != null and createUserId!=''"> AND createUserId = #{createUserId} </if> <if test="createUserId != null and createUserId!=''"> AND createUserId = #{createUserId} </if>
UNION UNION
SELECT id,recordId,staffId,staffName,workNum,deptId,deptName,ruleId,ruleName, subAddType,score,subMethod,checkTime, deductTime,3 AS checkType ,'gowork' AS performType FROM mortals_xhx_check_gowork_record WHERE 1=1 SELECT id,recordId,staffId,staffName,workNum,deptId,deptName,ruleId,ruleName, subAddType,checkStatus,checkResult,score,subMethod,checkTime, deductTime,3 AS checkType ,'gowork' AS performType FROM mortals_xhx_check_gowork_record WHERE 1=1
<if test="checkStatus != null and checkStatus!=''"> AND checkStatus = #{checkStatus} </if> <if test="checkStatus != null and checkStatus!=''"> AND checkStatus = #{checkStatus} </if>
<if test="subMethod != null and subMethod!=''"> AND subMethod = #{subMethod} </if> <if test="subMethod != null and subMethod!=''"> AND subMethod = #{subMethod} </if>
<if test="subAddType != null and subAddType!=''"> AND subAddType = #{subAddType} </if> <if test="subAddType != null and subAddType!=''"> AND subAddType = #{subAddType} </if>
...@@ -41,7 +41,7 @@ ...@@ -41,7 +41,7 @@
<if test="checkTimeEnd != null and checkTimeEnd!=''"> AND checkTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{checkTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s') </if> <if test="checkTimeEnd != null and checkTimeEnd!=''"> AND checkTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{checkTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s') </if>
<if test="createUserId != null and createUserId!=''"> AND createUserId = #{createUserId} </if> <if test="createUserId != null and createUserId!=''"> AND createUserId = #{createUserId} </if>
UNION UNION
SELECT id,recordId,staffId,staffName,workNum,deptId,deptName,ruleId,ruleName,subAddType,score,subMethod,checkTime, deductTime,2 AS checkType ,'review' AS performType FROM mortals_xhx_check_review_record WHERE 1=1 SELECT id,recordId,staffId,staffName,workNum,deptId,deptName,ruleId,ruleName,subAddType,checkStatus,checkResult,score,subMethod,checkTime, deductTime,2 AS checkType ,'review' AS performType FROM mortals_xhx_check_review_record WHERE 1=1
<if test="checkStatus != null and checkStatus!=''"> AND checkStatus = #{checkStatus} </if> <if test="checkStatus != null and checkStatus!=''"> AND checkStatus = #{checkStatus} </if>
<if test="subMethod != null and subMethod!=''"> AND subMethod = #{subMethod} </if> <if test="subMethod != null and subMethod!=''"> AND subMethod = #{subMethod} </if>
<if test="subAddType != null and subAddType!=''"> AND subAddType = #{subAddType} </if> <if test="subAddType != null and subAddType!=''"> AND subAddType = #{subAddType} </if>
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
<if test="checkTimeEnd != null and checkTimeEnd!=''"> AND checkTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{checkTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s') </if> <if test="checkTimeEnd != null and checkTimeEnd!=''"> AND checkTime <![CDATA[ <= ]]> STR_TO_DATE(left(concat(#{checkTimeEnd},' 23:59:59'),19),'%Y-%m-%d %k:%i:%s') </if>
<if test="createUserId != null and createUserId!=''"> AND createUserId = #{createUserId} </if> <if test="createUserId != null and createUserId!=''"> AND createUserId = #{createUserId} </if>
UNION UNION
SELECT id,recordId,staffId,staffName,workNum,deptId,deptName,ruleId,ruleName,subAddType,score,subMethod,checkTime, deductTime,5 AS checkType ,'other' AS performType FROM mortals_xhx_check_other_record WHERE 1=1 SELECT id,recordId,staffId,staffName,workNum,deptId,deptName,ruleId,ruleName,subAddType,checkStatus,checkResult,score,subMethod,checkTime, deductTime,5 AS checkType ,'other' AS performType FROM mortals_xhx_check_other_record WHERE 1=1
<if test="checkStatus != null and checkStatus!=''"> AND checkStatus = #{checkStatus} </if> <if test="checkStatus != null and checkStatus!=''"> AND checkStatus = #{checkStatus} </if>
<if test="subMethod != null and subMethod!=''"> AND subMethod = #{subMethod} </if> <if test="subMethod != null and subMethod!=''"> AND subMethod = #{subMethod} </if>
<if test="subAddType != null and subAddType!=''"> AND subAddType = #{subAddType} </if> <if test="subAddType != null and subAddType!=''"> AND subAddType = #{subAddType} </if>
......
...@@ -721,3 +721,44 @@ INSERT INTO `mortals_xhx_param` VALUES (null, '员工类型', 'StaffOnboard', 's ...@@ -721,3 +721,44 @@ INSERT INTO `mortals_xhx_param` VALUES (null, '员工类型', 'StaffOnboard', 's
INSERT INTO `mortals_xhx_param` VALUES (null, '员工状态', 'StaffOnboard', 'onBoardStatus', '1', '待入职', 1, 4, 0, 'onBoardStatus', NULL, NULL, NULL); INSERT INTO `mortals_xhx_param` VALUES (null, '员工状态', 'StaffOnboard', 'onBoardStatus', '1', '待入职', 1, 4, 0, 'onBoardStatus', NULL, NULL, NULL);
INSERT INTO `mortals_xhx_param` VALUES (null, '员工状态', 'StaffOnboard', 'onBoardStatus', '2', '试用中', 1, 4, 0, 'onBoardStatus', NULL, NULL, NULL); INSERT INTO `mortals_xhx_param` VALUES (null, '员工状态', 'StaffOnboard', 'onBoardStatus', '2', '试用中', 1, 4, 0, 'onBoardStatus', NULL, NULL, NULL);
INSERT INTO `mortals_xhx_param` VALUES (null, '员工状态', 'StaffOnboard', 'onBoardStatus', '3', '超期', 1, 4, 0, 'onBoardStatus', NULL, NULL, NULL); INSERT INTO `mortals_xhx_param` VALUES (null, '员工状态', 'StaffOnboard', 'onBoardStatus', '3', '超期', 1, 4, 0, 'onBoardStatus', NULL, NULL, NULL);
-- ----------------------------
2023-7-17
-- ----------------------------
-- ----------------------------
-- 请假记录信息表
-- ----------------------------
DROP TABLE IF EXISTS `mortals_xhx_attendance_leave_record`;
CREATE TABLE mortals_xhx_attendance_leave_record(
`id` bigint(20) AUTO_INCREMENT COMMENT '序号,主键,自增长',
`leavePersonId` bigint(20) NOT NULL COMMENT '请假人id',
`leavePerson` varchar(64) COMMENT '请假人',
`deptId` bigint(20) COMMENT '所属部门id',
`deptName` varchar(256) COMMENT '所属部门',
`phoneNumber` varchar(20) COMMENT '电话号码',
`leaveType` tinyint(2) COMMENT '请假类型(1.事假,2.调休,3.病假,4.年假,5.产假,6.陪产假,7.婚假,8.例假,9.哺乳假,10.丧假,11.回单位,12.因公请假,13.外出勘验,14.值班补班,15.体检,16.隔离,17.因公外出,18.公休,19.育儿假,20.调回单位,21.探亲假)',
`startTime` datetime COMMENT '开始时间',
`endTime` datetime COMMENT '结束时间',
`duration` int(9) COMMENT '时长,单位秒',
`reason` text COMMENT '请假事由',
`approverId` bigint(20) COMMENT '审批负责人Id',
`approver` varchar(64) COMMENT '审批负责人',
`attachment` varchar(255) COMMENT '附件',
`attachmentPath` varchar(255) COMMENT '附件路径',
`remark` varchar(255) COMMENT '备注',
`createUserId` bigint(20) COMMENT '创建用户',
`createTime` datetime COMMENT '创建时间',
`updateUserId` bigint(20) COMMENT '更新用户',
`updateTime` datetime COMMENT '更新时间',
`appealTime` datetime COMMENT '申请时间',
`auditResult` tinyint(1) COMMENT '审核结果(1.申请通过,2.申请不通过)',
`auditDesc` varchar(64) COMMENT '审核说明',
`auditTime` datetime COMMENT '审核时间',
`processStatus` tinyint(1) DEFAULT '1' COMMENT '处理状态',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='请假记录信息';
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