From 7615864a66a5d1130c2142111519a17557e2aca6 Mon Sep 17 00:00:00 2001 From: liuxy <lxy1605052545@163.com> Date: Tue, 3 Jun 2025 19:10:26 +0800 Subject: [PATCH] =?UTF-8?q?add=EF=BC=9A=E5=BA=93=E5=AD=98=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/StructIvtController.java | 43 ++++ .../IMdPbStoragevehicleextService.java | 11 ++ .../mapper/MdPbStoragevehicleextMapper.java | 8 + .../mapper/MdPbStoragevehicleextMapper.xml | 54 +++++ .../MdPbStoragevehicleextServiceImpl.java | 10 + .../views/wms/statement/structivt/index.vue | 184 ++++++++++++++++++ .../wms/statement/structivt/structivt.js | 65 +++++++ 7 files changed, 375 insertions(+) create mode 100644 wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/StructIvtController.java create mode 100644 wms/nladmin-ui/src/views/wms/statement/structivt/index.vue create mode 100644 wms/nladmin-ui/src/views/wms/statement/structivt/structivt.js diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/StructIvtController.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/StructIvtController.java new file mode 100644 index 0000000..998d67a --- /dev/null +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/controller/StructIvtController.java @@ -0,0 +1,43 @@ +package org.nl.wms.basedata_manage.controller; + + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.nl.common.base.TableDataInfo; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.logging.annotation.Log; +import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleextService; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.Map; + + +/** + * <p> + * 载具扩展属性表 控制层 + * </p> + * + * @author Liuxy + * @since 2025-06-03 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/api/structivt") +@Slf4j +public class StructIvtController { + + @Resource + private final IMdPbStoragevehicleextService iMdPbStoragevehicleextService; + + @GetMapping + @Log("查询库存") + public ResponseEntity<Object> query(@RequestParam Map whereJson, PageQuery page) { + return new ResponseEntity<>(TableDataInfo.build(iMdPbStoragevehicleextService.queryAll(whereJson, page)), HttpStatus.OK); + } +} diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IMdPbStoragevehicleextService.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IMdPbStoragevehicleextService.java index 1615d10..06c3e79 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IMdPbStoragevehicleextService.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/IMdPbStoragevehicleextService.java @@ -1,10 +1,13 @@ package org.nl.wms.basedata_manage.service; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.common.domain.query.PageQuery; import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleext; import java.util.List; +import java.util.Map; /** * <p> @@ -16,6 +19,14 @@ import java.util.List; */ public interface IMdPbStoragevehicleextService extends IService<MdPbStoragevehicleext> { + /** + * 分页查询 + * @param whereJson : {查询参数} + * @param page : 分页对象 + * @return 返回结果 + */ + IPage<JSONObject> queryAll(Map whereJson, PageQuery page); + /** * 更新库存以及仓位状态 * @param updateIvtList :{ diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.java index 1e1cb71..a75734a 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.java @@ -26,4 +26,12 @@ public interface MdPbStoragevehicleextMapper extends BaseMapper<MdPbStoragevehic * @return IPage<JSONObject> */ IPage<JSONObject> getCanuseIvt(Page<JSONObject> page, @Param("param") Map whereJson); + + /** + * 分页查询 + * @param page 分页条件 + * @param whereJson 查询条件 + * @return IPage<StIvtMoveinv> + */ + IPage<JSONObject> queryAllByPage(Page<JSONObject> page, @Param("param") Map whereJson); } diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.xml b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.xml index 4f08dae..d380e79 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.xml +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/dao/mapper/MdPbStoragevehicleextMapper.xml @@ -57,4 +57,58 @@ ORDER BY ext.insert_time Desc </select> + + <select id="queryAllByPage" resultType="com.alibaba.fastjson.JSONObject"> + SELECT + ext.storagevehicleext_id, + ext.storagevehicle_code, + ext.pcsn, + ext.qty_unit_name, + ext.canuse_qty, + ext.frozen_qty, + ext.remark, + ext.insert_time, + attr.struct_code, + attr.struct_name, + attr.stor_name, + attr.sect_name, + mater.material_code, + mater.material_name + FROM + md_pb_storagevehicleext ext + LEFT JOIN st_ivt_structattr attr ON ext.storagevehicle_code = attr.storagevehicle_code + LEFT JOIN md_me_materialbase mater ON mater.material_id = ext.material_id + <where> + 1 = 1 + <if test="param.stor_id != null and param.stor_id != ''"> + AND + attr.stor_id = #{param.stor_id} + </if> + + <if test="param.sect_id != null and param.sect_id != ''"> + AND + attr.sect_id = #{param.sect_id} + </if> + + <if test="param.struct_code != null and param.struct_code != ''"> + AND + (attr.struct_code LIKE #{param.struct_code} or + attr.struct_name LIKE #{param.struct_code} ) + </if> + + <if test="param.material_code != null and param.material_code != ''"> + AND + (mater.material_code LIKE #{param.material_code} or + mater.material_name LIKE #{param.material_code} ) + </if> + + <if test="param.pcsn != null and param.pcsn != ''"> + AND + ext.pcsn LIKE #{param.pcsn} + </if> + </where> + ORDER BY ext.insert_time Desc + </select> + + </mapper> diff --git a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdPbStoragevehicleextServiceImpl.java b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdPbStoragevehicleextServiceImpl.java index 74b0839..d23b4e0 100644 --- a/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdPbStoragevehicleextServiceImpl.java +++ b/wms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/basedata_manage/service/impl/MdPbStoragevehicleextServiceImpl.java @@ -1,7 +1,10 @@ package org.nl.wms.basedata_manage.service.impl; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.nl.common.domain.query.PageQuery; import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleextService; import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleext; import org.nl.wms.basedata_manage.service.dao.mapper.MdPbStoragevehicleextMapper; @@ -10,6 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; +import java.util.Map; /** * <p> @@ -28,6 +32,12 @@ public class MdPbStoragevehicleextServiceImpl extends ServiceImpl<MdPbStorageveh @Autowired private UpdateIvtUtils updateIvtUtils; + @Override + public IPage<JSONObject> queryAll(Map whereJson, PageQuery page) { + return this.baseMapper.queryAllByPage(new Page<>(page.getPage() + 1, page.getSize()), + whereJson); + } + @Override public void updateIvt(List<JSONObject> updateIvtList) { for (JSONObject json : updateIvtList) { diff --git a/wms/nladmin-ui/src/views/wms/statement/structivt/index.vue b/wms/nladmin-ui/src/views/wms/statement/structivt/index.vue new file mode 100644 index 0000000..ef17796 --- /dev/null +++ b/wms/nladmin-ui/src/views/wms/statement/structivt/index.vue @@ -0,0 +1,184 @@ +<template> + <div class="app-container"> + <!--工具栏--> + <div class="head-container"> + <div v-if="crud.props.searchToggle"> + <!-- 搜索 --> + <el-form + :inline="true" + class="demo-form-inline" + label-position="right" + label-width="90px" + label-suffix=":" + > + <el-form-item label="所属库区"> + <el-cascader + placeholder="所属库区" + :options="sects" + :props="{ checkStrictly: true }" + clearable + class="filter-item" + style="width: 200px;" + @change="sectQueryChange" + /> + </el-form-item> + <el-form-item label="仓位搜索"> + <el-input + v-model="query.struct_code" + clearable + size="small" + placeholder="仓位编码或名称" + style="width: 200px;" + class="filter-item" + /> + </el-form-item> + <el-form-item label="物料搜索"> + <el-input + v-model="query.material_code" + clearable + size="small" + placeholder="物料编码、名称或规格" + style="width: 200px;" + class="filter-item" + /> + </el-form-item> + <el-form-item label="批次号"> + <el-input + v-model="query.pcsn" + clearable + size="small" + placeholder="批次号" + style="width: 200px;" + class="filter-item" + /> + </el-form-item> + <rrOperation :crud="crud" /> + </el-form> + </div> + <!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'--> + <crudOperation :permission="permission"> + <!-- <el-button + slot="right" + class="filter-item" + type="success" + icon="el-icon-check" + size="mini" + :loading="showDtlLoading" + @click="downdtl" + > + 导出Excel + </el-button>--> + </crudOperation> + <!--表格渲染--> + <el-table + ref="table" + v-loading="crud.loading" + :data="crud.data" + size="mini" + style="width: 100%;" + @selection-change="crud.selectionChangeHandler" + > + <el-table-column prop="struct_code" label="仓位编码" :min-width="flexWidth('struct_code',crud.data,'仓位编码')" /> + <el-table-column prop="struct_name" label="仓位名称" :min-width="flexWidth('struct_name',crud.data,'仓位名称')" /> + <el-table-column prop="stor_name" label="仓库" :min-width="flexWidth('stor_name',crud.data,'仓库')" /> + <el-table-column prop="sect_name" label="库区" :min-width="flexWidth('sect_name',crud.data,'库区')" /> + <el-table-column prop="material_code" label="物料编码" :min-width="flexWidth('material_code',crud.data,'物料编码')" /> + <el-table-column prop="material_name" label="物料名称" :min-width="flexWidth('material_name',crud.data,'物料名称')" /> + <el-table-column prop="pcsn" label="批次号" :min-width="flexWidth('pcsn',crud.data,'批次号')" /> + <el-table-column prop="storagevehicle_code" label="载具号" :min-width="flexWidth('storagevehicle_code',crud.data,'载具号')" /> + <el-table-column prop="canuse_qty" label="可用数" :formatter="crud.formatNum3" :min-width="100" /> + <el-table-column prop="frozen_qty" label="冻结数" :formatter="crud.formatNum3" :min-width="100" /> + <el-table-column prop="qty_unit_name" label="计量单位" :min-width="flexWidth('qty_unit_name',crud.data,'计量单位')" /> + <el-table-column prop="remark" label="备注" :min-width="flexWidth('remark',crud.data,'备注')" /> + <el-table-column prop="insert_time" label="入库时间" :min-width="flexWidth('insert_time',crud.data,'入库时间')" /> + </el-table> + <!--分页组件--> + <pagination /> + </div> + </div> +</template> + +<script> +import crudStructivt from '@/views/wms/statement/structivt/structivt' +import CRUD, { presenter, header, crud } from '@crud/crud' +import rrOperation from '@crud/RR.operation' +import crudOperation from '@crud/CRUD.operation' +import pagination from '@crud/Pagination' +import crudSectattr from '@/views/wms/basedata/sectattr/sectattr' +import { download } from '@/api/data' +import { downloadFile } from '@/utils' + +export default { + name: 'Structivt', + components: { pagination, crudOperation, rrOperation }, + mixins: [presenter(), header(), crud()], + cruds() { + return CRUD({ + title: '库存管理', url: 'api/structivt', idField: 'stockrecord_id', sort: 'stockrecord_id,desc', + optShow: { + add: false, + edit: false, + showDtlLoading: false, + del: false, + download: false, + reset: true + }, + crudMethod: { ...crudStructivt } + }) + }, + data() { + return { + sects: [], + permission: {}, + rules: {} + } + }, + created() { + crudSectattr.getSect({ 'stor_id': '' }).then(res => { + this.sects = res.content + }) + }, + methods: { + // 钩子:在获取表格数据之前执行,false 则代表不获取数据 + [CRUD.HOOK.beforeRefresh]() { + return true + }, + hand(value) { + this.crud.toQuery() + }, + sectQueryChange(val) { + if (val.length === 1) { + this.query.stor_id = val[0] + this.query.sect_id = '' + } + if (val.length === 0) { + this.query.sect_id = '' + this.query.stor_id = '' + } + if (val.length === 2) { + this.query.stor_id = val[0] + this.query.sect_id = val[1] + } + this.crud.toQuery() + }, + querytable() { + this.crud.toQuery() + }, + downdtl() { + if (this.currentRow !== null) { + this.showDtlLoading = true + download('/api/structivt/download', this.crud.query).then(result => { + downloadFile(result, '成品库存', 'xlsx') + this.showDtlLoading = false + }).catch(() => { + this.showDtlLoading = false + }) + } + } + } +} +</script> + +<style scoped> + +</style> diff --git a/wms/nladmin-ui/src/views/wms/statement/structivt/structivt.js b/wms/nladmin-ui/src/views/wms/statement/structivt/structivt.js new file mode 100644 index 0000000..52927a9 --- /dev/null +++ b/wms/nladmin-ui/src/views/wms/statement/structivt/structivt.js @@ -0,0 +1,65 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: 'api/structivt', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: 'api/structivt/', + method: 'delete', + data: ids + }) +} + +export function edit(data) { + return request({ + url: 'api/structivt', + method: 'put', + data + }) +} + +export function getStruct() { + return request({ + url: 'api/structivt/getStruct', + method: 'get' + }) +} + +export function getStructById(data) { + return request({ + url: 'api/structivt/getStructById', + method: 'post', + data + }) +} + +export function getUnits() { + return request({ + url: 'api/structivt/getUnits', + method: 'get' + }) +} + +export function save(data) { + return request({ + url: 'api/structivt/save', + method: 'post', + data: data + }) +} + +export function excelImport(data) { + return request({ + url: 'api/structivt/importExcel', + method: 'post', + data + }) +} + +export default { add, edit, del, getStruct, getStructById, getUnits, save, excelImport }