update code

dev_xds
haha 2023-09-24 18:35:52 +08:00
parent 1d87ebfad3
commit 97a20c7350
30 changed files with 3844 additions and 61 deletions

View File

@ -30,7 +30,7 @@ public class FileUploadUtils
/**
* 50M
*/
public static final long DEFAULT_MAX_SIZE = 50 * 1024 * 1024;
public static final long DEFAULT_MAX_SIZE = 100 * 1024 * 1024;
/**
* 100

View File

@ -141,7 +141,7 @@
SELECT *,'子公司' cat FROM vw_flow_all WHERE finishTime IS NULL AND taskName LIKE '工程%'
<if test="deployId !=null and deployId!=''">and businessDeptId=#{deployId}</if>
<if test="businessKey !=null and businessKey!=''">and businessKey=#{businessKey}</if>
) a WHERE businessDeptId=113 AND businessKey
) a
GROUP BY cat
</select>

View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询劳务实名制管理列表
export function listAttendance(query) {
return request({
url: '/project/attendance/list',
method: 'get',
params: query
})
}
// 查询劳务实名制管理详细
export function getAttendance(id) {
return request({
url: '/project/attendance/' + id,
method: 'get'
})
}
// 新增劳务实名制管理
export function addAttendance(data) {
return request({
url: '/project/attendance',
method: 'post',
data: data
})
}
// 修改劳务实名制管理
export function updateAttendance(data) {
return request({
url: '/project/attendance',
method: 'put',
data: data
})
}
// 删除劳务实名制管理
export function delAttendance(id) {
return request({
url: '/project/attendance/' + id,
method: 'delete'
})
}

View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询项目考勤配置列表
export function listAttendanceConfig(query) {
return request({
url: '/project/attendanceConfig/list',
method: 'get',
params: query
})
}
// 查询项目考勤配置详细
export function getAttendanceConfig(id) {
return request({
url: '/project/attendanceConfig/' + id,
method: 'get'
})
}
// 新增项目考勤配置
export function addAttendanceConfig(data) {
return request({
url: '/project/attendanceConfig',
method: 'post',
data: data
})
}
// 修改项目考勤配置
export function updateAttendanceConfig(data) {
return request({
url: '/project/attendanceConfig',
method: 'put',
data: data
})
}
// 删除项目考勤配置
export function delAttendanceConfig(id) {
return request({
url: '/project/attendanceConfig/' + id,
method: 'delete'
})
}

View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询考勤人员基本属性列表
export function listAttendanceWorker(query) {
return request({
url: '/project/attendanceWorker/list',
method: 'get',
params: query
})
}
// 查询考勤人员基本属性详细
export function getAttendanceWorker(id) {
return request({
url: '/project/attendanceWorker/' + id,
method: 'get'
})
}
// 新增考勤人员基本属性
export function addAttendanceWorker(data) {
return request({
url: '/project/attendanceWorker',
method: 'post',
data: data
})
}
// 修改考勤人员基本属性
export function updateAttendanceWorker(data) {
return request({
url: '/project/attendanceWorker',
method: 'put',
data: data
})
}
// 删除考勤人员基本属性
export function delAttendanceWorker(id) {
return request({
url: '/project/attendanceWorker/' + id,
method: 'delete'
})
}

View File

@ -0,0 +1,347 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="厂商编号参考字典attendance_vendors" prop="vendorsCode">
<el-input
v-model="queryParams.vendorsCode"
placeholder="请输入厂商编号参考字典attendance_vendors"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="工人Id" prop="workerId">
<el-input
v-model="queryParams.workerId"
placeholder="请输入工人Id"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="考勤时间yyyy-MM-dd HH:mm:ss" prop="attendanceTime">
<el-input
v-model="queryParams.attendanceTime"
placeholder="请输入考勤时间yyyy-MM-dd HH:mm:ss"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="设备编号" prop="deviceCode">
<el-input
v-model="queryParams.deviceCode"
placeholder="请输入设备编号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="作业面Id" prop="workPointId">
<el-input
v-model="queryParams.workPointId"
placeholder="请输入作业面Id"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="${comment}" prop="state">
<el-input
v-model="queryParams.state"
placeholder="请输入${comment}"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="${comment}" prop="isDel">
<el-input
v-model="queryParams.isDel"
placeholder="请输入${comment}"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['project:attendance:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['project:attendance:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['project:attendance:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['project:attendance:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="attendanceList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="${comment}" align="center" prop="id" />
<el-table-column label="厂商编号参考字典attendance_vendors" align="center" prop="vendorsCode" />
<el-table-column label="工人Id" align="center" prop="workerId" />
<el-table-column label="进门还是出门E进L出" align="center" prop="attendanceType" />
<el-table-column label="考勤时间yyyy-MM-dd HH:mm:ss" align="center" prop="attendanceTime" />
<el-table-column label="设备编号" align="center" prop="deviceCode" />
<el-table-column label="作业面Id" align="center" prop="workPointId" />
<el-table-column label="服务返回的JSON" align="center" prop="other" />
<el-table-column label="${comment}" align="center" prop="state" />
<el-table-column label="${comment}" align="center" prop="remark" />
<el-table-column label="${comment}" align="center" prop="isDel" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['project:attendance:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['project:attendance:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改劳务实名制管理对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="厂商编号参考字典attendance_vendors" prop="vendorsCode">
<el-input v-model="form.vendorsCode" placeholder="请输入厂商编号参考字典attendance_vendors" />
</el-form-item>
<el-form-item label="工人Id" prop="workerId">
<el-input v-model="form.workerId" placeholder="请输入工人Id" />
</el-form-item>
<el-form-item label="考勤时间yyyy-MM-dd HH:mm:ss" prop="attendanceTime">
<el-input v-model="form.attendanceTime" placeholder="请输入考勤时间yyyy-MM-dd HH:mm:ss" />
</el-form-item>
<el-form-item label="设备编号" prop="deviceCode">
<el-input v-model="form.deviceCode" placeholder="请输入设备编号" />
</el-form-item>
<el-form-item label="作业面Id" prop="workPointId">
<el-input v-model="form.workPointId" placeholder="请输入作业面Id" />
</el-form-item>
<el-form-item label="服务返回的JSON" prop="other">
<el-input v-model="form.other" type="textarea" placeholder="请输入内容" />
</el-form-item>
<el-form-item label="${comment}" prop="state">
<el-input v-model="form.state" placeholder="请输入${comment}" />
</el-form-item>
<el-form-item label="${comment}" prop="remark">
<el-input v-model="form.remark" placeholder="请输入${comment}" />
</el-form-item>
<el-form-item label="${comment}" prop="isDel">
<el-input v-model="form.isDel" placeholder="请输入${comment}" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listAttendance, getAttendance, delAttendance, addAttendance, updateAttendance } from "@/api/project/attendance";
export default {
name: "Attendance",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
attendanceList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
vendorsCode: null,
workerId: null,
attendanceType: null,
attendanceTime: null,
deviceCode: null,
workPointId: null,
other: null,
state: null,
isDel: null,
},
//
form: {},
//
rules: {
}
};
},
created() {
this.getList();
},
methods: {
/** 查询劳务实名制管理列表 */
getList() {
this.loading = true;
listAttendance(this.queryParams).then(response => {
this.attendanceList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
vendorsCode: null,
workerId: null,
attendanceType: null,
attendanceTime: null,
deviceCode: null,
workPointId: null,
other: null,
state: null,
remark: null,
isDel: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加劳务实名制管理";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getAttendance(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改劳务实名制管理";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateAttendance(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addAttendance(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除劳务实名制管理编号为"' + ids + '"的数据项?').then(function() {
return delAttendance(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('project/attendance/export', {
...this.queryParams
}, `attendance_${new Date().getTime()}.xlsx`)
}
}
};
</script>

View File

@ -0,0 +1,330 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="项目编号" prop="projectId">
<el-input
v-model="queryParams.projectId"
placeholder="请输入项目编号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="总包单位" prop="subDeptId">
<el-input
v-model="queryParams.subDeptId"
placeholder="请输入总包单位"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="厂商编号参考字典attendance_vendors" prop="vendorsCode">
<el-input
v-model="queryParams.vendorsCode"
placeholder="请输入厂商编号参考字典attendance_vendors"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="1-启用,0-停用" prop="enabled">
<el-input
v-model="queryParams.enabled"
placeholder="请输入1-启用,0-停用"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="状态" prop="state">
<el-input
v-model="queryParams.state"
placeholder="请输入状态"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="${comment}" prop="isDel">
<el-input
v-model="queryParams.isDel"
placeholder="请输入${comment}"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['project:attendanceConfig:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['project:attendanceConfig:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['project:attendanceConfig:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['project:attendanceConfig:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="attendanceConfigList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="${comment}" align="center" prop="id" />
<el-table-column label="项目编号" align="center" prop="projectId" />
<el-table-column label="总包单位" align="center" prop="subDeptId" />
<el-table-column label="厂商编号参考字典attendance_vendors" align="center" prop="vendorsCode" />
<el-table-column label="厂商参数" align="center" prop="vendorsParameter" />
<el-table-column label="1-启用,0-停用" align="center" prop="enabled" />
<el-table-column label="状态" align="center" prop="state" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="${comment}" align="center" prop="isDel" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['project:attendanceConfig:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['project:attendanceConfig:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改项目考勤配置对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="项目编号" prop="projectId">
<el-input v-model="form.projectId" placeholder="请输入项目编号" />
</el-form-item>
<el-form-item label="总包单位" prop="subDeptId">
<el-input v-model="form.subDeptId" placeholder="请输入总包单位" />
</el-form-item>
<el-form-item label="厂商编号参考字典attendance_vendors" prop="vendorsCode">
<el-input v-model="form.vendorsCode" placeholder="请输入厂商编号参考字典attendance_vendors" />
</el-form-item>
<el-form-item label="厂商参数" prop="vendorsParameter">
<el-input v-model="form.vendorsParameter" type="textarea" placeholder="请输入内容" />
</el-form-item>
<el-form-item label="1-启用,0-停用" prop="enabled">
<el-input v-model="form.enabled" placeholder="请输入1-启用,0-停用" />
</el-form-item>
<el-form-item label="状态" prop="state">
<el-input v-model="form.state" placeholder="请输入状态" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
<el-form-item label="${comment}" prop="isDel">
<el-input v-model="form.isDel" placeholder="请输入${comment}" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listAttendanceConfig, getAttendanceConfig, delAttendanceConfig, addAttendanceConfig, updateAttendanceConfig } from "@/api/project/attendanceConfig";
export default {
name: "AttendanceConfig",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
attendanceConfigList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
projectId: null,
subDeptId: null,
vendorsCode: null,
vendorsParameter: null,
enabled: null,
state: null,
isDel: null,
},
//
form: {},
//
rules: {
}
};
},
created() {
this.getList();
},
methods: {
/** 查询项目考勤配置列表 */
getList() {
this.loading = true;
listAttendanceConfig(this.queryParams).then(response => {
this.attendanceConfigList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
projectId: null,
subDeptId: null,
vendorsCode: null,
vendorsParameter: null,
enabled: null,
state: null,
remark: null,
isDel: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加项目考勤配置";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getAttendanceConfig(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改项目考勤配置";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateAttendanceConfig(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addAttendanceConfig(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除项目考勤配置编号为"' + ids + '"的数据项?').then(function() {
return delAttendanceConfig(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('project/attendanceConfig/export', {
...this.queryParams
}, `attendanceConfig_${new Date().getTime()}.xlsx`)
}
}
};
</script>

View File

@ -0,0 +1,650 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="工人id" prop="workerId">
<el-input
v-model="queryParams.workerId"
placeholder="请输入工人id"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="项目工人履历id对于旧劳务这个字段相当于工人的projectWorkerId管理人员的registerManagerId" prop="laborWorkerId">
<el-input
v-model="queryParams.laborWorkerId"
placeholder="请输入项目工人履历id对于旧劳务这个字段相当于工人的projectWorkerId管理人员的registerManagerId"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="人员类别0工人1管理人员" prop="workerCategory">
<el-input
v-model="queryParams.workerCategory"
placeholder="请输入人员类别0工人1管理人员"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="工号" prop="qrCode">
<el-input
v-model="queryParams.qrCode"
placeholder="请输入工号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="姓名" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入姓名"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="民族" prop="ethnic">
<el-input
v-model="queryParams.ethnic"
placeholder="请输入民族"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="籍贯" prop="nativePlace">
<el-input
v-model="queryParams.nativePlace"
placeholder="请输入籍贯"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="性别0:男 1:女" prop="gender">
<el-input
v-model="queryParams.gender"
placeholder="请输入性别0:男 1:女"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="出生日期时间戳" prop="birthDate">
<el-input
v-model="queryParams.birthDate"
placeholder="请输入出生日期时间戳"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="联系电话" prop="phone">
<el-input
v-model="queryParams.phone"
placeholder="请输入联系电话"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="学历" prop="degreeName">
<el-input
v-model="queryParams.degreeName"
placeholder="请输入学历"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="身份证照" prop="photo">
<el-input
v-model="queryParams.photo"
placeholder="请输入身份证照"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="近照" prop="recentPhoto">
<el-input
v-model="queryParams.recentPhoto"
placeholder="请输入近照"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="所属班组ID" prop="groupId">
<el-input
v-model="queryParams.groupId"
placeholder="请输入所属班组ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="所属班组" prop="groupName">
<el-input
v-model="queryParams.groupName"
placeholder="请输入所属班组"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="是否班组长" prop="leader">
<el-input
v-model="queryParams.leader"
placeholder="请输入是否班组长"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="工种编码" prop="workTypeCode">
<el-input
v-model="queryParams.workTypeCode"
placeholder="请输入工种编码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="工种" prop="workTypeName">
<el-input
v-model="queryParams.workTypeName"
placeholder="请输入工种"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="安全帽编号" prop="hatCode">
<el-input
v-model="queryParams.hatCode"
placeholder="请输入安全帽编号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="进退场状态0:进场1:退场" prop="state">
<el-input
v-model="queryParams.state"
placeholder="请输入进退场状态0:进场1:退场"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="进场日期" prop="enterDate">
<el-input
v-model="queryParams.enterDate"
placeholder="请输入进场日期"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="退场日期" prop="exitDate">
<el-input
v-model="queryParams.exitDate"
placeholder="请输入退场日期"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="分包商id" prop="companyId">
<el-input
v-model="queryParams.companyId"
placeholder="请输入分包商id"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="分包商名称" prop="companyName">
<el-input
v-model="queryParams.companyName"
placeholder="请输入分包商名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="平台对应分包商ID" prop="vendorId">
<el-input
v-model="queryParams.vendorId"
placeholder="请输入平台对应分包商ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="队伍id" prop="teamId">
<el-input
v-model="queryParams.teamId"
placeholder="请输入队伍id"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="队伍名称" prop="teamName">
<el-input
v-model="queryParams.teamName"
placeholder="请输入队伍名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="${comment}" prop="isDel">
<el-input
v-model="queryParams.isDel"
placeholder="请输入${comment}"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['project:attendanceWorker:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['project:attendanceWorker:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['project:attendanceWorker:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['project:attendanceWorker:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="attendanceWorkerList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="${comment}" align="center" prop="id" />
<el-table-column label="工人id" align="center" prop="workerId" />
<el-table-column label="项目工人履历id对于旧劳务这个字段相当于工人的projectWorkerId管理人员的registerManagerId" align="center" prop="laborWorkerId" />
<el-table-column label="人员类别0工人1管理人员" align="center" prop="workerCategory" />
<el-table-column label="工号" align="center" prop="qrCode" />
<el-table-column label="姓名" align="center" prop="name" />
<el-table-column label="民族" align="center" prop="ethnic" />
<el-table-column label="籍贯" align="center" prop="nativePlace" />
<el-table-column label="性别0:男 1:女" align="center" prop="gender" />
<el-table-column label="出生日期时间戳" align="center" prop="birthDate" />
<el-table-column label="联系电话" align="center" prop="phone" />
<el-table-column label="学历" align="center" prop="degreeName" />
<el-table-column label="身份证照" align="center" prop="photo" />
<el-table-column label="近照" align="center" prop="recentPhoto" />
<el-table-column label="所属班组ID" align="center" prop="groupId" />
<el-table-column label="所属班组" align="center" prop="groupName" />
<el-table-column label="是否班组长" align="center" prop="leader" />
<el-table-column label="工种编码" align="center" prop="workTypeCode" />
<el-table-column label="工种" align="center" prop="workTypeName" />
<el-table-column label="是否特殊工种" align="center" prop="specWorkType" />
<el-table-column label="安全帽编号" align="center" prop="hatCode" />
<el-table-column label="进退场状态0:进场1:退场" align="center" prop="state" />
<el-table-column label="进场日期" align="center" prop="enterDate" />
<el-table-column label="退场日期" align="center" prop="exitDate" />
<el-table-column label="分包商id" align="center" prop="companyId" />
<el-table-column label="分包商名称" align="center" prop="companyName" />
<el-table-column label="平台对应分包商ID" align="center" prop="vendorId" />
<el-table-column label="队伍id" align="center" prop="teamId" />
<el-table-column label="队伍名称" align="center" prop="teamName" />
<el-table-column label="进场方式0:自动,1:手动2:拍照" align="center" prop="enterType" />
<el-table-column label="服务返回的JSON" align="center" prop="other" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="${comment}" align="center" prop="isDel" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['project:attendanceWorker:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['project:attendanceWorker:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改考勤人员基本属性对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="工人id" prop="workerId">
<el-input v-model="form.workerId" placeholder="请输入工人id" />
</el-form-item>
<el-form-item label="项目工人履历id对于旧劳务这个字段相当于工人的projectWorkerId管理人员的registerManagerId" prop="laborWorkerId">
<el-input v-model="form.laborWorkerId" placeholder="请输入项目工人履历id对于旧劳务这个字段相当于工人的projectWorkerId管理人员的registerManagerId" />
</el-form-item>
<el-form-item label="人员类别0工人1管理人员" prop="workerCategory">
<el-input v-model="form.workerCategory" placeholder="请输入人员类别0工人1管理人员" />
</el-form-item>
<el-form-item label="工号" prop="qrCode">
<el-input v-model="form.qrCode" placeholder="请输入工号" />
</el-form-item>
<el-form-item label="姓名" prop="name">
<el-input v-model="form.name" placeholder="请输入姓名" />
</el-form-item>
<el-form-item label="民族" prop="ethnic">
<el-input v-model="form.ethnic" placeholder="请输入民族" />
</el-form-item>
<el-form-item label="籍贯" prop="nativePlace">
<el-input v-model="form.nativePlace" placeholder="请输入籍贯" />
</el-form-item>
<el-form-item label="性别0:男 1:女" prop="gender">
<el-input v-model="form.gender" placeholder="请输入性别0:男 1:女" />
</el-form-item>
<el-form-item label="出生日期时间戳" prop="birthDate">
<el-input v-model="form.birthDate" placeholder="请输入出生日期时间戳" />
</el-form-item>
<el-form-item label="联系电话" prop="phone">
<el-input v-model="form.phone" placeholder="请输入联系电话" />
</el-form-item>
<el-form-item label="学历" prop="degreeName">
<el-input v-model="form.degreeName" placeholder="请输入学历" />
</el-form-item>
<el-form-item label="身份证照" prop="photo">
<el-input v-model="form.photo" placeholder="请输入身份证照" />
</el-form-item>
<el-form-item label="近照" prop="recentPhoto">
<el-input v-model="form.recentPhoto" placeholder="请输入近照" />
</el-form-item>
<el-form-item label="所属班组ID" prop="groupId">
<el-input v-model="form.groupId" placeholder="请输入所属班组ID" />
</el-form-item>
<el-form-item label="所属班组" prop="groupName">
<el-input v-model="form.groupName" placeholder="请输入所属班组" />
</el-form-item>
<el-form-item label="是否班组长" prop="leader">
<el-input v-model="form.leader" placeholder="请输入是否班组长" />
</el-form-item>
<el-form-item label="工种编码" prop="workTypeCode">
<el-input v-model="form.workTypeCode" placeholder="请输入工种编码" />
</el-form-item>
<el-form-item label="工种" prop="workTypeName">
<el-input v-model="form.workTypeName" placeholder="请输入工种" />
</el-form-item>
<el-form-item label="安全帽编号" prop="hatCode">
<el-input v-model="form.hatCode" placeholder="请输入安全帽编号" />
</el-form-item>
<el-form-item label="进退场状态0:进场1:退场" prop="state">
<el-input v-model="form.state" placeholder="请输入进退场状态0:进场1:退场" />
</el-form-item>
<el-form-item label="进场日期" prop="enterDate">
<el-input v-model="form.enterDate" placeholder="请输入进场日期" />
</el-form-item>
<el-form-item label="退场日期" prop="exitDate">
<el-input v-model="form.exitDate" placeholder="请输入退场日期" />
</el-form-item>
<el-form-item label="分包商id" prop="companyId">
<el-input v-model="form.companyId" placeholder="请输入分包商id" />
</el-form-item>
<el-form-item label="分包商名称" prop="companyName">
<el-input v-model="form.companyName" placeholder="请输入分包商名称" />
</el-form-item>
<el-form-item label="平台对应分包商ID" prop="vendorId">
<el-input v-model="form.vendorId" placeholder="请输入平台对应分包商ID" />
</el-form-item>
<el-form-item label="队伍id" prop="teamId">
<el-input v-model="form.teamId" placeholder="请输入队伍id" />
</el-form-item>
<el-form-item label="队伍名称" prop="teamName">
<el-input v-model="form.teamName" placeholder="请输入队伍名称" />
</el-form-item>
<el-form-item label="服务返回的JSON" prop="other">
<el-input v-model="form.other" type="textarea" placeholder="请输入内容" />
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
<el-form-item label="${comment}" prop="isDel">
<el-input v-model="form.isDel" placeholder="请输入${comment}" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listAttendanceWorker, getAttendanceWorker, delAttendanceWorker, addAttendanceWorker, updateAttendanceWorker } from "@/api/project/attendanceWorker";
export default {
name: "AttendanceWorker",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
attendanceWorkerList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
workerId: null,
laborWorkerId: null,
workerCategory: null,
qrCode: null,
name: null,
ethnic: null,
nativePlace: null,
gender: null,
birthDate: null,
phone: null,
degreeName: null,
photo: null,
recentPhoto: null,
groupId: null,
groupName: null,
leader: null,
workTypeCode: null,
workTypeName: null,
specWorkType: null,
hatCode: null,
state: null,
enterDate: null,
exitDate: null,
companyId: null,
companyName: null,
vendorId: null,
teamId: null,
teamName: null,
enterType: null,
other: null,
isDel: null,
},
//
form: {},
//
rules: {
phone: [
{ required: true, message: "联系电话不能为空", trigger: "blur" }
],
other: [
{ required: true, message: "服务返回的JSON不能为空", trigger: "blur" }
],
}
};
},
created() {
this.getList();
},
methods: {
/** 查询考勤人员基本属性列表 */
getList() {
this.loading = true;
listAttendanceWorker(this.queryParams).then(response => {
this.attendanceWorkerList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
workerId: null,
laborWorkerId: null,
workerCategory: null,
qrCode: null,
name: null,
ethnic: null,
nativePlace: null,
gender: null,
birthDate: null,
phone: null,
degreeName: null,
photo: null,
recentPhoto: null,
groupId: null,
groupName: null,
leader: null,
workTypeCode: null,
workTypeName: null,
specWorkType: null,
hatCode: null,
state: null,
enterDate: null,
exitDate: null,
companyId: null,
companyName: null,
vendorId: null,
teamId: null,
teamName: null,
enterType: null,
other: null,
remark: null,
isDel: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加考勤人员基本属性";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getAttendanceWorker(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改考勤人员基本属性";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateAttendanceWorker(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addAttendanceWorker(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除考勤人员基本属性编号为"' + ids + '"的数据项?').then(function() {
return delAttendanceWorker(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('project/attendanceWorker/export', {
...this.queryParams
}, `attendanceWorker_${new Date().getTime()}.xlsx`)
}
}
};
</script>

View File

@ -33,7 +33,7 @@
</el-form-item>
<el-form-item label="图片路径" prop="imageFile">
<file-upload v-model="form.imageFile" @input="clearForm" :fileSize="5" :fileType="['png', 'jpg', 'jpeg']"/>
<file-upload ref="fu1" v-model="form.imageFile" @input="clearForm" :fileSize="5" :fileType="['png', 'jpg', 'jpeg']"/>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
@ -112,7 +112,13 @@ export default {
showDialog(prj, dept) {
this.prj = prj || {};
this.dept = dept || {};
this.form.standardType=1;
this.form.desc='';
this.imageFile=[];
this.open = true;
setTimeout(()=>{
this.$refs.fu1.fileList=[];
},400);
}
},
};

View File

@ -12,7 +12,7 @@
<el-tab-pane :label="'' + it.deptName" :name="'' + it.deptId" :key="idx" v-for="(it, idx) in depts">
<div>
<el-button type="primary" @click="doAdd"></el-button>
<el-button style="margin-right:12px;">删除</el-button>
<el-button style="margin-right:12px;" type="danger" :disabled="multiple" @click="handleDelete"></el-button>
<el-select v-model="standType" clearable placeholder="请选择">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
</el-option>
@ -20,29 +20,34 @@
<el-button type="success" style="margin-left:12px;" @click="doQuery"></el-button>
</div>
<div class="div-data">
<el-table v-loading="loading" :data="projectStandardList" @selection-change="handleSelectionChange" stripe>
<el-table-column type="selection" width="55" align="center" />
<el-table v-loading="loading" :data="projectStandardList" @selection-change="handleSelectionChange"
stripe>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="图片路径" align="center" prop="imageFile">
<template slot-scope="{row}">
<el-image :src="row.imageFile+'.min.jpg'" style="height:50px" :preview-src-list="[row.imageFile]" />
<el-image :src="row.imageFile + '.min.jpg'" style="height:50px"
:preview-src-list="[row.imageFile]" />
</template>
</el-table-column>
<el-table-column label="图片描述" align="center" prop="desc">
<template slot-scope="{row,$index}">
<div class="row-desc" @click="changeEditMode(row,$index)" v-if="!row.editDesc">{{row.standardDesc}}</div>
<el-input v-model="row.standardDesc" v-if="row.editDesc" @blur="doSaveDesc(row)" type="textarea" :row="4" ></el-input>
<div class="row-desc" @click="changeEditMode(row, $index)" v-if="!row.editDesc">
{{ row.standardDesc }}</div>
<el-input v-model="row.standardDesc" v-if="row.editDesc" @blur="doSaveDesc(row)"
type="textarea" :row="4"></el-input>
</template>
</el-table-column>
<el-table-column label="排序" align="center" prop="ord" >
<el-table-column label="排序" align="center" prop="ord">
<template slot-scope="{row}">
<el-input-number v-model="row.ord" controls-position="right" @change="doSave(row,false)" :min="1" :max="10000" ></el-input-number>
</template>
<el-input-number v-model="row.ord" controls-position="right" @change="doSave(row, false)"
:min="1" :max="10000"></el-input-number>
</template>
</el-table-column>
<el-table-column label="类型" align="center" prop="standardType">
<template slot-scope="{row}">{{ getType(row) }}</template>
</el-table-column>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['project:projectStandard:remove']">删除</el-button>
@ -62,7 +67,7 @@
</template>
<script>
import { listProjectStandard,updateProjectStandard } from '@/api/project/projectStandard.js'
import { listProjectStandard, updateProjectStandard,delProjectStandard } from '@/api/project/projectStandard.js'
import standardDlg from './projectStandardDlg.vue'
export default {
components: {
@ -111,17 +116,27 @@ export default {
},
methods: {
doSaveDesc(row){
if(row.oldStandardDesc!=row.standardDesc){
this.doSave(row,true);
row.oldStandardDesc=row.standardDesc;
row.editDesc=false;
handleDelete(row) {
const ids = row?row.id || this.ids:this.ids;
this.$modal.confirm('是否确认删除标准化管理编号为"' + ids + '"的数据项?')
.then(function () {
return delProjectStandard(ids);
}).then(() => {
this.loadData();
this.$modal.msgSuccess("删除成功");
}).catch(() => { });
},
doSaveDesc(row) {
if (row.oldStandardDesc != row.standardDesc) {
this.doSave(row, true);
row.oldStandardDesc = row.standardDesc;
row.editDesc = false;
}
},
doSave(row,showMsg){
updateProjectStandard(row).then(d=>{
if(d.code==200){
if(showMsg){
doSave(row, showMsg) {
updateProjectStandard(row).then(d => {
if (d.code == 200) {
if (showMsg) {
this.$message({
message: '修改成功',
type: 'success'
@ -130,27 +145,27 @@ export default {
}
});
},
changeEditMode(row,idx){
row.oldStandardDesc=row.standardDesc;
row.editDesc=true;
setTimeout(()=>{
let els=document.querySelectorAll(".el-table__body-wrapper tr");
if(els.length>idx+1){
let el=els[idx].querySelector(".el-textarea__inner");
if(el){
changeEditMode(row, idx) {
row.oldStandardDesc = row.standardDesc;
row.editDesc = true;
setTimeout(() => {
let els = document.querySelectorAll(".el-table__body-wrapper tr");
if (els.length > idx + 1) {
let el = els[idx].querySelector(".el-textarea__inner");
if (el) {
el.focus();
}
}
},400);
}, 400);
},
doQuery(){
this.queryParams.pageNum=1;
doQuery() {
this.queryParams.pageNum = 1;
this.loadData();
},
getType(row){
let t=row.standardType||1;
let tmps=this.options.filter(d=>d.value==t);
return tmps.length>0?tmps[0].label:'';
getType(row) {
let t = row.standardType || 1;
let tmps = this.options.filter(d => d.value == t);
return tmps.length > 0 ? tmps[0].label : '';
},
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
@ -193,12 +208,12 @@ export default {
loadData() {
let tmps = this.depts.filter(d => d.deptId == this.activeName);
this.queryParams.projectId = this.prj.id;
this.queryParams.deptId=tmps.length>0?tmps[0].deptId:null;
this.queryParams.deptId = tmps.length > 0 ? tmps[0].deptId : null;
this.queryParams.standardType = this.standType ? this.standType : null;
this.loading = true;
listProjectStandard(this.queryParams).then(response => {
this.projectStandardList = (response.rows||[]).map(it=>{
it.editDesc=false;
this.projectStandardList = (response.rows || []).map(it => {
it.editDesc = false;
return it;
});
this.total = response.total;
@ -206,12 +221,12 @@ export default {
});
},
show(prj) {
this.prj = prj;
this.prj = prj;
this.title = prj.projectName;
this.isOpen = true;
this.loadDepts(()=>{
this.loadDepts(() => {
this.loadData(true);
});
});
},
},
};
@ -225,15 +240,17 @@ export default {
::v-deep .el-drawer__body {
padding: 0px 24px;
.el-tabs__content{
.el-tabs__content {
padding-bottom: 10px;
.el-input-number--medium{
width:100px;
.el-input-number--medium {
width: 100px;
}
.row-desc{
.row-desc {
cursor: pointer;
}
}
}
}
</style>
}</style>

View File

@ -0,0 +1,104 @@
package com.yanzhu.jh.project.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.yanzhu.jh.project.domain.SurProjectAttendanceCfg;
import com.yanzhu.jh.project.service.ISurProjectAttendanceCfgService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
/**
* Controller
*
* @author ruoyi
* @date 2023-09-24
*/
@RestController
@RequestMapping("/project/attendanceConfig")
public class SurProjectAttendanceCfgController extends BaseController
{
@Autowired
private ISurProjectAttendanceCfgService surProjectAttendanceCfgService;
/**
*
*/
@PreAuthorize("@ss.hasPermi('project:attendanceConfig:list')")
@GetMapping("/list")
public TableDataInfo list(SurProjectAttendanceCfg surProjectAttendanceCfg)
{
startPage();
List<SurProjectAttendanceCfg> list = surProjectAttendanceCfgService.selectSurProjectAttendanceCfgList(surProjectAttendanceCfg);
return getDataTable(list);
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('project:attendanceConfig:export')")
@Log(title = "项目考勤配置", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, SurProjectAttendanceCfg surProjectAttendanceCfg)
{
List<SurProjectAttendanceCfg> list = surProjectAttendanceCfgService.selectSurProjectAttendanceCfgList(surProjectAttendanceCfg);
ExcelUtil<SurProjectAttendanceCfg> util = new ExcelUtil<SurProjectAttendanceCfg>(SurProjectAttendanceCfg.class);
util.exportExcel(response, list, "项目考勤配置数据");
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('project:attendanceConfig:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
return success(surProjectAttendanceCfgService.selectSurProjectAttendanceCfgById(id));
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('project:attendanceConfig:add')")
@Log(title = "项目考勤配置", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody SurProjectAttendanceCfg surProjectAttendanceCfg)
{
return toAjax(surProjectAttendanceCfgService.insertSurProjectAttendanceCfg(surProjectAttendanceCfg));
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('project:attendanceConfig:edit')")
@Log(title = "项目考勤配置", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody SurProjectAttendanceCfg surProjectAttendanceCfg)
{
return toAjax(surProjectAttendanceCfgService.updateSurProjectAttendanceCfg(surProjectAttendanceCfg));
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('project:attendanceConfig:remove')")
@Log(title = "项目考勤配置", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long[] ids)
{
return toAjax(surProjectAttendanceCfgService.deleteSurProjectAttendanceCfgByIds(ids));
}
}

View File

@ -0,0 +1,104 @@
package com.yanzhu.jh.project.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.yanzhu.jh.project.domain.SurProjectAttendanceData;
import com.yanzhu.jh.project.service.ISurProjectAttendanceDataService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
/**
* Controller
*
* @author ruoyi
* @date 2023-09-24
*/
@RestController
@RequestMapping("/project/attendance")
public class SurProjectAttendanceDataController extends BaseController
{
@Autowired
private ISurProjectAttendanceDataService surProjectAttendanceDataService;
/**
*
*/
@PreAuthorize("@ss.hasPermi('project:attendance:list')")
@GetMapping("/list")
public TableDataInfo list(SurProjectAttendanceData surProjectAttendanceData)
{
startPage();
List<SurProjectAttendanceData> list = surProjectAttendanceDataService.selectSurProjectAttendanceDataList(surProjectAttendanceData);
return getDataTable(list);
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('project:attendance:export')")
@Log(title = "劳务实名制管理", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, SurProjectAttendanceData surProjectAttendanceData)
{
List<SurProjectAttendanceData> list = surProjectAttendanceDataService.selectSurProjectAttendanceDataList(surProjectAttendanceData);
ExcelUtil<SurProjectAttendanceData> util = new ExcelUtil<SurProjectAttendanceData>(SurProjectAttendanceData.class);
util.exportExcel(response, list, "劳务实名制管理数据");
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('project:attendance:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
return success(surProjectAttendanceDataService.selectSurProjectAttendanceDataById(id));
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('project:attendance:add')")
@Log(title = "劳务实名制管理", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody SurProjectAttendanceData surProjectAttendanceData)
{
return toAjax(surProjectAttendanceDataService.insertSurProjectAttendanceData(surProjectAttendanceData));
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('project:attendance:edit')")
@Log(title = "劳务实名制管理", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody SurProjectAttendanceData surProjectAttendanceData)
{
return toAjax(surProjectAttendanceDataService.updateSurProjectAttendanceData(surProjectAttendanceData));
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('project:attendance:remove')")
@Log(title = "劳务实名制管理", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long[] ids)
{
return toAjax(surProjectAttendanceDataService.deleteSurProjectAttendanceDataByIds(ids));
}
}

View File

@ -0,0 +1,104 @@
package com.yanzhu.jh.project.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.enums.BusinessType;
import com.yanzhu.jh.project.domain.SurProjectAttendanceUser;
import com.yanzhu.jh.project.service.ISurProjectAttendanceUserService;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo;
/**
* Controller
*
* @author ruoyi
* @date 2023-09-24
*/
@RestController
@RequestMapping("/project/attendanceWorker")
public class SurProjectAttendanceUserController extends BaseController
{
@Autowired
private ISurProjectAttendanceUserService surProjectAttendanceUserService;
/**
*
*/
@PreAuthorize("@ss.hasPermi('project:attendanceWorker:list')")
@GetMapping("/list")
public TableDataInfo list(SurProjectAttendanceUser surProjectAttendanceUser)
{
startPage();
List<SurProjectAttendanceUser> list = surProjectAttendanceUserService.selectSurProjectAttendanceUserList(surProjectAttendanceUser);
return getDataTable(list);
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('project:attendanceWorker:export')")
@Log(title = "考勤人员基本属性", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, SurProjectAttendanceUser surProjectAttendanceUser)
{
List<SurProjectAttendanceUser> list = surProjectAttendanceUserService.selectSurProjectAttendanceUserList(surProjectAttendanceUser);
ExcelUtil<SurProjectAttendanceUser> util = new ExcelUtil<SurProjectAttendanceUser>(SurProjectAttendanceUser.class);
util.exportExcel(response, list, "考勤人员基本属性数据");
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('project:attendanceWorker:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
return success(surProjectAttendanceUserService.selectSurProjectAttendanceUserById(id));
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('project:attendanceWorker:add')")
@Log(title = "考勤人员基本属性", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody SurProjectAttendanceUser surProjectAttendanceUser)
{
return toAjax(surProjectAttendanceUserService.insertSurProjectAttendanceUser(surProjectAttendanceUser));
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('project:attendanceWorker:edit')")
@Log(title = "考勤人员基本属性", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody SurProjectAttendanceUser surProjectAttendanceUser)
{
return toAjax(surProjectAttendanceUserService.updateSurProjectAttendanceUser(surProjectAttendanceUser));
}
/**
*
*/
@PreAuthorize("@ss.hasPermi('project:attendanceWorker:remove')")
@Log(title = "考勤人员基本属性", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long[] ids)
{
return toAjax(surProjectAttendanceUserService.deleteSurProjectAttendanceUserByIds(ids));
}
}

View File

@ -0,0 +1,140 @@
package com.yanzhu.jh.project.domain;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* sur_project_attendance_cfg
*
* @author ruoyi
* @date 2023-09-24
*/
public class SurProjectAttendanceCfg extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** $column.columnComment */
private Long id;
/** 项目编号 */
@Excel(name = "项目编号")
private Long projectId;
/** 总包单位 */
@Excel(name = "总包单位")
private Long subDeptId;
/** 厂商编号参考字典attendance_vendors */
@Excel(name = "厂商编号参考字典attendance_vendors")
private String vendorsCode;
/** 厂商参数 */
@Excel(name = "厂商参数")
private String vendorsParameter;
/** 1-启用,0-停用 */
@Excel(name = "1-启用,0-停用")
private Long enabled;
/** 状态 */
@Excel(name = "状态")
private Long state;
/** $column.columnComment */
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long isDel;
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setProjectId(Long projectId)
{
this.projectId = projectId;
}
public Long getProjectId()
{
return projectId;
}
public void setSubDeptId(Long subDeptId)
{
this.subDeptId = subDeptId;
}
public Long getSubDeptId()
{
return subDeptId;
}
public void setVendorsCode(String vendorsCode)
{
this.vendorsCode = vendorsCode;
}
public String getVendorsCode()
{
return vendorsCode;
}
public void setVendorsParameter(String vendorsParameter)
{
this.vendorsParameter = vendorsParameter;
}
public String getVendorsParameter()
{
return vendorsParameter;
}
public void setEnabled(Long enabled)
{
this.enabled = enabled;
}
public Long getEnabled()
{
return enabled;
}
public void setState(Long state)
{
this.state = state;
}
public Long getState()
{
return state;
}
public void setIsDel(Long isDel)
{
this.isDel = isDel;
}
public Long getIsDel()
{
return isDel;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("projectId", getProjectId())
.append("subDeptId", getSubDeptId())
.append("vendorsCode", getVendorsCode())
.append("vendorsParameter", getVendorsParameter())
.append("enabled", getEnabled())
.append("state", getState())
.append("remark", getRemark())
.append("isDel", getIsDel())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.toString();
}
}

View File

@ -0,0 +1,168 @@
package com.yanzhu.jh.project.domain;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* sur_project_attendance_data
*
* @author ruoyi
* @date 2023-09-24
*/
public class SurProjectAttendanceData extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** $column.columnComment */
private Long id;
/** 厂商编号参考字典attendance_vendors */
@Excel(name = "厂商编号参考字典attendance_vendors")
private String vendorsCode;
/** 工人Id */
@Excel(name = "工人Id")
private Long workerId;
/** 进门还是出门E进L出 */
@Excel(name = "进门还是出门E进L出")
private String attendanceType;
/** 考勤时间yyyy-MM-dd HH:mm:ss */
@Excel(name = "考勤时间yyyy-MM-dd HH:mm:ss")
private String attendanceTime;
/** 设备编号 */
@Excel(name = "设备编号")
private String deviceCode;
/** 作业面Id */
@Excel(name = "作业面Id")
private String workPointId;
/** 服务返回的JSON */
@Excel(name = "服务返回的JSON")
private String other;
/** $column.columnComment */
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long state;
/** $column.columnComment */
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long isDel;
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setVendorsCode(String vendorsCode)
{
this.vendorsCode = vendorsCode;
}
public String getVendorsCode()
{
return vendorsCode;
}
public void setWorkerId(Long workerId)
{
this.workerId = workerId;
}
public Long getWorkerId()
{
return workerId;
}
public void setAttendanceType(String attendanceType)
{
this.attendanceType = attendanceType;
}
public String getAttendanceType()
{
return attendanceType;
}
public void setAttendanceTime(String attendanceTime)
{
this.attendanceTime = attendanceTime;
}
public String getAttendanceTime()
{
return attendanceTime;
}
public void setDeviceCode(String deviceCode)
{
this.deviceCode = deviceCode;
}
public String getDeviceCode()
{
return deviceCode;
}
public void setWorkPointId(String workPointId)
{
this.workPointId = workPointId;
}
public String getWorkPointId()
{
return workPointId;
}
public void setOther(String other)
{
this.other = other;
}
public String getOther()
{
return other;
}
public void setState(Long state)
{
this.state = state;
}
public Long getState()
{
return state;
}
public void setIsDel(Long isDel)
{
this.isDel = isDel;
}
public Long getIsDel()
{
return isDel;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("vendorsCode", getVendorsCode())
.append("workerId", getWorkerId())
.append("attendanceType", getAttendanceType())
.append("attendanceTime", getAttendanceTime())
.append("deviceCode", getDeviceCode())
.append("workPointId", getWorkPointId())
.append("other", getOther())
.append("state", getState())
.append("remark", getRemark())
.append("isDel", getIsDel())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.toString();
}
}

View File

@ -0,0 +1,476 @@
package com.yanzhu.jh.project.domain;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* sur_project_attendance_user
*
* @author ruoyi
* @date 2023-09-24
*/
public class SurProjectAttendanceUser extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** $column.columnComment */
private Long id;
/** 工人id */
@Excel(name = "工人id")
private Long workerId;
/** 项目工人履历id对于旧劳务这个字段相当于工人的projectWorkerId管理人员的registerManagerId */
@Excel(name = "项目工人履历id对于旧劳务这个字段相当于工人的projectWorkerId管理人员的registerManagerId")
private Long laborWorkerId;
/** 人员类别0工人1管理人员 */
@Excel(name = "人员类别0工人1管理人员")
private Long workerCategory;
/** 工号 */
@Excel(name = "工号")
private Long qrCode;
/** 姓名 */
@Excel(name = "姓名")
private String name;
/** 民族 */
@Excel(name = "民族")
private String ethnic;
/** 籍贯 */
@Excel(name = "籍贯")
private String nativePlace;
/** 性别0:男 1:女 */
@Excel(name = "性别0:男 1:女")
private Long gender;
/** 出生日期时间戳 */
@Excel(name = "出生日期时间戳")
private Long birthDate;
/** 联系电话 */
@Excel(name = "联系电话")
private String phone;
/** 学历 */
@Excel(name = "学历")
private String degreeName;
/** 身份证照 */
@Excel(name = "身份证照")
private String photo;
/** 近照 */
@Excel(name = "近照")
private String recentPhoto;
/** 所属班组ID */
@Excel(name = "所属班组ID")
private Long groupId;
/** 所属班组 */
@Excel(name = "所属班组")
private String groupName;
/** 是否班组长 */
@Excel(name = "是否班组长")
private Integer leader;
/** 工种编码 */
@Excel(name = "工种编码")
private String workTypeCode;
/** 工种 */
@Excel(name = "工种")
private String workTypeName;
/** 是否特殊工种 */
@Excel(name = "是否特殊工种")
private Integer specWorkType;
/** 安全帽编号 */
@Excel(name = "安全帽编号")
private String hatCode;
/** 进退场状态0:进场1:退场 */
@Excel(name = "进退场状态0:进场1:退场")
private Long state;
/** 进场日期 */
@Excel(name = "进场日期")
private String enterDate;
/** 退场日期 */
@Excel(name = "退场日期")
private String exitDate;
/** 分包商id */
@Excel(name = "分包商id")
private Long companyId;
/** 分包商名称 */
@Excel(name = "分包商名称")
private String companyName;
/** 平台对应分包商ID */
@Excel(name = "平台对应分包商ID")
private Long vendorId;
/** 队伍id */
@Excel(name = "队伍id")
private Integer teamId;
/** 队伍名称 */
@Excel(name = "队伍名称")
private String teamName;
/** 进场方式0:自动,1:手动2:拍照 */
@Excel(name = "进场方式0:自动,1:手动2:拍照")
private String enterType;
/** 服务返回的JSON */
@Excel(name = "服务返回的JSON")
private String other;
/** $column.columnComment */
@Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
private Long isDel;
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setWorkerId(Long workerId)
{
this.workerId = workerId;
}
public Long getWorkerId()
{
return workerId;
}
public void setLaborWorkerId(Long laborWorkerId)
{
this.laborWorkerId = laborWorkerId;
}
public Long getLaborWorkerId()
{
return laborWorkerId;
}
public void setWorkerCategory(Long workerCategory)
{
this.workerCategory = workerCategory;
}
public Long getWorkerCategory()
{
return workerCategory;
}
public void setQrCode(Long qrCode)
{
this.qrCode = qrCode;
}
public Long getQrCode()
{
return qrCode;
}
public void setName(String name)
{
this.name = name;
}
public String getName()
{
return name;
}
public void setEthnic(String ethnic)
{
this.ethnic = ethnic;
}
public String getEthnic()
{
return ethnic;
}
public void setNativePlace(String nativePlace)
{
this.nativePlace = nativePlace;
}
public String getNativePlace()
{
return nativePlace;
}
public void setGender(Long gender)
{
this.gender = gender;
}
public Long getGender()
{
return gender;
}
public void setBirthDate(Long birthDate)
{
this.birthDate = birthDate;
}
public Long getBirthDate()
{
return birthDate;
}
public void setPhone(String phone)
{
this.phone = phone;
}
public String getPhone()
{
return phone;
}
public void setDegreeName(String degreeName)
{
this.degreeName = degreeName;
}
public String getDegreeName()
{
return degreeName;
}
public void setPhoto(String photo)
{
this.photo = photo;
}
public String getPhoto()
{
return photo;
}
public void setRecentPhoto(String recentPhoto)
{
this.recentPhoto = recentPhoto;
}
public String getRecentPhoto()
{
return recentPhoto;
}
public void setGroupId(Long groupId)
{
this.groupId = groupId;
}
public Long getGroupId()
{
return groupId;
}
public void setGroupName(String groupName)
{
this.groupName = groupName;
}
public String getGroupName()
{
return groupName;
}
public void setLeader(Integer leader)
{
this.leader = leader;
}
public Integer getLeader()
{
return leader;
}
public void setWorkTypeCode(String workTypeCode)
{
this.workTypeCode = workTypeCode;
}
public String getWorkTypeCode()
{
return workTypeCode;
}
public void setWorkTypeName(String workTypeName)
{
this.workTypeName = workTypeName;
}
public String getWorkTypeName()
{
return workTypeName;
}
public void setSpecWorkType(Integer specWorkType)
{
this.specWorkType = specWorkType;
}
public Integer getSpecWorkType()
{
return specWorkType;
}
public void setHatCode(String hatCode)
{
this.hatCode = hatCode;
}
public String getHatCode()
{
return hatCode;
}
public void setState(Long state)
{
this.state = state;
}
public Long getState()
{
return state;
}
public void setEnterDate(String enterDate)
{
this.enterDate = enterDate;
}
public String getEnterDate()
{
return enterDate;
}
public void setExitDate(String exitDate)
{
this.exitDate = exitDate;
}
public String getExitDate()
{
return exitDate;
}
public void setCompanyId(Long companyId)
{
this.companyId = companyId;
}
public Long getCompanyId()
{
return companyId;
}
public void setCompanyName(String companyName)
{
this.companyName = companyName;
}
public String getCompanyName()
{
return companyName;
}
public void setVendorId(Long vendorId)
{
this.vendorId = vendorId;
}
public Long getVendorId()
{
return vendorId;
}
public void setTeamId(Integer teamId)
{
this.teamId = teamId;
}
public Integer getTeamId()
{
return teamId;
}
public void setTeamName(String teamName)
{
this.teamName = teamName;
}
public String getTeamName()
{
return teamName;
}
public void setEnterType(String enterType)
{
this.enterType = enterType;
}
public String getEnterType()
{
return enterType;
}
public void setOther(String other)
{
this.other = other;
}
public String getOther()
{
return other;
}
public void setIsDel(Long isDel)
{
this.isDel = isDel;
}
public Long getIsDel()
{
return isDel;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
.append("workerId", getWorkerId())
.append("laborWorkerId", getLaborWorkerId())
.append("workerCategory", getWorkerCategory())
.append("qrCode", getQrCode())
.append("name", getName())
.append("ethnic", getEthnic())
.append("nativePlace", getNativePlace())
.append("gender", getGender())
.append("birthDate", getBirthDate())
.append("phone", getPhone())
.append("degreeName", getDegreeName())
.append("photo", getPhoto())
.append("recentPhoto", getRecentPhoto())
.append("groupId", getGroupId())
.append("groupName", getGroupName())
.append("leader", getLeader())
.append("workTypeCode", getWorkTypeCode())
.append("workTypeName", getWorkTypeName())
.append("specWorkType", getSpecWorkType())
.append("hatCode", getHatCode())
.append("state", getState())
.append("enterDate", getEnterDate())
.append("exitDate", getExitDate())
.append("companyId", getCompanyId())
.append("companyName", getCompanyName())
.append("vendorId", getVendorId())
.append("teamId", getTeamId())
.append("teamName", getTeamName())
.append("enterType", getEnterType())
.append("other", getOther())
.append("remark", getRemark())
.append("isDel", getIsDel())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.toString();
}
}

View File

@ -0,0 +1,61 @@
package com.yanzhu.jh.project.mapper;
import java.util.List;
import com.yanzhu.jh.project.domain.SurProjectAttendanceCfg;
/**
* Mapper
*
* @author ruoyi
* @date 2023-09-24
*/
public interface SurProjectAttendanceCfgMapper
{
/**
*
*
* @param id
* @return
*/
public SurProjectAttendanceCfg selectSurProjectAttendanceCfgById(Long id);
/**
*
*
* @param surProjectAttendanceCfg
* @return
*/
public List<SurProjectAttendanceCfg> selectSurProjectAttendanceCfgList(SurProjectAttendanceCfg surProjectAttendanceCfg);
/**
*
*
* @param surProjectAttendanceCfg
* @return
*/
public int insertSurProjectAttendanceCfg(SurProjectAttendanceCfg surProjectAttendanceCfg);
/**
*
*
* @param surProjectAttendanceCfg
* @return
*/
public int updateSurProjectAttendanceCfg(SurProjectAttendanceCfg surProjectAttendanceCfg);
/**
*
*
* @param id
* @return
*/
public int deleteSurProjectAttendanceCfgById(Long id);
/**
*
*
* @param ids
* @return
*/
public int deleteSurProjectAttendanceCfgByIds(Long[] ids);
}

View File

@ -0,0 +1,61 @@
package com.yanzhu.jh.project.mapper;
import java.util.List;
import com.yanzhu.jh.project.domain.SurProjectAttendanceData;
/**
* Mapper
*
* @author ruoyi
* @date 2023-09-24
*/
public interface SurProjectAttendanceDataMapper
{
/**
*
*
* @param id
* @return
*/
public SurProjectAttendanceData selectSurProjectAttendanceDataById(Long id);
/**
*
*
* @param surProjectAttendanceData
* @return
*/
public List<SurProjectAttendanceData> selectSurProjectAttendanceDataList(SurProjectAttendanceData surProjectAttendanceData);
/**
*
*
* @param surProjectAttendanceData
* @return
*/
public int insertSurProjectAttendanceData(SurProjectAttendanceData surProjectAttendanceData);
/**
*
*
* @param surProjectAttendanceData
* @return
*/
public int updateSurProjectAttendanceData(SurProjectAttendanceData surProjectAttendanceData);
/**
*
*
* @param id
* @return
*/
public int deleteSurProjectAttendanceDataById(Long id);
/**
*
*
* @param ids
* @return
*/
public int deleteSurProjectAttendanceDataByIds(Long[] ids);
}

View File

@ -0,0 +1,61 @@
package com.yanzhu.jh.project.mapper;
import java.util.List;
import com.yanzhu.jh.project.domain.SurProjectAttendanceUser;
/**
* Mapper
*
* @author ruoyi
* @date 2023-09-24
*/
public interface SurProjectAttendanceUserMapper
{
/**
*
*
* @param id
* @return
*/
public SurProjectAttendanceUser selectSurProjectAttendanceUserById(Long id);
/**
*
*
* @param surProjectAttendanceUser
* @return
*/
public List<SurProjectAttendanceUser> selectSurProjectAttendanceUserList(SurProjectAttendanceUser surProjectAttendanceUser);
/**
*
*
* @param surProjectAttendanceUser
* @return
*/
public int insertSurProjectAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser);
/**
*
*
* @param surProjectAttendanceUser
* @return
*/
public int updateSurProjectAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser);
/**
*
*
* @param id
* @return
*/
public int deleteSurProjectAttendanceUserById(Long id);
/**
*
*
* @param ids
* @return
*/
public int deleteSurProjectAttendanceUserByIds(Long[] ids);
}

View File

@ -0,0 +1,61 @@
package com.yanzhu.jh.project.service;
import java.util.List;
import com.yanzhu.jh.project.domain.SurProjectAttendanceCfg;
/**
* Service
*
* @author ruoyi
* @date 2023-09-24
*/
public interface ISurProjectAttendanceCfgService
{
/**
*
*
* @param id
* @return
*/
public SurProjectAttendanceCfg selectSurProjectAttendanceCfgById(Long id);
/**
*
*
* @param surProjectAttendanceCfg
* @return
*/
public List<SurProjectAttendanceCfg> selectSurProjectAttendanceCfgList(SurProjectAttendanceCfg surProjectAttendanceCfg);
/**
*
*
* @param surProjectAttendanceCfg
* @return
*/
public int insertSurProjectAttendanceCfg(SurProjectAttendanceCfg surProjectAttendanceCfg);
/**
*
*
* @param surProjectAttendanceCfg
* @return
*/
public int updateSurProjectAttendanceCfg(SurProjectAttendanceCfg surProjectAttendanceCfg);
/**
*
*
* @param ids
* @return
*/
public int deleteSurProjectAttendanceCfgByIds(Long[] ids);
/**
*
*
* @param id
* @return
*/
public int deleteSurProjectAttendanceCfgById(Long id);
}

View File

@ -0,0 +1,61 @@
package com.yanzhu.jh.project.service;
import java.util.List;
import com.yanzhu.jh.project.domain.SurProjectAttendanceData;
/**
* Service
*
* @author ruoyi
* @date 2023-09-24
*/
public interface ISurProjectAttendanceDataService
{
/**
*
*
* @param id
* @return
*/
public SurProjectAttendanceData selectSurProjectAttendanceDataById(Long id);
/**
*
*
* @param surProjectAttendanceData
* @return
*/
public List<SurProjectAttendanceData> selectSurProjectAttendanceDataList(SurProjectAttendanceData surProjectAttendanceData);
/**
*
*
* @param surProjectAttendanceData
* @return
*/
public int insertSurProjectAttendanceData(SurProjectAttendanceData surProjectAttendanceData);
/**
*
*
* @param surProjectAttendanceData
* @return
*/
public int updateSurProjectAttendanceData(SurProjectAttendanceData surProjectAttendanceData);
/**
*
*
* @param ids
* @return
*/
public int deleteSurProjectAttendanceDataByIds(Long[] ids);
/**
*
*
* @param id
* @return
*/
public int deleteSurProjectAttendanceDataById(Long id);
}

View File

@ -0,0 +1,61 @@
package com.yanzhu.jh.project.service;
import java.util.List;
import com.yanzhu.jh.project.domain.SurProjectAttendanceUser;
/**
* Service
*
* @author ruoyi
* @date 2023-09-24
*/
public interface ISurProjectAttendanceUserService
{
/**
*
*
* @param id
* @return
*/
public SurProjectAttendanceUser selectSurProjectAttendanceUserById(Long id);
/**
*
*
* @param surProjectAttendanceUser
* @return
*/
public List<SurProjectAttendanceUser> selectSurProjectAttendanceUserList(SurProjectAttendanceUser surProjectAttendanceUser);
/**
*
*
* @param surProjectAttendanceUser
* @return
*/
public int insertSurProjectAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser);
/**
*
*
* @param surProjectAttendanceUser
* @return
*/
public int updateSurProjectAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser);
/**
*
*
* @param ids
* @return
*/
public int deleteSurProjectAttendanceUserByIds(Long[] ids);
/**
*
*
* @param id
* @return
*/
public int deleteSurProjectAttendanceUserById(Long id);
}

View File

@ -0,0 +1,98 @@
package com.yanzhu.jh.project.service.impl;
import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.yanzhu.jh.project.mapper.SurProjectAttendanceCfgMapper;
import com.yanzhu.jh.project.domain.SurProjectAttendanceCfg;
import com.yanzhu.jh.project.service.ISurProjectAttendanceCfgService;
import com.ruoyi.common.utils.SecurityUtils;
/**
* Service
*
* @author ruoyi
* @date 2023-09-24
*/
@Service
public class SurProjectAttendanceCfgServiceImpl implements ISurProjectAttendanceCfgService
{
@Autowired
private SurProjectAttendanceCfgMapper surProjectAttendanceCfgMapper;
/**
*
*
* @param id
* @return
*/
@Override
public SurProjectAttendanceCfg selectSurProjectAttendanceCfgById(Long id)
{
return surProjectAttendanceCfgMapper.selectSurProjectAttendanceCfgById(id);
}
/**
*
*
* @param surProjectAttendanceCfg
* @return
*/
@Override
public List<SurProjectAttendanceCfg> selectSurProjectAttendanceCfgList(SurProjectAttendanceCfg surProjectAttendanceCfg)
{
return surProjectAttendanceCfgMapper.selectSurProjectAttendanceCfgList(surProjectAttendanceCfg);
}
/**
*
*
* @param surProjectAttendanceCfg
* @return
*/
@Override
public int insertSurProjectAttendanceCfg(SurProjectAttendanceCfg surProjectAttendanceCfg)
{
surProjectAttendanceCfg.setCreateBy(SecurityUtils.getUsername());
surProjectAttendanceCfg.setCreateTime(DateUtils.getNowDate());
return surProjectAttendanceCfgMapper.insertSurProjectAttendanceCfg(surProjectAttendanceCfg);
}
/**
*
*
* @param surProjectAttendanceCfg
* @return
*/
@Override
public int updateSurProjectAttendanceCfg(SurProjectAttendanceCfg surProjectAttendanceCfg)
{
surProjectAttendanceCfg.setUpdateBy(SecurityUtils.getUsername());
surProjectAttendanceCfg.setUpdateTime(DateUtils.getNowDate());
return surProjectAttendanceCfgMapper.updateSurProjectAttendanceCfg(surProjectAttendanceCfg);
}
/**
*
*
* @param ids
* @return
*/
@Override
public int deleteSurProjectAttendanceCfgByIds(Long[] ids)
{
return surProjectAttendanceCfgMapper.deleteSurProjectAttendanceCfgByIds(ids);
}
/**
*
*
* @param id
* @return
*/
@Override
public int deleteSurProjectAttendanceCfgById(Long id)
{
return surProjectAttendanceCfgMapper.deleteSurProjectAttendanceCfgById(id);
}
}

View File

@ -0,0 +1,98 @@
package com.yanzhu.jh.project.service.impl;
import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.yanzhu.jh.project.mapper.SurProjectAttendanceDataMapper;
import com.yanzhu.jh.project.domain.SurProjectAttendanceData;
import com.yanzhu.jh.project.service.ISurProjectAttendanceDataService;
import com.ruoyi.common.utils.SecurityUtils;
/**
* Service
*
* @author ruoyi
* @date 2023-09-24
*/
@Service
public class SurProjectAttendanceDataServiceImpl implements ISurProjectAttendanceDataService
{
@Autowired
private SurProjectAttendanceDataMapper surProjectAttendanceDataMapper;
/**
*
*
* @param id
* @return
*/
@Override
public SurProjectAttendanceData selectSurProjectAttendanceDataById(Long id)
{
return surProjectAttendanceDataMapper.selectSurProjectAttendanceDataById(id);
}
/**
*
*
* @param surProjectAttendanceData
* @return
*/
@Override
public List<SurProjectAttendanceData> selectSurProjectAttendanceDataList(SurProjectAttendanceData surProjectAttendanceData)
{
return surProjectAttendanceDataMapper.selectSurProjectAttendanceDataList(surProjectAttendanceData);
}
/**
*
*
* @param surProjectAttendanceData
* @return
*/
@Override
public int insertSurProjectAttendanceData(SurProjectAttendanceData surProjectAttendanceData)
{
surProjectAttendanceData.setCreateBy(SecurityUtils.getUsername());
surProjectAttendanceData.setCreateTime(DateUtils.getNowDate());
return surProjectAttendanceDataMapper.insertSurProjectAttendanceData(surProjectAttendanceData);
}
/**
*
*
* @param surProjectAttendanceData
* @return
*/
@Override
public int updateSurProjectAttendanceData(SurProjectAttendanceData surProjectAttendanceData)
{
surProjectAttendanceData.setUpdateBy(SecurityUtils.getUsername());
surProjectAttendanceData.setUpdateTime(DateUtils.getNowDate());
return surProjectAttendanceDataMapper.updateSurProjectAttendanceData(surProjectAttendanceData);
}
/**
*
*
* @param ids
* @return
*/
@Override
public int deleteSurProjectAttendanceDataByIds(Long[] ids)
{
return surProjectAttendanceDataMapper.deleteSurProjectAttendanceDataByIds(ids);
}
/**
*
*
* @param id
* @return
*/
@Override
public int deleteSurProjectAttendanceDataById(Long id)
{
return surProjectAttendanceDataMapper.deleteSurProjectAttendanceDataById(id);
}
}

View File

@ -0,0 +1,98 @@
package com.yanzhu.jh.project.service.impl;
import java.util.List;
import com.ruoyi.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.yanzhu.jh.project.mapper.SurProjectAttendanceUserMapper;
import com.yanzhu.jh.project.domain.SurProjectAttendanceUser;
import com.yanzhu.jh.project.service.ISurProjectAttendanceUserService;
import com.ruoyi.common.utils.SecurityUtils;
/**
* Service
*
* @author ruoyi
* @date 2023-09-24
*/
@Service
public class SurProjectAttendanceUserServiceImpl implements ISurProjectAttendanceUserService
{
@Autowired
private SurProjectAttendanceUserMapper surProjectAttendanceUserMapper;
/**
*
*
* @param id
* @return
*/
@Override
public SurProjectAttendanceUser selectSurProjectAttendanceUserById(Long id)
{
return surProjectAttendanceUserMapper.selectSurProjectAttendanceUserById(id);
}
/**
*
*
* @param surProjectAttendanceUser
* @return
*/
@Override
public List<SurProjectAttendanceUser> selectSurProjectAttendanceUserList(SurProjectAttendanceUser surProjectAttendanceUser)
{
return surProjectAttendanceUserMapper.selectSurProjectAttendanceUserList(surProjectAttendanceUser);
}
/**
*
*
* @param surProjectAttendanceUser
* @return
*/
@Override
public int insertSurProjectAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser)
{
surProjectAttendanceUser.setCreateBy(SecurityUtils.getUsername());
surProjectAttendanceUser.setCreateTime(DateUtils.getNowDate());
return surProjectAttendanceUserMapper.insertSurProjectAttendanceUser(surProjectAttendanceUser);
}
/**
*
*
* @param surProjectAttendanceUser
* @return
*/
@Override
public int updateSurProjectAttendanceUser(SurProjectAttendanceUser surProjectAttendanceUser)
{
surProjectAttendanceUser.setUpdateBy(SecurityUtils.getUsername());
surProjectAttendanceUser.setUpdateTime(DateUtils.getNowDate());
return surProjectAttendanceUserMapper.updateSurProjectAttendanceUser(surProjectAttendanceUser);
}
/**
*
*
* @param ids
* @return
*/
@Override
public int deleteSurProjectAttendanceUserByIds(Long[] ids)
{
return surProjectAttendanceUserMapper.deleteSurProjectAttendanceUserByIds(ids);
}
/**
*
*
* @param id
* @return
*/
@Override
public int deleteSurProjectAttendanceUserById(Long id)
{
return surProjectAttendanceUserMapper.deleteSurProjectAttendanceUserById(id);
}
}

View File

@ -0,0 +1,107 @@
package com.yanzhu.jh.project.task;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import okhttp3.HttpUrl;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import org.apache.commons.codec.digest.DigestUtils;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.util.*;
import java.util.stream.Collectors;
@Component("attendanceTask")
public class AttendanceTask {
//private static final String APP_ID_PARAM_NAME="appid";
//private static final String SIGN_PARAM_NAME="sign";
//private static String appId = "8fba899a21c64be4aa25bf0f3314ad5c";
//private static String appSecret = "426b3d8280620176d80a826eebef3579";
public static void syncWorker(String appid,String secret,String projectld,int page){
Map<String, Object> params = new HashMap<>();
params.put("projectId", projectld);
params.put("start", "2000-01-01 00:00:00");
params.put("end", "2099-01-01 00:00:00");
params.put("pageNo",""+page);
params.put("pageSize", "1000");
params.put("appid","8fba899a21c64be4aa25bf0f3314ad5c");
String sign = getSign(params,secret);
String host="https://glm.glodon.com/api/open";
String path="/worker/new/allWorkerInfo";
HttpUrl.Builder urlBuilder = Objects.requireNonNull(HttpUrl.parse(host + path)).newBuilder();
params.forEach((s, o) -> {
urlBuilder.addQueryParameter(s, (String) o);
});
Request request = new Request.Builder()
.url(urlBuilder.build())
.build();
String data=getResult(request);
System.out.println("data:"+data);
JSONObject jo= JSON.parseObject(data);
}
public static void main2(String[] args) {
syncWorker("8fba899a21c64be4aa25bf0f3314ad5c","426b3d8280620176d80a826eebef3579","719148569880576",1);
}
public static void main(String[] args){
System.out.println("-------1--------->AttendanceUserTask.syncWorker");
Map<String, Object> params = new HashMap<>();
params.put("projectId", "719148569880576");
params.put("start", "2000-01-01 00:00:00");
params.put("end", "2099-01-01 00:00:00");
params.put("pageNo", "1");
params.put("pageSize", "1000");
params.put("appid","8fba899a21c64be4aa25bf0f3314ad5c");
String sign = getSign(params,"426b3d8280620176d80a826eebef3579");
System.out.println("--->"+sign);
params.put("sign",sign);
String host="https://glm.glodon.com/api/open";
String path="/worker/new/allWorkerInfo";
HttpUrl.Builder urlBuilder = Objects.requireNonNull(HttpUrl.parse(host + path)).newBuilder();
params.forEach((s, o) -> {
urlBuilder.addQueryParameter(s, (String) o);
});
Request request = new Request.Builder()
.url(urlBuilder.build())
.build();
String data=getResult(request);
System.out.println("data:"+data);
JSONObject jo= JSON.parseObject(data);
}
private static String getResult(Request request) {
OkHttpClient client = new OkHttpClient();
Response response;
try {
response = client.newCall(request).execute();
if (response.body() != null) {
return response.body().string();
} else {
throw new RuntimeException();
}
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException();
}
}
private static String getSign(Map<String,Object> paramsMap,String appSecret){
List<String> paramsList = new ArrayList<>();
paramsMap.forEach((s, o) -> {
String stringBuilder = s + o;
paramsList.add(stringBuilder);
});
StringBuilder beforeMd5 = new StringBuilder();
beforeMd5.append(appSecret);
paramsList.stream()
.sorted(String::compareTo)
.collect(Collectors.toList())
.forEach(beforeMd5::append);
beforeMd5.append(appSecret);
return DigestUtils.md5Hex(beforeMd5.toString()).toUpperCase();
}
}

View File

@ -1,10 +0,0 @@
package com.yanzhu.jh.project.task;
import org.springframework.stereotype.Component;
@Component("attendanceWorkTask")
public class AttendanceWorkTask {
public void syncWorker(){
System.out.println("-------1--------->AttendanceUserTask.syncWorker");
}
}

View File

@ -0,0 +1,106 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yanzhu.jh.project.mapper.SurProjectAttendanceCfgMapper">
<resultMap type="SurProjectAttendanceCfg" id="SurProjectAttendanceCfgResult">
<result property="id" column="id" />
<result property="projectId" column="project_id" />
<result property="subDeptId" column="sub_dept_id" />
<result property="vendorsCode" column="vendors_code" />
<result property="vendorsParameter" column="vendors_parameter" />
<result property="enabled" column="enabled" />
<result property="state" column="state" />
<result property="remark" column="remark" />
<result property="isDel" column="is_del" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
</resultMap>
<sql id="selectSurProjectAttendanceCfgVo">
select id, project_id, sub_dept_id, vendors_code, vendors_parameter, enabled, state, remark, is_del, create_by, create_time, update_by, update_time from sur_project_attendance_cfg
</sql>
<select id="selectSurProjectAttendanceCfgList" parameterType="SurProjectAttendanceCfg" resultMap="SurProjectAttendanceCfgResult">
<include refid="selectSurProjectAttendanceCfgVo"/>
<where>
<if test="projectId != null "> and project_id = #{projectId}</if>
<if test="subDeptId != null "> and sub_dept_id = #{subDeptId}</if>
<if test="vendorsCode != null and vendorsCode != ''"> and vendors_code = #{vendorsCode}</if>
<if test="vendorsParameter != null and vendorsParameter != ''"> and vendors_parameter = #{vendorsParameter}</if>
<if test="enabled != null "> and enabled = #{enabled}</if>
<if test="state != null "> and state = #{state}</if>
<if test="isDel != null "> and is_del = #{isDel}</if>
</where>
</select>
<select id="selectSurProjectAttendanceCfgById" parameterType="Long" resultMap="SurProjectAttendanceCfgResult">
<include refid="selectSurProjectAttendanceCfgVo"/>
where id = #{id}
</select>
<insert id="insertSurProjectAttendanceCfg" parameterType="SurProjectAttendanceCfg" useGeneratedKeys="true" keyProperty="id">
insert into sur_project_attendance_cfg
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="projectId != null">project_id,</if>
<if test="subDeptId != null">sub_dept_id,</if>
<if test="vendorsCode != null">vendors_code,</if>
<if test="vendorsParameter != null">vendors_parameter,</if>
<if test="enabled != null">enabled,</if>
<if test="state != null">state,</if>
<if test="remark != null">remark,</if>
<if test="isDel != null">is_del,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="projectId != null">#{projectId},</if>
<if test="subDeptId != null">#{subDeptId},</if>
<if test="vendorsCode != null">#{vendorsCode},</if>
<if test="vendorsParameter != null">#{vendorsParameter},</if>
<if test="enabled != null">#{enabled},</if>
<if test="state != null">#{state},</if>
<if test="remark != null">#{remark},</if>
<if test="isDel != null">#{isDel},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
</trim>
</insert>
<update id="updateSurProjectAttendanceCfg" parameterType="SurProjectAttendanceCfg">
update sur_project_attendance_cfg
<trim prefix="SET" suffixOverrides=",">
<if test="projectId != null">project_id = #{projectId},</if>
<if test="subDeptId != null">sub_dept_id = #{subDeptId},</if>
<if test="vendorsCode != null">vendors_code = #{vendorsCode},</if>
<if test="vendorsParameter != null">vendors_parameter = #{vendorsParameter},</if>
<if test="enabled != null">enabled = #{enabled},</if>
<if test="state != null">state = #{state},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="isDel != null">is_del = #{isDel},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteSurProjectAttendanceCfgById" parameterType="Long">
delete from sur_project_attendance_cfg where id = #{id}
</delete>
<delete id="deleteSurProjectAttendanceCfgByIds" parameterType="String">
delete from sur_project_attendance_cfg where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

View File

@ -0,0 +1,116 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yanzhu.jh.project.mapper.SurProjectAttendanceDataMapper">
<resultMap type="SurProjectAttendanceData" id="SurProjectAttendanceDataResult">
<result property="id" column="id" />
<result property="vendorsCode" column="vendors_code" />
<result property="workerId" column="workerId" />
<result property="attendanceType" column="attendance_type" />
<result property="attendanceTime" column="attendance_time" />
<result property="deviceCode" column="device_code" />
<result property="workPointId" column="work_point_id" />
<result property="other" column="other" />
<result property="state" column="state" />
<result property="remark" column="remark" />
<result property="isDel" column="is_del" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
</resultMap>
<sql id="selectSurProjectAttendanceDataVo">
select id, vendors_code, workerId, attendance_type, attendance_time, device_code, work_point_id, other, state, remark, is_del, create_by, create_time, update_by, update_time from sur_project_attendance_data
</sql>
<select id="selectSurProjectAttendanceDataList" parameterType="SurProjectAttendanceData" resultMap="SurProjectAttendanceDataResult">
<include refid="selectSurProjectAttendanceDataVo"/>
<where>
<if test="vendorsCode != null and vendorsCode != ''"> and vendors_code = #{vendorsCode}</if>
<if test="workerId != null "> and workerId = #{workerId}</if>
<if test="attendanceType != null and attendanceType != ''"> and attendance_type = #{attendanceType}</if>
<if test="attendanceTime != null and attendanceTime != ''"> and attendance_time = #{attendanceTime}</if>
<if test="deviceCode != null and deviceCode != ''"> and device_code = #{deviceCode}</if>
<if test="workPointId != null and workPointId != ''"> and work_point_id = #{workPointId}</if>
<if test="other != null and other != ''"> and other = #{other}</if>
<if test="state != null "> and state = #{state}</if>
<if test="isDel != null "> and is_del = #{isDel}</if>
</where>
</select>
<select id="selectSurProjectAttendanceDataById" parameterType="Long" resultMap="SurProjectAttendanceDataResult">
<include refid="selectSurProjectAttendanceDataVo"/>
where id = #{id}
</select>
<insert id="insertSurProjectAttendanceData" parameterType="SurProjectAttendanceData" useGeneratedKeys="true" keyProperty="id">
insert into sur_project_attendance_data
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="vendorsCode != null">vendors_code,</if>
<if test="workerId != null">workerId,</if>
<if test="attendanceType != null">attendance_type,</if>
<if test="attendanceTime != null">attendance_time,</if>
<if test="deviceCode != null">device_code,</if>
<if test="workPointId != null">work_point_id,</if>
<if test="other != null">other,</if>
<if test="state != null">state,</if>
<if test="remark != null">remark,</if>
<if test="isDel != null">is_del,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="vendorsCode != null">#{vendorsCode},</if>
<if test="workerId != null">#{workerId},</if>
<if test="attendanceType != null">#{attendanceType},</if>
<if test="attendanceTime != null">#{attendanceTime},</if>
<if test="deviceCode != null">#{deviceCode},</if>
<if test="workPointId != null">#{workPointId},</if>
<if test="other != null">#{other},</if>
<if test="state != null">#{state},</if>
<if test="remark != null">#{remark},</if>
<if test="isDel != null">#{isDel},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
</trim>
</insert>
<update id="updateSurProjectAttendanceData" parameterType="SurProjectAttendanceData">
update sur_project_attendance_data
<trim prefix="SET" suffixOverrides=",">
<if test="vendorsCode != null">vendors_code = #{vendorsCode},</if>
<if test="workerId != null">workerId = #{workerId},</if>
<if test="attendanceType != null">attendance_type = #{attendanceType},</if>
<if test="attendanceTime != null">attendance_time = #{attendanceTime},</if>
<if test="deviceCode != null">device_code = #{deviceCode},</if>
<if test="workPointId != null">work_point_id = #{workPointId},</if>
<if test="other != null">other = #{other},</if>
<if test="state != null">state = #{state},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="isDel != null">is_del = #{isDel},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteSurProjectAttendanceDataById" parameterType="Long">
delete from sur_project_attendance_data where id = #{id}
</delete>
<delete id="deleteSurProjectAttendanceDataByIds" parameterType="String">
delete from sur_project_attendance_data where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

View File

@ -0,0 +1,226 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yanzhu.jh.project.mapper.SurProjectAttendanceUserMapper">
<resultMap type="SurProjectAttendanceUser" id="SurProjectAttendanceUserResult">
<result property="id" column="id" />
<result property="workerId" column="workerId" />
<result property="laborWorkerId" column="laborWorkerId" />
<result property="workerCategory" column="workerCategory" />
<result property="qrCode" column="qrCode" />
<result property="name" column="name" />
<result property="ethnic" column="ethnic" />
<result property="nativePlace" column="nativePlace" />
<result property="gender" column="gender" />
<result property="birthDate" column="birthDate" />
<result property="phone" column="phone" />
<result property="degreeName" column="degreeName" />
<result property="photo" column="photo" />
<result property="recentPhoto" column="recentPhoto" />
<result property="groupId" column="groupId" />
<result property="groupName" column="groupName" />
<result property="leader" column="leader" />
<result property="workTypeCode" column="workTypeCode" />
<result property="workTypeName" column="workTypeName" />
<result property="specWorkType" column="specWorkType" />
<result property="hatCode" column="hatCode" />
<result property="state" column="state" />
<result property="enterDate" column="enterDate" />
<result property="exitDate" column="exitDate" />
<result property="companyId" column="companyId" />
<result property="companyName" column="companyName" />
<result property="vendorId" column="vendorId" />
<result property="teamId" column="teamId" />
<result property="teamName" column="teamName" />
<result property="enterType" column="enterType" />
<result property="other" column="other" />
<result property="remark" column="remark" />
<result property="isDel" column="is_del" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
</resultMap>
<sql id="selectSurProjectAttendanceUserVo">
select id, workerId, laborWorkerId, workerCategory, qrCode, name, ethnic, nativePlace, gender, birthDate, phone, degreeName, photo, recentPhoto, groupId, groupName, leader, workTypeCode, workTypeName, specWorkType, hatCode, state, enterDate, exitDate, companyId, companyName, vendorId, teamId, teamName, enterType, other, remark, is_del, create_by, create_time, update_by, update_time from sur_project_attendance_user
</sql>
<select id="selectSurProjectAttendanceUserList" parameterType="SurProjectAttendanceUser" resultMap="SurProjectAttendanceUserResult">
<include refid="selectSurProjectAttendanceUserVo"/>
<where>
<if test="workerId != null "> and workerId = #{workerId}</if>
<if test="laborWorkerId != null "> and laborWorkerId = #{laborWorkerId}</if>
<if test="workerCategory != null "> and workerCategory = #{workerCategory}</if>
<if test="qrCode != null "> and qrCode = #{qrCode}</if>
<if test="name != null and name != ''"> and name like concat('%', #{name}, '%')</if>
<if test="ethnic != null and ethnic != ''"> and ethnic = #{ethnic}</if>
<if test="nativePlace != null and nativePlace != ''"> and nativePlace = #{nativePlace}</if>
<if test="gender != null "> and gender = #{gender}</if>
<if test="birthDate != null "> and birthDate = #{birthDate}</if>
<if test="phone != null and phone != ''"> and phone = #{phone}</if>
<if test="degreeName != null and degreeName != ''"> and degreeName like concat('%', #{degreeName}, '%')</if>
<if test="photo != null and photo != ''"> and photo = #{photo}</if>
<if test="recentPhoto != null and recentPhoto != ''"> and recentPhoto = #{recentPhoto}</if>
<if test="groupId != null "> and groupId = #{groupId}</if>
<if test="groupName != null and groupName != ''"> and groupName like concat('%', #{groupName}, '%')</if>
<if test="leader != null "> and leader = #{leader}</if>
<if test="workTypeCode != null and workTypeCode != ''"> and workTypeCode = #{workTypeCode}</if>
<if test="workTypeName != null and workTypeName != ''"> and workTypeName like concat('%', #{workTypeName}, '%')</if>
<if test="specWorkType != null "> and specWorkType = #{specWorkType}</if>
<if test="hatCode != null and hatCode != ''"> and hatCode = #{hatCode}</if>
<if test="state != null "> and state = #{state}</if>
<if test="enterDate != null and enterDate != ''"> and enterDate = #{enterDate}</if>
<if test="exitDate != null and exitDate != ''"> and exitDate = #{exitDate}</if>
<if test="companyId != null "> and companyId = #{companyId}</if>
<if test="companyName != null and companyName != ''"> and companyName like concat('%', #{companyName}, '%')</if>
<if test="vendorId != null "> and vendorId = #{vendorId}</if>
<if test="teamId != null "> and teamId = #{teamId}</if>
<if test="teamName != null and teamName != ''"> and teamName like concat('%', #{teamName}, '%')</if>
<if test="enterType != null and enterType != ''"> and enterType = #{enterType}</if>
<if test="other != null and other != ''"> and other = #{other}</if>
<if test="isDel != null "> and is_del = #{isDel}</if>
</where>
</select>
<select id="selectSurProjectAttendanceUserById" parameterType="Long" resultMap="SurProjectAttendanceUserResult">
<include refid="selectSurProjectAttendanceUserVo"/>
where id = #{id}
</select>
<insert id="insertSurProjectAttendanceUser" parameterType="SurProjectAttendanceUser" useGeneratedKeys="true" keyProperty="id">
insert into sur_project_attendance_user
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="workerId != null">workerId,</if>
<if test="laborWorkerId != null">laborWorkerId,</if>
<if test="workerCategory != null">workerCategory,</if>
<if test="qrCode != null">qrCode,</if>
<if test="name != null">name,</if>
<if test="ethnic != null">ethnic,</if>
<if test="nativePlace != null">nativePlace,</if>
<if test="gender != null">gender,</if>
<if test="birthDate != null">birthDate,</if>
<if test="phone != null and phone != ''">phone,</if>
<if test="degreeName != null">degreeName,</if>
<if test="photo != null">photo,</if>
<if test="recentPhoto != null">recentPhoto,</if>
<if test="groupId != null">groupId,</if>
<if test="groupName != null">groupName,</if>
<if test="leader != null">leader,</if>
<if test="workTypeCode != null">workTypeCode,</if>
<if test="workTypeName != null">workTypeName,</if>
<if test="specWorkType != null">specWorkType,</if>
<if test="hatCode != null">hatCode,</if>
<if test="state != null">state,</if>
<if test="enterDate != null">enterDate,</if>
<if test="exitDate != null">exitDate,</if>
<if test="companyId != null">companyId,</if>
<if test="companyName != null">companyName,</if>
<if test="vendorId != null">vendorId,</if>
<if test="teamId != null">teamId,</if>
<if test="teamName != null">teamName,</if>
<if test="enterType != null">enterType,</if>
<if test="other != null and other != ''">other,</if>
<if test="remark != null">remark,</if>
<if test="isDel != null">is_del,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="workerId != null">#{workerId},</if>
<if test="laborWorkerId != null">#{laborWorkerId},</if>
<if test="workerCategory != null">#{workerCategory},</if>
<if test="qrCode != null">#{qrCode},</if>
<if test="name != null">#{name},</if>
<if test="ethnic != null">#{ethnic},</if>
<if test="nativePlace != null">#{nativePlace},</if>
<if test="gender != null">#{gender},</if>
<if test="birthDate != null">#{birthDate},</if>
<if test="phone != null and phone != ''">#{phone},</if>
<if test="degreeName != null">#{degreeName},</if>
<if test="photo != null">#{photo},</if>
<if test="recentPhoto != null">#{recentPhoto},</if>
<if test="groupId != null">#{groupId},</if>
<if test="groupName != null">#{groupName},</if>
<if test="leader != null">#{leader},</if>
<if test="workTypeCode != null">#{workTypeCode},</if>
<if test="workTypeName != null">#{workTypeName},</if>
<if test="specWorkType != null">#{specWorkType},</if>
<if test="hatCode != null">#{hatCode},</if>
<if test="state != null">#{state},</if>
<if test="enterDate != null">#{enterDate},</if>
<if test="exitDate != null">#{exitDate},</if>
<if test="companyId != null">#{companyId},</if>
<if test="companyName != null">#{companyName},</if>
<if test="vendorId != null">#{vendorId},</if>
<if test="teamId != null">#{teamId},</if>
<if test="teamName != null">#{teamName},</if>
<if test="enterType != null">#{enterType},</if>
<if test="other != null and other != ''">#{other},</if>
<if test="remark != null">#{remark},</if>
<if test="isDel != null">#{isDel},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
</trim>
</insert>
<update id="updateSurProjectAttendanceUser" parameterType="SurProjectAttendanceUser">
update sur_project_attendance_user
<trim prefix="SET" suffixOverrides=",">
<if test="workerId != null">workerId = #{workerId},</if>
<if test="laborWorkerId != null">laborWorkerId = #{laborWorkerId},</if>
<if test="workerCategory != null">workerCategory = #{workerCategory},</if>
<if test="qrCode != null">qrCode = #{qrCode},</if>
<if test="name != null">name = #{name},</if>
<if test="ethnic != null">ethnic = #{ethnic},</if>
<if test="nativePlace != null">nativePlace = #{nativePlace},</if>
<if test="gender != null">gender = #{gender},</if>
<if test="birthDate != null">birthDate = #{birthDate},</if>
<if test="phone != null and phone != ''">phone = #{phone},</if>
<if test="degreeName != null">degreeName = #{degreeName},</if>
<if test="photo != null">photo = #{photo},</if>
<if test="recentPhoto != null">recentPhoto = #{recentPhoto},</if>
<if test="groupId != null">groupId = #{groupId},</if>
<if test="groupName != null">groupName = #{groupName},</if>
<if test="leader != null">leader = #{leader},</if>
<if test="workTypeCode != null">workTypeCode = #{workTypeCode},</if>
<if test="workTypeName != null">workTypeName = #{workTypeName},</if>
<if test="specWorkType != null">specWorkType = #{specWorkType},</if>
<if test="hatCode != null">hatCode = #{hatCode},</if>
<if test="state != null">state = #{state},</if>
<if test="enterDate != null">enterDate = #{enterDate},</if>
<if test="exitDate != null">exitDate = #{exitDate},</if>
<if test="companyId != null">companyId = #{companyId},</if>
<if test="companyName != null">companyName = #{companyName},</if>
<if test="vendorId != null">vendorId = #{vendorId},</if>
<if test="teamId != null">teamId = #{teamId},</if>
<if test="teamName != null">teamName = #{teamName},</if>
<if test="enterType != null">enterType = #{enterType},</if>
<if test="other != null and other != ''">other = #{other},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="isDel != null">is_del = #{isDel},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteSurProjectAttendanceUserById" parameterType="Long">
delete from sur_project_attendance_user where id = #{id}
</delete>
<delete id="deleteSurProjectAttendanceUserByIds" parameterType="String">
delete from sur_project_attendance_user where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>