Commit 17503e8c by duxingshan

Merge remote-tracking branch 'origin/master'

parents f0bb03ee 61187cd8
......@@ -104,6 +104,7 @@ public class SysProfileController extends BaseController
LoginUser loginUser = getLoginUser();
String userName = loginUser.getUsername();
String password = loginUser.getPassword();
userService.checkPasswordUnique(newPassword);
if (!SecurityUtils.matchesPassword(oldPassword, password))
{
return AjaxResult.error("修改密码失败,旧密码错误");
......
......@@ -197,6 +197,7 @@ public class SysUserController extends BaseController
{
userService.checkUserAllowed(user);
userService.checkUserDataScope(user.getUserId());
userService.checkPasswordUnique(user.getPassword());
user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
user.setUpdateBy(getUsername());
return toAjax(userService.resetPwd(user));
......
package com.ruoyi.common.core.domain.model;
import java.util.Set;
import lombok.Data;
/**
......@@ -114,4 +115,9 @@ public class MpLoginUser {
头像
*/
private String avatar;
/**
* 角色权限
*/
private Set<String> roles;
}
......@@ -277,4 +277,8 @@ public interface ISysUserService {
* 根据userId更新openId
* */
public boolean updateOpenId(Long userId, String openId);
/**检查密码是否符合条件(密码必须包含大小写字母、数字、特殊字符中的任意三种)*/
void checkPasswordUnique(String password);
}
......@@ -2,6 +2,7 @@ package com.ruoyi.system.service.impl;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import javax.validation.Validator;
......@@ -583,4 +584,18 @@ public class SysUserServiceImpl implements ISysUserService {
public boolean updateOpenId(Long userId, String openId) {
return userMapper.updateOpenId(userId,openId) > 0;
}
/**
* 检查密码是否符合条件(密码必须包含大小写字母、数字、特殊字符中的任意三种)
* @param password
*/
@Override
public void checkPasswordUnique(String password) {
// String pattern = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[A-Za-z\\d]{8,}$";
String pattern = "^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\\W_]+$)(?![a-z0-9]+$)(?![a-z\\W_]+$)(?![0-9\\W_]+$)[a-zA-Z0-9\\W_]{8,}$";
boolean matches = Pattern.matches(pattern, password);
if (matches == false){
throw new ServiceException("密码必须包含大小写字母、数字、特殊字符中的任意三种");
}
}
}
import request from "@/utils/request";
//查看设备领用列表
export function getReceive(query) {
return request({
url: "/receive/list",
method: "get",
params: query,
});
}
//查看设备领用详细信息
export function queryReceive(id) {
return request({
url: "/receive/" + id,
method: "get",
});
}
//新增设备领用
export function addReceive(data) {
return request({
url: "/receive/add",
method: "post",
data,
});
}
//修改设备领用
export function editReceive(data) {
return request({
url: "/receive/edit",
method: "put",
data: data,
});
}
//删除设备领用
export function deleteReceive(id) {
return request({
url: "/receive/delete/" + id,
method: "post",
});
}
import request from "@/utils/request";
//查看设备出库列表
export function getoutStock(query) {
return request({
url: "/outStock/list",
method: "get",
params: query,
});
}
//查看设备出库详细信息
export function queryoutStock(id) {
return request({
url: "/outStock/" + id,
method: "get",
});
}
import request from "@/utils/request";
//查看设备入库列表
export function getinStock(query) {
return request({
url: "/inStock/list",
method: "get",
params: query,
});
}
//查看设备出库详细信息
export function queryinStock(id) {
return request({
url: "/inStock/" + id,
method: "get",
});
}
......@@ -82,10 +82,10 @@
<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>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['system:assets:delete']">删除
>删除
</el-button>
</template>
</el-table-column>
......
......@@ -44,10 +44,10 @@
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleLook(scope.row)">查看
</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['system:device:remove']">修改
>修改
</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['system:device:remove']">删除
>删除
</el-button>
</template>
</el-table-column>
......
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="80px">
<el-form-item label="设备名称" prop="studentName">
<el-input v-model="queryParams.xc" placeholder="请输入设备名称" clearable/>
<el-form-item label="设备名称" prop="equipmentName">
<el-input v-model="queryParams.equipmentName" placeholder="请输入设备名称" clearable />
</el-form-item>
<el-form-item label="领用人" prop="studentName">
<el-input v-model="queryParams.xc" placeholder="请输入领用人" clearable/>
<el-form-item label="领用人" prop="recipientBy">
<el-input v-model="queryParams.recipientBy" placeholder="请输入领用人" clearable />
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="getList">搜索</el-button>
......@@ -14,159 +14,299 @@
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleOption(0)">新增</el-button>
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd">新增</el-button>
</el-col>
</el-row>
<!-- 表格 -->
<el-table v-loading="loading" :data="collectionData" stripe>
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column label="序号" type="index" width="55" align="center"/>
<el-table-column label="自编码" align="center" prop="studentName"/>
<el-table-column label="设备名称" align="center" prop="studentNumber"/>
<el-table-column label="型号" align="center" prop="studentNumber"/>
<el-table-column label="领用日期" align="center" prop="studentNumber"/>
<el-table-column label="领用人" align="center" prop="studentNumber"/>
<el-table-column label="退还日期" align="center" prop="studentNumber"/>
<el-table-column label="退还时设备情况" align="center" prop="studentNumber"/>
<el-table-column label="接收人" align="center" prop="studentNumber"/>
<el-table-column label="备注" align="center" prop="studentNumber"/>
<el-table-column label="序号" type="index" width="55" align="center" />
<el-table-column label="自编码" align="center" prop="encode" />
<el-table-column label="设备名称" align="center" prop="equipmentName" />
<el-table-column label="型号" align="center" prop="model" />
<el-table-column label="领用日期" align="center" prop="recipientTime" />
<el-table-column label="领用人" align="center" prop="recipientBy" />
<el-table-column label="退还日期" align="center" prop="returnTime" />
<el-table-column label="退还时设备情况" align="center" prop="returnEquipmentCondition" />
<el-table-column label="接收人" align="center" prop="receivedBy" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="操作" align="center" prop="orgname" width="150">
<template slot-scope="{ row }">
<el-button type="text" size="small" @click="handleOption(1,row)">编辑</el-button>
<el-button type="text" size="small" @click="handleOption(2,row)">查看</el-button>
<el-button type="text" size="small" @click="handleDelete(row.id)">删除</el-button>
<el-button type="text" size="small" @click="handleUpdate(row)">编辑</el-button>
<el-button type="text" size="small" @click="handleLook(row)">查看</el-button>
<el-button type="text" size="small" @click="handleDelete(row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination ref="pageBlock" v-show="total > 0" :total="total"
:page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList"/>
<pagination ref="pageBlock" v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getList" />
<!-- 新增、编辑、查看页面 -->
<el-dialog title="详细信息" :visible.sync="dialogVisible" width="50%">
<el-form :model="collectionForm" :rules="collectionRules" ref="achievementForm"
label-width="110px" label-position="right">
<el-form :model="collectionForm" :rules="collectionRules" ref="achievementForm" label-width="110px"
label-position="right">
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="自编码" prop="idCard">
<el-input v-model="collectionForm" placeholder="请输入自编码"></el-input>
<el-form-item label="自编码" prop="encode">
<el-input v-model="collectionForm.encode" placeholder="请输入自编码" @change="getRencode"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="设备名称" prop="idCard">
<el-input v-model="collectionForm" placeholder="请输入设备名称"></el-input>
<el-form-item label="设备名称" prop="equipmentName">
<el-input v-model="collectionForm.equipmentName" placeholder="请输入设备名称"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="型号" prop="idCard">
<el-input v-model="collectionForm" placeholder="请输入型号"></el-input>
<el-form-item label="型号" prop="model">
<el-input v-model="collectionForm.model" placeholder="请输入型号"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="领用人" prop="idCard">
<el-input v-model="collectionForm" placeholder="请输入领用人"></el-input>
<el-form-item label="领用人" prop="recipientBy">
<el-input v-model="collectionForm.recipientBy" placeholder="请输入领用人"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="领用日期" prop="idCard">
<el-date-picker v-model="collectionForm" type="date" clearable class="selectWidth"
placeholder="请选择领用日期" format="yyyy-MM-dd">
<el-form-item label="领用日期" prop="recipientTime">
<el-date-picker v-model="collectionForm.recipientTime" type="datetime" clearable class="selectWidth"
placeholder="请选择领用日期" value-format="yyyy-MM-dd HH:mm:ss">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="退还日期" prop="idCard">
<el-date-picker v-model="collectionForm" type="date" clearable class="selectWidth"
placeholder="请选择退还日期" format="yyyy-MM-dd">
<el-form-item label="退还日期" prop="returnTime">
<el-date-picker v-model="collectionForm.returnTime" type="datetime" clearable class="selectWidth"
placeholder="请选择退还日期" value-format="yyyy-MM-dd HH:mm:ss">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="接收人" prop="idCard">
<el-input v-model="collectionForm" placeholder="请输入接收人"></el-input>
<el-form-item label="接收人" prop="receivedBy">
<el-input v-model="collectionForm.receivedBy" placeholder="请输入接收人"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="退还时设备情况" prop="idCard">
<el-input v-model="collectionForm" placeholder="请输入退还时设备情况"></el-input>
<el-form-item label="退还时设备情况" prop="returnEquipmentCondition">
<el-input v-model="collectionForm.returnEquipmentCondition" placeholder="请输入退还时设备情况"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="预计使用时间" prop="idCard">
<el-date-picker v-model="collectionForm" type="datetime" clearable class="selectWidth"
placeholder="请选择领用日期">
<el-form-item label="预计使用时间" prop="yjuseTime">
<el-date-picker v-model="collectionForm.yjuseTime" type="datetime" clearable class="selectWidth"
placeholder="请选择预计使用时间" value-format="yyyy-MM-dd HH:mm:ss">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="实际使用时间" prop="idCard">
<el-date-picker v-model="collectionForm" type="datetime" clearable class="selectWidth"
placeholder="请选择退还日期">
<el-form-item label="实际使用时间" prop="sjuseTime">
<el-date-picker v-model="collectionForm.sjuseTime" type="datetime" clearable class="selectWidth"
placeholder="请选择实际使用时间" value-format="yyyy-MM-dd HH:mm:ss">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="24">
<el-form-item label="备注" prop="chemistry">
<el-input type="textarea" v-model="lendReturnForm" placeholder="请输入备注"></el-input>
<el-form-item label="备注" prop="remark">
<el-input type="textarea" v-model="collectionForm.remark" placeholder="请输入备注"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" @click="submitForm">确 定</el-button>
</span>
<div style="text-align: center">
<el-button type="primary" v-show="isEditable" @click="submitForm">确 定</el-button>
<el-button @click="cancel">{{ isEditable ? '取 消' : '退 出' }}</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
getReceive,
queryReceive,
addReceive,
editReceive,
deleteReceive,
} from '@/api/smartSchool/schoolProperty/collectionLedger.js'
import {
getRepairencode,//根据自编码获取设备信息
} from '@/api/smartSchool/schoolProperty/repairApplicant.js'
export default {
// dicts: [''],
data() {
return {
queryParams: {
xc: '',
equipmentName: '',
recipientBy: '',
pageNum: 1,
pageSize: 10,
},
loading: false,
total: 0,
collectionData: [],
collectionForm: {},
collectionRules: [],
//新增
collectionForm: {
encode: '',
equipmentName: '',
model: '',
recipientBy: '',
recipientTime: '',
returnTime: '',
receivedBy: '',
returnEquipmentCondition: '',
yjuseTime: '',
sjuseTime: '',
remark: '',
},
collectionRules: {
},
dialogVisible: false,
nowType: 0, // 0新增、1编辑、2查看
isEditable: true,
}
},
methods:{
created() {
this.getList();
},
methods: {
// 获取列表数据
getList(){},
getList() {
getReceive(this.queryParams).then(response => {
this.loading = false;
this.collectionData = response.rows;
console.log('this.collectionData ', this.collectionData);
this.total = response.total;
}).catch(err => {
this.loading = false;
})
},
/** 查看 */
handleLook(row) {
this.collectionForm = row;
const id = row.id || this.ids;
queryReceive(id).then(response => {
this.collectionForm = response.data;
this.dialogVisible = true;
this.isEditable = false;
}).catch(err => {
})
this.title = "查看";
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除"' + ids + '"的数据项?').then(function () {
return deleteReceive(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => { });
},
// 修改按钮操作
handleUpdate(row) {
const id = row.id || this.ids;
this.title = "修改申请";
queryReceive(id).then(response => {
this.collectionForm = response.data;
this.dialogVisible = true;
this.isEditable = true;
}).catch(err => {
})
},
// 重置搜索
resetQuery(){},
resetQuery() {
this.queryParams = {
equipmentName: '',
recipientBy: '',
pageNum: 1,
pageSize: 10,
}
this.getList();
},
// 取消按钮
cancel() {
this.dialogVisible = false;
this.reset();
},
//自编码
async getRencode() {
try {
const response = await getRepairencode(this.collectionForm.encode);
console.log("response", response);
this.collectionForm.equipmentId = response.data.equipmentId;
this.collectionForm.equipmentName = response.data.equipmentName;
this.collectionForm.model = response.data.model;
// 0新增、1编辑、2查看
handleOption(type,item){
this.nowType = type
if(type != 0){
} catch (error) {
}
this.dialogVisible = true
},
//删除
handleDelete(){},
// 新增按钮操作
handleAdd() {
this.reset();
this.dialogVisible = true;
this.title = "添加申请";
},
reset() {
// 这里需要重置对话框表单
this.collectionForm = {
encode: null,
equipmentName: null,
model: null,
recipientBy: null,
recipientTime: null,
returnTime: null,
receivedBy: null,
returnEquipmentCondition: null,
yjuseTime: null,
sjuseTime: null,
remark: null,
};
},
//表单提交
submitForm(){},
submitForm() {
this.$refs["achievementForm"].validate(valid => {
if (valid) {
if (this.collectionForm.id != null) {
editReceive(this.collectionForm).then(response => {
this.$modal.msgSuccess("修改成功");
this.dialogVisible = false;
this.getList();
});
} else {
addReceive(this.collectionForm).then(response => {
this.$modal.msgSuccess("新增成功");
this.dialogVisible = false;
this.getList();
});
}
}
});
},
}
}
</script>
......
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="80px">
<el-form-item label="设备名称" prop="studentName">
<el-input v-model="queryParams.xc" placeholder="请输入设备名称" clearable/>
<el-form-item label="设备名称">
<el-input v-model="queryParams.equipmentName" clearable placeholder="请输入设备名称"></el-input>
</el-form-item>
<el-form-item label="归属类型" prop="examType">
<el-select v-model="queryParams.xc" placeholder="请选择归属类型" clearable>
<el-option v-for="(item,index) in dict.type.exam_type" :key="index"
:label="item.label" :value="item.value"></el-option>
<el-form-item label="归属类型">
<el-select v-model="queryParams.affiliationType" placeholder="请选择归属类型" clearable>
<el-option v-for="(item, index) in dict.type.affiliation_type" :key="index" :label="item.label"
:value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="分类编码" prop="studentName">
<el-input v-model="queryParams.xc" placeholder="请输入分类编码" clearable/>
<el-form-item label="分类编码">
<el-input v-model="queryParams.classificationCode" clearable placeholder="请输入分类编码"></el-input>
</el-form-item>
<el-form-item label="设备状态" prop="examType">
<el-select v-model="queryParams.xc" placeholder="请选择设备状态" clearable>
<el-option v-for="(item,index) in dict.type.exam_type" :key="index"
:label="item.label" :value="item.value"></el-option>
<el-form-item label="设备状态">
<el-select v-model="queryParams.equipmentState" clearable placeholder="请选择设备状态">
<el-option v-for="(item, index) in dict.type.equipment_state" :key="index" :label="item.label"
:value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item>
......@@ -24,118 +24,119 @@
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<!-- -->
<el-table v-loading="loading" :data="outBoundData" stripe>
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column label="序号" type="index" width="55" align="center"/>
<el-table-column label="出库类型" align="center" prop="studentName"/>
<el-table-column label="设备名称" align="center" prop="studentNumber"/>
<el-table-column label="型号" align="center" prop="studentNumber"/>
<el-table-column label="规格" align="center" prop="studentNumber"/>
<el-table-column label="分类编码" align="center" prop="studentNumber"/>
<el-table-column label="单位" align="center" prop="studentNumber"/>
<el-table-column label="归属类型" align="center" prop="studentNumber"/>
<el-table-column label="设备状态" align="center" prop="studentNumber"/>
<el-table-column label="投产日期" align="center" prop="studentNumber"/>
<el-table-column label="价格(元)" align="center" prop="studentNumber"/>
<el-table-column label="效用年限(年)" align="center" prop="studentNumber"/>
<el-table-column label="地点" align="center" prop="studentNumber"/>
<el-table-column label="使用人" align="center" prop="studentNumber"/>
<el-table-column label="备注" align="center" prop="studentNumber"/>
<el-table-column label="序号" type="index" width="55" align="center" />
<el-table-column label="出库类型" align="center" prop="outStockType" />
<el-table-column label="设备名称" align="center" prop="equipmentName" />
<el-table-column label="型号" align="center" prop="model" />
<el-table-column label="规格" align="center" prop="specification" />
<el-table-column label="分类编码" align="center" prop="classificationCode" />
<el-table-column label="单位" align="center" prop="unit" />
<el-table-column label="归属类型" align="center" prop="affiliationType" />
<el-table-column label="设备状态" align="center" prop="equipmentState" />
<el-table-column label="投产日期" align="center" prop="dateOfProduction" />
<el-table-column label="价格(元)" align="center" prop="price" />
<el-table-column label="效用年限(年)" align="center" prop="lifeOfUtility" />
<el-table-column label="地点" align="center" prop="place" />
<el-table-column label="使用人" align="center" prop="useName" />
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="操作" align="center" prop="orgname" width="150">
<template slot-scope="{ row }">
<el-button type="text" size="small" @click="handleOption(row)">查看</el-button>
<el-button type="text" size="small" @click="handleLook(row)">查看</el-button>
</template>
</el-table-column>
</el-table>
<pagination ref="pageBlock" v-show="total > 0" :total="total"
:page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList"/>
<pagination ref="pageBlock" v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" @pagination="getList" />
<el-dialog title="详细信息" :visible.sync="dialogVisible" width="50%">
<el-form :model="outBoundForm" :rules="outBoundRules" ref="achievementForm"
label-width="110px" label-position="right">
<el-form :model="outBoundForm" :rules="outBoundRules" ref="achievementForm" label-width="110px"
label-position="right">
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="出库类型" prop="idCard">
<el-input v-model="outBoundForm" placeholder="请输入出库类型" disabled></el-input>
<el-form-item label="出库类型" prop="outStockType">
<el-input v-model="outBoundForm.outStockType" placeholder=" 请输入出库类型" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="归属类型" prop="idCard">
<el-input v-model="outBoundForm" placeholder="请输入归属类型" disabled></el-input>
<el-form-item label="归属类型" prop="affiliationType">
<el-input v-model="outBoundForm.affiliationType" placeholder="请输入归属类型" disabled></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="设备名称" prop="idCard">
<el-input v-model="outBoundForm" placeholder="请输入设备名称" disabled></el-input>
<el-form-item label="设备名称" prop="equipmentName">
<el-input v-model="outBoundForm.equipmentName" placeholder="请输入设备名称" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="设备状态" prop="idCard">
<el-input v-model="outBoundForm" placeholder="请输入设备状态" disabled></el-input>
<el-form-item label="设备状态" prop="equipmentState">
<el-input v-model="outBoundForm.equipmentState" placeholder="请输入设备状态" disabled></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="型号" prop="idCard">
<el-input v-model="outBoundForm" placeholder="请输入型号" disabled></el-input>
<el-form-item label="型号" prop="model">
<el-input v-model="outBoundForm.model" placeholder="请输入型号" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="投产日期" prop="idCard">
<el-input v-model="outBoundForm" placeholder="请输入投产日期" disabled></el-input>
<el-form-item label="投产日期" prop="dateOfProduction">
<el-input v-model="outBoundForm.dateOfProduction" placeholder="请输入投产日期" disabled></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="规格" prop="idCard">
<el-input v-model="outBoundForm" placeholder="请输入规格" disabled></el-input>
<el-form-item label="规格" prop="specification">
<el-input v-model="outBoundForm.specification" placeholder="请输入规格" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="价格(元)" prop="idCard">
<el-input v-model="outBoundForm" placeholder="请输入价格" disabled></el-input>
<el-form-item label="价格(元)" prop="price">
<el-input v-model="outBoundForm.price" placeholder="请输入价格" disabled></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="分类编码" prop="idCard">
<el-input v-model="outBoundForm" placeholder="请输入分类编码" disabled></el-input>
<el-form-item label="分类编码" prop="classificationCode">
<el-input v-model="outBoundForm.classificationCode" placeholder="请输入分类编码" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="效用年限(年)" prop="idCard">
<el-input v-model="outBoundForm" placeholder="请输入效用年限" disabled></el-input>
<el-form-item label="效用年限(年)" prop="lifeOfUtility">
<el-input v-model="outBoundForm.lifeOfUtility" placeholder="请输入效用年限" disabled></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="单位" prop="idCard">
<el-input v-model="outBoundForm" placeholder="请输入单位" disabled></el-input>
<el-form-item label="单位" prop="affiliationType">
<el-input v-model="outBoundForm.affiliationType" placeholder="请输入单位" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="使用人" prop="idCard">
<el-input v-model="outBoundForm" placeholder="请输入使用人" disabled></el-input>
<el-form-item label="使用人" prop="useName">
<el-input v-model="outBoundForm.useName" placeholder="请输入使用人" disabled></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="12">
<el-form-item label="地点" prop="idCard">
<el-input v-model="outBoundForm" placeholder="请输入地点" disabled></el-input>
<el-form-item label="地点" prop="place">
<el-input v-model="outBoundForm.place" placeholder="请输入地点" disabled></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="30">
<el-col :span="24">
<el-form-item label="备注" prop="chemistry">
<el-input type="textarea" v-model="outBoundForm" placeholder="请输入备注" disabled></el-input>
<el-form-item label="备注" prop="remark">
<el-input type="textarea" v-model="outBoundForm.remark" placeholder="请输入备注" disabled></el-input>
</el-form-item>
</el-col>
</el-row>
......@@ -145,40 +146,98 @@
</template>
<script>
import {
getoutStock,
queryoutStock,
} from '@/api/smartSchool/schoolProperty/outboundLedger.js'
export default {
dicts: ['exam_type'],
dicts: ['equipment_state', 'affiliation_type'],
data() {
return {
queryParams: {
xc: '',
pageNum: 1,
pageSize: 10,
equipmentName: '',
affiliationType: '',
classificationCode: '',
equipmentState: '',
},
loading: false,
total: 0,
outBoundData: [
{studentName:"studentName"}
],
outBoundForm: {},
outBoundRules: [],
outBoundRules: {
},
dialogVisible: false,
}
},
methods:{
// 获取列表数据
getList(){},
created() {
this.getList();
},
methods: {
/** 查询列表 */
getList() {
this.loading = true;
getoutStock(this.queryParams).then((response) => {
this.outBoundData = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.dialogVisible = false;
// 重置搜索
resetQuery(){},
},
/** 重置按钮操作 */
resetQuery() {
this.queryParams = {
pageNum: 1,
pageSize: 10,
equipmentName: '',
affiliationType: '',
classificationCode: '',
equipmentState: '',
// 查看
handleOption(type,item){
this.dialogVisible = true
};
this.getList();
},
/** 查看详情 */
handleLook(row) {
const id = row.id || this.ids;
this.$modal.loading('正在加载数据,请稍等...');
queryoutStock(id).then(response => {
this.$modal.closeLoading();
this.outBoundForm = response.data;
this.dialogVisible = true;
this.isEdit = false;
this.title = "查看入库台帐";
//表单提交
submitForm(){},
}
}).catch(error => {
})
},
},
}
</script>
......
......@@ -13,7 +13,7 @@
:value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="维修状态" prop="disposeState">
<el-form-item label="处理状态" prop="disposeState">
<el-select v-model="queryParams.disposeState" placeholder="维修状态" clearable>
<el-option v-for="(item, index) in dict.type.repair_state" :key="index" :label="item.label"
:value="item.value"></el-option>
......@@ -26,8 +26,7 @@
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['system:application:add']">新增
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd">新增
</el-button>
</el-col>
</el-row>
......@@ -76,13 +75,11 @@
</el-table>
<!-- 新增/修改/查看对话框 -->
<el-dialog :title="title" :visible.sync="open" width="1200px" append-to-body @close="cancel">
<el-form ref="postForm" :model="postForm" :rules="rules" label-width="110px" :disabled="!isEditable"
:readonly="!isEditable">
<el-form ref="postForm" :model="postForm" :rules="rules" label-width="110px">
<el-row>
<el-col :span="12">
<el-form-item label="自编码" prop="encode">
<el-input v-model.lazy="postForm.encode" placeholder="自编码" @change="getRencode"
:readonly="!isEditable"></el-input>
<el-input v-model.lazy="postForm.encode" placeholder="自编码" @change="getRencode"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
......@@ -97,6 +94,7 @@
<el-input v-model="postForm.equipmentName" placeholder="设备名称"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="问题" prop="problem">
<el-input v-model="postForm.problem" placeholder="问题"></el-input>
......@@ -122,7 +120,8 @@
<el-col :span="12">
<el-form-item label="投产日期:" prop="dateOfProduction">
<el-date-picker v-model="postForm.dateOfProduction" type="date" placeholder="选择日期"
style="width: 100%;" value-format="yyyy-MM-dd" clearable></el-date-picker>
style="width: 100%;" value-format="yyyy-MM-dd" clearable
:readonly="isReadOnly"></el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
......@@ -139,8 +138,8 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="理状态" prop="disposeState">
<el-select v-model="postForm.disposeState" placeholder="维修状态" clearable style="width: 100%;">
<el-form-item label="理状态" prop="disposeState">
<el-select v-model="postForm.disposeState" placeholder="处理状态" clearable style="width: 100%;">
<el-option v-for="(item, index) in dict.type.repair_state" :key="index" :label="item.label"
:value="item.value"></el-option>
</el-select>
......@@ -199,6 +198,7 @@ export default {
dicts: ['dispose_state', 'repair_state'],
data() {
return {
isReadOnly: false,
sbflOptions: [],
repairStatusOptions: {
},
......@@ -382,7 +382,6 @@ export default {
handleUpdate(row) {
const id = row.id || this.ids;
this.title = "修改申请";
queryRepair(id).then(response => {
this.postForm = response.data;
this.open = true;
......@@ -408,12 +407,15 @@ export default {
this.$refs["postForm"].validate(valid => {
if (valid) {
this.$modal.loading('正在上传数据,请稍等...');
if (this.postForm.disposeState === 1 || this.postForm.disposeState === 0) {
this.postForm.repairState = 1;
if (this.postForm.disposeState === "1" || this.postForm.disposeState === "0") {
this.postForm.repairState = "1";
} else if (this.postForm.disposeState === null) {
this.postForm.repairState = "0";
} else {
this.postForm.repairState = 0;
this.postForm.repairState = "0"; // 当 disposeState 不满足上述条件时,默认设置为 0
}
if (this.postForm.id != null) {
editRepair(this.postForm).then(response => {
console.log('this.postForm',);
......@@ -426,11 +428,15 @@ export default {
});
} else {
if (this.postForm.disposeState === 1 || this.postForm.disposeState === 0) {
this.postForm.repairState = 1;
if (this.postForm.disposeState === "1" || this.postForm.disposeState === "0") {
this.postForm.repairState = "1";
} else if (this.postForm.disposeState === null) {
this.postForm.repairState = "0";
} else {
this.postForm.repairState = 0;
this.postForm.repairState = "0"; // 当 disposeState 不满足上述条件时,默认设置为 0
}
addRepair(this.postForm).then(response => {
console.log(this.postForm);
this.$modal.closeLoading();
......
......@@ -2,25 +2,21 @@
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" v-show="showSearch" inline>
<el-form-item label="设备名称">
<el-input v-model="queryParams.equipmentName" @keyup.enter.native="handleQuery" clearable
placeholder="请输入设备名称"></el-input>
<el-input v-model="queryParams.equipmentName" clearable placeholder="请输入设备名称"></el-input>
</el-form-item>
<el-form-item label="归属类型">
<el-select v-model="queryParams.belongType" @keyup.enter.native="handleQuery" clearable
placeholder="请选择归属类型">
<el-option v-for="dict in dict.type.BelongType" :key="dict.value" :label="dict.label"
:value="dict.value" />
<el-select v-model="queryParams.affiliationType" placeholder="请选择归属类型" clearable>
<el-option v-for="(item, index) in dict.type.affiliation_type" :key="index" :label="item.label"
:value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="分类编码">
<el-input v-model="queryParams.equipmentCode" @keyup.enter.native="handleQuery" clearable
placeholder="请输入分类编码"></el-input>
<el-input v-model="queryParams.classificationCode" clearable placeholder="请输入分类编码"></el-input>
</el-form-item>
<el-form-item label="设备状态">
<el-select v-model="queryParams.equipmentStatus" @keyup.enter.native="handleQuery" clearable
placeholder="请选择设备状态">
<el-option v-for="dict in dict.type.EquipmentStatus" :key="dict.value" :label="dict.label"
:value="dict.value" />
<el-select v-model="queryParams.equipmentState" clearable placeholder="请选择设备状态">
<el-option v-for="(item, index) in dict.type.equipment_state" :key="index" :label="item.label"
:value="item.value"></el-option>
</el-select>
</el-form-item>
<el-button class="ml20" type="primary" icon="el-icon-search" size="mini" @click="getList">搜索
......@@ -29,41 +25,40 @@
</el-form>
<el-table stripe :data="warehousingLedger" width="100%">
<el-table-column header-align="center" align="center" type="index" width="50" />
<el-table-column header-align="center" align="center" prop="equipmentName" label="入库类型" />
<el-table-column header-align="center" align="center" prop="equipmentName" label="入库时间" />
<el-table-column header-align="center" align="center" prop="equipmentCode" label="自编码">
<el-table-column align="center" type="index" width="50" fixed="left" />
<el-table-column align="center" prop="inStockType" label="入库类型" fixed="left" />
<el-table-column align="center" prop="inStockTime" label="入库时间" width="200" fixed="left" />
<el-table-column align="center" prop="encode" label="自编码" width="200" fixed="left">
</el-table-column>
<el-table-column header-align="center" align="center" prop="equipmentName" label="设备名称">
<el-table-column align="center" prop="equipmentName" label="设备名称" fixed="left">
</el-table-column>
<el-table-column header-align="center" align="center" prop="equipmentModel" label="型号">
<el-table-column align="center" prop="model" label="型号" fixed="left">
</el-table-column>
<el-table-column header-align="center" align="center" prop="equipmentSpec" label="规格">
<el-table-column align="center" prop="specification" label="规格">
</el-table-column>
<el-table-column header-align="center" align="center" prop="equipmentTypeCode" label="分类编码">
<el-table-column align="center" prop="classificationCode" label="分类编码">
</el-table-column>
<el-table-column header-align="center" align="center" prop="equipmentUnit" label="单位">
<el-table-column align="center" prop="unit" label="单位">
</el-table-column>
<el-table-column header-align="center" align="center" prop="belongType" label="归属类型">
<el-table-column align="center" prop="affiliationType" label="归属类型">
</el-table-column>
<el-table-column header-align="center" align="center" prop="equipmentStatus" label="设备状态">
<el-table-column align="center" prop="equipmentState" label="设备状态">
</el-table-column>
<el-table-column header-align="center" align="center" prop="productionDate" label="投产日期">
<el-table-column align="center" prop="dateOfProduction" label="投产日期" width="130">
</el-table-column>
<el-table-column header-align="center" align="center" prop="equipmentPrice" label="价格(元)" width="120">
<el-table-column align="center" prop="price" label="价格(元)" width="100">
</el-table-column>
<el-table-column header-align="center" align="center" prop="usefulLife" label="效用年限(年)" width="150">
<el-table-column align="center" prop="lifeOfUtility" label="效用年限(年)" width="130">
</el-table-column>
<el-table-column header-align="center" align="center" prop="equipmentPlace" label="地点">
<el-table-column align="center" prop="place" label="地点">
</el-table-column>
<el-table-column header-align="center" align="center" prop="equipmentUser" label="使用人">
<el-table-column align="center" prop="useName" label="使用人">
</el-table-column>
<el-table-column header-align="center" align="center" prop="remark" label="备注">
<el-table-column align="center" prop="remark" label="备注">
</el-table-column>
<el-table-column label="操作" align="center" min-width="200px" fixed="right">
<el-table-column label="操作" width="180" align="center" fixed="right">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleLook(scope.row)"
v-hasPermi="['system:grade:edit']">查看
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleLook(scope.row)">查看
</el-button>
</template>
</el-table-column>
......@@ -77,38 +72,37 @@
<el-form ref="form" :model="form" :rules="rules" :disabled="!isEdit" label-width="120px">
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="入库类型:" prop="teacherName">
<el-input v-model="form.teacherName" placeholder="请输入入库类型" clearable
@click.native="selectTeacher"></el-input>
<el-form-item label="入库类型:" prop="inStockType">
<el-input v-model="form.inStockType" placeholder="请输入入库类型" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="地点:" prop="equipmentName">
<el-input v-model="form.equipmentName" placeholder="请输入地点" clearable></el-input>
<el-form-item label="地点:" prop="place">
<el-input v-model="form.place" placeholder="请输入地点" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="入库时间:" prop="teacherName">
<el-input v-model="form.teacherName" placeholder="请输入库时间" clearable></el-input>
<el-form-item label="入库时间:" prop="inStockTime">
<el-input v-model="form.inStockTime" placeholder="请输入库时间" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="归属类型:" prop="equipmentName">
<el-input v-model="form.equipmentName" placeholder="请输入归属类型" clearable></el-input>
<el-form-item label="归属类型:" prop="affiliationType">
<el-input v-model="form.affiliationType" placeholder="请输入归属类型" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="设备名称:" prop="equipmentModel">
<el-input v-model="form.equipmentModel" placeholder="请输入设备名称" clearable></el-input>
<el-form-item label="设备名称:" prop="equipmentName">
<el-input v-model="form.equipmentName" placeholder="请输入设备名称" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="设备状态:" prop="equipmentStatus">
<el-select v-model="form.equipmentStatus" placeholder="请选择设备状态" style="width: 100%;">
<el-form-item label="设备状态:" prop="equipmentState">
<el-select v-model="form.equipmentState" placeholder="请选择设备状态" style="width: 100%;">
<el-option label="正常" value="0"></el-option>
<el-option label="维修" value="1"></el-option>
<el-option label="报废" value="2"></el-option>
......@@ -119,13 +113,13 @@
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="型号:" prop="equipmentType">
<el-input v-model="form.equipmentType" placeholder="请输入型号" clearable></el-input>
<el-form-item label="型号:" prop="model">
<el-input v-model="form.model" placeholder="请输入型号" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="投产日期:" prop="equipmentProductionDate" style="width: 100%;">
<el-date-picker v-model="form.equipmentProductionDate" type="date" placeholder="选择日期"
<el-form-item label="投产日期:" prop="dateOfProduction" style="width: 100%;">
<el-date-picker v-model="form.dateOfProduction" type="date" placeholder="选择日期"
style="width: 100%;" value-format="yyyy-MM-dd" clearable></el-date-picker>
</el-form-item>
......@@ -134,13 +128,13 @@
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="规格:" prop="equipmentBelongType">
<el-input v-model="form.equipmentBelongType" placeholder="请输入规格" clearable></el-input>
<el-form-item label="规格:" prop="specification">
<el-input v-model="form.specification" placeholder="请输入规格" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="价格(元):" prop="equipmentPrice">
<el-input v-model="form.equipmentPrice" placeholder="请输入价格(元)" clearable></el-input>
<el-form-item label="价格(元):" prop="price">
<el-input v-model="form.price" placeholder="请输入价格(元)" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
......@@ -148,25 +142,25 @@
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="分类编码:" prop="equipmentBelongType">
<el-input v-model="form.equipmentBelongType" placeholder="请输入分类编码" clearable></el-input>
<el-form-item label="分类编码:" prop="classificationCode">
<el-input v-model="form.classificationCode" placeholder="请输入分类编码" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="效用年限(年):" prop="equipmentPrice">
<el-input v-model="form.equipmentPrice" placeholder="请输入效用年限(年)" clearable></el-input>
<el-form-item label="效用年限(年):" prop="lifeOfUtility">
<el-input v-model="form.lifeOfUtility" placeholder="请输入效用年限(年)" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="单位:" prop="equipmentBelongType">
<el-input v-model="form.equipmentBelongType" placeholder="请输入单位" clearable></el-input>
<el-form-item label="单位:" prop="unit">
<el-input v-model="form.unit" placeholder="请输入单位" clearable></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="使用人:" prop="equipmentPrice">
<el-input v-model="form.equipmentPrice" placeholder="请输入使用人" clearable></el-input>
<el-form-item label="使用人:" prop="useName">
<el-input v-model="form.useName" placeholder="请输入使用人" clearable></el-input>
</el-form-item>
</el-col>
</el-row>
......@@ -193,13 +187,13 @@
<script>
import {
} from "@/api/smartSchool/teachAffairAdministration/affairClassManage/index";
import { getToken } from "@/utils/auth";
getinStock,
queryinStock,
} from '@/api/smartSchool/schoolProperty/warehousingLedger.js'
export default {
dicts: [],
dicts: ['equipment_state', 'affiliation_type'],
name: "index",
data() {
return {
......@@ -216,9 +210,9 @@ export default {
// 总条数
total: 0,
// 入库台帐
warehousingLedger: [{
equipmentName: "电脑",
}],
warehousingLedger: [
],
// 弹出层标题
title: "",
// 查看对话框
......@@ -228,11 +222,16 @@ export default {
queryParams: {
pageNum: 1,
pageSize: 10,
equipmentName: '',
affiliationType: '',
classificationCode: '',
equipmentState: '',
},
isEdit: false,
// 表单参数
form: {},
batchForm: {},
// 表单校验
rules: {
......@@ -240,75 +239,55 @@ export default {
},
// 表单是否可以修改、
isEdit: true,
};
},
created() {
this.getList()
},
methods: {
/** 查询学校班级列表 */
/** 查询列表 */
getList() {
this.loading = true;
// getClassList(this.queryParams).then((response) => {
// this.warehousingLedger = response.rows;
// this.total = response.total;
// this.loading = false;
// });
getinStock(this.queryParams).then((response) => {
this.warehousingLedger = response.rows;
this.total = response.total;
this.loading = false;
});
},
// 取消按钮
cancel() {
this.dialogVisible = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
};
// this.imageUrl = '';
//表单可编辑
this.isEdit = true;
this.resetForm("form");
},
/** 重置按钮操作 */
resetQuery() {
this.queryParams = {
pageNum: 1,
pageSize: 10,
equipmentName: '',
affiliationType: '',
classificationCode: '',
equipmentState: '',
};
//
this.getList();
},
/** 查看详情 */
handleLook(row) {
this.reset();
// const id = row.id || this.ids;
// this.$modal.loading('正在加载数据,请稍等...');
// getDetailInfo(id).then(response => {
// this.$modal.closeLoading();
// this.form = response.data;
const id = row.id || this.ids;
this.$modal.loading('正在加载数据,请稍等...');
queryinStock(id).then(response => {
this.$modal.closeLoading();
this.form = response.data;
this.dialogVisible = true;
this.isEdit = false;
this.title = "查看入库台帐";
// this.isEdit = false;
// }).catch(error => {
// this.$modal.closeLoading();
// })
}).catch(error => {
})
},
......@@ -329,32 +308,4 @@ export default {
};
</script>
<style>
.avatar-uploader .el-upload {
border: 1px dashed #d9d9d9;
border-radius: 6px;
cursor: pointer;
position: relative;
overflow: hidden;
}
.avatar-uploader .el-upload:hover {
border-color: #409eff;
}
.avatar-uploader-icon {
font-size: 28px;
color: #8c939d;
width: 178px;
height: 178px;
line-height: 178px;
text-align: center;
}
.avatar {
width: 178px;
height: 178px;
display: block;
}
</style>
<style></style>
......@@ -117,6 +117,7 @@ public class SchoolTeacherController extends BaseController {
schoolTeacherService.checkTeacherCodeUnique(schoolTeacherVO);
schoolTeacherService.checkTeacherTelUnique(schoolTeacherVO);
schoolTeacherService.checkIdCardUnique(schoolTeacherVO);
schoolTeacherService.checkPasswordUnique(schoolTeacherVO);
if(StringUtils.isNotEmpty(schoolTeacherVO.getEmail())){
schoolTeacherService.checkEmailUnique(schoolTeacherVO);
}
......
package yangtz.cs.liu.campus.domain.schoolEquipment;
import com.ruoyi.common.annotation.Excel;
import java.util.Date;
import com.core.domain.OurBaseEntity;
......@@ -35,6 +36,9 @@ public class SchoolCirculation extends OurBaseEntity
/** 借用期限(天) */
private Long deadline;
/** 归还状态(0=未归还,1=已归还)" */
private String returnState;
/** 归还日期 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date returnTime;
......
......@@ -17,6 +17,9 @@ public class SchoolEquipmentRepair extends OurBaseEntity
{
/** 设备id */
private Long id;
/** 设备id */
private Long equipmentId;
/** 分类编码 */
......
......@@ -4,6 +4,7 @@ import java.util.Date;
import com.core.domain.OurBaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import lombok.Data;
/**
......@@ -29,6 +30,9 @@ public class SchoolReceive extends OurBaseEntity
/** 领用人 */
private String recipientBy;
/** 退还状态(0=未退还,1=已退还)" */
private String returnState;
/** 退还日期 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date returnTime;
......@@ -52,4 +56,5 @@ public class SchoolReceive extends OurBaseEntity
/** 备注 */
private String remark;
}
......@@ -30,13 +30,14 @@ public interface CirculationMapper extends BaseMapper<SchoolCirculation> {
* @return
*/
int deleteSchoolCirculationByIds(Long[] ids);
@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}")
@Select("SELECT sc.id,el.model,el.encode,sc.borrow_by,sc.borrow_time,sc.return_state,sc.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} and sc.del_flag=0")
List<SchoolCirculationVo> getReturningEquipmentByadminId(@Param("adminId") Long adminId);
@Select(" SELECT el.encode,el.equipment_name,el.model,sc.borrow_time ,sc.borrow_by, sc.purpose,sc.deadline ,\n"
+ "sc.return_equipment_condition,sc.return_time,sc.remark FROM school_circulation sc LEFT JOIN school_equipment_ledger el on sc.equipment_id = el.id\n"
+ "WHERE sc.id =#{id} ")
+ "WHERE sc.id =#{id} and and sc.del_flag=0 ")
SchoolCirculationVo getSchoolCirculationVoById(@Param("id")Long id);
}
......@@ -16,19 +16,25 @@ public interface EquipmentRepairMapper extends BaseMapper<SchoolEquipmentRepair>
@Select("SELECT er.id,er.equipment_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}")
+ "FROM school_equipment_repair er LEFT JOIN school_equipment_ledger el ON er.equipment_id=el.id WHERE er.id=#{id} and er.del_flag=0")
public SchoolEquipmentRepairVo getEquipmentById(@Param("id") Long id);
@Select("SELECT er.id,er.equipment_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.report_repair_id=#{reportRepairid}")
+ "FROM school_equipment_repair er LEFT JOIN school_equipment_ledger el ON er.equipment_id=el.id WHERE er.report_repair_id=#{reportRepairid} and er.del_flag=0")
public List<SchoolEquipmentRepairVo> getMaintenanceList(@Param("reportRepairid") Long reportRepairid);
@Select("SELECT er.id,er.equipment_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")
+ "FROM school_equipment_repair er LEFT JOIN school_equipment_ledger el ON er.equipment_id=el.id and er.del_flag=0 ")
public List<SchoolEquipmentRepairVo> getlist();
@Select("SELECT er.id,er.equipment_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 and er.del_flag=0")
public List<SchoolEquipmentRepairVo> getMaintenanceUserList();
/**
......
......@@ -81,7 +81,7 @@ public class CountServiceImpl implements ICountService {
int officialNum = flowMapper.getTodoTotal(userId,UNDONE);
/**调查问卷任务数*/
int investigate = examMainMapper.getTodoTotal(userId);
// int investigate = examMainMapper.getTodoTotal(userId);
/**采购申请审批任务数*/
int purchaseRequisition = getNum(PURCHASEREQUEST, userId.toString());
......@@ -97,7 +97,7 @@ public class CountServiceImpl implements ICountService {
vo.setTLeaveNum(tLeaveNum);
vo.setOfficialNum(officialNum);
vo.setInvestigate(investigate);
// vo.setInvestigate(investigate);
vo.setPurchaseRequisition(purchaseRequisition);
vo.setSLeaveNum(sLeaveNum);
vo.setAuditoriumNum(auditoriumNum);
......
......@@ -36,7 +36,7 @@ public class CirculationServiceImpl extends ServiceImpl<CirculationMapper, Schoo
* @return
*/
@Override
@DataScope(userAlias = "u")
// @DataScope(userAlias = "u")
public List<SchoolCirculationVo> selectSchoolCirculationVoList(SchoolCirculationVo schoolCirculationVo) {
return circulationMapper.selectSchoolCirculationVoList(schoolCirculationVo);
}
......
......@@ -108,6 +108,15 @@ public class EquipmentRepairServiceImpl extends ServiceImpl<EquipmentRepairMappe
return equipmentRepairMapper.getMaintenanceList(reportRepairid);
}
/**
* 管理员获取所有维修列表
* @return
*/
@Override
public List<SchoolEquipmentRepairVo> getlist() {
return equipmentRepairMapper.getlist();
}
@Override
public List<SchoolEquipmentRepairVo> getMaintenanceUserList() {
return equipmentRepairMapper.getMaintenanceUserList();
......
......@@ -34,6 +34,7 @@ import yangtz.cs.liu.campus.vo.teacher.TeacherNameListVo;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import static com.baomidou.mybatisplus.core.toolkit.ObjectUtils.isNotNull;
......@@ -415,6 +416,21 @@ public class SchoolTeacherServiceImpl extends ServiceImpl<SchoolTeacherMapper, S
}
}
/**
* 检查密码是否符合条件(密码必须包含大小写字母、数字、特殊字符中的任意三种)
* @param schoolTeacherVO
*/
@Override
public void checkPasswordUnique(SchoolTeacherVO schoolTeacherVO) {
String password = schoolTeacherVO.getPassword();
// String pattern = "^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)[A-Za-z\\d]{8,}$";
String pattern = "^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\\W_]+$)(?![a-z0-9]+$)(?![a-z\\W_]+$)(?![0-9\\W_]+$)[a-zA-Z0-9\\W_]{8,}$";
boolean matches = Pattern.matches(pattern, password);
if (matches == false){
throw new ServiceException("密码必须包含大小写字母、数字、特殊字符中的任意三种");
}
}
@Override
public int insert(SchoolTeacherVO schoolTeacherVO) {
......
......@@ -60,6 +60,8 @@ public interface IEquipmentRepairService extends IService<SchoolEquipmentRepair>
public List<SchoolEquipmentRepairVo> getMaintenanceList(Long reportRepairid);
public List<SchoolEquipmentRepairVo> getlist();
public List<SchoolEquipmentRepairVo> getMaintenanceUserList();
......
......@@ -90,6 +90,8 @@ public interface ISchoolTeacherService extends IService<SchoolTeacher> {
/**检查邮箱账号是否唯一*/
void checkEmailUnique(SchoolTeacherVO schoolTeacher);
/**检查密码是否符合条件(密码必须包含大小写字母,数字)*/
void checkPasswordUnique(SchoolTeacherVO schoolTeacherVO);
/**
* 新增教师
......@@ -142,4 +144,6 @@ public interface ISchoolTeacherService extends IService<SchoolTeacher> {
* 根据userId 查询 openId
*/
String getOpenIdByUserId(Long userId);
}
......@@ -58,6 +58,10 @@ public class SchoolCirculationVo extends BaseEntity
@Excel(name = "借用期限(天)")
private Long deadline;
/** 归还状态(0=未归还,1=已归还)" */
@Excel(name = "归还状态", readConverterExp = "1=已归还,0=未归还")
private String returnState;
/** 归还日期 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "归还日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
......@@ -87,4 +91,5 @@ public class SchoolCirculationVo extends BaseEntity
/** 备注 */
@Excel(name = "备注")
private String remark;
}
......@@ -49,6 +49,10 @@ public class SchoolReceiveVo extends BaseEntity
@Excel(name = "领用人")
private String recipientBy;
/** 退还状态(0=未退还,1=已退还)" */
@Excel(name = "退还状态", readConverterExp = "1=已退还,0=未退还")
private String returnState;
/** 退还日期 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "退还日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
......
package yangtz.cs.liu.wechat.controller.api;
import java.security.MessageDigest;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class Sha1Util {
private static final int[] abcde = {
0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0
};
// 摘要数据存储数组
private static int[] digestInt = new int[5];
// 计算过程中的临时数据存储数组
private static int[] tmpData = new int[80];
// 计算sha-1摘要
private static int process_input_bytes(byte[] bytedata) {
// 初试化常量
System.arraycopy(abcde, 0, digestInt, 0, abcde.length);
// 格式化输入字节数组,补10及长度数据
byte[] newbyte = byteArrayFormatData(bytedata);
// 获取数据摘要计算的数据单元个数
int MCount = newbyte.length / 64;
// 循环对每个数据单元进行摘要计算
for (int pos = 0; pos < MCount; pos++) {
// 将每个单元的数据转换成16个整型数据,并保存到tmpData的前16个数组元素中
for (int j = 0; j < 16; j++) {
tmpData[j] = byteArrayToInt(newbyte, (pos * 64) + (j * 4));
}
// 摘要计算函数
encrypt();
}
return 20;
}
// 格式化输入字节数组格式
private static byte[] byteArrayFormatData(byte[] bytedata) {
// 补0数量
int zeros = 0;
// 补位后总位数
int size = 0;
// 原始数据长度
int n = bytedata.length;
// 模64后的剩余位数
int m = n % 64;
// 计算添加0的个数以及添加10后的总长度
if (m < 56) {
zeros = 55 - m;
size = n - m + 64;
} else if (m == 56) {
zeros = 63;
size = n + 8 + 64;
} else {
zeros = 63 - m + 56;
size = (n + 64) - m + 64;
}
// 补位后生成的新数组内容
byte[] newbyte = new byte[size];
// 复制数组的前面部分
System.arraycopy(bytedata, 0, newbyte, 0, n);
// 获得数组Append数据元素的位置
int l = n;
// 补1操作
newbyte[l++] = (byte) 0x80;
// 补0操作
for (int i = 0; i < zeros; i++) {
newbyte[l++] = (byte) 0x00;
}
// 计算数据长度,补数据长度位共8字节,长整型
long N = (long) n * 8;
byte h8 = (byte) (N & 0xFF);
byte h7 = (byte) ((N >> 8) & 0xFF);
byte h6 = (byte) ((N >> 16) & 0xFF);
byte h5 = (byte) ((N >> 24) & 0xFF);
byte h4 = (byte) ((N >> 32) & 0xFF);
byte h3 = (byte) ((N >> 40) & 0xFF);
byte h2 = (byte) ((N >> 48) & 0xFF);
byte h1 = (byte) (N >> 56);
newbyte[l++] = h1;
newbyte[l++] = h2;
newbyte[l++] = h3;
newbyte[l++] = h4;
newbyte[l++] = h5;
newbyte[l++] = h6;
newbyte[l++] = h7;
newbyte[l++] = h8;
return newbyte;
}
private static int f1(int x, int y, int z) {
return (x & y) | (~x & z);
}
private static int f2(int x, int y, int z) {
return x ^ y ^ z;
}
private static int f3(int x, int y, int z) {
return (x & y) | (x & z) | (y & z);
}
private static int f4(int x, int y) {
return (x << y) | x >>> (32 - y);
}
// 单元摘要计算函数
private static void encrypt() {
for (int i = 16; i <= 79; i++) {
tmpData[i] = f4(tmpData[i - 3] ^ tmpData[i - 8] ^ tmpData[i - 14] ^
tmpData[i - 16], 1);
}
int[] tmpabcde = new int[5];
for (int i1 = 0; i1 < tmpabcde.length; i1++) {
tmpabcde[i1] = digestInt[i1];
}
for (int j = 0; j <= 19; j++) {
int tmp = f4(tmpabcde[0], 5) +
f1(tmpabcde[1], tmpabcde[2], tmpabcde[3]) + tmpabcde[4] +
tmpData[j] + 0x5a827999;
tmpabcde[4] = tmpabcde[3];
tmpabcde[3] = tmpabcde[2];
tmpabcde[2] = f4(tmpabcde[1], 30);
tmpabcde[1] = tmpabcde[0];
tmpabcde[0] = tmp;
}
for (int k = 20; k <= 39; k++) {
int tmp = f4(tmpabcde[0], 5) +
f2(tmpabcde[1], tmpabcde[2], tmpabcde[3]) + tmpabcde[4] +
tmpData[k] + 0x6ed9eba1;
tmpabcde[4] = tmpabcde[3];
tmpabcde[3] = tmpabcde[2];
tmpabcde[2] = f4(tmpabcde[1], 30);
tmpabcde[1] = tmpabcde[0];
tmpabcde[0] = tmp;
}
for (int l = 40; l <= 59; l++) {
int tmp = f4(tmpabcde[0], 5) +
f3(tmpabcde[1], tmpabcde[2], tmpabcde[3]) + tmpabcde[4] +
tmpData[l] + 0x8f1bbcdc;
tmpabcde[4] = tmpabcde[3];
tmpabcde[3] = tmpabcde[2];
tmpabcde[2] = f4(tmpabcde[1], 30);
tmpabcde[1] = tmpabcde[0];
tmpabcde[0] = tmp;
}
for (int m = 60; m <= 79; m++) {
int tmp = f4(tmpabcde[0], 5) +
f2(tmpabcde[1], tmpabcde[2], tmpabcde[3]) + tmpabcde[4] +
tmpData[m] + 0xca62c1d6;
tmpabcde[4] = tmpabcde[3];
tmpabcde[3] = tmpabcde[2];
tmpabcde[2] = f4(tmpabcde[1], 30);
tmpabcde[1] = tmpabcde[0];
tmpabcde[0] = tmp;
}
for (int i2 = 0; i2 < tmpabcde.length; i2++) {
digestInt[i2] = digestInt[i2] + tmpabcde[i2];
}
for (int n = 0; n < tmpData.length; n++) {
tmpData[n] = 0;
}
}
// 4字节数组转换为整数
private static int byteArrayToInt(byte[] bytedata, int i) {
return ((bytedata[i] & 0xff) << 24) | ((bytedata[i + 1] & 0xff) << 16) |
((bytedata[i + 2] & 0xff) << 8) | (bytedata[i + 3] & 0xff);
}
// 整数转换为4字节数组
private static void intToByteArray(int intValue, byte[] byteData, int i) {
byteData[i] = (byte) (intValue >>> 24);
byteData[i + 1] = (byte) (intValue >>> 16);
byteData[i + 2] = (byte) (intValue >>> 8);
byteData[i + 3] = (byte) intValue;
}
// 将字节转换为十六进制字符串
private static String byteToHexString(byte ib) {
char[] Digit = {
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C',
'D', 'E', 'F'
};
char[] ob = new char[2];
ob[0] = Digit[(ib >>> 4) & 0X0F];
ob[1] = Digit[ib & 0X0F];
String s = new String(ob);
return s;
}
// 将字节数组转换为十六进制字符串
private static String byteArrayToHexString(byte[] bytearray) {
String strDigest = "";
for (int i = 0; i < bytearray.length; i++) {
strDigest += byteToHexString(bytearray[i]);
}
return strDigest;
}
// 计算sha-1摘要,返回相应的字节数组
public static byte[] getDigestOfBytes(byte[] byteData) {
process_input_bytes(byteData);
byte[] digest = new byte[20];
for (int i = 0; i < digestInt.length; i++) {
intToByteArray(digestInt[i], digest, i * 4);
}
return digest;
}
// 计算sha-1摘要,返回相应的十六进制字符串
public static String getDigestOfString(byte[] byteData) {
return byteArrayToHexString(getDigestOfBytes(byteData));
}
/**
* @Comment SHA1实现
* @Author Ron
* @Date 2017年9月13日 下午3:30:36
* @return
*/
public static String shaEncode(String inStr) throws Exception {
MessageDigest sha = null;
try {
sha = MessageDigest.getInstance("SHA");
} catch (Exception e) {
System.out.println(e.toString());
e.printStackTrace();
return "";
}
byte[] byteArray = inStr.getBytes("UTF-8");
byte[] md5Bytes = sha.digest(byteArray);
StringBuffer hexValue = new StringBuffer();
for (int i = 0; i < md5Bytes.length; i++) {
int val = ((int) md5Bytes[i]) & 0xff;
if (val < 16) {
hexValue.append("0");
}
hexValue.append(Integer.toHexString(val));
}
return hexValue.toString();
}
public static void main(String[] args) {
String[] array = {"fwwrr1223423ffff","VUkHJgW2SFNG4xhs6ZntSGDE-Z15MUTKs7pkKW7UnqMUv-GjswW5CWV38QXj_5-fRvEwyx842tP2j4Kw1HPE1Q","1617865042","pm4UL50ZAuQXDGihuENshhUWzIE8"};
List<String> list = new ArrayList<String>();
for(String str : array) {
list.add(str);
}
String buff = "";
Collections.sort(list,new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
// 返回值为int类型,大于0表示正序,小于0表示逆序
Integer minLength = o1.length();
if(minLength > o2.length()) {
minLength = o2.length();
}
for(int i=0;i<minLength;i++) {
char a = (char)o1.charAt(i);
char b = (char)o2.charAt(i);
if(a == b) {
continue;
}
if(a > b) {
return 1;
}else {
return -1;
}
}
return 0;
}
});
for(String str : list) {
buff += str;
}
System.out.println(buff);
String data = "1617865042VUkHJgW2SFNG4xhs6ZntSGDE-Z15MUTKs7pkKW7UnqMUv-GjswW5CWV38QXj_5-fRvEwyx842tP2j4Kw1HPE1Qewwrr122342341223pm4UL50ZAuQXDGihuENshhUWzIE8";
//3205FB63131DF9B9428FD90C09267F379E122356
String digest = Sha1Util.getDigestOfString(data.getBytes()).toLowerCase();
System.out.println(digest);
}
}
......@@ -17,7 +17,9 @@ import com.ruoyi.framework.util.UserInfoUtil;
import com.ruoyi.framework.manager.AsyncManager;
import com.ruoyi.framework.manager.factory.AsyncFactory;
import com.ruoyi.framework.web.service.MpTokenService;
import com.ruoyi.framework.web.service.SysPermissionService;
import com.ruoyi.system.service.ISysUserService;
import java.util.Set;
import org.apache.commons.codec.binary.Base64;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -70,6 +72,8 @@ public class WxLoginController extends BaseController {
@Value("${server.port}")
private String port;
@Autowired
private SysPermissionService permissionService;
private Logger log = LoggerFactory.getLogger(WxLoginController.class);
......@@ -125,6 +129,9 @@ public class WxLoginController extends BaseController {
}
mpLoginUser.setAvatar(user.getAvatar());
}
// 角色集合
Set<String> roles = permissionService.getRolePermission(user);
mpLoginUser.setRoles(roles);
return AjaxResult.success().put("userInfo",mpLoginUser);
}
......
......@@ -2,12 +2,16 @@ package yangtz.cs.liu.wechat.controller.equipment;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysRole;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.system.service.ISysUserService;
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.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
......@@ -47,6 +51,9 @@ public class EquipmentLeaseController {
@Autowired
SchoolReceiveService schoolReceiveService;
@Autowired
ISysUserService iSysUserService;
/**
* 扫码借用获取设备基本信息
*/
......@@ -62,11 +69,12 @@ public class EquipmentLeaseController {
* 我的借用记录
*/
@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);
private AjaxResult getMyBorrowList(@PathVariable("borrowById") Long borrowById){
SchoolCirculationVo schoolCirculationVo = new SchoolCirculationVo();
schoolCirculationVo.setBorrowById(borrowById);
List<SchoolCirculationVo> schoolCirculationVos = iCirculationService
.selectSchoolCirculationVoList(schoolCirculationVo);
return AjaxResult.success(schoolCirculationVos);
}
/**
......@@ -80,6 +88,7 @@ public class EquipmentLeaseController {
calendar.setTime(borrowTime);
calendar.add(Calendar.DATE,Integer.valueOf(deadline.toString()));
Date targetDate = calendar.getTime();
schoolCirculation.setReturnState("0");
schoolCirculation.setReturnTime(targetDate);
boolean save = iCirculationService.save(schoolCirculation);
//修改设备表借出状态
......@@ -132,10 +141,25 @@ public class EquipmentLeaseController {
*/
@GetMapping("/getMaintenanceList/{reportRepairid}")
private AjaxResult getMaintenanceList(@PathVariable("reportRepairid") Long reportRepairid){
Boolean flag= false;
//1.管理员可以查看所有维修列表
SysUser sysUser = iSysUserService.selectUserById(reportRepairid);
List<SysRole> roles = sysUser.getRoles();
for(SysRole data :roles){
if (data.getRoleKey().contains("admin") || data.getRoleKey().contains("productCategoryAdmin")){
flag=true;
break;
}
};
if (false){
List<SchoolEquipmentRepairVo> getlist = iEquipmentRepairService.getlist();
return AjaxResult.success(getlist);
}else {
List<SchoolEquipmentRepairVo> maintenanceList = iEquipmentRepairService
.getMaintenanceList(reportRepairid);
return AjaxResult.success(maintenanceList);
}
}
/**
* 设备维修-新增
......@@ -162,6 +186,15 @@ public class EquipmentLeaseController {
boolean save = iEquipmentRepairService.updateById(schoolEquipmentRepair);
return AjaxResult.success(save);
}
/**
* 设备报修删除
*/
@DeleteMapping("/deletEuipemnt/{id}")
private AjaxResult deletEuipemnt(@PathVariable("id") Long id){
boolean b = iEquipmentRepairService.removeById(id);
return AjaxResult.success(b);
}
/**
* 报修台账反馈列表 设备维修记录id
*/
......@@ -224,6 +257,7 @@ public class EquipmentLeaseController {
*/
@PutMapping("returnDevice")
private AjaxResult returnDevice(@RequestBody SchoolCirculation schoolCirculation){
schoolCirculation.setReturnState("1");
boolean b = iCirculationService.updateById(schoolCirculation);
//修改设备表借出状态
SchoolEquipmentLedger byId = iEquipmentService.getById(schoolCirculation.getEquipmentId());
......@@ -232,4 +266,16 @@ public class EquipmentLeaseController {
return AjaxResult.success(b);
}
/**
* 获取修理人下拉框
* @return
*/
@GetMapping("/getRepair")
public AjaxResult getRepair(){
return AjaxResult.success(iEquipmentRepairService.getRepair());
}
}
......@@ -26,6 +26,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="delFalg" column="del_flag" />
<result property="returnState" column="return_state" />
</resultMap>
<select id="selectSchoolCirculationVoList" parameterType="SchoolCirculationVo" resultMap="schoolCirculationVoResult">
......@@ -35,6 +36,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
el.encode,
el.equipment_name,
el.model,
c.return_state,
c.borrow_time,
c.borrow_by_id,
c.borrow_by,
......@@ -60,6 +62,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
c.del_flag = '0'
<if test="equipmentName != null and equipmentName != ''">and el.equipment_name like concat('%', #{equipmentName}, '%')</if>
<if test="borrowTime != null and borrowTime != ''">and c.borrow_time = #{borrowTime}</if>
<if test="borrowById != null and borrowById != ''">and c.borrow_by_id = #{borrowById}</if>
<!-- 数据范围过滤 -->
${params.dataScope}
</select>
......
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