fix: 优化人员管理和三码校验记录页面业务逻辑

This commit is contained in:
XingCheng3
2026-06-16 14:48:03 +08:00
parent f06d02e95d
commit 3ed5f66667
6 changed files with 999 additions and 344 deletions

View File

@@ -64,7 +64,7 @@ export function addDepartmentName(num1, num2, num3) {
data: {
UserID: state.state.user.id,
ModularID: router.currentRoute.path,
type: 2,
type: '11',
name: '人事档案管理_部门关系_增加节点',
param: '父节点=' + num1 + '=int&节点名称=' + num2 + '=string&子节点=' + num3
}
@@ -78,7 +78,7 @@ export function delList(num1) {
data: {
UserID: state.state.user.id,
ModularID: router.currentRoute.path,
type: 2,
type: '11',
name: '人事档案管理_部门关系_删除节点',
param: '子节点=' + num1 + '=int'
}
@@ -92,7 +92,7 @@ export function editList(num1, num2) {
data: {
UserID: state.state.user.id,
ModularID: router.currentRoute.path,
type: 2,
type: '11',
name: '人事档案管理_部门关系_修改节点',
param: '子节点=' + num1 + '=int&节点名称=' + num2 + '=string'
}
@@ -105,7 +105,7 @@ export function delPeopleList(num1) {
data: {
UserID: state.state.user.id,
ModularID: router.currentRoute.path,
type: 2,
type: '11',
name: '人事档案管理_人员名单_删除数据_MESWORK',
param: '人员编号=' + num1 + '=int'
}
@@ -202,7 +202,7 @@ export function addPeople(id, Sex, Education, Address, Nation, Post, AccountNumb
data: {
UserID: state.state.user.id,
ModularID: router.currentRoute.path,
type: 2,
type: '11',
name: '人事档案管理_人员名单_增加数据_MESWORK',
param: '考核部门编号=' + id + '=int&性别编号=' + Sex + '=int&学历编号=' + Education + '=int&家庭住址=' + Address + '&民族=' + Nation + '&岗位编号=' + Post + '=int&考勤编号=' + AccountNumber + '=string&密码=' + Password + '=string&姓名=' + Name + '=string&身份证号=' + IDcard + '=string&入公司时间=' + TimeOfEntry + '=string&出生日期=' + Birthday + '=string&联系电话=' + ContactInformation + '=string&班组=' + TeamValue
}
@@ -215,7 +215,7 @@ export function editPeople(id, Sex, Education, Address, Nation, Post, AccountNum
data: {
UserID: state.state.user.id,
ModularID: router.currentRoute.path,
type: 2,
type: '11',
name: '人事档案管理_人员名单_修改数据_MESWORK',
param: '人员编号=' + id + '=int&性别编号=' + Sex + '=int&学历编号=' + Education + '=int&家庭住址=' + Address + '&民族=' + Nation + '&岗位编号=' + Post + '=int&考勤编号=' + AccountNumber + '=string&密码=' + Password + '=string&姓名=' + Name + '=string&身份证号=' + IDcard + '=string&入公司时间=' + TimeOfEntry + '=string&出生日期=' + Birthday + '=string&联系电话=' + ContactInformation + '=string&班组=' + TeamValue
}
@@ -228,7 +228,7 @@ export function moveGroups(num1, num2) {
data: {
UserID: state.state.user.id,
ModularID: router.currentRoute.path,
type: 2,
type: '11',
name: '人事档案管理_人员名单_移动数据_MESWORK',
param: '人员编号=' + num1 + '=int&考核部门编号=' + num2 + '=int'
}
@@ -397,12 +397,25 @@ export function quit(num1) {
data: {
UserID: state.state.user.id,
ModularID: router.currentRoute.path,
type: 2,
type: '11',
name: '人事档案管理_人员_离职操作',
param: '人员编号=' + num1 + '=int'
}
})
}
export function reinstate(num1) {
return request({
url: '',
method: 'post',
data: {
UserID: state.state.user.id,
ModularID: router.currentRoute.path,
type: '11',
name: '人事档案管理_人员_复职操作',
param: '人员编号=' + num1 + '=int'
}
})
}
export function searchLeavingList(pageCurrent, pageSize) {
return request({
url: '',

View File

@@ -380,9 +380,17 @@
<!-- {{ scope.row.家庭住址 }}-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="操作" align="center" width="100">
<el-table-column label="操作" align="center" width="170">
<template slot-scope="scope">
<el-button size="mini" type="danger" icon="el-icon-circle-close-outline"
<el-button
size="mini"
type="primary"
icon="el-icon-refresh-left"
@click="reinstatePeople(scope.row)">复职</el-button>
<el-button
size="mini"
type="danger"
icon="el-icon-circle-close-outline"
@click="deletePeople(scope.row)">删除</el-button>
</template>
</el-table-column>
@@ -408,7 +416,7 @@
</template>
<script>
import { fetchteamviwer, moveGroups, getTree, tree, getTablePeople, getTablePeopleForName, addDepartmentName, delList, editList, fetchEducationData, fetchPostData, addPeople, editPeople, quit, searchLeavingList } from '@/api/BasicData/PersonnelManagement'
import { fetchteamviwer, moveGroups, getTree, tree, getTablePeople, getTablePeopleForName, addDepartmentName, delList, editList, fetchEducationData, fetchPostData, addPeople, editPeople, quit, reinstate, searchLeavingList } from '@/api/BasicData/PersonnelManagement'
import { uploadPerson } from '@/utils/request'
import { readFile } from '@/utils/request'
import request from '@/utils/request'
@@ -554,6 +562,13 @@ export default {
this.fetchTeamViwer()
},
methods: {
getBusinessResult(response) {
const result = response && response.data && response.data[0] ? response.data[0] : {}
return {
success: result.result === 1 || result.result === '1',
message: result.msg || result.message
}
},
// 获取班组信息
fetchTeamViwer() {
fetchteamviwer().then(response => {
@@ -574,13 +589,14 @@ export default {
}).then(() => {
var param = []
param[0] = ['考勤编号', row.考勤编号]
var Data = this.CreateData('12', '人事档案管理_离职人员_删除数据', param)
var Data = this.CreateData('11', '人事档案管理_离职人员_删除数据', param)
this.ExecDatabase(Data).then(response => {
if (response.data[0].result === '1') {
this.$message.success('删除成功')
const result = this.getBusinessResult(response)
if (result.success) {
this.$message.success(result.message || '删除成功')
this.searchLeavingList()
} else {
this.$message.error('删除失败')
this.$message.error(result.message || '删除失败')
}
})
}).catch(() => {
@@ -737,22 +753,24 @@ export default {
this.department_DFV = false
if (this.id) {
addDepartmentName(this.id, this.department_Form.DepartmentName, 0).then(response => {
if (response.data[0].result === '1') {
const result = this.getBusinessResult(response)
if (result.success) {
this.getTreeData()
this.$message.success('添加成功')
this.$message.success(result.message || '添加成功')
this.i = 0
} else {
this.$message.error('添加失败')
this.$message.error(result.message || '添加失败')
}
})
} else {
addDepartmentName(0, this.department_Form.DepartmentName, 0).then(response => {
if (response.data[0].result === '1') {
const result = this.getBusinessResult(response)
if (result.success) {
this.getTreeData()
this.$message.success('添加成功')
this.$message.success(result.message || '添加成功')
this.i = 1
} else {
this.$message.error('添加失败')
this.$message.error(result.message || '添加失败')
}
})
}
@@ -767,11 +785,12 @@ export default {
this.handleAdd_disable = true
this.department_DFV = false
editList(this.id, this.department_Form.DepartmentName).then(response => {
if (response.data[0].result === '1') {
const result = this.getBusinessResult(response)
if (result.success) {
this.getTreeData()
this.$message.success('编辑成功')
this.$message.success(result.message || '编辑成功')
} else {
this.$message.error('编辑失败')
this.$message.error(result.message || '编辑失败')
}
})
} else {
@@ -787,14 +806,17 @@ export default {
type: 'warning'
}).then(() => {
delList(this.id).then(response => {
if (response.data[0].result === '1') {
const result = this.getBusinessResult(response)
if (result.success) {
this.getTreeData()
this.i = 1
this.id = ''
this.$message({
message: '已被成功删除',
message: result.message || '已被成功删除',
type: 'success'
})
} else {
this.$message.error(result.message || '删除失败')
}
})
}).catch(() => {
@@ -847,15 +869,20 @@ export default {
this.btnLoading = true
addPeople(this.id, this.people_form.Sex, this.people_form.Education, this.people_form.Address, this.people_form.Nation, this.people_form.Post, this.people_form.AccountNumber, this.people_form.Password, this.people_form.Name, this.people_form.IDcard, this.people_form.TimeOfEntry, this.people_form.Birthday, this.people_form.ContactInformation, this.people_form.TeamValue).then(response => {
this.btnLoading = false
if (response.data[0].result === '1') {
const result = this.getBusinessResult(response)
if (result.success) {
this.people_DFV = false
this.i = 0
this.handleNodeClick()
this.$message.success('添加成功')
this.$message.success(result.message || '添加成功')
} else {
this.$message.error('添加失败')
this.$message.error(result.message || '添加失败')
this.addPeople_disable = false
}
}).catch(() => {
this.btnLoading = false
this.addPeople_disable = false
this.$message.error('添加异常')
})
} else {
return false
@@ -898,18 +925,23 @@ export default {
this.btnLoading = true
editPeople(this.people_form.PeopleID, this.people_form.Sex, this.people_form.Education, this.people_form.Address, this.people_form.Nation, this.people_form.Post, this.people_form.AccountNumber, this.people_form.Password, this.people_form.Name, this.people_form.IDcard, this.people_form.TimeOfEntry, this.people_form.Birthday, this.people_form.ContactInformation, this.people_form.TeamValue).then(response => {
this.btnLoading = false
if (response.data[0].result === '1') {
const result = this.getBusinessResult(response)
if (result.success) {
if (this.id !== '' && this.Name === '') {
this.handleNodeClick()
} else {
this.feathPeopleForName()
this.fetchPeopleForName()
}
this.$message.success('编辑成功')
this.$message.success(result.message || '编辑成功')
this.people_DFV = false
} else {
this.$message.error('编辑失败')
this.$message.error(result.message || '编辑失败')
this.addPeople_disable = false
}
}).catch(() => {
this.btnLoading = false
this.addPeople_disable = false
this.$message.error('编辑异常')
})
} else {
return false
@@ -955,13 +987,14 @@ export default {
}).then(() => {
for (let i = 0; i < this.multipleSelection.length; i++) {
quit(this.multipleSelection[i].人员编号).then(response => {
if (response.data[0].result === '1') {
this.$message.success('离职成功')
const result = this.getBusinessResult(response)
if (result.success) {
this.$message.success(result.message || '离职成功')
getTablePeople(this.id, this.PageCurrent, this.PageSize).then(response => {
this.List = response.data.rows
this.total = response.data.total
})
} else { this.$message.error('离职失败') }
} else { this.$message.error(result.message || '离职失败') }
})
}
}).catch(() => {
@@ -976,17 +1009,46 @@ export default {
this.LeavingListVisiable = true
this.getTable(searchLeavingList, [this.PageCurrentN, this.PageSizeN], ['LeavingList', 'totalN'])
},
reinstatePeople(row) {
this.$confirm('确认将该员工复职?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
reinstate(row.人员编号).then(response => {
const result = this.getBusinessResult(response)
if (result.success) {
this.$message.success(result.message || '复职成功')
this.searchLeavingList()
if (this.id) {
getTablePeople(this.id, this.PageCurrent, this.PageSize).then(response => {
this.List = response.data.rows
this.total = response.data.total
})
}
} else {
this.$message.error(result.message || '复职失败')
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消复职操作'
})
})
},
moveGroupConfim() {
this.id = this.node
for (let i = 0; i < this.multipleSelection.length; i++) {
moveGroups(this.multipleSelection[i].人员编号, this.node).then(response => {
if (response.data[0].result === '1') {
const result = this.getBusinessResult(response)
if (result.success) {
if (i === this.multipleSelection.length - 1) {
this.$message.success('移组成功')
this.$message.success(result.message || '移组成功')
this.handleNodeClick()
}
} else {
this.$message.error('更新失败')
this.$message.error(result.message || '更新失败')
}
})
}

View File

@@ -210,6 +210,13 @@ export default {
this.fetchData()
},
methods: {
getBusinessResult(response) {
const result = response && response.data && response.data[0] ? response.data[0] : {}
return {
success: result.result === 1 || result.result === '1',
message: result.msg || result.message
}
},
handelAdd() {
this.department = ''
this.attendanceNumber = ''
@@ -290,16 +297,23 @@ export default {
param[1] = ['角色编号', this.form1.roleName]
param[2] = ['项目编号', 10]
console.log('param', param)
var Data = this.CreateData('12', '菜单系统模块_项目角色员工综合_增加数据', param)
var Data = this.CreateData('11', '菜单系统模块_项目角色员工综合_增加数据', param)
this.ExecDatabase(Data).then(response => {
if (response.data[0].result === '1') {
this.$message.success('增加成功')
const result = this.getBusinessResult(response)
if (result.success) {
this.$message.success(result.message || '增加成功')
this.department = ''
this.form1.staffName = ''
this.form1.roleName = ''
this.searchData()
this.dialogFormVisible1 = false
} else { this.$message.error('增加失败') }
} else {
this.$message.error(result.message || '增加失败')
this.handelAdd_disable = false
}
}).catch(() => {
this.handelAdd_disable = false
this.$message.error('增加异常')
})
} else {
console.log('error submit!!')
@@ -315,14 +329,21 @@ export default {
param[0] = ['人员角色流水号', this.personnelStream]
param[1] = ['人员编号', this.personnelNumber]
param[2] = ['角色编号', this.form2.roleName]
var Data = this.CreateData('12', '菜单系统模块_项目角色员工综合_修改数据', param)
var Data = this.CreateData('11', '菜单系统模块_项目角色员工综合_修改数据', param)
this.ExecDatabase(Data).then(response => {
if (response.data[0].result === '1') {
this.$message.success('修改成功')
const result = this.getBusinessResult(response)
if (result.success) {
this.$message.success(result.message || '修改成功')
this.department = ''
this.searchData()
this.dialogFormVisible2 = false
} else { this.$message.error('修改失败') }
} else {
this.$message.error(result.message || '修改失败')
this.handelAdd_disable = false
}
}).catch(() => {
this.handelAdd_disable = false
this.$message.error('修改异常')
})
} else {
console.log('error submit!!')
@@ -347,11 +368,12 @@ export default {
}).then(() => {
var param = []
param[0] = ['人员角色流水号', row.人员角色流水号]
var Data = this.CreateData('12', '菜单系统模块_项目角色员工综合_删除数据', param)
var Data = this.CreateData('11', '菜单系统模块_项目角色员工综合_删除数据', param)
this.ExecDatabase(Data).then(response => {
if (response.data[0].result === '1') {
this.$message.success('删除成功')
} else { this.$message.error('删除失败') }
const result = this.getBusinessResult(response)
if (result.success) {
this.$message.success(result.message || '删除成功')
} else { this.$message.error(result.message || '删除失败') }
this.searchData()
})
}).catch(() => {
@@ -385,4 +407,3 @@ export default {
margin: 5px;
}
</style>

View File

@@ -1,89 +1,194 @@
<template>
<div class="app-container">
<el-card class="topCard">
<div class="topDiv">
<span style="margin-left: 10px">产品编号</span>
<el-input v-model="productNoValue" placeholder="请输入产品编号" clearable size="small" style="width: 190px" @keyup.enter.native="handleSearch" />
<el-tabs v-model="activeTab" @tab-click="handleTabClick">
<el-tab-pane label="校验记录" name="verifyRecord">
<div class="topDiv">
<span style="margin-left: 10px">产品编号</span>
<el-input v-model="productNoValue" placeholder="请输入产品编号" clearable size="small" style="width: 190px" @keyup.enter.native="handleSearch" />
<span style="margin-left: 10px">产品型号</span>
<el-input v-model="productTypeValue" placeholder="请输入产品型号" clearable size="small" style="width: 150px" @keyup.enter.native="handleSearch" />
<span style="margin-left: 10px">产品型号</span>
<el-input v-model="productTypeValue" placeholder="请输入产品型号" clearable size="small" style="width: 150px" @keyup.enter.native="handleSearch" />
<span style="margin-left: 10px">操作人</span>
<el-input v-model="operatorValue" placeholder="请输入操作人" clearable size="small" style="width: 120px" @keyup.enter.native="handleSearch" />
<span style="margin-left: 10px">操作人</span>
<el-input v-model="operatorValue" placeholder="请输入操作人" clearable size="small" style="width: 120px" @keyup.enter.native="handleSearch" />
<span style="margin-left: 10px">校验状态</span>
<el-select v-model="verifyStatusValue" placeholder="请选择" clearable size="small" style="width: 120px">
<el-option label="全部" value="" />
<el-option label="进行中" value="0" />
<el-option label="成功" value="1" />
<el-option label="失败" value="2" />
</el-select>
<span style="margin-left: 10px">校验状态</span>
<el-select v-model="verifyStatusValue" placeholder="请选择" clearable size="small" style="width: 120px">
<el-option label="全部" value="" />
<el-option label="进行中" value="0" />
<el-option label="成功" value="1" />
<el-option label="失败" value="2" />
</el-select>
<span style="margin-left: 10px">记录时间</span>
<el-date-picker
v-model="dateTime"
:clearable="false"
size="small"
type="datetimerange"
align="center"
style="width: 360px"
value-format="yyyy-MM-dd HH:mm:ss"
format="yyyy-MM-dd HH:mm:ss"
range-separator=""
start-placeholder="开始时间"
end-placeholder="结束时间" />
<span style="margin-left: 10px">记录时间</span>
<el-date-picker
v-model="dateTime"
:clearable="false"
size="small"
type="datetimerange"
align="center"
style="width: 360px"
value-format="yyyy-MM-dd HH:mm:ss"
format="yyyy-MM-dd HH:mm:ss"
range-separator=""
start-placeholder="开始时间"
end-placeholder="结束时间" />
<el-button type="primary" plain size="small" icon="el-icon-search" style="margin-left: 5px" @click="handleSearch">查询</el-button>
<el-button :loading="exportLoading" :disabled="exportLoading" type="info" size="small" icon="el-icon-download" style="margin-left: 5px" @click="exportExcel">Excel</el-button>
</div>
<el-button type="primary" plain size="small" icon="el-icon-search" style="margin-left: 5px" @click="handleSearch">查询</el-button>
<el-button :loading="exportLoading" :disabled="exportLoading" type="info" size="small" icon="el-icon-download" style="margin-left: 5px" @click="exportExcel">Excel</el-button>
</div>
<el-table
v-loading="loading"
:data="tableData"
:header-cell-style="{ background: '#eef1f6', color: '#606266' }"
element-loading-text="数据加载中"
highlight-current-row
border
size="mini"
height="620px"
style="width: 100%">
<el-table-column width="60" label="序号" type="index" align="center" />
<el-table-column label="产品编号" width="200" align="center" prop="产品编号" show-overflow-tooltip />
<el-table-column label="产品型号" width="120" align="center" prop="产品型号" show-overflow-tooltip />
<el-table-column label="机型代码" width="90" align="center" prop="机型代码" show-overflow-tooltip />
<el-table-column label="扫描箱体码" width="250" align="center" prop="扫描箱体码" show-overflow-tooltip />
<el-table-column label="扫描客户标签码" min-width="200" align="center" prop="扫描客户标签码" show-overflow-tooltip />
<el-table-column label="箱体码结果" width="100" align="center">
<template slot-scope="scope">
<el-tag :type="getResultType(scope.row.箱体码校验结果)" size="mini">{{ getResultText(scope.row.箱体码校验结果) }}</el-tag>
</template>
</el-table-column>
<el-table-column label="客户标签结果" width="110" align="center">
<template slot-scope="scope">
<el-tag :type="getResultType(scope.row.客户标签码校验结果)" size="mini">{{ getResultText(scope.row.客户标签码校验结果) }}</el-tag>
</template>
</el-table-column>
<el-table-column label="校验状态" width="100" align="center">
<template slot-scope="scope">
<el-tag :type="getStatusType(scope.row.校验状态)" size="mini">{{ getStatusText(scope.row.校验状态) }}</el-tag>
</template>
</el-table-column>
<el-table-column label="操作人" width="110" align="center" prop="操作人" show-overflow-tooltip />
<el-table-column label="创建时间" width="160" align="center" prop="创建时间" show-overflow-tooltip />
<el-table-column label="完成时间" width="160" align="center" prop="完成时间" show-overflow-tooltip />
</el-table>
<el-table
v-loading="loading"
:data="tableData"
:header-cell-style="{ background: '#eef1f6', color: '#606266' }"
element-loading-text="数据加载中"
highlight-current-row
border
size="mini"
height="620px"
style="width: 100%">
<el-table-column width="60" label="序号" type="index" align="center" />
<el-table-column label="产品编号" width="200" align="center" prop="产品编号" show-overflow-tooltip />
<el-table-column label="产品型号" width="120" align="center" prop="产品型号" show-overflow-tooltip />
<el-table-column label="机型代码" width="90" align="center" prop="机型代码" show-overflow-tooltip />
<el-table-column label="扫描箱体码" width="250" align="center" prop="扫描箱体码" show-overflow-tooltip />
<el-table-column label="扫描客户标签码" min-width="200" align="center" prop="扫描客户标签码" show-overflow-tooltip />
<el-table-column label="箱体码结果" width="100" align="center">
<template slot-scope="scope">
<el-tag :type="getResultType(scope.row.箱体码校验结果)" size="mini">{{ getResultText(scope.row.箱体码校验结果) }}</el-tag>
</template>
</el-table-column>
<el-table-column label="客户标签结果" width="110" align="center">
<template slot-scope="scope">
<el-tag :type="getResultType(scope.row.客户标签码校验结果)" size="mini">{{ getResultText(scope.row.客户标签码校验结果) }}</el-tag>
</template>
</el-table-column>
<el-table-column label="校验状态" width="100" align="center">
<template slot-scope="scope">
<el-tag :type="getStatusType(scope.row.校验状态)" size="mini">{{ getStatusText(scope.row.校验状态) }}</el-tag>
</template>
</el-table-column>
<el-table-column label="操作人" width="110" align="center" prop="操作人" show-overflow-tooltip />
<el-table-column label="创建时间" width="160" align="center" prop="创建时间" show-overflow-tooltip />
<el-table-column label="完成时间" width="160" align="center" prop="完成时间" show-overflow-tooltip />
</el-table>
<div class="block" style="margin-top: 10px">
<el-pagination
v-if="!loading"
:current-page="pageCurrent"
:page-sizes="[50, 100, 200]"
:page-size="pageSize"
:total="total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="handleSizeChange"
@current-change="handleCurrentChange" />
</div>
<div class="block" style="margin-top: 10px">
<el-pagination
v-if="!loading"
:current-page="pageCurrent"
:page-sizes="[50, 100, 200]"
:page-size="pageSize"
:total="total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="handleSizeChange"
@current-change="handleCurrentChange" />
</div>
</el-tab-pane>
<el-tab-pane label="下线产品校验核对" name="offlineProduct">
<div class="topDiv">
<div class="filter-line">
<span style="margin-left: 10px">下线时间</span>
<el-date-picker
v-model="offlineDateTime"
:clearable="false"
size="small"
type="datetimerange"
align="center"
style="width: 360px"
value-format="yyyy-MM-dd HH:mm:ss"
format="yyyy-MM-dd HH:mm:ss"
range-separator=""
start-placeholder="开始时间"
end-placeholder="结束时间" />
<span style="margin-left: 10px">产品编号</span>
<el-input v-model="offlineProductNoValue" placeholder="请输入产品编号" clearable size="small" style="width: 180px" @keyup.enter.native="handleOfflineSearch" />
<span style="margin-left: 10px">产品型号</span>
<el-input v-model="offlineProductTypeValue" placeholder="请输入产品型号" clearable size="small" style="width: 140px" @keyup.enter.native="handleOfflineSearch" />
<span style="margin-left: 10px">校验情况</span>
<el-select v-model="offlineVerifyStatusValue" placeholder="请选择" clearable size="small" style="width: 120px">
<el-option label="全部" value="" />
<el-option label="已完成" value="done" />
<el-option label="未完成" value="undone" />
</el-select>
</div>
<div class="filter-line">
<span style="margin-left: 10px">PACK码</span>
<el-input v-model="offlinePackCodeValue" placeholder="请输入PACK码" clearable size="small" style="width: 180px" @keyup.enter.native="handleOfflineSearch" />
<span style="margin-left: 10px">模组码</span>
<el-input v-model="offlineModuleCodeValue" placeholder="请输入模组码" clearable size="small" style="width: 180px" @keyup.enter.native="handleOfflineSearch" />
<span style="margin-left: 10px">箱体码</span>
<el-input v-model="offlineBoxCodeValue" placeholder="请输入箱体码" clearable size="small" style="width: 180px" @keyup.enter.native="handleOfflineSearch" />
<el-button type="primary" plain size="small" icon="el-icon-search" style="margin-left: 5px" @click="handleOfflineSearch">查询</el-button>
<el-button :loading="offlineExportLoading" :disabled="offlineExportLoading" type="info" size="small" icon="el-icon-download" style="margin-left: 5px" @click="exportOfflineExcel">Excel</el-button>
</div>
</div>
<el-table
v-loading="offlineLoading"
:data="offlineTableData"
:header-cell-style="{ background: '#eef1f6', color: '#606266' }"
element-loading-text="数据加载中"
highlight-current-row
border
size="mini"
height="620px"
style="width: 100%">
<el-table-column width="60" label="序号" type="index" align="center" />
<el-table-column label="校验情况" width="100" align="center">
<template slot-scope="scope">
<el-tag :type="getOfflineVerifyType(scope.row)" size="mini">{{ getOfflineVerifyText(scope.row) }}</el-tag>
</template>
</el-table-column>
<el-table-column label="产品编号" width="200" align="center" prop="产品编号" show-overflow-tooltip />
<el-table-column label="产品型号" width="120" align="center" prop="产品型号" show-overflow-tooltip />
<el-table-column label="机型代码" width="90" align="center" prop="机型代码" show-overflow-tooltip />
<el-table-column label="下线时间" width="160" align="center" prop="下线时间" show-overflow-tooltip />
<el-table-column label="PACK码" width="200" align="center" prop="PACK码" show-overflow-tooltip />
<el-table-column label="模组码" width="200" align="center" prop="模组码" show-overflow-tooltip />
<el-table-column label="计划箱体码" width="220" align="center" prop="计划箱体码" show-overflow-tooltip />
<el-table-column label="扫描箱体码" width="220" align="center" prop="扫描箱体码" show-overflow-tooltip />
<el-table-column label="扫描客户标签码" width="220" align="center" prop="扫描客户标签码" show-overflow-tooltip />
<el-table-column label="箱体码结果" width="100" align="center">
<template slot-scope="scope">
<el-tag v-if="hasVerifyRecord(scope.row)" :type="getResultType(scope.row.箱体码校验结果)" size="mini">{{ getResultText(scope.row.箱体码校验结果) }}</el-tag>
<span v-else>-</span>
</template>
</el-table-column>
<el-table-column label="客户标签结果" width="110" align="center">
<template slot-scope="scope">
<el-tag v-if="hasVerifyRecord(scope.row)" :type="getResultType(scope.row.客户标签码校验结果)" size="mini">{{ getResultText(scope.row.客户标签码校验结果) }}</el-tag>
<span v-else>-</span>
</template>
</el-table-column>
<el-table-column label="操作人" width="110" align="center" prop="操作人" show-overflow-tooltip />
<el-table-column label="记录创建时间" width="160" align="center" prop="记录创建时间" show-overflow-tooltip />
<el-table-column label="完成时间" width="160" align="center" prop="完成时间" show-overflow-tooltip />
</el-table>
<div class="block" style="margin-top: 10px">
<el-pagination
v-if="!offlineLoading"
:current-page="offlinePageCurrent"
:page-sizes="[50, 100, 200]"
:page-size="offlinePageSize"
:total="offlineTotal"
layout="total, sizes, prev, pager, next, jumper"
@size-change="handleOfflineSizeChange"
@current-change="handleOfflineCurrentChange" />
</div>
</el-tab-pane>
</el-tabs>
</el-card>
</div>
</template>
@@ -92,6 +197,7 @@
export default {
data() {
return {
activeTab: 'verifyRecord',
loading: false,
tableData: [],
productNoValue: '',
@@ -102,11 +208,26 @@ export default {
total: 0,
pageSize: 50,
pageCurrent: 1,
exportLoading: false
exportLoading: false,
offlineLoaded: false,
offlineLoading: false,
offlineTableData: [],
offlineDateTime: [],
offlineProductNoValue: '',
offlineProductTypeValue: '',
offlinePackCodeValue: '',
offlineModuleCodeValue: '',
offlineBoxCodeValue: '',
offlineVerifyStatusValue: '',
offlineTotal: 0,
offlinePageSize: 50,
offlinePageCurrent: 1,
offlineExportLoading: false
}
},
created() {
this.initDateTime()
this.initOfflineDateTime()
this.searchTable()
},
methods: {
@@ -115,11 +236,18 @@ export default {
const start = new Date(end.getTime() - 7 * 24 * 60 * 60 * 1000)
this.dateTime = [this.formatDateTime(start, '00:00:00'), this.formatDateTime(end, '23:59:59')]
},
initOfflineDateTime() {
const today = new Date()
this.offlineDateTime = [this.formatDateTime(today, '00:00:00'), this.formatDateTime(today, '23:59:59')]
},
formatDateTime(date, timeText) {
return `${this.formatDate(date)} ${timeText}`
},
formatDate(date) {
const year = date.getFullYear()
const month = String(date.getMonth() + 1).padStart(2, '0')
const day = String(date.getDate()).padStart(2, '0')
return `${year}-${month}-${day} ${timeText}`
return `${year}-${month}-${day}`
},
getParam(pageCurrent, pageSize) {
const param = []
@@ -135,6 +263,22 @@ export default {
param[9] = ['ItemCount', '1111', 'int', '1']
return param
},
getOfflineParam(pageCurrent, pageSize) {
const param = []
param[0] = ['开始时间', this.offlineDateTime && this.offlineDateTime[0] ? this.offlineDateTime[0] : '']
param[1] = ['结束时间', this.offlineDateTime && this.offlineDateTime[1] ? this.offlineDateTime[1] : '']
param[2] = ['产品编号', this.offlineProductNoValue || '']
param[3] = ['产品型号', this.offlineProductTypeValue || '']
param[4] = ['PACK码', this.offlinePackCodeValue || '']
param[5] = ['模组码', this.offlineModuleCodeValue || '']
param[6] = ['箱体码', this.offlineBoxCodeValue || '']
param[7] = ['校验情况', this.offlineVerifyStatusValue || '']
param[8] = ['PageCurrent', pageCurrent]
param[9] = ['PageSize', pageSize]
param[10] = ['PageCount', '1111', 'int', '1']
param[11] = ['ItemCount', '1111', 'int', '1']
return param
},
searchTable() {
this.loading = true
this.tableData = []
@@ -149,11 +293,42 @@ export default {
this.loading = false
})
},
searchOfflineTable() {
if (!Array.isArray(this.offlineDateTime) || this.offlineDateTime.length !== 2) {
this.$message.warning('请选择下线时间')
this.offlineTableData = []
this.offlineTotal = 0
return
}
this.offlineLoading = true
this.offlineLoaded = true
this.offlineTableData = []
const Data = this.CreateData('11', 'PACK下线三码校验_下线产品覆盖_分页查询', this.getOfflineParam(this.offlinePageCurrent, this.offlinePageSize))
this.ExecDatabase(Data).then(response => {
this.offlineTableData = response.data && response.data.result ? response.data.result : []
this.offlineTotal = response.data && response.data.output && response.data.output[0] ? parseInt(response.data.output[0].ItemCount) || 0 : 0
this.offlineLoading = false
}).catch(error => {
console.error('查询下线产品三码校验核对失败:', error)
this.$message.error('查询下线产品三码校验核对失败')
this.offlineLoading = false
})
},
handleTabClick(tab) {
if (tab.name === 'offlineProduct' && !this.offlineLoaded) {
this.searchOfflineTable()
}
},
handleSearch() {
this.pageCurrent = 1
this.pageSize = 50
this.searchTable()
},
handleOfflineSearch() {
this.offlinePageCurrent = 1
this.offlinePageSize = 50
this.searchOfflineTable()
},
exportExcel() {
if (this.tableData.length === 0) {
this.$message.warning('暂无数据')
@@ -165,6 +340,26 @@ export default {
const Data = JSON.stringify(exportData)
this.runExcelExport(Data, 'exportLoading')
},
exportOfflineExcel() {
if (this.offlineTableData.length === 0) {
this.$message.warning('暂无数据')
return
}
const exportData = JSON.parse(this.CreateData('2005', 'PACK下线三码校验_下线产品覆盖_分页查询', this.getOfflineParam(1, 99999999)))
exportData.exportFileName = '下线产品三码校验核对'
exportData.exportColumns = '校验情况,产品编号,产品型号,机型代码,上线时间,下线时间,PACK码,模组码,计划箱体码,扫描箱体码,扫描客户标签码,箱体码校验结果=箱体码结果,客户标签码校验结果=客户标签结果,操作人,记录创建时间,完成时间'
const Data = JSON.stringify(exportData)
this.runExcelExport(Data, 'offlineExportLoading')
},
hasVerifyRecord(row) {
return row.校验记录ID !== null && row.校验记录ID !== undefined && row.校验记录ID !== ''
},
getOfflineVerifyType(row) {
return row.校验情况 === '已完成' ? 'success' : 'danger'
},
getOfflineVerifyText(row) {
return row.校验情况 || '未完成'
},
getResultType(value) {
const status = Number(value)
if (status === 1) return 'success'
@@ -191,6 +386,15 @@ export default {
handleCurrentChange(val) {
this.pageCurrent = val
this.searchTable()
},
handleOfflineSizeChange(val) {
this.offlinePageCurrent = 1
this.offlinePageSize = val
this.searchOfflineTable()
},
handleOfflineCurrentChange(val) {
this.offlinePageCurrent = val
this.searchOfflineTable()
}
}
}
@@ -205,6 +409,10 @@ export default {
margin-bottom: 10px;
}
.filter-line {
margin-bottom: 10px;
}
.block {
text-align: left;
}

View File

@@ -1,214 +0,0 @@
-- 中控参数维护模块注册及存储过程脚本
-- 执行前请确认当前数据库为 AMES_PDC。
IF NOT EXISTS (
SELECT 1
FROM _模块信息
WHERE path = 'ProcessParameterMaintenance/CentralControlParameterMaintenance'
)
BEGIN
INSERT INTO _模块信息 (path, component, name, title, icon, )
VALUES ('ProcessParameterMaintenance/CentralControlParameterMaintenance', '/ProcessParameterMaintenance/CentralControlParameterMaintenance', 'CentralControlParameterMaintenance', N'中控参数维护模块', 'BasicDataManagement', 0)
END
GO
IF OBJECT_ID(N'[dbo].[中控参数维护_特殊工位定义_分页查询]', N'P') IS NOT NULL
DROP PROCEDURE [dbo].[_特殊工位定义_分页查询]
GO
CREATE PROCEDURE [dbo].[_特殊工位定义_分页查询]
@ nvarchar(50) = null,
@ nvarchar(50) = null,
@PageCurrent int = null,
@PageSize int = null,
@PageCount int = null output,
@ItemCount int = null output
AS
SET NOCOUNT ON
declare @tbname sysname
declare @fieldkey sysname
declare @where nvarchar(1000)
declare @fieldshow nvarchar(1000)
declare @fieldOrder nvarchar(1000)
set @tbname = 'MES_特殊工位定义表'
set @fieldkey = 'type'
set @fieldOrder = 'type'
set @fieldshow = '[type],[opList]'
set @where = '1 = 1'
if @ != '' set @where = @where + ' and type like ''%' + @ + '%'''
if @ != '' set @where = @where + ' and opList like ''%' + @ + '%'''
exec sp_xt_pagesplit @tbname, @fieldkey, @where, @fieldshow, @fieldOrder, @PageCurrent, @PageSize, @PageCount out, @ItemCount out
GO
IF OBJECT_ID(N'[dbo].[中控参数维护_特殊工位定义_增加]', N'P') IS NOT NULL
DROP PROCEDURE [dbo].[_特殊工位定义_增加]
GO
CREATE PROCEDURE [dbo].[_特殊工位定义_增加]
@ nvarchar(50) = null,
@ nvarchar(500) = null
AS
SET NOCOUNT ON
IF (SELECT COUNT(1) FROM MES_特殊工位定义表 WHERE [type] = @) > 0
BEGIN
SELECT 2 as result, N'类型已存在' as msg
RETURN
END
INSERT INTO MES_特殊工位定义表 ([type], [opList])
VALUES (@, @)
SELECT 1 as result, N'' as msg
GO
IF OBJECT_ID(N'[dbo].[中控参数维护_特殊工位定义_编辑]', N'P') IS NOT NULL
DROP PROCEDURE [dbo].[_特殊工位定义_编辑]
GO
CREATE PROCEDURE [dbo].[_特殊工位定义_编辑]
@ nvarchar(50) = null,
@ nvarchar(500) = null
AS
SET NOCOUNT ON
UPDATE MES_特殊工位定义表 SET
[opList] = @
WHERE [type] = @
SELECT 1 as result, N'' as msg
GO
IF OBJECT_ID(N'[dbo].[中控参数维护_特殊工位定义_删除]', N'P') IS NOT NULL
DROP PROCEDURE [dbo].[_特殊工位定义_删除]
GO
CREATE PROCEDURE [dbo].[_特殊工位定义_删除]
@ nvarchar(50) = null
AS
SET NOCOUNT ON
IF (SELECT COUNT(1) FROM MES_特殊工位规则配置表 WHERE [type] = @) > 0
BEGIN
SELECT 2 as result, N'该类型已配置规则,不能删除' as msg
RETURN
END
DELETE FROM MES_特殊工位定义表 WHERE [type] = @
SELECT 1 as result, N'' as msg
GO
IF OBJECT_ID(N'[dbo].[中控参数维护_特殊工位规则_分页查询]', N'P') IS NOT NULL
DROP PROCEDURE [dbo].[_特殊工位规则_分页查询]
GO
CREATE PROCEDURE [dbo].[_特殊工位规则_分页查询]
@ nvarchar(50) = null,
@ nvarchar(50) = null,
@ nvarchar(50) = null,
@ nvarchar(10) = null,
@PageCurrent int = null,
@PageSize int = null,
@PageCount int = null output,
@ItemCount int = null output
AS
SET NOCOUNT ON
declare @tbname sysname
declare @fieldkey sysname
declare @where nvarchar(1000)
declare @fieldshow nvarchar(1000)
declare @fieldOrder nvarchar(1000)
set @tbname = 'MES_特殊工位规则配置表'
set @fieldkey = 'id'
set @fieldOrder = 'id'
set @fieldshow = '[id],[type],[opName],[ruleKey],[ruleValue],[enable],[remark]'
set @where = '1 = 1'
if @ != '' set @where = @where + ' and type = ''' + @ + ''''
if @ != '' set @where = @where + ' and opName like ''%' + @ + '%'''
if @ != '' set @where = @where + ' and ruleKey like ''%' + @ + '%'''
if @ != '' set @where = @where + ' and enable = ' + @
exec sp_xt_pagesplit @tbname, @fieldkey, @where, @fieldshow, @fieldOrder, @PageCurrent, @PageSize, @PageCount out, @ItemCount out
GO
IF OBJECT_ID(N'[dbo].[中控参数维护_特殊工位规则_增加]', N'P') IS NOT NULL
DROP PROCEDURE [dbo].[_特殊工位规则_增加]
GO
CREATE PROCEDURE [dbo].[_特殊工位规则_增加]
@ID nvarchar(50) = null,
@ nvarchar(50) = null,
@ nvarchar(50) = null,
@ nvarchar(50) = null,
@ nvarchar(500) = null,
@ bit = null,
@ nvarchar(200) = null
AS
SET NOCOUNT ON
IF (SELECT COUNT(1) FROM MES_特殊工位规则配置表 WHERE [type] = @ AND [opName] = @ AND [ruleKey] = @) > 0
BEGIN
SELECT 2 as result, N'该类型、工位、规则键已存在' as msg
RETURN
END
INSERT INTO MES_特殊工位规则配置表 ([type], [opName], [ruleKey], [ruleValue], [enable], [remark])
VALUES (@, @, @, @, ISNULL(@, 1), @)
SELECT 1 as result, N'' as msg
GO
IF OBJECT_ID(N'[dbo].[中控参数维护_特殊工位规则_编辑]', N'P') IS NOT NULL
DROP PROCEDURE [dbo].[_特殊工位规则_编辑]
GO
CREATE PROCEDURE [dbo].[_特殊工位规则_编辑]
@ID int = null,
@ nvarchar(50) = null,
@ nvarchar(50) = null,
@ nvarchar(50) = null,
@ nvarchar(500) = null,
@ bit = null,
@ nvarchar(200) = null
AS
SET NOCOUNT ON
IF (SELECT COUNT(1) FROM MES_特殊工位规则配置表 WHERE [type] = @ AND [opName] = @ AND [ruleKey] = @ AND [id] != @ID) > 0
BEGIN
SELECT 2 as result, N'该类型、工位、规则键已存在' as msg
RETURN
END
UPDATE MES_特殊工位规则配置表 SET
[type] = @,
[opName] = @,
[ruleKey] = @,
[ruleValue] = @,
[enable] = ISNULL(@, 1),
[remark] = @
WHERE [id] = @ID
SELECT 1 as result, N'' as msg
GO
IF OBJECT_ID(N'[dbo].[中控参数维护_特殊工位规则_删除]', N'P') IS NOT NULL
DROP PROCEDURE [dbo].[_特殊工位规则_删除]
GO
CREATE PROCEDURE [dbo].[_特殊工位规则_删除]
@ID int = null
AS
SET NOCOUNT ON
DELETE FROM MES_特殊工位规则配置表 WHERE [id] = @ID
SELECT 1 as result, N'' as msg
GO

View File

@@ -0,0 +1,565 @@
USE [AMES_PDC]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[_部门关系_增加节点]
@ int = null,
@ nvarchar(100) = null,
@ int out
AS
BEGIN
SET NOCOUNT ON
IF ISNULL(@, '') = ''
BEGIN
SELECT 0 AS result, N'部门名称不能为空' AS msg
RETURN
END
IF ISNULL(@, 0) <> 0
AND NOT EXISTS (SELECT 1 FROM _基础表_部门 WHERE = @)
BEGIN
SELECT 0 AS result, N'上级部门不存在' AS msg
RETURN
END
BEGIN TRY
BEGIN TRAN
INSERT INTO [_部门关系]([], )
SELECT ISNULL(@, 0), ISNULL(MAX(), 0) + 1
FROM _部门关系
WHERE = ISNULL(@, 0)
SET @ = SCOPE_IDENTITY()
INSERT INTO _基础表_部门 (, )
VALUES(@, @)
COMMIT TRAN
SELECT 1 AS result, N'添加成功' AS msg
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 ROLLBACK TRAN
SELECT 0 AS result, ERROR_MESSAGE() AS msg
END CATCH
END
GO
ALTER PROCEDURE [dbo].[_部门关系_修改节点]
@ int,
@ nvarchar(100)
AS
BEGIN
SET NOCOUNT ON
IF ISNULL(@, '') = ''
BEGIN
SELECT 0 AS result, N'部门名称不能为空' AS msg
RETURN
END
IF NOT EXISTS (SELECT 1 FROM _基础表_部门 WHERE = @)
BEGIN
SELECT 0 AS result, N'部门不存在' AS msg
RETURN
END
UPDATE _基础表_部门
SET [] = @
WHERE [] = @
SELECT 1 AS result, N'编辑成功' AS msg
END
GO
ALTER PROCEDURE [dbo].[_部门关系_删除节点]
@ int = null
AS
BEGIN
SET NOCOUNT ON
IF NOT EXISTS (SELECT 1 FROM _部门关系 WHERE = @)
BEGIN
SELECT 0 AS result, N'部门不存在' AS msg
RETURN
END
IF EXISTS (SELECT 1 FROM _部门关系 WHERE = @)
BEGIN
SELECT 0 AS result, N'该部门存在下级部门,请先删除或调整下级部门' AS msg
RETURN
END
IF EXISTS (
SELECT 1
FROM _人员名单
WHERE = @
AND ISNULL(, 0) = 0
AND ISNULL(, 1) = 1
)
BEGIN
SELECT 0 AS result, N'该部门下存在在职人员,请先移动、离职或删除人员' AS msg
RETURN
END
BEGIN TRY
BEGIN TRAN
DELETE FROM _基础表_部门 WHERE [] = @
DELETE FROM [_部门关系] WHERE [] = @
COMMIT TRAN
SELECT 1 AS result, N'删除成功' AS msg
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 ROLLBACK TRAN
SELECT 0 AS result, ERROR_MESSAGE() AS msg
END CATCH
END
GO
ALTER PROCEDURE [dbo].[_人员名单_增加数据_MESWORK]
@ int = null,
@ int = null,
@ int = null,
@ int = null,
@ nvarchar(50) = null,
@ nvarchar(50) = null,
@ nvarchar(50) = null,
@ nvarchar(50) = null,
@ datetime = null,
@ datetime = null,
@ nvarchar(50) = null,
@ nvarchar(50) = null,
@ nvarchar(10) = null,
@ int = null
AS
BEGIN
SET NOCOUNT ON
DECLARE @ int
IF ISNULL(@, '') = ''
BEGIN
SELECT 0 AS result, N'姓名不能为空' AS msg
RETURN
END
IF ISNULL(@, '') = ''
BEGIN
SELECT 0 AS result, N'工号不能为空' AS msg
RETURN
END
IF TRY_CONVERT(int, @) IS NULL
BEGIN
SELECT 0 AS result, N'工号格式不正确' AS msg
RETURN
END
IF NOT EXISTS (SELECT 1 FROM _基础表_部门 WHERE = @)
BEGIN
SELECT 0 AS result, N'所属部门不存在,请重新选择部门' AS msg
RETURN
END
IF EXISTS (SELECT 1 FROM _人员名单 WHERE = TRY_CONVERT(int, @))
BEGIN
SELECT 0 AS result, N'工号已存在,不能重复新增' AS msg
RETURN
END
BEGIN TRY
BEGIN TRAN
INSERT INTO [dbo].[_人员名单](
[], [], , , , , ,
, , , , , , )
VALUES(
TRY_CONVERT(int, @), @, @, @, @, @, @,
@, @, @, @, @, @, @)
SET @ = SCOPE_IDENTITY()
INSERT INTO [dbo].[_部门与人员](, , )
VALUES(@, @, @)
COMMIT TRAN
SELECT 1 AS result, N'添加成功' AS msg
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 ROLLBACK TRAN
SELECT 0 AS result, ERROR_MESSAGE() AS msg
END CATCH
END
GO
ALTER PROCEDURE [dbo].[_人员名单_修改数据_MESWORK]
@ int = null,
@ nvarchar(50) = null,
@ nvarchar(50) = null,
@ int = null,
@ int = null,
@ int = null,
@ nvarchar(50) = null,
@ int = null,
@ int = null,
@ nvarchar(50) = null,
@ nvarchar(50) = null,
@ nvarchar(50) = null,
@ nvarchar(50) = null,
@ datetime = null,
@ datetime = null,
@ nvarchar(50) = null,
@ nvarchar(50) = null,
@ nvarchar(10) = null,
@ nvarchar(50) = null
AS
BEGIN
SET NOCOUNT ON
IF NOT EXISTS (SELECT 1 FROM _人员名单 WHERE = @)
BEGIN
SELECT 0 AS result, N'人员不存在' AS msg
RETURN
END
IF ISNULL(@, '') = ''
BEGIN
SELECT 0 AS result, N'姓名不能为空' AS msg
RETURN
END
IF ISNULL(@, '') = ''
BEGIN
SELECT 0 AS result, N'工号不能为空' AS msg
RETURN
END
IF TRY_CONVERT(int, @) IS NULL
BEGIN
SELECT 0 AS result, N'工号格式不正确' AS msg
RETURN
END
IF EXISTS (
SELECT 1
FROM _人员名单
WHERE = TRY_CONVERT(int, @)
AND <> @
)
BEGIN
SELECT 0 AS result, N'工号已存在,不能重复保存' AS msg
RETURN
END
IF(@ = 'NAN') SET @ = null
IF(@ = 'NAN') SET @ = null
IF(@ = 'NAN') SET @ = null
IF(@ = 'NAN') SET @ = null
BEGIN TRY
BEGIN TRAN
UPDATE [dbo].[_人员名单]
SET = TRY_CONVERT(int, @),
= @,
= @,
= @,
= TRY_CONVERT(int, @),
= TRY_CONVERT(int, @),
= @,
= @,
= @,
= @,
= @,
= @,
= TRY_CONVERT(int, @)
WHERE = @
UPDATE [dbo].[_部门与人员]
SET = @
WHERE = @
COMMIT TRAN
SELECT 1 AS result, N'编辑成功' AS msg
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 ROLLBACK TRAN
SELECT 0 AS result, ERROR_MESSAGE() AS msg
END CATCH
END
GO
ALTER PROCEDURE [dbo].[_人员名单_移动数据_MESWORK]
@ int = null,
@ int = null
AS
BEGIN
SET NOCOUNT ON
IF NOT EXISTS (SELECT 1 FROM _人员名单 WHERE = @)
BEGIN
SELECT 0 AS result, N'人员不存在' AS msg
RETURN
END
IF NOT EXISTS (SELECT 1 FROM _基础表_部门 WHERE = @)
BEGIN
SELECT 0 AS result, N'目标部门不存在' AS msg
RETURN
END
BEGIN TRY
BEGIN TRAN
UPDATE [dbo].[_人员名单]
SET = @
WHERE = @
UPDATE [dbo].[_部门与人员]
SET = @
WHERE = @
COMMIT TRAN
SELECT 1 AS result, N'移组成功' AS msg
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 ROLLBACK TRAN
SELECT 0 AS result, ERROR_MESSAGE() AS msg
END CATCH
END
GO
ALTER PROCEDURE [dbo].[_人员名单_删除数据_MESWORK]
@ int = null
AS
BEGIN
SET NOCOUNT ON
IF NOT EXISTS (SELECT 1 FROM _人员名单 WHERE = @)
BEGIN
SELECT 0 AS result, N'人员不存在' AS msg
RETURN
END
UPDATE _人员名单
SET = 1,
= 2
WHERE = @
DELETE FROM _人员与角色
WHERE = @
SELECT 1 AS result, N'删除成功' AS msg
END
GO
ALTER PROCEDURE [dbo].[_人员_离职操作]
@ int
AS
BEGIN
SET NOCOUNT ON
IF NOT EXISTS (SELECT 1 FROM _人员名单 WHERE = @)
BEGIN
SELECT 0 AS result, N'人员不存在' AS msg
RETURN
END
IF EXISTS (SELECT 1 FROM _人员名单 WHERE = @ AND ISNULL(, 1) = 2)
BEGIN
SELECT 0 AS result, N'该员工已离职' AS msg
RETURN
END
UPDATE _人员名单
SET = 2
WHERE = @
SELECT 1 AS result, N'离职成功' AS msg
END
GO
CREATE OR ALTER PROCEDURE [dbo].[_人员_复职操作]
@ int
AS
BEGIN
SET NOCOUNT ON
IF NOT EXISTS (SELECT 1 FROM _人员名单 WHERE = @)
BEGIN
SELECT 0 AS result, N'人员不存在' AS msg
RETURN
END
IF EXISTS (SELECT 1 FROM _人员名单 WHERE = @ AND ISNULL(, 0) <> 0)
BEGIN
SELECT 0 AS result, N'该员工已被删除,不能复职' AS msg
RETURN
END
IF EXISTS (SELECT 1 FROM _人员名单 WHERE = @ AND ISNULL(, 1) = 1)
BEGIN
SELECT 0 AS result, N'该员工已是在职状态' AS msg
RETURN
END
UPDATE _人员名单
SET = 1,
= 0
WHERE = @
SELECT 1 AS result, N'复职成功' AS msg
END
GO
ALTER PROCEDURE [dbo].[_离职人员_删除数据]
@ nvarchar(50) = null
AS
BEGIN
SET NOCOUNT ON
DECLARE @ int
SELECT @ =
FROM _人员名单
WHERE = @
IF @ IS NULL
BEGIN
SELECT 0 AS result, N'人员不存在' AS msg
RETURN
END
IF EXISTS (
SELECT 1
FROM _人员名单
WHERE = @
AND ISNULL(, 1) <> 2
)
BEGIN
SELECT 0 AS result, N'只能删除离职人员' AS msg
RETURN
END
BEGIN TRY
BEGIN TRAN
DELETE FROM _人员与角色 WHERE = @
DELETE FROM _部门与人员 WHERE = @
DELETE FROM _人员名单 WHERE = @
COMMIT TRAN
SELECT 1 AS result, N'删除成功' AS msg
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0 ROLLBACK TRAN
SELECT 0 AS result, ERROR_MESSAGE() AS msg
END CATCH
END
GO
ALTER PROCEDURE [dbo].[_项目角色员工综合_增加数据]
@ int = null,
@ int = null,
@ int = null
AS
BEGIN
SET NOCOUNT ON
IF NOT EXISTS (SELECT 1 FROM _人员名单 WHERE = @)
BEGIN
SELECT 0 AS result, N'人员不存在' AS msg
RETURN
END
IF EXISTS (
SELECT 1
FROM _人员名单
WHERE = @
AND (ISNULL(, 0) <> 0 OR ISNULL(, 1) <> 1)
)
BEGIN
SELECT 0 AS result, N'该员工不是在职状态,不能分配角色' AS msg
RETURN
END
IF NOT EXISTS (SELECT 1 FROM _项目角色 WHERE = @)
BEGIN
SELECT 0 AS result, N'角色不存在' AS msg
RETURN
END
IF EXISTS (SELECT 1 FROM _人员与角色 WHERE = @ AND = @)
BEGIN
SELECT 0 AS result, N'该员工已分配该角色,不能重复新增' AS msg
RETURN
END
INSERT INTO [_人员与角色](, , )
VALUES(@, @, GETDATE())
SELECT 1 AS result, N'增加成功' AS msg
END
GO
ALTER PROCEDURE [dbo].[_项目角色员工综合_修改数据]
@ int = null,
@ int = null,
@ int = null
AS
BEGIN
SET NOCOUNT ON
IF NOT EXISTS (SELECT 1 FROM _人员与角色 WHERE = @)
BEGIN
SELECT 0 AS result, N'人员角色关系不存在' AS msg
RETURN
END
IF NOT EXISTS (SELECT 1 FROM _项目角色 WHERE = @)
BEGIN
SELECT 0 AS result, N'角色不存在' AS msg
RETURN
END
IF EXISTS (
SELECT 1
FROM _人员与角色
WHERE = @
AND = @
AND <> @
)
BEGIN
SELECT 0 AS result, N'该员工已分配该角色,不能重复保存' AS msg
RETURN
END
UPDATE [_人员与角色]
SET [] = @,
= GETDATE()
WHERE [] = @
SELECT 1 AS result, N'修改成功' AS msg
END
GO
ALTER PROCEDURE [dbo].[_项目角色员工综合_删除数据]
@ int = null
AS
BEGIN
SET NOCOUNT ON
IF NOT EXISTS (SELECT 1 FROM _人员与角色 WHERE = @)
BEGIN
SELECT 0 AS result, N'人员角色关系不存在或已删除' AS msg
RETURN
END
DELETE FROM _人员与角色
WHERE = @
SELECT 1 AS result, N'删除成功' AS msg
END
GO