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

添加用户类型修改

parent 29b3ce20
...@@ -49,6 +49,7 @@ const router = new Router({ ...@@ -49,6 +49,7 @@ const router = new Router({
...restBuilder("job", "job"), // 职位信息 ...restBuilder("job", "job"), // 职位信息
...restBuilder("staff/adjust/log", "staff/adjust/log"), // 员工调岗信息 ...restBuilder("staff/adjust/log", "staff/adjust/log"), // 员工调岗信息
...restBuilder("staff/onboard", "staff/onboard"), // 员工入职信息
...restBuilder("staff/regular", "staff/regular"), // 员工转正信息 ...restBuilder("staff/regular", "staff/regular"), // 员工转正信息
...restBuilder("staff/leave", "staff/leave"), // 员工离职信息 ...restBuilder("staff/leave", "staff/leave"), // 员工离职信息
...restBuilder("staff/contract", "staff/contract"), // 员工合同信息 ...restBuilder("staff/contract", "staff/contract"), // 员工合同信息
...@@ -127,7 +128,7 @@ const router = new Router({ ...@@ -127,7 +128,7 @@ const router = new Router({
...restBuilder("feedback", "feedback"), //反馈信息 ...restBuilder("feedback", "feedback"), //反馈信息
...restBuilder("feedback/addQuestion", "feedback/addQuestion"), //新增反馈 ...restBuilder("feedback/addQuestion", "feedback/addQuestion"), //新增反馈
...restBuilder("feedback/questionnaire", "feedback/questionnaire"), //问卷情况 ...restBuilder("feedback/questionnaire", "feedback/questionnaire"), //问卷情况
...restBuilder("feedback/question", "feedback/question"), //反馈问题 ...restBuilder("feedback/question", "feedback/question"), //反馈问题
...restBuilder("feedback/option", "feedback/option"), //反馈选项 ...restBuilder("feedback/option", "feedback/option"), //反馈选项
...restBuilder("feedback/answer", "feedback/answer"), //回答问题 ...restBuilder("feedback/answer", "feedback/answer"), //回答问题
......
<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="staffId" v-model="form.staffId" placeholder="请输入员工ID"/>
<Field label="员工姓名" prop="staffName" v-model="form.staffName" placeholder="请输入员工姓名"/>
<Field label="性别" prop="gender" v-model="form.gender" type="select" :enumData="dict.gender" placeholder="请选择性别"/>
<Field label="出生日期" prop="birthday" v-model="form.birthday" type="date" />
<Field label="照片" prop="photoPath" v-model="form.photoPath" type="textarea" placeholder="请输入照片"/>
<Field label="联系电话" prop="phoneNumber" v-model="form.phoneNumber" placeholder="请输入联系电话"/>
<Field label="身份证号码" prop="idCard" v-model="form.idCard" placeholder="请输入身份证号码"/>
<Field label="工号" prop="workNum" v-model="form.workNum" placeholder="请输入工号"/>
<Field label="入职登记表"><fileUpload v-model="form.filePath" prePath="/file/fileupload"/></Field>
<Field label="政治面貌 " prop="politicalstatus" v-model="form.politicalstatus" type="select" :enumData="dict.politicalstatus" placeholder="请选择政治面貌 "/>
<Field label="所属部门" prop="deptId" v-model="form.deptId" placeholder="请输入所属部门"/>
<Field label="所属部门名称" prop="deptName" v-model="form.deptName" placeholder="请输入所属部门名称"/>
<Field label="职位ID" prop="jobId" v-model="form.jobId" placeholder="请输入职位ID"/>
<Field label="职位名称" prop="jobName" v-model="form.jobName" placeholder="请输入职位名称"/>
<Field label="员工类型" prop="staffType" v-model="form.staffType" type="select" :enumData="dict.staffType" placeholder="请选择员工类型"/>
<Field label="员工状态" prop="onBoardStatus" v-model="form.onBoardStatus" type="select" :enumData="dict.onBoardStatus" placeholder="请选择员工状态"/>
<Field label="入职时间" prop="entryDate" v-model="form.entryDate" type="date" />
</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";
import FileUpload from '@/components/FileUpload';
export default {
mixins: [form],
components: {
dialogShow ,
FileUpload,
},
data() {
return {
// 遮罩层
loading: true,
// 弹出层标题
title: "员工入职信息",
// 是否显示弹出层
open: false,
toString:[
"gender",
"politicalstatus",
"staffType",
"onBoardStatus",
],
// 表单校验
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 ="staff/onboard/edit";
this.getData();
this.pageInfo.type="edit"
this.title = "修改员工入职信息";
},
/** 新增 */
add(row) {
this.reset()
this.urls.currUrl = "staff/onboard/add";
this.getData();
this.pageInfo.type="add"
this.title = "新增员工入职信息";
},
/** 查看*/
view(row) {
this.reset()
this.query = { id: row.id };
this.urls.currUrl ="staff/onboard/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 = {
staffId : null,
staffName : "",
gender : 1,
birthday : null,
photoPath : "",
phoneNumber : "",
idCard : "",
workNum : "",
filePath : "",
politicalstatus : 1,
deptId : null,
deptName : "",
jobId : null,
jobName : "",
staffType : 1,
onBoardStatus : 1,
entryDate : null,
};
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: "StaffOnboardList",
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: "员工姓名", prop: "staffName"},
{label: "性别", prop: "gender",formatter: this.formatter},
{label: "政治面貌 ", prop: "politicalstatus",formatter: this.formatter},
{label: "员工类型", prop: "staffType",formatter: this.formatter},
{label: "员工状态", prop: "onBoardStatus",formatter: this.formatter},
{label: "入职时间", prop: "entryDate", formatter: this.formatterDate},
{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.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("gender", form.gender) }}
</el-descriptions-item>
<el-descriptions-item label="出生日期" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.birthday)}}
</el-descriptions-item>
<el-descriptions-item label="照片" label-class-name="labelClass" content-class-name="contentClass">
{{form.photoPath}}
</el-descriptions-item>
<el-descriptions-item label="联系电话" label-class-name="labelClass" content-class-name="contentClass">
{{form.phoneNumber}}
</el-descriptions-item>
<el-descriptions-item label="身份证号码" label-class-name="labelClass" content-class-name="contentClass">
{{form.idCard}}
</el-descriptions-item>
<el-descriptions-item label="工号" label-class-name="labelClass" content-class-name="contentClass">
{{form.workNum}}
</el-descriptions-item>
<el-descriptions-item label="入职登记表" label-class-name="labelClass" content-class-name="contentClass">
<fileUpload v-model="form.filePath" prePath="/file/fileupload"/>
</el-descriptions-item>
<el-descriptions-item label="政治面貌 " label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("politicalstatus", form.politicalstatus) }}
</el-descriptions-item>
<el-descriptions-item label="所属部门" 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="职位ID" label-class-name="labelClass" content-class-name="contentClass">
{{form.jobId}}
</el-descriptions-item>
<el-descriptions-item label="职位名称" label-class-name="labelClass" content-class-name="contentClass">
{{form.jobName}}
</el-descriptions-item>
<el-descriptions-item label="员工类型" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("staffType", form.staffType) }}
</el-descriptions-item>
<el-descriptions-item label="员工状态" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatters("onBoardStatus", form.onBoardStatus) }}
</el-descriptions-item>
<el-descriptions-item label="入职时间" label-class-name="labelClass" content-class-name="contentClass">
{{ util_formatterDate(form.entryDate)}}
</el-descriptions-item>
</el-descriptions>
</layout-view>
</template>
<script>
import view from "@/assets/mixins/view";
import FileUpload from '@/components/FileUpload';
export default {
mixins: [view],
components: {
FileUpload,
},
methods: {
},
data() {
return {
size:"small",
column:2,
toString:[
"gender",
"politicalstatus",
"staffType",
"onBoardStatus",
],
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;
/**
* 员工状态(1.待入职,2.试用中,3.超期)枚举类
*
* @author zxfei
*/
public enum OnBoardStatusEnum {
待入职(1, "待入职"),
试用中(2, "试用中"),
超期(3, "超期");
private Integer value;
private String desc;
OnBoardStatusEnum(Integer value, String desc) {
this.value = value;
this.desc = desc;
}
public Integer getValue() {
return this.value;
}
public String getDesc() {
return this.desc;
}
public static OnBoardStatusEnum getByValue(Integer value) {
for (OnBoardStatusEnum onBoardStatusEnum : OnBoardStatusEnum.values()) {
if (onBoardStatusEnum.getValue() == value) {
return onBoardStatusEnum;
}
}
return null;
}
/**
* 获取Map集合
*
* @param eItem 不包含项
* @return
*/
public static Map<String, String> getEnumMap(Integer... eItem) {
Map<String, String> resultMap = new LinkedHashMap<>();
for (OnBoardStatusEnum item : OnBoardStatusEnum.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
...@@ -9,121 +9,121 @@ import com.mortals.framework.model.BaseEntityLong; ...@@ -9,121 +9,121 @@ import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.perform.model.vo.PerformAttendRecordVo; import com.mortals.xhx.module.perform.model.vo.PerformAttendRecordVo;
import lombok.Data; import lombok.Data;
/** /**
* 考勤绩效记录信息实体对象 * 考勤绩效记录信息实体对象
* *
* @author zxfei * @author zxfei
* @date 2023-07-10 * @date 2023-07-16
*/ */
@Data @Data
public class PerformAttendRecordEntity extends PerformAttendRecordVo { public class PerformAttendRecordEntity extends PerformAttendRecordVo {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 员工ID * 员工ID
*/ */
private Long staffId; private Long staffId;
/** /**
* 员工姓名 * 员工姓名
*/ */
private String staffName; private String staffName;
/** /**
* 工号 * 工号
*/ */
private String workNum; private String workNum;
/** /**
* 所属部门 * 所属部门
*/ */
private Long deptId; private Long deptId;
/** /**
* 所属部门名称 * 所属部门名称
*/ */
private String deptName; private String deptName;
/** /**
* 所属考勤组ID * 所属考勤组ID
*/ */
private Long attendanceGroupId; private Long attendanceGroupId;
/** /**
* 所属考勤组名称 * 所属考勤组名称
*/ */
private String attendanceGroupName; private String attendanceGroupName;
/** /**
* 考勤时间 * 考勤时间
*/ */
private Date attendanceDate; private Date attendanceDate;
/** /**
* 绩效规则id * 绩效规则id
*/ */
private Long ruleId; private Long ruleId;
/** /**
* 规则名称 * 异常时间
*/ */
private String ruleNme;
/**
* 异常时间
*/
private Date errorTime; private Date errorTime;
/** /**
* 上下班时间 * 上下班时间
*/ */
private String goOffTimeStr; private String goOffTimeStr;
/** /**
* 实际打卡时间 * 实际打卡时间
*/ */
private Date actualAttendTime; private Date actualAttendTime;
/** /**
* 异常处理结果 * 异常处理结果
*/ */
private String errorResult; private String errorResult;
/** /**
* 扣分方式(1.系统自动,2.人工添加) * 扣分方式(1.系统自动,2.人工添加)
*/ */
private Integer subMethod; private Integer subMethod;
/** /**
* 扣分人员 * 扣分人员
*/ */
@Excel(name = "扣分人员") @Excel(name = "扣分人员")
private String deductPerson; private String deductPerson;
/** /**
* 扣分时间 * 扣分时间
*/ */
private Date deductTime; private Date deductTime;
/** /**
* 增减类型(1.增加,2.扣除) * 增减类型(1.增加,2.扣除)
*/ */
private Integer subAddType; private Integer subAddType;
/** /**
* 扣分或增加分值 * 扣分或增加分值
*/ */
private BigDecimal score; private BigDecimal score;
/** /**
* 处理状态(1.未核查,2.已核查) * 处理状态(1.未核查,2.已核查)
*/ */
private Integer processStatus; private Integer processStatus;
/** /**
* 备注 * 备注
*/ */
private String remark; private String remark;
/** /**
* 附件名称,多个逗号分割 * 附件名称,多个逗号分割
*/ */
@Excel(name = "附件名称,多个逗号分割") @Excel(name = "附件名称,多个逗号分割")
private String fileNames; private String fileNames;
/** /**
* 附件下载地址,多个逗号分割 * 附件下载地址,多个逗号分割
*/ */
@Excel(name = "附件下载地址,多个逗号分割") @Excel(name = "附件下载地址,多个逗号分割")
private String filePaths; private String filePaths;
/** /**
* 绩效规则分类id * 绩效规则分类id
*/ */
private Long categoryId; private Long categoryId;
/** /**
* 规则名称 * 规则名称
*/ */
private String categoryName; private String categoryName;
/**
* 规则名称
*/
private String ruleName;
@Override @Override
public int hashCode() { public int hashCode() {
return this.getId().hashCode(); return this.getId().hashCode();
} }
@Override @Override
public boolean equals(Object obj) { public boolean equals(Object obj) {
...@@ -131,7 +131,7 @@ public class PerformAttendRecordEntity extends PerformAttendRecordVo { ...@@ -131,7 +131,7 @@ public class PerformAttendRecordEntity extends PerformAttendRecordVo {
if (obj instanceof PerformAttendRecordEntity) { if (obj instanceof PerformAttendRecordEntity) {
PerformAttendRecordEntity tmp = (PerformAttendRecordEntity) obj; PerformAttendRecordEntity tmp = (PerformAttendRecordEntity) obj;
if (this.getId() == tmp.getId()) { if (this.getId() == tmp.getId()) {
return true; return true;
} }
} }
return false; return false;
...@@ -139,54 +139,54 @@ public class PerformAttendRecordEntity extends PerformAttendRecordVo { ...@@ -139,54 +139,54 @@ public class PerformAttendRecordEntity extends PerformAttendRecordVo {
public void initAttrValue(){ public void initAttrValue(){
this.staffId = -1L; this.staffId = -1L;
this.staffName = ""; this.staffName = "";
this.workNum = ""; this.workNum = "";
this.deptId = -1L; this.deptId = -1L;
this.deptName = ""; this.deptName = "";
this.attendanceGroupId = -1L; this.attendanceGroupId = -1L;
this.attendanceGroupName = ""; this.attendanceGroupName = "";
this.attendanceDate = null; this.attendanceDate = null;
this.ruleId = -1L; this.ruleId = -1L;
this.ruleNme = ""; this.errorTime = null;
this.errorTime = null; this.goOffTimeStr = "";
this.goOffTimeStr = ""; this.actualAttendTime = null;
this.actualAttendTime = null; this.errorResult = "";
this.errorResult = ""; this.subMethod = 1;
this.subMethod = 1; this.deductPerson = "";
this.deductPerson = ""; this.deductTime = null;
this.deductTime = null; this.subAddType = 1;
this.subAddType = 1; this.score = BigDecimal.valueOf(0.00);
this.score = BigDecimal.valueOf(0.00); this.processStatus = 1;
this.processStatus = 1; this.remark = "";
this.remark = ""; this.fileNames = "";
this.fileNames = ""; this.filePaths = "";
this.filePaths = ""; this.categoryId = -1L;
this.categoryId = -1L; this.categoryName = "";
this.categoryName = ""; this.ruleName = "";
} }
} }
\ No newline at end of file
package com.mortals.xhx.module.staff.dao;
import com.mortals.framework.dao.ICRUDDao;
import com.mortals.xhx.module.staff.model.StaffOnboardEntity;
import java.util.List;
/**
* 员工入职信息Dao
* 员工入职信息 DAO接口
*
* @author zxfei
* @date 2023-07-16
*/
public interface StaffOnboardDao extends ICRUDDao<StaffOnboardEntity,Long>{
}
package com.mortals.xhx.module.staff.dao.ibatis;
import org.springframework.stereotype.Repository;
import com.mortals.xhx.module.staff.dao.StaffOnboardDao;
import com.mortals.xhx.module.staff.model.StaffOnboardEntity;
import java.util.Date;
import com.mortals.framework.dao.ibatis.BaseCRUDDaoMybatis;
import java.util.List;
/**
* 员工入职信息DaoImpl DAO接口
*
* @author zxfei
* @date 2023-07-16
*/
@Repository("staffOnboardDao")
public class StaffOnboardDaoImpl extends BaseCRUDDaoMybatis<StaffOnboardEntity,Long> implements StaffOnboardDao {
}
package com.mortals.xhx.module.staff.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.staff.model.vo.StaffOnboardVo;
import lombok.Data;
/**
* 员工入职信息实体对象
*
* @author zxfei
* @date 2023-07-16
*/
@Data
public class StaffOnboardEntity extends StaffOnboardVo {
private static final long serialVersionUID = 1L;
/**
* 员工ID
*/
private Long staffId;
/**
* 员工姓名
*/
private String staffName;
/**
* 性别(1.男,2.女)
*/
private Integer gender;
/**
* 出生日期
*/
private Date birthday;
/**
* 照片
*/
private String photoPath;
/**
* 联系电话
*/
private String phoneNumber;
/**
* 身份证号码
*/
private String idCard;
/**
* 工号
*/
private String workNum;
/**
* 入职登记表
*/
private String filePath;
/**
* 政治面貌 (1.中共党员,2.中共预备党员,3.共青团员,4.群众,5.其它)
*/
private Integer politicalstatus;
/**
* 所属部门
*/
private Long deptId;
/**
* 所属部门名称
*/
private String deptName;
/**
* 职位ID
*/
private Long jobId;
/**
* 职位名称
*/
private String jobName;
/**
* 员工类型(1.全职,2.兼职,3.实习)
*/
private Integer staffType;
/**
* 员工状态(1.待入职,2.试用中,3.超期)
*/
private Integer onBoardStatus;
/**
* 入职时间
*/
private Date entryDate;
@Override
public int hashCode() {
return this.getId().hashCode();
}
@Override
public boolean equals(Object obj) {
if (obj == null) return false;
if (obj instanceof StaffOnboardEntity) {
StaffOnboardEntity tmp = (StaffOnboardEntity) obj;
if (this.getId() == tmp.getId()) {
return true;
}
}
return false;
}
public void initAttrValue(){
this.staffId = -1L;
this.staffName = "";
this.gender = 1;
this.birthday = null;
this.photoPath = "";
this.phoneNumber = "";
this.idCard = "";
this.workNum = "";
this.filePath = "";
this.politicalstatus = 1;
this.deptId = -1L;
this.deptName = "";
this.jobId = -1L;
this.jobName = "";
this.staffType = 1;
this.onBoardStatus = 1;
this.entryDate = null;
}
}
\ No newline at end of file
package com.mortals.xhx.module.staff.model.vo;
import com.mortals.framework.model.BaseEntityLong;
import com.mortals.xhx.module.staff.model.StaffOnboardEntity;
import java.util.ArrayList;
import java.util.List;
import lombok.Data;
import com.mortals.framework.annotation.Excel;
import java.math.BigDecimal;
import java.util.Date;
/**
* 员工入职信息视图对象
*
* @author zxfei
* @date 2023-07-16
*/
@Data
public class StaffOnboardVo extends BaseEntityLong {
}
\ No newline at end of file
package com.mortals.xhx.module.staff.service;
import com.mortals.framework.service.ICRUDService;
import com.mortals.xhx.module.staff.model.StaffOnboardEntity;
import com.mortals.xhx.module.staff.dao.StaffOnboardDao;
/**
* StaffOnboardService
*
* 员工入职信息 service接口
*
* @author zxfei
* @date 2023-07-16
*/
public interface StaffOnboardService extends ICRUDService<StaffOnboardEntity,Long>{
StaffOnboardDao getDao();
}
\ No newline at end of file
package com.mortals.xhx.module.staff.service.impl;
import org.springframework.stereotype.Service;
import com.mortals.framework.service.impl.AbstractCRUDServiceImpl;
import com.mortals.framework.exception.AppException;
import com.mortals.framework.model.Context;
import com.mortals.xhx.module.staff.dao.StaffOnboardDao;
import com.mortals.xhx.module.staff.model.StaffOnboardEntity;
import com.mortals.xhx.module.staff.service.StaffOnboardService;
import lombok.extern.slf4j.Slf4j;
/**
* StaffOnboardService
* 员工入职信息 service实现
*
* @author zxfei
* @date 2023-07-16
*/
@Service("staffOnboardService")
@Slf4j
public class StaffOnboardServiceImpl extends AbstractCRUDServiceImpl<StaffOnboardDao, StaffOnboardEntity, Long> implements StaffOnboardService {
}
\ No newline at end of file
package com.mortals.xhx.module.staff.web;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.base.system.param.service.ParamService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import com.mortals.framework.model.Context;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.module.staff.model.StaffOnboardEntity;
import com.mortals.xhx.module.staff.service.StaffOnboardService;
import org.apache.commons.lang3.ArrayUtils;
import com.mortals.framework.util.StringUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import com.alibaba.fastjson.JSONObject;
import java.util.Arrays;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import static com.mortals.framework.ap.SysConstains.*;
/**
*
* 员工入职信息
*
* @author zxfei
* @date 2023-07-16
*/
@RestController
@RequestMapping("staff/onboard")
public class StaffOnboardController extends BaseCRUDJsonBodyMappingController<StaffOnboardService,StaffOnboardEntity,Long> {
@Autowired
private ParamService paramService;
public StaffOnboardController(){
super.setModuleDesc( "员工入职信息");
}
@Override
protected void init(Map<String, Object> model, Context context) {
this.addDict(model, "gender", paramService.getParamBySecondOrganize("StaffOnboard","gender"));
this.addDict(model, "politicalstatus", paramService.getParamBySecondOrganize("StaffOnboard","politicalstatus"));
this.addDict(model, "staffType", paramService.getParamBySecondOrganize("StaffOnboard","staffType"));
this.addDict(model, "onBoardStatus", paramService.getParamBySecondOrganize("StaffOnboard","onBoardStatus"));
super.init(model, context);
}
}
\ No newline at end of file
###登录
POST {{baseUrl}}/login/login
Content-Type: application/json
{
"loginName":"admin",
"password":"admin",
"securityCode":"8888"
}
> {%
client.global.set("SmsSet_id", JSON.parse(response.body).data.id);
client.global.set("authToken", JSON.parse(response.body).data.token);
%}
###员工入职信息列表
POST {{baseUrl}}/staff/onboard/list
Content-Type: application/json
{
"page":1,
"size":10
}
###员工入职信息更新与保存
POST {{baseUrl}}/staff/onboard/save
Authorization: {{authToken}}
Content-Type: application/json
{
"staffId":41,
"staffName":"x2t0e0",
"gender":1,
"birthday":"1689436800000",
"photoPath":"5yrbfh",
"phoneNumber":"0u5r86",
"idCard":"4d9xj3",
"workNum":"37mcc3",
"filePath":"s8j5i3",
"politicalstatus":1,
"deptId":862,
"deptName":"t6ei4m",
"jobId":69,
"jobName":"g088vz",
"staffType":1,
"onBoardStatus":1,
"entryDate":"1689436800000",
}
> {%
client.global.set("StaffOnboard_id", JSON.parse(response.body).data.id);
%}
###员工入职信息查看
GET {{baseUrl}}/staff/onboard/info?id={{StaffOnboard_id}}
Accept: application/json
###员工入职信息编辑
GET {{baseUrl}}/staff/onboard/edit?id={{StaffOnboard_id}}
Accept: application/json
###员工入职信息删除
GET {{baseUrl}}/staff/onboard/delete?id={{StaffOnboard_id}}
Authorization: {{authToken}}
Accept: application/json
...@@ -657,3 +657,34 @@ ALTER TABLE mortals_xhx_user ADD COLUMN `dingUserId` varchar(64) DEFAULT '' ...@@ -657,3 +657,34 @@ ALTER TABLE mortals_xhx_user ADD COLUMN `dingUserId` varchar(64) DEFAULT ''
ALTER TABLE mortals_xhx_check_attend_record ADD COLUMN `deductPerson` varchar(128) DEFAULT '' COMMENT '扣分人员' AFTER subMethod; ALTER TABLE mortals_xhx_check_attend_record ADD COLUMN `deductPerson` varchar(128) DEFAULT '' COMMENT '扣分人员' AFTER subMethod;
ALTER TABLE mortals_xhx_check_attend_record ADD COLUMN `deductTime` datetime COMMENT '扣分时间' AFTER deductPerson; ALTER TABLE mortals_xhx_check_attend_record ADD COLUMN `deductTime` datetime COMMENT '扣分时间' AFTER deductPerson;
-- ----------------------------
-- 员工入职信息表
-- ----------------------------
DROP TABLE IF EXISTS `mortals_xhx_staff_onboard`;
CREATE TABLE mortals_xhx_staff_onboard(
`id` bigint(20) AUTO_INCREMENT COMMENT '序号,主键,自增长',
`staffId` bigint(20) COMMENT '员工ID',
`staffName` varchar(64) NOT NULL COMMENT '员工姓名',
`gender` tinyint(2) DEFAULT '1' COMMENT '性别(1.男,2.女)',
`birthday` datetime COMMENT '出生日期',
`photoPath` varchar(255) COMMENT '照片',
`phoneNumber` varchar(128) COMMENT '联系电话',
`idCard` varchar(128) COMMENT '身份证号码',
`workNum` varchar(128) COMMENT '工号',
`filePath` varchar(128) COMMENT '入职登记表',
`politicalstatus` tinyint(2) DEFAULT '1' COMMENT '政治面貌 (1.中共党员,2.中共预备党员,3.共青团员,4.群众,5.其它)',
`deptId` bigint(20) COMMENT '所属部门',
`deptName` varchar(128) COMMENT '所属部门名称',
`jobId` bigint(20) COMMENT '职位ID',
`jobName` varchar(128) COMMENT '职位名称',
`staffType` tinyint(2) DEFAULT '1' COMMENT '员工类型(1.全职,2.兼职,3.实习)',
`onBoardStatus` tinyint(2) DEFAULT '1' COMMENT '员工状态(1.待入职,2.试用中,3.超期)',
`entryDate` datetime COMMENT '入职时间',
`createUserId` bigint(20) NOT NULL COMMENT '创建用户',
`createTime` datetime NOT NULL COMMENT '创建时间',
`updateUserId` bigint(20) COMMENT '更新用户',
`updateTime` datetime 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