Commit 64ff9f81 by duxingshan

Merge remote-tracking branch 'origin/master'

parents 19146f55 607ec929
......@@ -116,6 +116,14 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
.antMatchers( "/common/**").permitAll()
//网页注册登录接口放行
.antMatchers( "/web/artStudent/register","/web/artStudent/login").permitAll()
.antMatchers( "/wx/equipment/**").permitAll()
// 静态资源,可匿名访问
.antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll()
.antMatchers("/swagger-ui.html", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll()
......
......@@ -34,7 +34,7 @@ export function editProduct(data) {
export function deleteProduct(id) {
return request({
url: "/productCategory/delete/" + id,
method: "delete",
method: "post",
});
}
//获取设备分类下拉框
......@@ -46,10 +46,10 @@ export function getProductCategory(query) {
});
}
//获取管理员
export function getAdmin(data) {
export function getAdmin(query) {
return request({
url: "/productCategory/getAdmin",
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>
<div class="app-container">
<el-form :model="queryForm" ref="queryForm" size="small" :inline="true" label-width="80px" @submit.native.prevent>
<el-form-item label="设备分类" prop="sbfl">
<el-select v-model="queryForm.sbfl" placeholder="请选择设备分类" clearable>
<el-option v-for="item in sbflOptions" :key="item.value" :label="item.label" :value="item.value" />
<el-form :model="queryForm" ref="queryForm" size="small" :inline="true" @submit.native.prevent label-width="78px">
<el-form-item label="设备分类" prop="id">
<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-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 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-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-form-item>
</el-form>
<el-row class="mb8" :gutter="10">
<el-row class="mb8" :gutter="8">
<el-col :span="1.5">
<el-button size="mini" type="primary" icon="el-icon-plus" @click="handleAdd"
v-hasPermi="['system:assets:remove']">新增
<el-button size="mini" type="primary" icon="el-icon-plus" @click="handleAdd">新增
</el-button>
</el-col>
</el-row>
<!-- 表单数据 -->
<el-table :data="assetsList" v-loading="loading" row-key="id" :default-expand-all="isExpandAll"
:tree-props="{ children: 'children', hasChildren: 'hasChildren' }">
<el-table-column label="分类编码" header-align="center" prop="typeName"></el-table-column>
<el-table-column label="设备分类" align="center" prop="typeNum"></el-table-column>
<el-table-column label="型号" align="center" prop="typeOrder"></el-table-column>
<el-table-column label="管理员" align="center" prop="remark"></el-table-column>
<el-table-column label="分类编码" header-align="center" prop="classificationCode"></el-table-column>
<el-table-column label="设备分类" align="center" prop="equipmentType"></el-table-column>
<el-table-column label="型号" align="center" prop="model"></el-table-column>
<el-table-column label="管理员" align="center" prop="admin"></el-table-column>
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['system:assets:edit']">修改
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">修改
</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleLook(scope.row)"
v-hasPermi="['system:assets:edit']">查看
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleAdd(scope.row)">新增
</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['system:assets:remove']">删除
<el-button size="mini" type="text" icon="el-icon-delete" v-if="scope.row.parentId != 0"
@click="handleDelete(scope.row)">删除
</el-button>
</template>
</el-table-column>
</el-table>
<!-- 新增/修改弹出框 -->
<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-col :span="12">
<el-form-item label="分类编码" prop="typeName">
<el-input v-model="postForm.typeName"></el-input>
<el-col :span="16" v-if="postForm.parentId !== 0">
<el-form-item label="父分类编码" prop="parentId">
<treeselect v-model="postForm.parentId" :options="assetsList" :normalizer="normalizer"
placeholder="选择分类编码" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="设备分类" prop="typeNum">
<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-col :span="16">
<el-form-item label="分类编码" prop="classificationCode">
<el-input v-model="postForm.classificationCode"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="管理员" prop="licensePlate">
<el-input v-model="postForm.licensePlate" placeholder="请选择管理员" @focus="selectChange"
style="width: 100%"></el-input>
<el-col :span="16">
<el-form-item label="设备分类" prop="equipmentType">
<el-input v-model="postForm.equipmentType"></el-input>
</el-form-item>
</el-col>
</el-row>
</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>
<!-- 查看弹出框 -->
<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-col :span="16">
<el-form-item label="排序" prop="orderNum">
<el-input-number v-model="postForm.orderNum" controls-position="right" :min="0"
style="width: 100%;" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<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-col :span="16">
<el-form-item label="型号" prop="model">
<el-input v-model="postForm.model"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="管理员" prop="licensePlate">
<el-input v-model="form.licensePlate" placeholder="管理员" @focus="selectChange"
:disabled="isDisabled" style="width: 100%"></el-input>
<el-col :span="16">
<el-form-item label="管理员" prop="admin">
<el-input v-model="selectedAdmin.admin" placeholder="请选择管理员" @focus="selectChange"
style="width: 100%"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<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>
</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-item label="管理员">
<el-input v-model="queryVehicleForm.licensePlate" placeholder="请输入管理员"></el-input>
<el-form-item label="管理员" prop="admin">
<el-input v-model="queryVehicleForm.adminId" placeholder="请输入管理员"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" size="small" icon="el-icon-search" @click="handleQueryVehicle">搜索
......@@ -149,14 +109,12 @@
<el-table :data="vehicleList" max-height="350" ref="vehicleSelectTable" @row-click="rowClick"
@selection-change="selectionChange">
<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>
<ExPagination v-show="vehicleTotal > 0" :total="vehicleTotal" :page.sync="queryVehicleForm.pageNum"
:limit.sync="queryVehicleForm.pageSize" @pagination="getVehicleList"></ExPagination>
<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>
</div>
</el-dialog>
......@@ -166,55 +124,44 @@
</template>
<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 {
components: { Treeselect },
name: "classiFication",
dicts: ["vehicle_type", "vehicle_state"],
data() {
return {
// 管理员列表总数
vehicleTotal: 0,
NaN: 0,
// 可选管理员列表
vehicleList: [],
// 管理员列表
queryVehicleForm: {
pageNum: 1,
pageSize: 10,
licensePlate: ''
admin: '',
adminId: '',
},
//父设备分类下拉框
deptOptions: [],
// 是否显示选择管理员弹出层
workableVehicle: 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: {
typeName: '',// 资产分类名称
typeNum: '',// 编号
typeOrder: '',// 排序号
remark: '',// 备注
},
form: {
typeName: '',// 资产分类名称
typeNum: '',// 编号
typeOrder: '',// 排序号
remark: '',// 备注
id: '',
model: '',
classificationCode: "",
},
//设备分类下拉框
sbflOptions: [],
......@@ -223,13 +170,19 @@ export default {
// 列表
assetsList: [],
// 新增/修改表单
postForm: {},
postForm: {
classificationCode: '',
parentId: undefined,
equipmentType: '',
model: '',
adminId: '',
orderNum: '',
},
// 弹出层标题
title: '',
// 是否显示弹出层
open: false,
//查看弹出框
openLook: false,
// 多个禁用
multi: false,
// 展开
......@@ -238,50 +191,57 @@ export default {
refreshTable: true,
// 校验规则
rules: {
typeName: [{ required: true, message: '资产分类不能为空', trigger: 'blur' }],
// typeNum: [{ required: true, message: '资产编号不能为空', trigger: 'blur' }],
classificationCode: [{ required: true, message: '分类编码不能为空', trigger: 'blur' }],
equipmentType: [{ required: true, message: '设备分类不能为空', trigger: 'blur' }],
orderNum: [{ required: true, message: '显示排序不能为空', trigger: 'blur' }],
},
//管理员
selectedAdmin: {
admin: '',
adminId: '',
}
}
},
created() {
this.getList();
this.enuqLeader();
},
methods: {
//查询表单数据
getList() {
this.loading = true; // 加载效果
getClassList(this.queryForm).then(response => {
this.assetsList = this.handleTree(response.data, "id", 'pid', 'children');
this.loading = true;
getProduct(this.queryForm).then(response => {
this.assetsList = this.handleTree(response.rows, "id", 'parentId', 'children');
console.log('this.assetsList', this.assetsList);
this.loading = false;
})
},
// 选择管理员对话框选中数据
selectionChange(selection) {
this.selectedAdmin = selection[0];
console.log('this.selectedAdmin', this.selectedAdmin);
this.multi = selection.length === 1;
},
// 可选管理员取消按钮
abolish() {
this.workableVehicle = false;
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() {
this.vehicleLoading = true;
console.log('this.queryVehicleForm', this.queryVehicleForm)
this.$set(this.queryVehicleForm, 'vehicleState', 0)
getVehicleList(this.queryVehicleForm).then(response => {
getAdmin(this.queryVehicleForm).then(response => {
this.vehicleLoading = false;
this.vehicleList = response.rows;
this.vehicleTotal = response.total;
this.vehicleList = response.data;
console.log('this.vehicleList', this.vehicleList);
this.NaN = response.NaN;
}).catch(err => {
this.vehicleLoading = false;
})
......@@ -297,11 +257,7 @@ export default {
this.$refs.vehicleSelectTable.clearSelection();
this.$refs.vehicleSelectTable.toggleRowSelection(row, true);
},
// 选择管理员对话框选中数据
selectionChange(selection) {
this.selectedCar = selection[0];
this.multi = selection.length === 1;
},
// 查询管理员列表
handleQueryVehicle() {
this.throttle(() => {
......@@ -313,8 +269,8 @@ export default {
resetQueryVehicle() {
this.queryVehicleForm = {
pageNum: 1,
pageSize: 10,
licensePlate: ''
pageSize: 8,
admin: ''
};
this.handleQueryVehicle();
},
......@@ -335,46 +291,62 @@ export default {
});
},
// 搜索
handleQuery() {
this.getList();
},
// 新增
handleAdd(row) {
this.reset();
this.selectedAdmin.admin = null;
this.queryVehicleForm.adminId = null;
this.open = true;
this.getList();
if (row != null && row.id) {
console.log(row, row.id);
this.postForm.pid = row.id;
console.log('row', row);
this.postForm.parentId = row.id;
} 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) {
this.reset();
queryClass(row.id).then(response => {
queryProduct(row.id).then(response => {
this.postForm = response.data;
this.selectedAdmin.admin = response.data.admin;
this.open = true;
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) {
this.$modal.confirm(`是否确认删除此数据?`).then(() => {
this.loading = true;
return deleteClass(row.id);
return deleteProduct(row.id);
}).then(() => {
this.getList();
this.loading = false;
......@@ -385,16 +357,19 @@ export default {
},
// 确定
submitForm() {
this.postForm.adminId = this.selectedAdmin.adminId;
console.log('this.postForm', this.postForm);
this.$refs["postForm"].validate(valid => {
if (valid) {
if (this.postForm.id != null) {
editClass(this.postForm).then(response => {
editProduct(this.postForm).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addClass(this.postForm).then(response => {
addProduct(this.postForm).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
......@@ -405,27 +380,32 @@ export default {
},
// 取消
cancel() {
this.open = false;
this.openLook = false;
this.reset();
this.open = false;
// this.openLook = false;
},
// 重置提交表单
reset() {
this.postForm = {
typeName: '',// 资产分类名称
typeNum: '',// 编号
typeOrder: '',// 排序号
remark: '',// 备注
classificationCode: '',
parentId: undefined,
equipmentType: '',
model: '',
admin: undefined,
adminId: undefined,
orderNum: '',
};
this.resetForm('postForm')
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
this.getList();
}
}
}
</script>
<style></style>
<style lang="scss" scoped></style>
......@@ -16,6 +16,7 @@ import lombok.Data;
public class SchoolCirculation extends OurBaseEntity
{
private Long id;
/** 设备id */
private Long equipmentId;
......
......@@ -16,6 +16,7 @@ import lombok.Data;
public class SchoolEquipmentRepair extends OurBaseEntity
{
private Long id;
/** 设备id */
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;
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.vo.schoolEquipment.SchoolCirculationVo;
@Mapper
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;
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.vo.schoolEquipment.SchoolEquipmentRepairVo;
@Mapper
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;
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 yangtz.cs.liu.campus.domain.schoolEquipment.SchoolCirculation;
import yangtz.cs.liu.campus.mapper.schoolEquipment.CirculationMapper;
import yangtz.cs.liu.campus.service.schoolEquipment.ICirculationService;
import yangtz.cs.liu.campus.vo.schoolEquipment.SchoolCirculationVo;
@Service
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;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import yangtz.cs.liu.campus.domain.schoolEquipment.SchoolEquipmentRepair;
import yangtz.cs.liu.campus.mapper.schoolEquipment.EquipmentRepairMapper;
import yangtz.cs.liu.campus.service.schoolEquipment.IEquipmentRepairService;
import yangtz.cs.liu.campus.vo.schoolEquipment.SchoolEquipmentRepairVo;
@Service
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;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
import yangtz.cs.liu.campus.domain.schoolEquipment.SchoolCirculation;
import yangtz.cs.liu.campus.vo.schoolEquipment.SchoolCirculationVo;
public interface ICirculationService extends IService<SchoolCirculation> {
List<SchoolCirculationVo> getReturningEquipmentByadminId(Long userId);
}
......@@ -2,6 +2,10 @@ package yangtz.cs.liu.campus.service.schoolEquipment;
import com.baomidou.mybatisplus.extension.service.IService;
import yangtz.cs.liu.campus.domain.schoolEquipment.SchoolEquipmentRepair;
import yangtz.cs.liu.campus.vo.schoolEquipment.SchoolEquipmentRepairVo;
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