Commit 17503e8c by duxingshan

Merge remote-tracking branch 'origin/master'

parents f0bb03ee 61187cd8
...@@ -104,6 +104,7 @@ public class SysProfileController extends BaseController ...@@ -104,6 +104,7 @@ public class SysProfileController extends BaseController
LoginUser loginUser = getLoginUser(); LoginUser loginUser = getLoginUser();
String userName = loginUser.getUsername(); String userName = loginUser.getUsername();
String password = loginUser.getPassword(); String password = loginUser.getPassword();
userService.checkPasswordUnique(newPassword);
if (!SecurityUtils.matchesPassword(oldPassword, password)) if (!SecurityUtils.matchesPassword(oldPassword, password))
{ {
return AjaxResult.error("修改密码失败,旧密码错误"); return AjaxResult.error("修改密码失败,旧密码错误");
......
...@@ -197,6 +197,7 @@ public class SysUserController extends BaseController ...@@ -197,6 +197,7 @@ public class SysUserController extends BaseController
{ {
userService.checkUserAllowed(user); userService.checkUserAllowed(user);
userService.checkUserDataScope(user.getUserId()); userService.checkUserDataScope(user.getUserId());
userService.checkPasswordUnique(user.getPassword());
user.setPassword(SecurityUtils.encryptPassword(user.getPassword())); user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
user.setUpdateBy(getUsername()); user.setUpdateBy(getUsername());
return toAjax(userService.resetPwd(user)); return toAjax(userService.resetPwd(user));
......
package com.ruoyi.common.core.domain.model; package com.ruoyi.common.core.domain.model;
import java.util.Set;
import lombok.Data; import lombok.Data;
/** /**
...@@ -114,4 +115,9 @@ public class MpLoginUser { ...@@ -114,4 +115,9 @@ public class MpLoginUser {
头像 头像
*/ */
private String avatar; private String avatar;
/**
* 角色权限
*/
private Set<String> roles;
} }
...@@ -277,4 +277,8 @@ public interface ISysUserService { ...@@ -277,4 +277,8 @@ public interface ISysUserService {
* 根据userId更新openId * 根据userId更新openId
* */ * */
public boolean updateOpenId(Long userId, String openId); public boolean updateOpenId(Long userId, String openId);
/**检查密码是否符合条件(密码必须包含大小写字母、数字、特殊字符中的任意三种)*/
void checkPasswordUnique(String password);
} }
...@@ -2,6 +2,7 @@ package com.ruoyi.system.service.impl; ...@@ -2,6 +2,7 @@ package com.ruoyi.system.service.impl;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.regex.Pattern;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import javax.validation.Validator; import javax.validation.Validator;
...@@ -583,4 +584,18 @@ public class SysUserServiceImpl implements ISysUserService { ...@@ -583,4 +584,18 @@ public class SysUserServiceImpl implements ISysUserService {
public boolean updateOpenId(Long userId, String openId) { public boolean updateOpenId(Long userId, String openId) {
return userMapper.updateOpenId(userId,openId) > 0; 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 @@ ...@@ -82,10 +82,10 @@
<el-table-column label="操作" align="center"> <el-table-column label="操作" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['system:assets:edit']">编辑 >编辑
</el-button> </el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['system:assets:delete']">删除 >删除
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
......
...@@ -44,10 +44,10 @@ ...@@ -44,10 +44,10 @@
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleLook(scope.row)">查看 <el-button size="mini" type="text" icon="el-icon-edit" @click="handleLook(scope.row)">查看
</el-button> </el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['system:device:remove']">修改 >修改
</el-button> </el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['system:device:remove']">删除 >删除
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
......
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="80px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="80px">
<el-form-item label="设备名称" prop="studentName"> <el-form-item label="设备名称" prop="equipmentName">
<el-input v-model="queryParams.xc" placeholder="请输入设备名称" clearable/> <el-input v-model="queryParams.equipmentName" placeholder="请输入设备名称" clearable />
</el-form-item> </el-form-item>
<el-form-item label="领用人" prop="studentName"> <el-form-item label="领用人" prop="recipientBy">
<el-input v-model="queryParams.xc" placeholder="请输入领用人" clearable/> <el-input v-model="queryParams.recipientBy" placeholder="请输入领用人" clearable />
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="getList">搜索</el-button> <el-button type="primary" icon="el-icon-search" size="mini" @click="getList">搜索</el-button>
...@@ -14,159 +14,299 @@ ...@@ -14,159 +14,299 @@
</el-form> </el-form>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <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-col>
</el-row> </el-row>
<!-- 表格 -->
<el-table v-loading="loading" :data="collectionData" stripe> <el-table v-loading="loading" :data="collectionData" stripe>
<el-table-column type="selection" width="55"></el-table-column> <el-table-column type="selection" width="55"></el-table-column>
<el-table-column label="序号" type="index" width="55" align="center"/> <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="encode" />
<el-table-column label="设备名称" align="center" prop="studentNumber"/> <el-table-column label="设备名称" align="center" prop="equipmentName" />
<el-table-column label="型号" align="center" prop="studentNumber"/> <el-table-column label="型号" align="center" prop="model" />
<el-table-column label="领用日期" align="center" prop="studentNumber"/> <el-table-column label="领用日期" align="center" prop="recipientTime" />
<el-table-column label="领用人" align="center" prop="studentNumber"/> <el-table-column label="领用人" align="center" prop="recipientBy" />
<el-table-column label="退还日期" align="center" prop="studentNumber"/> <el-table-column label="退还日期" align="center" prop="returnTime" />
<el-table-column label="退还时设备情况" align="center" prop="studentNumber"/> <el-table-column label="退还时设备情况" align="center" prop="returnEquipmentCondition" />
<el-table-column label="接收人" align="center" prop="studentNumber"/> <el-table-column label="接收人" align="center" prop="receivedBy" />
<el-table-column label="备注" align="center" prop="studentNumber"/> <el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="操作" align="center" prop="orgname" width="150"> <el-table-column label="操作" align="center" prop="orgname" width="150">
<template slot-scope="{ row }"> <template slot-scope="{ row }">
<el-button type="text" size="small" @click="handleOption(1,row)">编辑</el-button> <el-button type="text" size="small" @click="handleUpdate(row)">编辑</el-button>
<el-button type="text" size="small" @click="handleOption(2,row)">查看</el-button> <el-button type="text" size="small" @click="handleLook(row)">查看</el-button>
<el-button type="text" size="small" @click="handleDelete(row.id)">删除</el-button> <el-button type="text" size="small" @click="handleDelete(row)">删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination ref="pageBlock" v-show="total > 0" :total="total" <pagination ref="pageBlock" v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList"/> :limit.sync="queryParams.pageSize" @pagination="getList" />
<!-- 新增、编辑、查看页面 --> <!-- 新增、编辑、查看页面 -->
<el-dialog title="详细信息" :visible.sync="dialogVisible" width="50%"> <el-dialog title="详细信息" :visible.sync="dialogVisible" width="50%">
<el-form :model="collectionForm" :rules="collectionRules" ref="achievementForm" <el-form :model="collectionForm" :rules="collectionRules" ref="achievementForm" label-width="110px"
label-width="110px" label-position="right"> label-position="right">
<el-row :gutter="30"> <el-row :gutter="30">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="自编码" prop="idCard"> <el-form-item label="自编码" prop="encode">
<el-input v-model="collectionForm" placeholder="请输入自编码"></el-input> <el-input v-model="collectionForm.encode" placeholder="请输入自编码" @change="getRencode"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="设备名称" prop="idCard"> <el-form-item label="设备名称" prop="equipmentName">
<el-input v-model="collectionForm" placeholder="请输入设备名称"></el-input> <el-input v-model="collectionForm.equipmentName" placeholder="请输入设备名称"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="30"> <el-row :gutter="30">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="型号" prop="idCard"> <el-form-item label="型号" prop="model">
<el-input v-model="collectionForm" placeholder="请输入型号"></el-input> <el-input v-model="collectionForm.model" placeholder="请输入型号"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="领用人" prop="idCard"> <el-form-item label="领用人" prop="recipientBy">
<el-input v-model="collectionForm" placeholder="请输入领用人"></el-input> <el-input v-model="collectionForm.recipientBy" placeholder="请输入领用人"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="30"> <el-row :gutter="30">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="领用日期" prop="idCard"> <el-form-item label="领用日期" prop="recipientTime">
<el-date-picker v-model="collectionForm" type="date" clearable class="selectWidth" <el-date-picker v-model="collectionForm.recipientTime" type="datetime" clearable class="selectWidth"
placeholder="请选择领用日期" format="yyyy-MM-dd"> placeholder="请选择领用日期" value-format="yyyy-MM-dd HH:mm:ss">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="退还日期" prop="idCard"> <el-form-item label="退还日期" prop="returnTime">
<el-date-picker v-model="collectionForm" type="date" clearable class="selectWidth" <el-date-picker v-model="collectionForm.returnTime" type="datetime" clearable class="selectWidth"
placeholder="请选择退还日期" format="yyyy-MM-dd"> placeholder="请选择退还日期" value-format="yyyy-MM-dd HH:mm:ss">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="30"> <el-row :gutter="30">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="接收人" prop="idCard"> <el-form-item label="接收人" prop="receivedBy">
<el-input v-model="collectionForm" placeholder="请输入接收人"></el-input> <el-input v-model="collectionForm.receivedBy" placeholder="请输入接收人"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="退还时设备情况" prop="idCard"> <el-form-item label="退还时设备情况" prop="returnEquipmentCondition">
<el-input v-model="collectionForm" placeholder="请输入退还时设备情况"></el-input> <el-input v-model="collectionForm.returnEquipmentCondition" placeholder="请输入退还时设备情况"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="30"> <el-row :gutter="30">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="预计使用时间" prop="idCard"> <el-form-item label="预计使用时间" prop="yjuseTime">
<el-date-picker v-model="collectionForm" type="datetime" clearable class="selectWidth" <el-date-picker v-model="collectionForm.yjuseTime" type="datetime" clearable class="selectWidth"
placeholder="请选择领用日期"> placeholder="请选择预计使用时间" value-format="yyyy-MM-dd HH:mm:ss">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="实际使用时间" prop="idCard"> <el-form-item label="实际使用时间" prop="sjuseTime">
<el-date-picker v-model="collectionForm" type="datetime" clearable class="selectWidth" <el-date-picker v-model="collectionForm.sjuseTime" type="datetime" clearable class="selectWidth"
placeholder="请选择退还日期"> placeholder="请选择实际使用时间" value-format="yyyy-MM-dd HH:mm:ss">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="30"> <el-row :gutter="30">
<el-col :span="24"> <el-col :span="24">
<el-form-item label="备注" prop="chemistry"> <el-form-item label="备注" prop="remark">
<el-input type="textarea" v-model="lendReturnForm" placeholder="请输入备注"></el-input> <el-input type="textarea" v-model="collectionForm.remark" placeholder="请输入备注"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <div style="text-align: center">
<el-button @click="dialogVisible = false">取 消</el-button> <el-button type="primary" v-show="isEditable" @click="submitForm">确 定</el-button>
<el-button type="primary" @click="submitForm">确 定</el-button> <el-button @click="cancel">{{ isEditable ? '取 消' : '退 出' }}</el-button>
</span> </div>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import {
getReceive,
queryReceive,
addReceive,
editReceive,
deleteReceive,
} from '@/api/smartSchool/schoolProperty/collectionLedger.js'
import {
getRepairencode,//根据自编码获取设备信息
} from '@/api/smartSchool/schoolProperty/repairApplicant.js'
export default { export default {
// dicts: [''], // dicts: [''],
data() { data() {
return { return {
queryParams: { queryParams: {
xc: '', equipmentName: '',
recipientBy: '',
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
}, },
loading: false, loading: false,
total: 0, total: 0,
collectionData: [], collectionData: [],
collectionForm: {}, //新增
collectionRules: [], collectionForm: {
encode: '',
equipmentName: '',
model: '',
recipientBy: '',
recipientTime: '',
returnTime: '',
receivedBy: '',
returnEquipmentCondition: '',
yjuseTime: '',
sjuseTime: '',
remark: '',
},
collectionRules: {
},
dialogVisible: false, 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查看 } catch (error) {
handleOption(type,item){
this.nowType = type
if(type != 0){
} }
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> </script>
......
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="80px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="80px">
<el-form-item label="设备名称" prop="studentName"> <el-form-item label="设备名称">
<el-input v-model="queryParams.xc" placeholder="请输入设备名称" clearable/> <el-input v-model="queryParams.equipmentName" clearable placeholder="请输入设备名称"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="归属类型" prop="examType"> <el-form-item label="归属类型">
<el-select v-model="queryParams.xc" placeholder="请选择归属类型" clearable> <el-select v-model="queryParams.affiliationType" placeholder="请选择归属类型" clearable>
<el-option v-for="(item,index) in dict.type.exam_type" :key="index" <el-option v-for="(item, index) in dict.type.affiliation_type" :key="index" :label="item.label"
:label="item.label" :value="item.value"></el-option> :value="item.value"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="分类编码" prop="studentName"> <el-form-item label="分类编码">
<el-input v-model="queryParams.xc" placeholder="请输入分类编码" clearable/> <el-input v-model="queryParams.classificationCode" clearable placeholder="请输入分类编码"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="设备状态" prop="examType"> <el-form-item label="设备状态">
<el-select v-model="queryParams.xc" placeholder="请选择设备状态" clearable> <el-select v-model="queryParams.equipmentState" clearable placeholder="请选择设备状态">
<el-option v-for="(item,index) in dict.type.exam_type" :key="index" <el-option v-for="(item, index) in dict.type.equipment_state" :key="index" :label="item.label"
:label="item.label" :value="item.value"></el-option> :value="item.value"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
...@@ -24,118 +24,119 @@ ...@@ -24,118 +24,119 @@
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<!-- -->
<el-table v-loading="loading" :data="outBoundData" stripe> <el-table v-loading="loading" :data="outBoundData" stripe>
<el-table-column type="selection" width="55"></el-table-column> <el-table-column type="selection" width="55"></el-table-column>
<el-table-column label="序号" type="index" width="55" align="center"/> <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="outStockType" />
<el-table-column label="设备名称" align="center" prop="studentNumber"/> <el-table-column label="设备名称" align="center" prop="equipmentName" />
<el-table-column label="型号" align="center" prop="studentNumber"/> <el-table-column label="型号" align="center" prop="model" />
<el-table-column label="规格" align="center" prop="studentNumber"/> <el-table-column label="规格" align="center" prop="specification" />
<el-table-column label="分类编码" align="center" prop="studentNumber"/> <el-table-column label="分类编码" align="center" prop="classificationCode" />
<el-table-column label="单位" align="center" prop="studentNumber"/> <el-table-column label="单位" align="center" prop="unit" />
<el-table-column label="归属类型" align="center" prop="studentNumber"/> <el-table-column label="归属类型" align="center" prop="affiliationType" />
<el-table-column label="设备状态" align="center" prop="studentNumber"/> <el-table-column label="设备状态" align="center" prop="equipmentState" />
<el-table-column label="投产日期" align="center" prop="studentNumber"/> <el-table-column label="投产日期" align="center" prop="dateOfProduction" />
<el-table-column label="价格(元)" align="center" prop="studentNumber"/> <el-table-column label="价格(元)" align="center" prop="price" />
<el-table-column label="效用年限(年)" align="center" prop="studentNumber"/> <el-table-column label="效用年限(年)" align="center" prop="lifeOfUtility" />
<el-table-column label="地点" align="center" prop="studentNumber"/> <el-table-column label="地点" align="center" prop="place" />
<el-table-column label="使用人" align="center" prop="studentNumber"/> <el-table-column label="使用人" align="center" prop="useName" />
<el-table-column label="备注" align="center" prop="studentNumber"/> <el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="操作" align="center" prop="orgname" width="150"> <el-table-column label="操作" align="center" prop="orgname" width="150">
<template slot-scope="{ row }"> <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> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination ref="pageBlock" v-show="total > 0" :total="total" <pagination ref="pageBlock" v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
:page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList"/> :limit.sync="queryParams.pageSize" @pagination="getList" />
<el-dialog title="详细信息" :visible.sync="dialogVisible" width="50%"> <el-dialog title="详细信息" :visible.sync="dialogVisible" width="50%">
<el-form :model="outBoundForm" :rules="outBoundRules" ref="achievementForm" <el-form :model="outBoundForm" :rules="outBoundRules" ref="achievementForm" label-width="110px"
label-width="110px" label-position="right"> label-position="right">
<el-row :gutter="30"> <el-row :gutter="30">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="出库类型" prop="idCard"> <el-form-item label="出库类型" prop="outStockType">
<el-input v-model="outBoundForm" placeholder="请输入出库类型" disabled></el-input> <el-input v-model="outBoundForm.outStockType" placeholder=" 请输入出库类型" disabled></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="归属类型" prop="idCard"> <el-form-item label="归属类型" prop="affiliationType">
<el-input v-model="outBoundForm" placeholder="请输入归属类型" disabled></el-input> <el-input v-model="outBoundForm.affiliationType" placeholder="请输入归属类型" disabled></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="30"> <el-row :gutter="30">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="设备名称" prop="idCard"> <el-form-item label="设备名称" prop="equipmentName">
<el-input v-model="outBoundForm" placeholder="请输入设备名称" disabled></el-input> <el-input v-model="outBoundForm.equipmentName" placeholder="请输入设备名称" disabled></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="设备状态" prop="idCard"> <el-form-item label="设备状态" prop="equipmentState">
<el-input v-model="outBoundForm" placeholder="请输入设备状态" disabled></el-input> <el-input v-model="outBoundForm.equipmentState" placeholder="请输入设备状态" disabled></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="30"> <el-row :gutter="30">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="型号" prop="idCard"> <el-form-item label="型号" prop="model">
<el-input v-model="outBoundForm" placeholder="请输入型号" disabled></el-input> <el-input v-model="outBoundForm.model" placeholder="请输入型号" disabled></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="投产日期" prop="idCard"> <el-form-item label="投产日期" prop="dateOfProduction">
<el-input v-model="outBoundForm" placeholder="请输入投产日期" disabled></el-input> <el-input v-model="outBoundForm.dateOfProduction" placeholder="请输入投产日期" disabled></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="30"> <el-row :gutter="30">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="规格" prop="idCard"> <el-form-item label="规格" prop="specification">
<el-input v-model="outBoundForm" placeholder="请输入规格" disabled></el-input> <el-input v-model="outBoundForm.specification" placeholder="请输入规格" disabled></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="价格(元)" prop="idCard"> <el-form-item label="价格(元)" prop="price">
<el-input v-model="outBoundForm" placeholder="请输入价格" disabled></el-input> <el-input v-model="outBoundForm.price" placeholder="请输入价格" disabled></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="30"> <el-row :gutter="30">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="分类编码" prop="idCard"> <el-form-item label="分类编码" prop="classificationCode">
<el-input v-model="outBoundForm" placeholder="请输入分类编码" disabled></el-input> <el-input v-model="outBoundForm.classificationCode" placeholder="请输入分类编码" disabled></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="效用年限(年)" prop="idCard"> <el-form-item label="效用年限(年)" prop="lifeOfUtility">
<el-input v-model="outBoundForm" placeholder="请输入效用年限" disabled></el-input> <el-input v-model="outBoundForm.lifeOfUtility" placeholder="请输入效用年限" disabled></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="30"> <el-row :gutter="30">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="单位" prop="idCard"> <el-form-item label="单位" prop="affiliationType">
<el-input v-model="outBoundForm" placeholder="请输入单位" disabled></el-input> <el-input v-model="outBoundForm.affiliationType" placeholder="请输入单位" disabled></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="使用人" prop="idCard"> <el-form-item label="使用人" prop="useName">
<el-input v-model="outBoundForm" placeholder="请输入使用人" disabled></el-input> <el-input v-model="outBoundForm.useName" placeholder="请输入使用人" disabled></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="30"> <el-row :gutter="30">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="地点" prop="idCard"> <el-form-item label="地点" prop="place">
<el-input v-model="outBoundForm" placeholder="请输入地点" disabled></el-input> <el-input v-model="outBoundForm.place" placeholder="请输入地点" disabled></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="30"> <el-row :gutter="30">
<el-col :span="24"> <el-col :span="24">
<el-form-item label="备注" prop="chemistry"> <el-form-item label="备注" prop="remark">
<el-input type="textarea" v-model="outBoundForm" placeholder="请输入备注" disabled></el-input> <el-input type="textarea" v-model="outBoundForm.remark" placeholder="请输入备注" disabled></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -145,40 +146,98 @@ ...@@ -145,40 +146,98 @@
</template> </template>
<script> <script>
import {
getoutStock,
queryoutStock,
} from '@/api/smartSchool/schoolProperty/outboundLedger.js'
export default { export default {
dicts: ['exam_type'], dicts: ['equipment_state', 'affiliation_type'],
data() { data() {
return { return {
queryParams: { queryParams: {
xc: '',
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
equipmentName: '',
affiliationType: '',
classificationCode: '',
equipmentState: '',
}, },
loading: false, loading: false,
total: 0, total: 0,
outBoundData: [ outBoundData: [
{studentName:"studentName"}
], ],
outBoundForm: {}, outBoundForm: {},
outBoundRules: [], outBoundRules: {
},
dialogVisible: false, dialogVisible: false,
} }
}, },
methods:{ created() {
// 获取列表数据 this.getList();
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.getList();
this.dialogVisible = true
}, },
/** 查看详情 */
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 = "查看入库台帐";
//表单提交 }).catch(error => {
submitForm(){},
} })
},
},
} }
</script> </script>
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
:value="item.value"></el-option> :value="item.value"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="维修状态" prop="disposeState"> <el-form-item label="处理状态" prop="disposeState">
<el-select v-model="queryParams.disposeState" placeholder="维修状态" clearable> <el-select v-model="queryParams.disposeState" placeholder="维修状态" clearable>
<el-option v-for="(item, index) in dict.type.repair_state" :key="index" :label="item.label" <el-option v-for="(item, index) in dict.type.repair_state" :key="index" :label="item.label"
:value="item.value"></el-option> :value="item.value"></el-option>
...@@ -26,8 +26,7 @@ ...@@ -26,8 +26,7 @@
</el-form> </el-form>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd">新增
v-hasPermi="['system:application:add']">新增
</el-button> </el-button>
</el-col> </el-col>
</el-row> </el-row>
...@@ -76,13 +75,11 @@ ...@@ -76,13 +75,11 @@
</el-table> </el-table>
<!-- 新增/修改/查看对话框 --> <!-- 新增/修改/查看对话框 -->
<el-dialog :title="title" :visible.sync="open" width="1200px" append-to-body @close="cancel"> <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" <el-form ref="postForm" :model="postForm" :rules="rules" label-width="110px">
:readonly="!isEditable">
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="自编码" prop="encode"> <el-form-item label="自编码" prop="encode">
<el-input v-model.lazy="postForm.encode" placeholder="自编码" @change="getRencode" <el-input v-model.lazy="postForm.encode" placeholder="自编码" @change="getRencode"></el-input>
:readonly="!isEditable"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
...@@ -97,6 +94,7 @@ ...@@ -97,6 +94,7 @@
<el-input v-model="postForm.equipmentName" placeholder="设备名称"></el-input> <el-input v-model="postForm.equipmentName" placeholder="设备名称"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="问题" prop="problem"> <el-form-item label="问题" prop="problem">
<el-input v-model="postForm.problem" placeholder="问题"></el-input> <el-input v-model="postForm.problem" placeholder="问题"></el-input>
...@@ -122,7 +120,8 @@ ...@@ -122,7 +120,8 @@
<el-col :span="12"> <el-col :span="12">
<el-form-item label="投产日期:" prop="dateOfProduction"> <el-form-item label="投产日期:" prop="dateOfProduction">
<el-date-picker v-model="postForm.dateOfProduction" type="date" placeholder="选择日期" <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-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
...@@ -139,8 +138,8 @@ ...@@ -139,8 +138,8 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="理状态" prop="disposeState"> <el-form-item label="理状态" prop="disposeState">
<el-select v-model="postForm.disposeState" placeholder="维修状态" clearable style="width: 100%;"> <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" <el-option v-for="(item, index) in dict.type.repair_state" :key="index" :label="item.label"
:value="item.value"></el-option> :value="item.value"></el-option>
</el-select> </el-select>
...@@ -199,6 +198,7 @@ export default { ...@@ -199,6 +198,7 @@ export default {
dicts: ['dispose_state', 'repair_state'], dicts: ['dispose_state', 'repair_state'],
data() { data() {
return { return {
isReadOnly: false,
sbflOptions: [], sbflOptions: [],
repairStatusOptions: { repairStatusOptions: {
}, },
...@@ -382,7 +382,6 @@ export default { ...@@ -382,7 +382,6 @@ export default {
handleUpdate(row) { handleUpdate(row) {
const id = row.id || this.ids; const id = row.id || this.ids;
this.title = "修改申请"; this.title = "修改申请";
queryRepair(id).then(response => { queryRepair(id).then(response => {
this.postForm = response.data; this.postForm = response.data;
this.open = true; this.open = true;
...@@ -408,12 +407,15 @@ export default { ...@@ -408,12 +407,15 @@ export default {
this.$refs["postForm"].validate(valid => { this.$refs["postForm"].validate(valid => {
if (valid) { if (valid) {
this.$modal.loading('正在上传数据,请稍等...'); this.$modal.loading('正在上传数据,请稍等...');
if (this.postForm.disposeState === 1 || this.postForm.disposeState === 0) { if (this.postForm.disposeState === "1" || this.postForm.disposeState === "0") {
this.postForm.repairState = 1; this.postForm.repairState = "1";
} else if (this.postForm.disposeState === null) {
this.postForm.repairState = "0";
} else { } else {
this.postForm.repairState = 0; this.postForm.repairState = "0"; // 当 disposeState 不满足上述条件时,默认设置为 0
} }
if (this.postForm.id != null) { if (this.postForm.id != null) {
editRepair(this.postForm).then(response => { editRepair(this.postForm).then(response => {
console.log('this.postForm',); console.log('this.postForm',);
...@@ -426,11 +428,15 @@ export default { ...@@ -426,11 +428,15 @@ export default {
}); });
} else { } else {
if (this.postForm.disposeState === 1 || this.postForm.disposeState === 0) { if (this.postForm.disposeState === "1" || this.postForm.disposeState === "0") {
this.postForm.repairState = 1; this.postForm.repairState = "1";
} else if (this.postForm.disposeState === null) {
this.postForm.repairState = "0";
} else { } else {
this.postForm.repairState = 0; this.postForm.repairState = "0"; // 当 disposeState 不满足上述条件时,默认设置为 0
} }
addRepair(this.postForm).then(response => { addRepair(this.postForm).then(response => {
console.log(this.postForm); console.log(this.postForm);
this.$modal.closeLoading(); this.$modal.closeLoading();
......
...@@ -2,25 +2,21 @@ ...@@ -2,25 +2,21 @@
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" v-show="showSearch" inline> <el-form :model="queryParams" ref="queryForm" size="small" v-show="showSearch" inline>
<el-form-item label="设备名称"> <el-form-item label="设备名称">
<el-input v-model="queryParams.equipmentName" @keyup.enter.native="handleQuery" clearable <el-input v-model="queryParams.equipmentName" clearable placeholder="请输入设备名称"></el-input>
placeholder="请输入设备名称"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="归属类型"> <el-form-item label="归属类型">
<el-select v-model="queryParams.belongType" @keyup.enter.native="handleQuery" clearable <el-select v-model="queryParams.affiliationType" placeholder="请选择归属类型" clearable>
placeholder="请选择归属类型"> <el-option v-for="(item, index) in dict.type.affiliation_type" :key="index" :label="item.label"
<el-option v-for="dict in dict.type.BelongType" :key="dict.value" :label="dict.label" :value="item.value"></el-option>
:value="dict.value" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="分类编码"> <el-form-item label="分类编码">
<el-input v-model="queryParams.equipmentCode" @keyup.enter.native="handleQuery" clearable <el-input v-model="queryParams.classificationCode" clearable placeholder="请输入分类编码"></el-input>
placeholder="请输入分类编码"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="设备状态"> <el-form-item label="设备状态">
<el-select v-model="queryParams.equipmentStatus" @keyup.enter.native="handleQuery" clearable <el-select v-model="queryParams.equipmentState" clearable placeholder="请选择设备状态">
placeholder="请选择设备状态"> <el-option v-for="(item, index) in dict.type.equipment_state" :key="index" :label="item.label"
<el-option v-for="dict in dict.type.EquipmentStatus" :key="dict.value" :label="dict.label" :value="item.value"></el-option>
:value="dict.value" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-button class="ml20" type="primary" icon="el-icon-search" size="mini" @click="getList">搜索 <el-button class="ml20" type="primary" icon="el-icon-search" size="mini" @click="getList">搜索
...@@ -29,41 +25,40 @@ ...@@ -29,41 +25,40 @@
</el-form> </el-form>
<el-table stripe :data="warehousingLedger" width="100%"> <el-table stripe :data="warehousingLedger" width="100%">
<el-table-column header-align="center" align="center" type="index" width="50" /> <el-table-column align="center" type="index" width="50" fixed="left" />
<el-table-column header-align="center" align="center" prop="equipmentName" label="入库类型" /> <el-table-column align="center" prop="inStockType" label="入库类型" fixed="left" />
<el-table-column header-align="center" align="center" prop="equipmentName" label="入库时间" /> <el-table-column align="center" prop="inStockTime" label="入库时间" width="200" fixed="left" />
<el-table-column header-align="center" align="center" prop="equipmentCode" label="自编码"> <el-table-column align="center" prop="encode" label="自编码" width="200" fixed="left">
</el-table-column> </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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<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"> <template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleLook(scope.row)" <el-button size="mini" type="text" icon="el-icon-edit" @click="handleLook(scope.row)">查看
v-hasPermi="['system:grade:edit']">查看
</el-button> </el-button>
</template> </template>
</el-table-column> </el-table-column>
...@@ -77,38 +72,37 @@ ...@@ -77,38 +72,37 @@
<el-form ref="form" :model="form" :rules="rules" :disabled="!isEdit" label-width="120px"> <el-form ref="form" :model="form" :rules="rules" :disabled="!isEdit" label-width="120px">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="入库类型:" prop="teacherName"> <el-form-item label="入库类型:" prop="inStockType">
<el-input v-model="form.teacherName" placeholder="请输入入库类型" clearable <el-input v-model="form.inStockType" placeholder="请输入入库类型" clearable></el-input>
@click.native="selectTeacher"></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="地点:" prop="equipmentName"> <el-form-item label="地点:" prop="place">
<el-input v-model="form.equipmentName" placeholder="请输入地点" clearable></el-input> <el-input v-model="form.place" placeholder="请输入地点" clearable></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="入库时间:" prop="teacherName"> <el-form-item label="入库时间:" prop="inStockTime">
<el-input v-model="form.teacherName" placeholder="请输入库时间" clearable></el-input> <el-input v-model="form.inStockTime" placeholder="请输入库时间" clearable></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="归属类型:" prop="equipmentName"> <el-form-item label="归属类型:" prop="affiliationType">
<el-input v-model="form.equipmentName" placeholder="请输入归属类型" clearable></el-input> <el-input v-model="form.affiliationType" placeholder="请输入归属类型" clearable></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="设备名称:" prop="equipmentModel"> <el-form-item label="设备名称:" prop="equipmentName">
<el-input v-model="form.equipmentModel" placeholder="请输入设备名称" clearable></el-input> <el-input v-model="form.equipmentName" placeholder="请输入设备名称" clearable></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="设备状态:" prop="equipmentStatus"> <el-form-item label="设备状态:" prop="equipmentState">
<el-select v-model="form.equipmentStatus" placeholder="请选择设备状态" style="width: 100%;"> <el-select v-model="form.equipmentState" placeholder="请选择设备状态" style="width: 100%;">
<el-option label="正常" value="0"></el-option> <el-option label="正常" value="0"></el-option>
<el-option label="维修" value="1"></el-option> <el-option label="维修" value="1"></el-option>
<el-option label="报废" value="2"></el-option> <el-option label="报废" value="2"></el-option>
...@@ -119,13 +113,13 @@ ...@@ -119,13 +113,13 @@
</el-row> </el-row>
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="型号:" prop="equipmentType"> <el-form-item label="型号:" prop="model">
<el-input v-model="form.equipmentType" placeholder="请输入型号" clearable></el-input> <el-input v-model="form.model" placeholder="请输入型号" clearable></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="投产日期:" prop="equipmentProductionDate" style="width: 100%;"> <el-form-item label="投产日期:" prop="dateOfProduction" style="width: 100%;">
<el-date-picker v-model="form.equipmentProductionDate" type="date" placeholder="选择日期" <el-date-picker v-model="form.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></el-date-picker>
</el-form-item> </el-form-item>
...@@ -134,13 +128,13 @@ ...@@ -134,13 +128,13 @@
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="规格:" prop="equipmentBelongType"> <el-form-item label="规格:" prop="specification">
<el-input v-model="form.equipmentBelongType" placeholder="请输入规格" clearable></el-input> <el-input v-model="form.specification" placeholder="请输入规格" clearable></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="价格(元):" prop="equipmentPrice"> <el-form-item label="价格(元):" prop="price">
<el-input v-model="form.equipmentPrice" placeholder="请输入价格(元)" clearable></el-input> <el-input v-model="form.price" placeholder="请输入价格(元)" clearable></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -148,25 +142,25 @@ ...@@ -148,25 +142,25 @@
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="分类编码:" prop="equipmentBelongType"> <el-form-item label="分类编码:" prop="classificationCode">
<el-input v-model="form.equipmentBelongType" placeholder="请输入分类编码" clearable></el-input> <el-input v-model="form.classificationCode" placeholder="请输入分类编码" clearable></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="效用年限(年):" prop="equipmentPrice"> <el-form-item label="效用年限(年):" prop="lifeOfUtility">
<el-input v-model="form.equipmentPrice" placeholder="请输入效用年限(年)" clearable></el-input> <el-input v-model="form.lifeOfUtility" placeholder="请输入效用年限(年)" clearable></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="单位:" prop="equipmentBelongType"> <el-form-item label="单位:" prop="unit">
<el-input v-model="form.equipmentBelongType" placeholder="请输入单位" clearable></el-input> <el-input v-model="form.unit" placeholder="请输入单位" clearable></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="使用人:" prop="equipmentPrice"> <el-form-item label="使用人:" prop="useName">
<el-input v-model="form.equipmentPrice" placeholder="请输入使用人" clearable></el-input> <el-input v-model="form.useName" placeholder="请输入使用人" clearable></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -193,13 +187,13 @@ ...@@ -193,13 +187,13 @@
<script> <script>
import { import {
getinStock,
} from "@/api/smartSchool/teachAffairAdministration/affairClassManage/index"; queryinStock,
import { getToken } from "@/utils/auth"; } from '@/api/smartSchool/schoolProperty/warehousingLedger.js'
export default { export default {
dicts: [], dicts: ['equipment_state', 'affiliation_type'],
name: "index", name: "index",
data() { data() {
return { return {
...@@ -216,9 +210,9 @@ export default { ...@@ -216,9 +210,9 @@ export default {
// 总条数 // 总条数
total: 0, total: 0,
// 入库台帐 // 入库台帐
warehousingLedger: [{ warehousingLedger: [
equipmentName: "电脑",
}], ],
// 弹出层标题 // 弹出层标题
title: "", title: "",
// 查看对话框 // 查看对话框
...@@ -228,11 +222,16 @@ export default { ...@@ -228,11 +222,16 @@ export default {
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
equipmentName: '',
affiliationType: '',
classificationCode: '',
equipmentState: '',
}, },
isEdit: false,
// 表单参数 // 表单参数
form: {}, form: {},
batchForm: {},
// 表单校验 // 表单校验
rules: { rules: {
...@@ -240,75 +239,55 @@ export default { ...@@ -240,75 +239,55 @@ export default {
}, },
// 表单是否可以修改、
isEdit: true,
}; };
}, },
created() { created() {
this.getList() this.getList()
}, },
methods: { methods: {
/** 查询列表 */
/** 查询学校班级列表 */
getList() { getList() {
this.loading = true; this.loading = true;
// getClassList(this.queryParams).then((response) => { getinStock(this.queryParams).then((response) => {
// this.warehousingLedger = response.rows; this.warehousingLedger = response.rows;
// this.total = response.total; this.total = response.total;
// this.loading = false; this.loading = false;
// }); });
}, },
// 取消按钮 // 取消按钮
cancel() { cancel() {
this.dialogVisible = false; this.dialogVisible = false;
this.reset();
},
// 表单重置
reset() {
this.form = {
};
// this.imageUrl = '';
//表单可编辑
this.isEdit = true;
this.resetForm("form");
}, },
/** 重置按钮操作 */ /** 重置按钮操作 */
resetQuery() { resetQuery() {
this.queryParams = { this.queryParams = {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
equipmentName: '',
affiliationType: '',
classificationCode: '',
equipmentState: '',
}; };
this.getList();
//
}, },
/** 查看详情 */ /** 查看详情 */
handleLook(row) { handleLook(row) {
this.reset(); const id = row.id || this.ids;
// const id = row.id || this.ids; this.$modal.loading('正在加载数据,请稍等...');
// this.$modal.loading('正在加载数据,请稍等...'); queryinStock(id).then(response => {
// getDetailInfo(id).then(response => { this.$modal.closeLoading();
// this.$modal.closeLoading(); this.form = response.data;
// this.form = response.data;
this.dialogVisible = true; this.dialogVisible = true;
this.isEdit = false;
this.title = "查看入库台帐"; this.title = "查看入库台帐";
// this.isEdit = false;
// }).catch(error => { }).catch(error => {
// this.$modal.closeLoading();
// }) })
}, },
...@@ -329,32 +308,4 @@ export default { ...@@ -329,32 +308,4 @@ export default {
}; };
</script> </script>
<style> <style></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>
...@@ -117,6 +117,7 @@ public class SchoolTeacherController extends BaseController { ...@@ -117,6 +117,7 @@ public class SchoolTeacherController extends BaseController {
schoolTeacherService.checkTeacherCodeUnique(schoolTeacherVO); schoolTeacherService.checkTeacherCodeUnique(schoolTeacherVO);
schoolTeacherService.checkTeacherTelUnique(schoolTeacherVO); schoolTeacherService.checkTeacherTelUnique(schoolTeacherVO);
schoolTeacherService.checkIdCardUnique(schoolTeacherVO); schoolTeacherService.checkIdCardUnique(schoolTeacherVO);
schoolTeacherService.checkPasswordUnique(schoolTeacherVO);
if(StringUtils.isNotEmpty(schoolTeacherVO.getEmail())){ if(StringUtils.isNotEmpty(schoolTeacherVO.getEmail())){
schoolTeacherService.checkEmailUnique(schoolTeacherVO); schoolTeacherService.checkEmailUnique(schoolTeacherVO);
} }
......
package yangtz.cs.liu.campus.domain.schoolEquipment; package yangtz.cs.liu.campus.domain.schoolEquipment;
import com.ruoyi.common.annotation.Excel;
import java.util.Date; import java.util.Date;
import com.core.domain.OurBaseEntity; import com.core.domain.OurBaseEntity;
...@@ -35,6 +36,9 @@ public class SchoolCirculation extends OurBaseEntity ...@@ -35,6 +36,9 @@ public class SchoolCirculation extends OurBaseEntity
/** 借用期限(天) */ /** 借用期限(天) */
private Long deadline; private Long deadline;
/** 归还状态(0=未归还,1=已归还)" */
private String returnState;
/** 归还日期 */ /** 归还日期 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date returnTime; private Date returnTime;
......
...@@ -17,6 +17,9 @@ public class SchoolEquipmentRepair extends OurBaseEntity ...@@ -17,6 +17,9 @@ public class SchoolEquipmentRepair extends OurBaseEntity
{ {
/** 设备id */ /** 设备id */
private Long id;
/** 设备id */
private Long equipmentId; private Long equipmentId;
/** 分类编码 */ /** 分类编码 */
......
...@@ -4,6 +4,7 @@ import java.util.Date; ...@@ -4,6 +4,7 @@ import java.util.Date;
import com.core.domain.OurBaseEntity; import com.core.domain.OurBaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import lombok.Data; import lombok.Data;
/** /**
...@@ -29,6 +30,9 @@ public class SchoolReceive extends OurBaseEntity ...@@ -29,6 +30,9 @@ public class SchoolReceive extends OurBaseEntity
/** 领用人 */ /** 领用人 */
private String recipientBy; private String recipientBy;
/** 退还状态(0=未退还,1=已退还)" */
private String returnState;
/** 退还日期 */ /** 退还日期 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date returnTime; private Date returnTime;
...@@ -52,4 +56,5 @@ public class SchoolReceive extends OurBaseEntity ...@@ -52,4 +56,5 @@ public class SchoolReceive extends OurBaseEntity
/** 备注 */ /** 备注 */
private String remark; private String remark;
} }
...@@ -30,13 +30,14 @@ public interface CirculationMapper extends BaseMapper<SchoolCirculation> { ...@@ -30,13 +30,14 @@ public interface CirculationMapper extends BaseMapper<SchoolCirculation> {
* @return * @return
*/ */
int deleteSchoolCirculationByIds(Long[] ids); 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); 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" @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" + "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); SchoolCirculationVo getSchoolCirculationVoById(@Param("id")Long id);
} }
...@@ -16,19 +16,25 @@ public interface EquipmentRepairMapper extends BaseMapper<SchoolEquipmentRepair> ...@@ -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" @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" + "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" + "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); 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" @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" + "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" + "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); 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" @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" + "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" + "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(); public List<SchoolEquipmentRepairVo> getMaintenanceUserList();
/** /**
......
...@@ -81,7 +81,7 @@ public class CountServiceImpl implements ICountService { ...@@ -81,7 +81,7 @@ public class CountServiceImpl implements ICountService {
int officialNum = flowMapper.getTodoTotal(userId,UNDONE); int officialNum = flowMapper.getTodoTotal(userId,UNDONE);
/**调查问卷任务数*/ /**调查问卷任务数*/
int investigate = examMainMapper.getTodoTotal(userId); // int investigate = examMainMapper.getTodoTotal(userId);
/**采购申请审批任务数*/ /**采购申请审批任务数*/
int purchaseRequisition = getNum(PURCHASEREQUEST, userId.toString()); int purchaseRequisition = getNum(PURCHASEREQUEST, userId.toString());
...@@ -97,7 +97,7 @@ public class CountServiceImpl implements ICountService { ...@@ -97,7 +97,7 @@ public class CountServiceImpl implements ICountService {
vo.setTLeaveNum(tLeaveNum); vo.setTLeaveNum(tLeaveNum);
vo.setOfficialNum(officialNum); vo.setOfficialNum(officialNum);
vo.setInvestigate(investigate); // vo.setInvestigate(investigate);
vo.setPurchaseRequisition(purchaseRequisition); vo.setPurchaseRequisition(purchaseRequisition);
vo.setSLeaveNum(sLeaveNum); vo.setSLeaveNum(sLeaveNum);
vo.setAuditoriumNum(auditoriumNum); vo.setAuditoriumNum(auditoriumNum);
......
...@@ -36,7 +36,7 @@ public class CirculationServiceImpl extends ServiceImpl<CirculationMapper, Schoo ...@@ -36,7 +36,7 @@ public class CirculationServiceImpl extends ServiceImpl<CirculationMapper, Schoo
* @return * @return
*/ */
@Override @Override
@DataScope(userAlias = "u") // @DataScope(userAlias = "u")
public List<SchoolCirculationVo> selectSchoolCirculationVoList(SchoolCirculationVo schoolCirculationVo) { public List<SchoolCirculationVo> selectSchoolCirculationVoList(SchoolCirculationVo schoolCirculationVo) {
return circulationMapper.selectSchoolCirculationVoList(schoolCirculationVo); return circulationMapper.selectSchoolCirculationVoList(schoolCirculationVo);
} }
......
...@@ -108,6 +108,15 @@ public class EquipmentRepairServiceImpl extends ServiceImpl<EquipmentRepairMappe ...@@ -108,6 +108,15 @@ public class EquipmentRepairServiceImpl extends ServiceImpl<EquipmentRepairMappe
return equipmentRepairMapper.getMaintenanceList(reportRepairid); return equipmentRepairMapper.getMaintenanceList(reportRepairid);
} }
/**
* 管理员获取所有维修列表
* @return
*/
@Override
public List<SchoolEquipmentRepairVo> getlist() {
return equipmentRepairMapper.getlist();
}
@Override @Override
public List<SchoolEquipmentRepairVo> getMaintenanceUserList() { public List<SchoolEquipmentRepairVo> getMaintenanceUserList() {
return equipmentRepairMapper.getMaintenanceUserList(); return equipmentRepairMapper.getMaintenanceUserList();
......
...@@ -34,6 +34,7 @@ import yangtz.cs.liu.campus.vo.teacher.TeacherNameListVo; ...@@ -34,6 +34,7 @@ import yangtz.cs.liu.campus.vo.teacher.TeacherNameListVo;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.regex.Pattern;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.baomidou.mybatisplus.core.toolkit.ObjectUtils.isNotNull; import static com.baomidou.mybatisplus.core.toolkit.ObjectUtils.isNotNull;
...@@ -415,6 +416,21 @@ public class SchoolTeacherServiceImpl extends ServiceImpl<SchoolTeacherMapper, S ...@@ -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 @Override
public int insert(SchoolTeacherVO schoolTeacherVO) { public int insert(SchoolTeacherVO schoolTeacherVO) {
......
...@@ -60,6 +60,8 @@ public interface IEquipmentRepairService extends IService<SchoolEquipmentRepair> ...@@ -60,6 +60,8 @@ public interface IEquipmentRepairService extends IService<SchoolEquipmentRepair>
public List<SchoolEquipmentRepairVo> getMaintenanceList(Long reportRepairid); public List<SchoolEquipmentRepairVo> getMaintenanceList(Long reportRepairid);
public List<SchoolEquipmentRepairVo> getlist();
public List<SchoolEquipmentRepairVo> getMaintenanceUserList(); public List<SchoolEquipmentRepairVo> getMaintenanceUserList();
......
...@@ -90,6 +90,8 @@ public interface ISchoolTeacherService extends IService<SchoolTeacher> { ...@@ -90,6 +90,8 @@ public interface ISchoolTeacherService extends IService<SchoolTeacher> {
/**检查邮箱账号是否唯一*/ /**检查邮箱账号是否唯一*/
void checkEmailUnique(SchoolTeacherVO schoolTeacher); void checkEmailUnique(SchoolTeacherVO schoolTeacher);
/**检查密码是否符合条件(密码必须包含大小写字母,数字)*/
void checkPasswordUnique(SchoolTeacherVO schoolTeacherVO);
/** /**
* 新增教师 * 新增教师
...@@ -142,4 +144,6 @@ public interface ISchoolTeacherService extends IService<SchoolTeacher> { ...@@ -142,4 +144,6 @@ public interface ISchoolTeacherService extends IService<SchoolTeacher> {
* 根据userId 查询 openId * 根据userId 查询 openId
*/ */
String getOpenIdByUserId(Long userId); String getOpenIdByUserId(Long userId);
} }
...@@ -58,6 +58,10 @@ public class SchoolCirculationVo extends BaseEntity ...@@ -58,6 +58,10 @@ public class SchoolCirculationVo extends BaseEntity
@Excel(name = "借用期限(天)") @Excel(name = "借用期限(天)")
private Long deadline; private Long deadline;
/** 归还状态(0=未归还,1=已归还)" */
@Excel(name = "归还状态", readConverterExp = "1=已归还,0=未归还")
private String returnState;
/** 归还日期 */ /** 归还日期 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "归还日期", width = 30, dateFormat = "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 ...@@ -87,4 +91,5 @@ public class SchoolCirculationVo extends BaseEntity
/** 备注 */ /** 备注 */
@Excel(name = "备注") @Excel(name = "备注")
private String remark; private String remark;
} }
...@@ -49,6 +49,10 @@ public class SchoolReceiveVo extends BaseEntity ...@@ -49,6 +49,10 @@ public class SchoolReceiveVo extends BaseEntity
@Excel(name = "领用人") @Excel(name = "领用人")
private String recipientBy; private String recipientBy;
/** 退还状态(0=未退还,1=已退还)" */
@Excel(name = "退还状态", readConverterExp = "1=已退还,0=未退还")
private String returnState;
/** 退还日期 */ /** 退还日期 */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@Excel(name = "退还日期", width = 30, dateFormat = "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; ...@@ -17,7 +17,9 @@ import com.ruoyi.framework.util.UserInfoUtil;
import com.ruoyi.framework.manager.AsyncManager; import com.ruoyi.framework.manager.AsyncManager;
import com.ruoyi.framework.manager.factory.AsyncFactory; import com.ruoyi.framework.manager.factory.AsyncFactory;
import com.ruoyi.framework.web.service.MpTokenService; import com.ruoyi.framework.web.service.MpTokenService;
import com.ruoyi.framework.web.service.SysPermissionService;
import com.ruoyi.system.service.ISysUserService; import com.ruoyi.system.service.ISysUserService;
import java.util.Set;
import org.apache.commons.codec.binary.Base64; import org.apache.commons.codec.binary.Base64;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -70,6 +72,8 @@ public class WxLoginController extends BaseController { ...@@ -70,6 +72,8 @@ public class WxLoginController extends BaseController {
@Value("${server.port}") @Value("${server.port}")
private String port; private String port;
@Autowired
private SysPermissionService permissionService;
private Logger log = LoggerFactory.getLogger(WxLoginController.class); private Logger log = LoggerFactory.getLogger(WxLoginController.class);
...@@ -125,6 +129,9 @@ public class WxLoginController extends BaseController { ...@@ -125,6 +129,9 @@ public class WxLoginController extends BaseController {
} }
mpLoginUser.setAvatar(user.getAvatar()); mpLoginUser.setAvatar(user.getAvatar());
} }
// 角色集合
Set<String> roles = permissionService.getRolePermission(user);
mpLoginUser.setRoles(roles);
return AjaxResult.success().put("userInfo",mpLoginUser); return AjaxResult.success().put("userInfo",mpLoginUser);
} }
......
...@@ -2,12 +2,16 @@ package yangtz.cs.liu.wechat.controller.equipment; ...@@ -2,12 +2,16 @@ package yangtz.cs.liu.wechat.controller.equipment;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.common.core.domain.AjaxResult; 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.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Calendar; import java.util.Calendar;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import org.springframework.beans.factory.annotation.Autowired; 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.GetMapping;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
...@@ -47,6 +51,9 @@ public class EquipmentLeaseController { ...@@ -47,6 +51,9 @@ public class EquipmentLeaseController {
@Autowired @Autowired
SchoolReceiveService schoolReceiveService; SchoolReceiveService schoolReceiveService;
@Autowired
ISysUserService iSysUserService;
/** /**
* 扫码借用获取设备基本信息 * 扫码借用获取设备基本信息
*/ */
...@@ -62,11 +69,12 @@ public class EquipmentLeaseController { ...@@ -62,11 +69,12 @@ public class EquipmentLeaseController {
* 我的借用记录 * 我的借用记录
*/ */
@GetMapping("/getMyBorrowList/{borrowById}") @GetMapping("/getMyBorrowList/{borrowById}")
private AjaxResult getMyBorrowList(@PathVariable("borrowById") Integer borrowById){ private AjaxResult getMyBorrowList(@PathVariable("borrowById") Long borrowById){
LambdaQueryWrapper<SchoolCirculation> wrapper = new LambdaQueryWrapper<>(); SchoolCirculationVo schoolCirculationVo = new SchoolCirculationVo();
wrapper.eq(SchoolCirculation::getBorrowById,borrowById); schoolCirculationVo.setBorrowById(borrowById);
List<SchoolCirculation> list = iCirculationService.list(wrapper); List<SchoolCirculationVo> schoolCirculationVos = iCirculationService
return AjaxResult.success(list); .selectSchoolCirculationVoList(schoolCirculationVo);
return AjaxResult.success(schoolCirculationVos);
} }
/** /**
...@@ -80,6 +88,7 @@ public class EquipmentLeaseController { ...@@ -80,6 +88,7 @@ public class EquipmentLeaseController {
calendar.setTime(borrowTime); calendar.setTime(borrowTime);
calendar.add(Calendar.DATE,Integer.valueOf(deadline.toString())); calendar.add(Calendar.DATE,Integer.valueOf(deadline.toString()));
Date targetDate = calendar.getTime(); Date targetDate = calendar.getTime();
schoolCirculation.setReturnState("0");
schoolCirculation.setReturnTime(targetDate); schoolCirculation.setReturnTime(targetDate);
boolean save = iCirculationService.save(schoolCirculation); boolean save = iCirculationService.save(schoolCirculation);
//修改设备表借出状态 //修改设备表借出状态
...@@ -132,10 +141,25 @@ public class EquipmentLeaseController { ...@@ -132,10 +141,25 @@ public class EquipmentLeaseController {
*/ */
@GetMapping("/getMaintenanceList/{reportRepairid}") @GetMapping("/getMaintenanceList/{reportRepairid}")
private AjaxResult getMaintenanceList(@PathVariable("reportRepairid") Long 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 List<SchoolEquipmentRepairVo> maintenanceList = iEquipmentRepairService
.getMaintenanceList(reportRepairid); .getMaintenanceList(reportRepairid);
return AjaxResult.success(maintenanceList); return AjaxResult.success(maintenanceList);
} }
}
/** /**
* 设备维修-新增 * 设备维修-新增
...@@ -162,6 +186,15 @@ public class EquipmentLeaseController { ...@@ -162,6 +186,15 @@ public class EquipmentLeaseController {
boolean save = iEquipmentRepairService.updateById(schoolEquipmentRepair); boolean save = iEquipmentRepairService.updateById(schoolEquipmentRepair);
return AjaxResult.success(save); return AjaxResult.success(save);
} }
/**
* 设备报修删除
*/
@DeleteMapping("/deletEuipemnt/{id}")
private AjaxResult deletEuipemnt(@PathVariable("id") Long id){
boolean b = iEquipmentRepairService.removeById(id);
return AjaxResult.success(b);
}
/** /**
* 报修台账反馈列表 设备维修记录id * 报修台账反馈列表 设备维修记录id
*/ */
...@@ -224,6 +257,7 @@ public class EquipmentLeaseController { ...@@ -224,6 +257,7 @@ public class EquipmentLeaseController {
*/ */
@PutMapping("returnDevice") @PutMapping("returnDevice")
private AjaxResult returnDevice(@RequestBody SchoolCirculation schoolCirculation){ private AjaxResult returnDevice(@RequestBody SchoolCirculation schoolCirculation){
schoolCirculation.setReturnState("1");
boolean b = iCirculationService.updateById(schoolCirculation); boolean b = iCirculationService.updateById(schoolCirculation);
//修改设备表借出状态 //修改设备表借出状态
SchoolEquipmentLedger byId = iEquipmentService.getById(schoolCirculation.getEquipmentId()); SchoolEquipmentLedger byId = iEquipmentService.getById(schoolCirculation.getEquipmentId());
...@@ -232,4 +266,16 @@ public class EquipmentLeaseController { ...@@ -232,4 +266,16 @@ public class EquipmentLeaseController {
return AjaxResult.success(b); 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" ...@@ -26,6 +26,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="updateBy" column="update_by" /> <result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" /> <result property="updateTime" column="update_time" />
<result property="delFalg" column="del_flag" /> <result property="delFalg" column="del_flag" />
<result property="returnState" column="return_state" />
</resultMap> </resultMap>
<select id="selectSchoolCirculationVoList" parameterType="SchoolCirculationVo" resultMap="schoolCirculationVoResult"> <select id="selectSchoolCirculationVoList" parameterType="SchoolCirculationVo" resultMap="schoolCirculationVoResult">
...@@ -35,6 +36,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -35,6 +36,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
el.encode, el.encode,
el.equipment_name, el.equipment_name,
el.model, el.model,
c.return_state,
c.borrow_time, c.borrow_time,
c.borrow_by_id, c.borrow_by_id,
c.borrow_by, c.borrow_by,
...@@ -60,6 +62,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ...@@ -60,6 +62,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
c.del_flag = '0' c.del_flag = '0'
<if test="equipmentName != null and equipmentName != ''">and el.equipment_name like concat('%', #{equipmentName}, '%')</if> <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="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} ${params.dataScope}
</select> </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