Commit 64ff9f81 by duxingshan

Merge remote-tracking branch 'origin/master'

parents 19146f55 607ec929
...@@ -116,6 +116,14 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter ...@@ -116,6 +116,14 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
.antMatchers( "/common/**").permitAll() .antMatchers( "/common/**").permitAll()
//网页注册登录接口放行 //网页注册登录接口放行
.antMatchers( "/web/artStudent/register","/web/artStudent/login").permitAll() .antMatchers( "/web/artStudent/register","/web/artStudent/login").permitAll()
.antMatchers( "/wx/equipment/**").permitAll()
// 静态资源,可匿名访问 // 静态资源,可匿名访问
.antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll() .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll()
.antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll() .antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll()
......
...@@ -34,7 +34,7 @@ export function editProduct(data) { ...@@ -34,7 +34,7 @@ export function editProduct(data) {
export function deleteProduct(id) { export function deleteProduct(id) {
return request({ return request({
url: "/productCategory/delete/" + id, url: "/productCategory/delete/" + id,
method: "delete", method: "post",
}); });
} }
//获取设备分类下拉框 //获取设备分类下拉框
...@@ -46,10 +46,10 @@ export function getProductCategory(query) { ...@@ -46,10 +46,10 @@ export function getProductCategory(query) {
}); });
} }
//获取管理员 //获取管理员
export function getAdmin(data) { export function getAdmin(query) {
return request({ return request({
url: "/productCategory/getAdmin", url: "/productCategory/getAdmin",
method: "get", method: "get",
data, params: query,
}); });
} }
import request from "@/utils/request";
//查看设备报修列表
export function getProduct(query) {
return request({
url: "/equipmentRepair/list",
method: "get",
params: query,
});
}
//查看产品分类详细信息
export function queryProduct(id) {
return request({
url: "/equipmentRepair/" + id,
method: "get",
});
}
//新增产品分类
export function addProduct(data) {
return request({
url: "/equipmentRepair/add",
method: "post",
data,
});
}
//修改产品分类信息
export function editProduct(data) {
return request({
url: "/equipmentRepair/edit",
method: "put",
data: data,
});
}
//删除产品分类信息;
export function deleteProduct(id) {
return request({
url: "/equipmentRepair/delete/" + id,
method: "post",
});
}
//获取设备分类下拉框
export function getProductCategory(query) {
return request({
url: "/equipmentRepair/getEquipment",
method: "get",
params: query,
});
}
//获取管理员
export function getAdmin(query) {
return request({
url: "/productCategory/getAdmin",
method: "get",
params: query,
});
}
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryForm" ref="queryForm" size="small" :inline="true" label-width="80px" @submit.native.prevent> <el-form :model="queryForm" ref="queryForm" size="small" :inline="true" @submit.native.prevent label-width="78px">
<el-form-item label="设备分类" prop="sbfl">
<el-select v-model="queryForm.sbfl" placeholder="请选择设备分类" clearable> <el-form-item label="设备分类" prop="id">
<el-option v-for="item in sbflOptions" :key="item.value" :label="item.label" :value="item.value" /> <el-select v-model="queryForm.id" placeholder="请选择设备分类" clearable>
<el-option v-for="item in sbflOptions" :key="item.id" :label="item.equipmentType" :value="item.id" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="型号" prop="xh">
<el-input v-model="queryForm.xh" placeholder="请输入型号" clearable /> <el-form-item label="型号" prop="model">
<el-input v-model="queryForm.model" placeholder="请输入型号" clearable />
</el-form-item> </el-form-item>
<el-form-item label="分类编码" prop="flbm">
<el-input v-model="queryForm.flbm" placeholder="请输入型号" clearable /> <el-form-item label="分类编码" prop="classificationCode">
<el-input v-model="queryForm.classificationCode" placeholder="请输入分类编码" clearable />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> <el-button type="primary" icon="el-icon-search" size="mini" @click="getList">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-row class="mb8" :gutter="10"> <el-row class="mb8" :gutter="8">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button size="mini" type="primary" icon="el-icon-plus" @click="handleAdd" <el-button size="mini" type="primary" icon="el-icon-plus" @click="handleAdd">新增
v-hasPermi="['system:assets:remove']">新增
</el-button> </el-button>
</el-col> </el-col>
</el-row> </el-row>
<!-- 表单数据 --> <!-- 表单数据 -->
<el-table :data="assetsList" v-loading="loading" row-key="id" :default-expand-all="isExpandAll" <el-table :data="assetsList" v-loading="loading" row-key="id" :default-expand-all="isExpandAll"
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }"> :tree-props="{ children: 'children', hasChildren: 'hasChildren' }">
<el-table-column label="分类编码" header-align="center" prop="typeName"></el-table-column> <el-table-column label="分类编码" header-align="center" prop="classificationCode"></el-table-column>
<el-table-column label="设备分类" align="center" prop="typeNum"></el-table-column> <el-table-column label="设备分类" align="center" prop="equipmentType"></el-table-column>
<el-table-column label="型号" align="center" prop="typeOrder"></el-table-column> <el-table-column label="型号" align="center" prop="model"></el-table-column>
<el-table-column label="管理员" align="center" prop="remark"></el-table-column> <el-table-column label="管理员" align="center" prop="admin"></el-table-column>
<el-table-column label="操作" align="center"> <el-table-column label="操作" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">修改
v-hasPermi="['system:assets:edit']">修改
</el-button> </el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleLook(scope.row)" <el-button size="mini" type="text" icon="el-icon-edit" @click="handleAdd(scope.row)">新增
v-hasPermi="['system:assets:edit']">查看
</el-button> </el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" <el-button size="mini" type="text" icon="el-icon-delete" v-if="scope.row.parentId != 0"
v-hasPermi="['system:assets:remove']">删除 @click="handleDelete(scope.row)">删除
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<!-- 新增/修改弹出框 --> <!-- 新增/修改弹出框 -->
<el-dialog width="50%" :visible.sync="open" :title="title" append-to-body> <el-dialog width="50%" :visible.sync="open" :title="title" append-to-body>
<el-form ref="postForm" :model="postForm" :rules="rules" label-width="110px"> <el-form ref="postForm" :model="postForm" :rules="rules" label-width="100px">
<el-row> <el-row>
<el-col :span="12"> <el-col :span="16" v-if="postForm.parentId !== 0">
<el-form-item label="分类编码" prop="typeName"> <el-form-item label="父分类编码" prop="parentId">
<el-input v-model="postForm.typeName"></el-input> <treeselect v-model="postForm.parentId" :options="assetsList" :normalizer="normalizer"
placeholder="选择分类编码" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row>
<el-row> <el-col :span="16">
<el-col :span="12"> <el-form-item label="分类编码" prop="classificationCode">
<el-form-item label="设备分类" prop="typeNum"> <el-input v-model="postForm.classificationCode"></el-input>
<el-select v-model="postForm.typeNum" placeholder="请选择设备分类" clearable style="width: 100%;">
<el-option v-for="item in sbflOptions" :key="item.value" :label="item.label"
:value="item.value" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="型号" prop="typeOrder">
<el-select v-model="postForm.typeOrder" placeholder="请选择型号" clearable style="width: 100%;">
<el-option v-for="item in xhOptions" :key="item.value" :label="item.label"
:value="item.value" />
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> <el-col :span="16">
<el-row> <el-form-item label="设备分类" prop="equipmentType">
<el-col :span="12"> <el-input v-model="postForm.equipmentType"></el-input>
<el-form-item label="管理员" prop="licensePlate">
<el-input v-model="postForm.licensePlate" placeholder="请选择管理员" @focus="selectChange"
style="width: 100%"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row>
</el-form> <el-col :span="16">
<div slot="footer" class="dialog-footer"> <el-form-item label="排序" prop="orderNum">
<el-button type="primary" @click="submitForm">确 定</el-button> <el-input-number v-model="postForm.orderNum" controls-position="right" :min="0"
<el-button @click="cancel">取 消</el-button> style="width: 100%;" />
</div>
</el-dialog>
<!-- 查看弹出框 -->
<el-dialog width="800px" :visible.sync="openLook" :title="title" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="110px">
<el-row>
<el-col :span="12">
<el-form-item label="分类编码" prop="typeName">
<el-input v-model="form.typeName"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="设备分类" prop="typeNum">
<el-select v-model="form.typeNum" placeholder="请选择设备分类" clearable :style="{ width: '100%' }">
<el-option v-for="item in sbflOptions" :key="item.value" :label="item.label"
:value="item.value" />
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> <el-col :span="16">
<el-row> <el-form-item label="型号" prop="model">
<el-col :span="12"> <el-input v-model="postForm.model"></el-input>
<el-form-item label="型号" prop="typeOrder">
<el-select v-model="form.typeOrder" placeholder="请选择型号" clearable :style="{ width: '100%' }">
<el-option v-for="item in xhOptions" :key="item.value" :label="item.label"
:value="item.value" />
</el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> <el-col :span="16">
<el-row> <el-form-item label="管理员" prop="admin">
<el-col :span="12"> <el-input v-model="selectedAdmin.admin" placeholder="请选择管理员" @focus="selectChange"
<el-form-item label="管理员" prop="licensePlate"> style="width: 100%"></el-input>
<el-input v-model="form.licensePlate" placeholder="管理员" @focus="selectChange"
:disabled="isDisabled" style="width: 100%"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="cancel">取 消</el-button> <el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel"> 取 消 </el-button>
</div> </div>
</el-dialog> </el-dialog>
<!-- 选择管理员弹出框 --> <!-- 选择管理员弹出框 -->
<el-dialog :title="title" :visible.sync="workableVehicle" width="960px" append-to-body> <el-dialog :title="title" :visible.sync="workableVehicle" width="500px" append-to-body>
<el-form :model="queryVehicleForm" inline @submit.native.prevent> <el-form :model="queryVehicleForm" inline @submit.native.prevent>
<el-form-item label="管理员"> <el-form-item label="管理员" prop="admin">
<el-input v-model="queryVehicleForm.licensePlate" placeholder="请输入管理员"></el-input> <el-input v-model="queryVehicleForm.adminId" placeholder="请输入管理员"></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" size="small" icon="el-icon-search" @click="handleQueryVehicle">搜索 <el-button type="primary" size="small" icon="el-icon-search" @click="handleQueryVehicle">搜索
...@@ -149,14 +109,12 @@ ...@@ -149,14 +109,12 @@
<el-table :data="vehicleList" max-height="350" ref="vehicleSelectTable" @row-click="rowClick" <el-table :data="vehicleList" max-height="350" ref="vehicleSelectTable" @row-click="rowClick"
@selection-change="selectionChange"> @selection-change="selectionChange">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="管理员" align="center" prop="licensePlate"> <el-table-column label="管理员" align="center" prop="admin">
</el-table-column> </el-table-column>
</el-table> </el-table>
<ExPagination v-show="vehicleTotal > 0" :total="vehicleTotal" :page.sync="queryVehicleForm.pageNum"
:limit.sync="queryVehicleForm.pageSize" @pagination="getVehicleList"></ExPagination>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="selectVehicle" :disabled="!multi">确 定</el-button> <el-button type="primary" @click="abolish" :disabled="!multi">确 定</el-button>
<el-button @click="abolish">取 消</el-button> <el-button @click="abolish">取 消</el-button>
</div> </div>
</el-dialog> </el-dialog>
...@@ -166,55 +124,44 @@ ...@@ -166,55 +124,44 @@
</template> </template>
<script> <script>
import {
getVehicleList,
} from "@/api/smartSchool/personWork/vehicleApply";
import {
getClassList,
queryClass,
addClass,
editClass,
deleteClass
} from '@/api/smartSchool/logisticsManage/assetsClassification.js'
import {
getProduct,
queryProduct,
addProduct,
editProduct,
deleteProduct,
getProductCategory,//获取设备分类下拉框
getAdmin
} from '@/api/smartSchool/schoolProperty/classiFication.js'
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default { export default {
components: { Treeselect },
name: "classiFication", name: "classiFication",
dicts: ["vehicle_type", "vehicle_state"], dicts: ["vehicle_type", "vehicle_state"],
data() { data() {
return { return {
// 管理员列表总数 // 管理员列表总数
vehicleTotal: 0, NaN: 0,
// 可选管理员列表 // 可选管理员列表
vehicleList: [], vehicleList: [],
// 管理员列表 // 管理员列表
queryVehicleForm: { queryVehicleForm: {
pageNum: 1, admin: '',
pageSize: 10, adminId: '',
licensePlate: ''
}, },
//父设备分类下拉框
deptOptions: [],
// 是否显示选择管理员弹出层 // 是否显示选择管理员弹出层
workableVehicle: false, workableVehicle: false,
// 是否禁用输入框 // 是否禁用输入框
isDisabled: false, isDisabled: false,
//型号下拉框
xhOptions: [
{ value: '选项1', label: '1' },
{ value: '选项2', label: '2' },
{ value: '选项3', label: '3' },
{ value: '选项4', label: '4' },
{ value: '选项5', label: '5' }
],
queryForm: { queryForm: {
typeName: '',// 资产分类名称 id: '',
typeNum: '',// 编号 model: '',
typeOrder: '',// 排序号 classificationCode: "",
remark: '',// 备注
},
form: {
typeName: '',// 资产分类名称
typeNum: '',// 编号
typeOrder: '',// 排序号
remark: '',// 备注
}, },
//设备分类下拉框 //设备分类下拉框
sbflOptions: [], sbflOptions: [],
...@@ -223,13 +170,19 @@ export default { ...@@ -223,13 +170,19 @@ export default {
// 列表 // 列表
assetsList: [], assetsList: [],
// 新增/修改表单 // 新增/修改表单
postForm: {}, postForm: {
classificationCode: '',
parentId: undefined,
equipmentType: '',
model: '',
adminId: '',
orderNum: '',
},
// 弹出层标题 // 弹出层标题
title: '', title: '',
// 是否显示弹出层 // 是否显示弹出层
open: false, open: false,
//查看弹出框
openLook: false,
// 多个禁用 // 多个禁用
multi: false, multi: false,
// 展开 // 展开
...@@ -238,50 +191,57 @@ export default { ...@@ -238,50 +191,57 @@ export default {
refreshTable: true, refreshTable: true,
// 校验规则 // 校验规则
rules: { rules: {
typeName: [{ required: true, message: '资产分类不能为空', trigger: 'blur' }], classificationCode: [{ required: true, message: '分类编码不能为空', trigger: 'blur' }],
// typeNum: [{ required: true, message: '资产编号不能为空', trigger: 'blur' }], equipmentType: [{ required: true, message: '设备分类不能为空', trigger: 'blur' }],
orderNum: [{ required: true, message: '显示排序不能为空', trigger: 'blur' }],
}, },
//管理员
selectedAdmin: {
admin: '',
adminId: '',
}
} }
}, },
created() { created() {
this.getList(); this.getList();
this.enuqLeader();
}, },
methods: { methods: {
//查询表单数据 //查询表单数据
getList() { getList() {
this.loading = true; // 加载效果 this.loading = true;
getClassList(this.queryForm).then(response => { getProduct(this.queryForm).then(response => {
this.assetsList = this.handleTree(response.data, "id", 'pid', 'children'); this.assetsList = this.handleTree(response.rows, "id", 'parentId', 'children');
console.log('this.assetsList', this.assetsList);
this.loading = false; this.loading = false;
}) })
}, },
// 选择管理员对话框选中数据
selectionChange(selection) {
this.selectedAdmin = selection[0];
console.log('this.selectedAdmin', this.selectedAdmin);
this.multi = selection.length === 1;
},
// 可选管理员取消按钮 // 可选管理员取消按钮
abolish() { abolish() {
this.workableVehicle = false; this.workableVehicle = false;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.postForm.validateField('licensePlate'); this.$refs.postForm.validateField('admin');
}) })
}, },
// 选择管理员
selectVehicle() {
// 这里面就来给表单赋值
this.postForm.vehicleId = this.selectedCar.id;
this.$set(this.postForm, 'licensePlate', this.selectedCar.licensePlate);
// this.postForm.licensePlate = this.selectedCar.licensePlate;
this.abolish();
},
// 列表查询管理员列表 // 列表查询管理员列表
getVehicleList() { getVehicleList() {
this.vehicleLoading = true; this.vehicleLoading = true;
console.log('this.queryVehicleForm', this.queryVehicleForm) console.log('this.queryVehicleForm', this.queryVehicleForm)
this.$set(this.queryVehicleForm, 'vehicleState', 0) getAdmin(this.queryVehicleForm).then(response => {
getVehicleList(this.queryVehicleForm).then(response => {
this.vehicleLoading = false; this.vehicleLoading = false;
this.vehicleList = response.rows; this.vehicleList = response.data;
this.vehicleTotal = response.total; console.log('this.vehicleList', this.vehicleList);
this.NaN = response.NaN;
}).catch(err => { }).catch(err => {
this.vehicleLoading = false; this.vehicleLoading = false;
}) })
...@@ -297,11 +257,7 @@ export default { ...@@ -297,11 +257,7 @@ export default {
this.$refs.vehicleSelectTable.clearSelection(); this.$refs.vehicleSelectTable.clearSelection();
this.$refs.vehicleSelectTable.toggleRowSelection(row, true); this.$refs.vehicleSelectTable.toggleRowSelection(row, true);
}, },
// 选择管理员对话框选中数据
selectionChange(selection) {
this.selectedCar = selection[0];
this.multi = selection.length === 1;
},
// 查询管理员列表 // 查询管理员列表
handleQueryVehicle() { handleQueryVehicle() {
this.throttle(() => { this.throttle(() => {
...@@ -313,8 +269,8 @@ export default { ...@@ -313,8 +269,8 @@ export default {
resetQueryVehicle() { resetQueryVehicle() {
this.queryVehicleForm = { this.queryVehicleForm = {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 8,
licensePlate: '' admin: ''
}; };
this.handleQueryVehicle(); this.handleQueryVehicle();
}, },
...@@ -335,46 +291,62 @@ export default { ...@@ -335,46 +291,62 @@ export default {
}); });
}, },
// 搜索
handleQuery() {
this.getList();
},
// 新增 // 新增
handleAdd(row) { handleAdd(row) {
this.reset(); this.reset();
this.selectedAdmin.admin = null;
this.queryVehicleForm.adminId = null;
this.open = true;
this.getList();
if (row != null && row.id) { if (row != null && row.id) {
console.log(row, row.id); console.log('row', row);
this.postForm.pid = row.id; this.postForm.parentId = row.id;
} else { } else {
this.postForm.pid = 0; this.postForm.parentId = undefined;
} }
this.open = true; this.title = "新增";
this.title = "新增设备分类";
},
/** 转换数据结构 */
normalizer(node) {
if (node.children && !node.children.length) {
delete node.children;
}
return {
id: node.id,
label: node.equipmentType,
children: node.children
};
},
//设备分类下拉框
enuqLeader() {
getProductCategory().then(((res) => {
if (res.code == 200) {
this.sbflOptions = res.data;
console.log('this.sbflOptions', this.sbflOptions);
}
}))
}, },
// 修改 // 修改
handleUpdate(row) { handleUpdate(row) {
this.reset(); this.reset();
queryClass(row.id).then(response => { queryProduct(row.id).then(response => {
this.postForm = response.data; this.postForm = response.data;
this.selectedAdmin.admin = response.data.admin;
this.open = true; this.open = true;
this.title = "修改资产信息"; this.title = "修改资产信息";
}); });
}, },
// 查看
handleLook(row) {
this.reset();
queryClass(row.id).then(response => {
this.form = response.data;
this.openLook = true;
this.title = "查看资产信息";
this.isDisabled = true;
});
},
// 删除 // 删除
handleDelete(row) { handleDelete(row) {
this.$modal.confirm(`是否确认删除此数据?`).then(() => { this.$modal.confirm(`是否确认删除此数据?`).then(() => {
this.loading = true; this.loading = true;
return deleteClass(row.id); return deleteProduct(row.id);
}).then(() => { }).then(() => {
this.getList(); this.getList();
this.loading = false; this.loading = false;
...@@ -385,16 +357,19 @@ export default { ...@@ -385,16 +357,19 @@ export default {
}, },
// 确定 // 确定
submitForm() { submitForm() {
this.postForm.adminId = this.selectedAdmin.adminId;
console.log('this.postForm', this.postForm);
this.$refs["postForm"].validate(valid => { this.$refs["postForm"].validate(valid => {
if (valid) { if (valid) {
if (this.postForm.id != null) { if (this.postForm.id != null) {
editClass(this.postForm).then(response => { editProduct(this.postForm).then(response => {
this.$modal.msgSuccess("修改成功"); this.$modal.msgSuccess("修改成功");
this.open = false; this.open = false;
this.getList(); this.getList();
}); });
} else { } else {
addClass(this.postForm).then(response => {
addProduct(this.postForm).then(response => {
this.$modal.msgSuccess("新增成功"); this.$modal.msgSuccess("新增成功");
this.open = false; this.open = false;
this.getList(); this.getList();
...@@ -405,27 +380,32 @@ export default { ...@@ -405,27 +380,32 @@ export default {
}, },
// 取消 // 取消
cancel() { cancel() {
this.open = false;
this.openLook = false;
this.reset(); this.reset();
this.open = false;
// this.openLook = false;
}, },
// 重置提交表单 // 重置提交表单
reset() { reset() {
this.postForm = { this.postForm = {
typeName: '',// 资产分类名称 classificationCode: '',
typeNum: '',// 编号 parentId: undefined,
typeOrder: '',// 排序号 equipmentType: '',
remark: '',// 备注 model: '',
admin: undefined,
adminId: undefined,
orderNum: '',
}; };
this.resetForm('postForm') this.resetForm('postForm')
}, },
/** 重置按钮操作 */ /** 重置按钮操作 */
resetQuery() { resetQuery() {
this.resetForm("queryForm"); this.resetForm("queryForm");
this.handleQuery(); this.getList();
} }
} }
} }
</script> </script>
<style></style> <style lang="scss" scoped></style>
...@@ -16,6 +16,7 @@ import lombok.Data; ...@@ -16,6 +16,7 @@ import lombok.Data;
public class SchoolCirculation extends OurBaseEntity public class SchoolCirculation extends OurBaseEntity
{ {
private Long id;
/** 设备id */ /** 设备id */
private Long equipmentId; private Long equipmentId;
......
...@@ -16,6 +16,7 @@ import lombok.Data; ...@@ -16,6 +16,7 @@ import lombok.Data;
public class SchoolEquipmentRepair extends OurBaseEntity public class SchoolEquipmentRepair extends OurBaseEntity
{ {
private Long id;
/** 设备id */ /** 设备id */
private Long equipmentId; private Long equipmentId;
......
package yangtz.cs.liu.campus.mapper.equipment;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import yangtz.cs.liu.campus.domain.schoolEquipment.SchoolReceive;
import yangtz.cs.liu.campus.vo.schoolEquipment.SchoolCirculationVo;
import yangtz.cs.liu.campus.vo.schoolEquipment.SchoolReceiveVo;
@Mapper
public interface SchoolReceiveMapper extends BaseMapper<SchoolReceive> {
}
package yangtz.cs.liu.campus.mapper.schoolEquipment; package yangtz.cs.liu.campus.mapper.schoolEquipment;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import yangtz.cs.liu.campus.domain.schoolEquipment.SchoolCirculation; import yangtz.cs.liu.campus.domain.schoolEquipment.SchoolCirculation;
import yangtz.cs.liu.campus.vo.schoolEquipment.SchoolCirculationVo;
@Mapper
public interface CirculationMapper extends BaseMapper<SchoolCirculation> { public interface CirculationMapper extends BaseMapper<SchoolCirculation> {
@Select("SELECT sc.id,el.model,el.encode,sc.borrow_by,sc.borrow_time,return_time,sc.deadline,sc.return_equipment_condition ,sc.remark FROM school_circulation sc LEFT JOIN school_equipment_ledger el on el.id = sc.equipment_id\n"
+ " LEFT JOIN school_product_category pc on pc.classification_code = el.classification_code WHERE pc.admin_id=#{adminId}")
List<SchoolCirculationVo> getReturningEquipmentByadminId(@Param("adminId") Long adminId);
} }
package yangtz.cs.liu.campus.mapper.schoolEquipment; package yangtz.cs.liu.campus.mapper.schoolEquipment;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import yangtz.cs.liu.campus.domain.schoolEquipment.SchoolEquipmentRepair; import yangtz.cs.liu.campus.domain.schoolEquipment.SchoolEquipmentRepair;
import yangtz.cs.liu.campus.vo.schoolEquipment.SchoolEquipmentRepairVo;
@Mapper
public interface EquipmentRepairMapper extends BaseMapper<SchoolEquipmentRepair> { public interface EquipmentRepairMapper extends BaseMapper<SchoolEquipmentRepair> {
@Select("SELECT el.id,el.encode,el.equipment_name,el.model,el.date_of_production,el.place ,\n"
+ "el.classification_code,er.report_repair_time,er.report_repair_id,er.report_repair,er.problem,\n"
+ "er.repair_id,er.evaluate,er.repair_name,er.repair_phone,er.repair_time,er.repair_state,er.remark\n"
+ "FROM school_equipment_repair er LEFT JOIN school_equipment_ledger el ON er.equipment_id=el.id WHERE er.id=#{id}")
public SchoolEquipmentRepairVo getEquipmentById(@Param("id") Long id);
@Select("SELECT el.id,el.encode,er.repair_name,er.repair_time,er.repair_state\n"
+ "FROM school_equipment_repair er LEFT JOIN school_equipment_ledger el ON er.equipment_id=el.id WHERE er.id=#{id}} ")
public SchoolEquipmentRepairVo getfeedback(@Param("id") Long id);
} }
package yangtz.cs.liu.campus.service.equipment;
import com.baomidou.mybatisplus.extension.service.IService;
import yangtz.cs.liu.campus.domain.schoolEquipment.SchoolReceive;
/**
* 设备领用
*/
public interface SchoolReceiveService extends IService<SchoolReceive> {
}
package yangtz.cs.liu.campus.service.impl.equipment;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import yangtz.cs.liu.campus.domain.schoolEquipment.SchoolReceive;
import yangtz.cs.liu.campus.mapper.equipment.SchoolReceiveMapper;
import yangtz.cs.liu.campus.service.equipment.SchoolReceiveService;
@Service
public class SchoolReceiveServiceImpl extends
ServiceImpl<SchoolReceiveMapper, SchoolReceive> implements SchoolReceiveService {
}
package yangtz.cs.liu.campus.service.impl.schoolEquipment; package yangtz.cs.liu.campus.service.impl.schoolEquipment;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import yangtz.cs.liu.campus.domain.schoolEquipment.SchoolCirculation; import yangtz.cs.liu.campus.domain.schoolEquipment.SchoolCirculation;
import yangtz.cs.liu.campus.mapper.schoolEquipment.CirculationMapper; import yangtz.cs.liu.campus.mapper.schoolEquipment.CirculationMapper;
import yangtz.cs.liu.campus.service.schoolEquipment.ICirculationService; import yangtz.cs.liu.campus.service.schoolEquipment.ICirculationService;
import yangtz.cs.liu.campus.vo.schoolEquipment.SchoolCirculationVo;
@Service @Service
public class CirculationServiceImpl extends ServiceImpl<CirculationMapper, SchoolCirculation> implements ICirculationService { public class CirculationServiceImpl extends ServiceImpl<CirculationMapper, SchoolCirculation> implements ICirculationService {
@Autowired
private CirculationMapper schoolCirculationMapper;
@Override
public List<SchoolCirculationVo> getReturningEquipmentByadminId(Long userId) {
return schoolCirculationMapper.getReturningEquipmentByadminId(userId);
}
} }
package yangtz.cs.liu.campus.service.impl.schoolEquipment; package yangtz.cs.liu.campus.service.impl.schoolEquipment;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import yangtz.cs.liu.campus.domain.schoolEquipment.SchoolEquipmentRepair; import yangtz.cs.liu.campus.domain.schoolEquipment.SchoolEquipmentRepair;
import yangtz.cs.liu.campus.mapper.schoolEquipment.EquipmentRepairMapper; import yangtz.cs.liu.campus.mapper.schoolEquipment.EquipmentRepairMapper;
import yangtz.cs.liu.campus.service.schoolEquipment.IEquipmentRepairService; import yangtz.cs.liu.campus.service.schoolEquipment.IEquipmentRepairService;
import yangtz.cs.liu.campus.vo.schoolEquipment.SchoolEquipmentRepairVo;
@Service @Service
public class EquipmentRepairServiceImpl extends ServiceImpl<EquipmentRepairMapper, SchoolEquipmentRepair> implements IEquipmentRepairService { public class EquipmentRepairServiceImpl extends ServiceImpl<EquipmentRepairMapper, SchoolEquipmentRepair> implements IEquipmentRepairService {
@Autowired
EquipmentRepairMapper equipmentRepairMapper;
@Override
public SchoolEquipmentRepairVo getEquipmentById(Long id) {
return equipmentRepairMapper.getEquipmentById(id);
}
@Override
public SchoolEquipmentRepairVo getfeedback(Long id) {
return equipmentRepairMapper.getfeedback(id);
}
} }
package yangtz.cs.liu.campus.service.schoolEquipment; package yangtz.cs.liu.campus.service.schoolEquipment;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
import yangtz.cs.liu.campus.domain.schoolEquipment.SchoolCirculation; import yangtz.cs.liu.campus.domain.schoolEquipment.SchoolCirculation;
import yangtz.cs.liu.campus.vo.schoolEquipment.SchoolCirculationVo;
public interface ICirculationService extends IService<SchoolCirculation> { public interface ICirculationService extends IService<SchoolCirculation> {
List<SchoolCirculationVo> getReturningEquipmentByadminId(Long userId);
} }
...@@ -2,6 +2,10 @@ package yangtz.cs.liu.campus.service.schoolEquipment; ...@@ -2,6 +2,10 @@ package yangtz.cs.liu.campus.service.schoolEquipment;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import yangtz.cs.liu.campus.domain.schoolEquipment.SchoolEquipmentRepair; import yangtz.cs.liu.campus.domain.schoolEquipment.SchoolEquipmentRepair;
import yangtz.cs.liu.campus.vo.schoolEquipment.SchoolEquipmentRepairVo;
public interface IEquipmentRepairService extends IService<SchoolEquipmentRepair> { public interface IEquipmentRepairService extends IService<SchoolEquipmentRepair> {
public SchoolEquipmentRepairVo getEquipmentById(Long id);
public SchoolEquipmentRepairVo getfeedback(Long id);
} }
package yangtz.cs.liu.wechat.controller.equipment;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.common.core.domain.AjaxResult;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import yangtz.cs.liu.campus.domain.schoolEquipment.SchoolCirculation;
import yangtz.cs.liu.campus.domain.schoolEquipment.SchoolEquipmentLedger;
import yangtz.cs.liu.campus.domain.schoolEquipment.SchoolEquipmentRepair;
import yangtz.cs.liu.campus.domain.schoolEquipment.SchoolReceive;
import yangtz.cs.liu.campus.service.equipment.SchoolReceiveService;
import yangtz.cs.liu.campus.service.schoolEquipment.ICirculationService;
import yangtz.cs.liu.campus.service.schoolEquipment.IEquipmentLedgerService;
import yangtz.cs.liu.campus.service.schoolEquipment.IEquipmentRepairService;
import yangtz.cs.liu.campus.vo.schoolEquipment.SchoolCirculationVo;
import yangtz.cs.liu.campus.vo.schoolEquipment.SchoolEquipmentRepairVo;
/**
* 移动端,设备租借、领用
*/
@RestController
@RequestMapping("/wx/equipment")
public class EquipmentLeaseController {
@Autowired
IEquipmentLedgerService iEquipmentService;
@Autowired
IEquipmentRepairService iEquipmentRepairService;
@Autowired
ICirculationService iCirculationService;
@Autowired
SchoolReceiveService schoolReceiveService;
/**
* 扫码借用获取设备基本信息
*/
@GetMapping("/getEquipment/{encode}")
private AjaxResult getEquipment(@PathVariable("encode") String encode){
LambdaQueryWrapper<SchoolEquipmentLedger> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SchoolEquipmentLedger::getEncode,encode);
SchoolEquipmentLedger one = iEquipmentService.getOne(wrapper);
return AjaxResult.success(one);
}
/**
* 我的借用记录
*/
@GetMapping("/getMyBorrowList/{borrowById}")
private AjaxResult getMyBorrowList(@PathVariable("borrowById") Integer borrowById){
LambdaQueryWrapper<SchoolCirculation> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SchoolCirculation::getBorrowById,borrowById);
List<SchoolCirculation> list = iCirculationService.list(wrapper);
return AjaxResult.success(list);
}
/**
* 扫码借用
*/
@PostMapping("/addRecord")
private AjaxResult addRecord(@RequestBody SchoolCirculation schoolCirculation){
Date borrowTime = schoolCirculation.getBorrowTime();
Long deadline = schoolCirculation.getDeadline();
Calendar calendar = Calendar.getInstance();
calendar.setTime(borrowTime);
calendar.add(Calendar.DATE,Integer.valueOf(deadline.toString()));
Date targetDate = calendar.getTime();
schoolCirculation.setReturnTime(targetDate);
boolean save = iCirculationService.save(schoolCirculation);
return AjaxResult.success(save);
}
/**
* 扫码借用查看
*/
@GetMapping("/byCirculation/{id}")
private AjaxResult byCirculation(@PathVariable("id") Long id){
SchoolCirculation byId = iCirculationService.getById(id);
return AjaxResult.success(byId);
}
/**
* 领用台账list
*/
@GetMapping("/getUseList/{recipientById}")
private AjaxResult getMyBorrowList(@PathVariable("recipientById") String recipientById){
LambdaQueryWrapper<SchoolReceive> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SchoolReceive::getRecipientById,recipientById);
List<SchoolReceive> list = schoolReceiveService.list(wrapper);
return AjaxResult.success(list);
}
/**
* 领用台账查询
*/
@GetMapping("/getUseById/{Id}")
private AjaxResult getUseById(@PathVariable("Id") Long Id){
SchoolReceive byId = schoolReceiveService.getById(Id);
return AjaxResult.success(byId);
}
/**
* 新增领用
*/
@PostMapping("/addUsedevice")
private AjaxResult addUsedevice(@RequestBody SchoolReceive schoolReceive){
boolean save = schoolReceiveService.save(schoolReceive);
return AjaxResult.success(save);
}
/**
* 设备维修-列表
*/
@GetMapping("/getMaintenanceList/{reportRepairid}")
private AjaxResult getMaintenanceList(@PathVariable("reportRepairid") Long reportRepairid){
LambdaQueryWrapper<SchoolEquipmentRepair> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SchoolEquipmentRepair::getReportRepairId,reportRepairid);
List<SchoolEquipmentRepair> list = iEquipmentRepairService.list(wrapper);
return AjaxResult.success(list);
}
/**
* 设备维修-新增
*/
@PostMapping("/addMaintenance")
private AjaxResult addMaintenance(@RequestBody SchoolEquipmentRepair schoolEquipmentRepair){
boolean save = iEquipmentRepairService.save(schoolEquipmentRepair);
return AjaxResult.success(save);
}
/**
* 设备报修台账查看
*/
@GetMapping("/getMaintenance/{id}")
private AjaxResult getMaintenance(@PathVariable("id") Long id){
SchoolEquipmentRepairVo equipmentById = iEquipmentRepairService.getEquipmentById(id);
return AjaxResult.success(equipmentById);
}
/**
* 设备报修修改
*/
@PutMapping("/pudateMaintenance")
private AjaxResult pudateMaintenance(@RequestBody SchoolEquipmentRepair schoolEquipmentRepair){
boolean save = iEquipmentRepairService.updateById(schoolEquipmentRepair);
return AjaxResult.success(save);
}
/**
* 报修台账反馈列表 设备维修记录id
*/
@GetMapping("/getfeedback/{id}")
private AjaxResult getfeedback(@PathVariable("id") Long id){
SchoolEquipmentRepairVo equipmentById = iEquipmentRepairService.getEquipmentById(id);
return AjaxResult.success(equipmentById);
}
/**
* 报修反馈提交
*/
@PutMapping("/pudateFeedback")
private AjaxResult pudateFeedback(@RequestBody SchoolEquipmentRepair schoolEquipmentRepair){
boolean b = iEquipmentRepairService.updateById(schoolEquipmentRepair);
return AjaxResult.success(b);
}
/**
* 维修人员更改维修状态
*/
@PutMapping("/confirmRepair")
private AjaxResult confirmRepair(@RequestBody SchoolEquipmentRepair schoolEquipmentRepair){
boolean b = iEquipmentRepairService.updateById(schoolEquipmentRepair);
return AjaxResult.success(b);
}
/**
* 维修人员报修列表
*/
@GetMapping("getMaintenanceUserList")
private AjaxResult getMaintenanceUserList(){
return AjaxResult.success(iEquipmentRepairService.list());
}
/**
* 管理员列表查询
*/
@GetMapping("/getReturningEquipmentList/{userId}")
private AjaxResult getReturningEquipmentList(@PathVariable("userId") Long userId){
//根据管理员信息查看所有已借出设备信息
List<SchoolCirculationVo> returningEquipmentByadminId = iCirculationService
.getReturningEquipmentByadminId(userId);
return AjaxResult.success(returningEquipmentByadminId);
}
/**
* 管理员查看详情
*/
@GetMapping("/getReturningEquipmentByList/{id}")
private AjaxResult getReturningEquipmentByList(@PathVariable("id") Long id){
//根据管理员信息查看信息详情
return AjaxResult.success(iCirculationService.getById(id));
}
/**
* 管理员归还操作
*/
@PutMapping("returnDevice")
private AjaxResult returnDevice(@RequestBody SchoolCirculation schoolCirculation){
boolean b = iCirculationService.updateById(schoolCirculation);
return AjaxResult.success(b);
}
}
<?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="yangtz.cs.liu.campus.mapper.schoolEquipment.EquipmentRepairMapper">
<resultMap type="SchoolEquipmentRepair" id="SchoolCirculationVoResult">
<result property="id" column="id"/>
<result property="equipmentId" column="equipment_id"/>
<result property="classificationCode" column="classification_code"/>
<result property="reportRepairTime" column="report_repair_time"/>
<result property="reportRepairId" column="report_repair_id"/>
<result property="reportRepair" column="report_repair"/>
<result property="problem" column="problem"/>
<result property="repairId" column="repair_id"/>
<result property="repairName" column="repair_name"/>
<result property="repairPhone" column="repair_phone"/>
<result property="repairTime" column="repair_time"/>
<result property="repairState" column="repair_state"/>
<result property="disposeState" column="dispose_state"/>
<result property="evaluate" column="evaluate"/>
<result property="remark" column="remark"/>
</resultMap>
</mapper>
\ No newline at end of file
<?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="yangtz.cs.liu.campus.mapper.equipment.SchoolReceiveMapper">
<resultMap type="SchoolReceive" id="SchoolCirculationVoResult">
<result property="id" column="id"/>
<result property="equipmentId" column="equipment_id"/>
<result property="recipientTime" column="classification_code"/>
<result property="recipientById" column="unit"/>
<result property="recipientBy" column="affiliation_type"/>
<result property="returnTime" column="equipment_state"/>
<result property="returnEquipmentCondition" column="is_allow_lend"/>
<result property="receivedById" column="is_lend"/>
<result property="receivedBy" column="is_lend"/>
<result property="yjuseTime" column="is_lend"/>
<result property="sjuseTime" column="is_lend"/>
<result property="remark" column="is_lend"/>
</resultMap>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment