oa二期内容更新,库存方面ui优化:添加针对项目的直接添加出库效果

This commit is contained in:
2024-12-19 11:09:27 +08:00
parent 8e4e2a29ac
commit 23734ef853
5 changed files with 72 additions and 38 deletions

View File

@@ -53,6 +53,17 @@ public class SysOaWarehouseController extends BaseController {
return iSysOaWarehouseService.queryPageList(bo, pageQuery);
}
/**
* 通过一个name查询多个字段
*/
@SaCheckPermission("oa:oaWarehouse:list")
@GetMapping("/listByMultiQuery")
public TableDataInfo<SysOaWarehouseVo> listByMultiQuery(SysOaWarehouseBo bo, PageQuery pageQuery) {
return iSysOaWarehouseService.listByMultiQuery(bo, pageQuery);
}
/**
* 导出仓库管理列表
*/

View File

@@ -46,4 +46,9 @@ public interface ISysOaWarehouseService {
* 校验并批量删除仓库管理信息
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
/**
* 根据一个name查询多个字段
*/
TableDataInfo<SysOaWarehouseVo> listByMultiQuery(SysOaWarehouseBo bo, PageQuery pageQuery);
}

View File

@@ -40,7 +40,7 @@ public class SysOaWarehouseServiceImpl implements ISysOaWarehouseService {
* 查询仓库管理
*/
@Override
public SysOaWarehouseVo queryById(Long id){
public SysOaWarehouseVo queryById(Long id) {
return baseMapper.selectVoById(id);
}
@@ -63,6 +63,16 @@ public class SysOaWarehouseServiceImpl implements ISysOaWarehouseService {
return baseMapper.selectVoList(lqw);
}
@Override
public TableDataInfo<SysOaWarehouseVo> listByMultiQuery(SysOaWarehouseBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<SysOaWarehouse> lqw = buildQueryWrapper(bo);
lqw.like(StringUtils.isNotBlank(bo.getName()), SysOaWarehouse::getName, bo.getName()).or()
.like(StringUtils.isNotBlank(bo.getName()), SysOaWarehouse::getBrand, bo.getName()).or()
.like(StringUtils.isNotBlank(bo.getName()), SysOaWarehouse::getModel, bo.getName());
Page<SysOaWarehouseVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
private LambdaQueryWrapper<SysOaWarehouse> buildQueryWrapper(SysOaWarehouseBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<SysOaWarehouse> lqw = Wrappers.lambdaQuery();
@@ -89,10 +99,9 @@ public class SysOaWarehouseServiceImpl implements ISysOaWarehouseService {
SysOaWarehouse select = baseMapper.selectOne(lqw);
// 2、 无则直接新增项目 有则直接增加库存数量
boolean flag;
if(select == null ) {
if (select == null) {
flag = baseMapper.insert(add) > 0;
}
else {
} else {
select.setInventory(select.getInventory() + bo.getInventory());
flag = baseMapper.updateById(select) > 0;
}
@@ -115,7 +124,7 @@ public class SysOaWarehouseServiceImpl implements ISysOaWarehouseService {
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(SysOaWarehouse entity){
private void validEntityBeforeSave(SysOaWarehouse entity) {
//TODO 做一些数据校验,如唯一约束
}
@@ -124,10 +133,12 @@ public class SysOaWarehouseServiceImpl implements ISysOaWarehouseService {
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
if (isValid) {
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteBatchIds(ids)>0;
return baseMapper.deleteBatchIds(ids) > 0;
}
}

View File

@@ -8,6 +8,14 @@ export function listOaWarehouse(query) {
params: query
})
}
// 查询库存管理列表
export function listByMultiQuery(query) {
return request({
url: '/oa/oaWarehouse/listByMultiQuery',
method: 'get',
params: query
})
}
// 查询库存管理详细
export function getOaWarehouse(id) {

View File

@@ -62,7 +62,7 @@
<el-table-column label="关联项目" align="center" prop="projectName">
<template slot-scope="scope">
<div v-if="scope.row.projectName!==null">
<el-tooltip class="item" effect="dark" content="点击查看该项目出库情况" placement="bottom">
<el-tooltip class="item" effect="dark" :content="'点击查看'+scope.row.projectName+'的出库情况'" placement="bottom">
<el-button
size="mini"
type="text"
@@ -98,8 +98,7 @@
<!-- 详情描述弹窗 -->
<el-dialog title="出库物料详情" :visible.sync="detail" width="800px" append-to-body>
<el-dialog title="出库物料详情" :visible.sync="detail" width="950px" append-to-body>
<!-- 物料数据 -->
<el-descriptions class="margin-top" title="物料数据" :column="3" border>
<el-descriptions-item>
@@ -205,19 +204,16 @@
<!-- 添加或修改仓库出库对话框 -->
<el-dialog :title="title" :visible.sync="open" width="800px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item
label="绑定项目"
>
<el-radio-group v-model="projectFlag">
<el-radio-group v-model="projectFlag" :disabled="drawer">
<el-radio :label="true"></el-radio>
<el-radio :label="false"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
v-if="projectFlag"
v-if="projectFlag&&!drawer"
prop="projectId"
label="项目名"
>
@@ -231,6 +227,13 @@
</el-select>
</el-form-item>
<el-form-item
v-if="drawer"
label="项目名"
>
<el-input :value="selectedProject.projectName" disabled></el-input>
</el-form-item>
<el-form-item
v-else
prop="remark"
@@ -246,7 +249,7 @@
<el-form-item
v-for="(item, index) in form.outWareHouseList"
:label="'出库物料' + index"
:label="'出库物料' + (index+1)"
:key="item.warehouseId"
:prop="'outWareHouseList.' + index + '.warehouseId'"
>
@@ -279,14 +282,14 @@
</el-option>
</el-select>
</el-col>
<el-col :span="4">
<el-col :span="3">
<el-tag type="info" v-if="item.inventory===undefined">请选择物料</el-tag>
<el-tag type="info" v-else>{{ item.inventory }}</el-tag>
</el-col>
<el-col :span="6">
<el-input-number v-model="item.amount" :min="1" :max="item.inventory"></el-input-number>
</el-col>
<el-col :span="4">
<el-col :span="6" style="display: flex;justify-content: center" >
<el-button @click.prevent="removeDomain(item)">删除</el-button>
</el-col>
</el-row>
@@ -304,23 +307,9 @@
<el-drawer
size="70%"
title="我是标题"
:title="selectedProject.projectName+' 出库详情'"
:visible.sync="drawer"
:with-header="false">
<!-- <el-form :model="query" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">-->
<!-- <el-form-item label="项目名" prop="projectId">-->
<!-- <el-input-->
<!-- v-model="query.name"-->
<!-- placeholder="请输入物料名"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item>-->
<!-- <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>-->
<!-- <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>-->
<!-- </el-form-item>-->
<!-- </el-form>-->
>
<el-button
style="margin: 25px"
@@ -337,6 +326,7 @@
<el-table-column type="selection" width="55" align="center"/>
<el-table-column label="序号" align="center" type="index"/>
<el-table-column label="出库单" align="center" prop="id"/>
<el-table-column label="物料名" align="center" prop="warehouseName"/>
<el-table-column label="出库数量" align="center" prop="amount"/>
<el-table-column label="出库时间" align="center" prop="createTime"/>
<el-table-column label="备注" align="center" prop="remark"/>
@@ -370,7 +360,7 @@ import {
queryOutWarehouseByProjectId
} from "@/api/oa/oaOutWarehouse";
import {listProject} from "@/api/oa/project";
import {listOaWarehouse} from "../../../api/oa/oaWarehouse";
import {listByMultiQuery, listOaWarehouse} from "../../../api/oa/oaWarehouse";
export default {
name: "OaOutWarehouse",
@@ -378,6 +368,8 @@ export default {
return {
// 抽屉
drawer: false,
// 选中项目名称
selectedProject:"",
// 查看详情弹窗
outDetail:{},
// 弹窗标志
@@ -429,7 +421,7 @@ export default {
},
// 表单参数
form: {
productId: ''
projectId: ''
},
// 表单校验
rules: {
@@ -504,6 +496,12 @@ export default {
handleAdd() {
this.reset();
this.open = true;
if (this.drawer){
// 如果抽屉是打开的说明是从项目处进入的新增从而加入projectId
this.projectFlag=true;
this.form.projectId = this.selectedProject.projectId;
console.log(this.form);
}
this.title = "添加仓库出库";
},
/** 修改按钮操作 */
@@ -611,7 +609,7 @@ export default {
remoteMethod(query) {
this.warehouseParams.name = query
this.selectLoading = true;
listOaWarehouse(this.warehouseParams).then(res => {
listByMultiQuery(this.warehouseParams).then(res => {
this.oaWarehouseList = res.rows.filter(item => {
const queryLower = query.toLowerCase();
return item.name.toLowerCase().indexOf(queryLower) > -1 ||
@@ -626,7 +624,8 @@ export default {
handleSearch(item) {
this.loading = true
this.searchItem = item;
this.form.projectId = item.projectId
this.form.projectId = item.projectId;
this.selectedProject = item;
queryOutWarehouseByProjectId(item.projectId).then(response => {
this.oaOutWarehouseList = response.rows;
this.drawer = true;