【备品备件需求】--入库记录查询增加仓库字段

本文讲述了如何在同事交接的系统中,对入库查询条件进行改造,增加仓库筛选功能。前端通过el-select组件添加仓库选择,后端SQL进行了join和distinct操作以适应新增的查询条件。尽管存在冗余代码挑战,但因功能限制,改动相对简单。
摘要由CSDN通过智能技术生成

最近同事交接的系统,有需求改动。

但是我完全看不懂他写的代码,好在需求不是很复杂,只是改下查询条件,如果是动流程,增单据,那我可能就不行了。

需求1:入库查询条件中增加仓库筛选

需求图如下:
在这里插入图片描述

首先找页面:在这里插入图片描述
先找到这个页面,看看它的查询逻辑是什么?

在这里插入图片描述
后台对应的controller是 SpareTradehdController,因为是在查询条件新建仓库字段,而这些查询条件传到后台,是被封装成一个requestBody,也就是一个实体类。

那么,就要在这个实体类里增加属性,首先要判断这个实体类,有没有被其他类引用,如果它耦合度低,只在SpareTradehdController里引用,那么改造起来就会相对简单一些,反之则比较复杂。

前端改造

查询条件中增加仓库条件

<el-form-item label="仓库" prop="warehouseCode">
        <el-select v-model="queryParams.warehouseCode" placeholder="请选择仓库" clearable size="small">
          <el-option
            v-for="item in warehouseOptions"
            :key="item.warehouseCode"
            :label="item.warehouseDesc"
            :value="item.warehouseCode"
          />
        </el-select>
      </el-form-item>

warehouseOptions是预定义的仓库集合,里面的数据需要初始化。

这个东西在做设备管理的时候,取设备分类的时候,已经写过好多次了。

data中声明属性:

方法在仓库管理功能里已经定义好,因此不用再去写js,写后台类去获取仓库列表,直接引用就行。

在这里插入图片描述

接下来,就是在created初始化的方法里,把warehouseOptions里面的值进行初始化。
在这里插入图片描述

至此,前端改造完成,已经可以取到数据了,但是当点击查询的时候,虽然在queryParams中带上了warehouseCode,但是后台并没有相应的逻辑去处理。

因此还需要再后台,进行逻辑的改造。

后端改造

在这里插入图片描述
上图是后端对应的查询方法,可以看到它把这个前端传递的参数queryParams封装成了一个实体类,这样只需要在这个实体类中增加相应的属性,就行了。

虽然,这个实体类被其他的代码所引用,这个是历史遗留问题,当初离职的开发人员,在做这个系统的时候,自动生成的代码里,有大量的冗余代码没有清理,导致维护的时候,异常困难。

但是,这个入库记录的功能,在前端是只有查询和导出的功能,编辑,新增,删除等功能都没有。

更何况,这个实体类虽然被其他的类所应用,但是在其中增加一个warehouseCode字段,如果其他类引用了,这个属性的值就是null,并没有什么大碍。

换句话说,可以直接新增。

实体类增加字段,和对应的get和set方法。

在这里插入图片描述
SQL是需要重点改造的,因为它查询的入库记录中,没有仓库这个字段,这个字段是存在于具体明细表中,因此还需要新增join查询,因为是一对多的关系,还需要distinct进行过滤。

改造如下:

<sql id="selectSpareTradehdVo">
        select DISTINCT hd.id,
                        hd.bwart,
                        hd.document_num,
                        hd.document_date,
                        hd.posting_date,
                        case
                            when ss.NAME1 is not null then ss.NAME1
                            else hd.company
                            end company,
                        hd.dept,
                        case
                            when st.BUTXT is not null then st.BUTXT
                            else hd.supplier
                            end supplier,
                        hd.trade_type,
                        hd.create_by,
                        hd.create_time,
                        hd.update_by,
                        hd.update_time,
                        hd.remark,
                        ss.NAME1,
                        st.BUTXT
        from spare_tradehd hd
                 left join spare_supplier ss on ss.LIFNR = hd.supplier
                 left join (select distinct BUKRS, BUTXT from spare_t001) st on st.BUKRS = hd.company
                 left JOIN spare_tradeln ln on hd.id = ln.tradehd_id
    </sql>

    <select id="selectSpareTradehdList" parameterType="SpareTradehd" resultMap="SpareTradehdResult">
        <include refid="selectSpareTradehdVo"/>
        <where>
            <if test="bwart != null  and bwart != ''"> and hd.bwart = #{bwart}</if>
            <if test="documentNum != null  and documentNum != ''"> and hd.document_num = #{documentNum}</if>
            <if test="documentDate != null  and documentDate != ''"> and hd.document_date = #{documentDate}</if>
            <if test="postingDate != null  and postingDate != ''"> and hd.posting_date = #{postingDate}</if>
            <if test="company != null  and company != ''"> and hd.company = #{company}</if>
            <if test="dept != null  and dept != ''"> and hd.dept = #{dept}</if>
            <if test="supplier != null  and supplier != ''"> and hd.suppliersupplier = #{supplier}</if>
            <if test="tradeType != null  and tradeType != ''"> and hd.trade_type = #{tradeType}</if>
            <if test="tradeType != null  and tradeType != ''"> and ln.warehouse_code = #{warehouseCode}</if>
        </where>
        order by create_time desc
    </select>

    <select id="selectSpareTradehdById" parameterType="Long" resultMap="SpareTradehdResult">
        <include refid="selectSpareTradehdVo"/>
        where hd.id = #{id}
    </select>
### 回答1: 备品备件管理系统(Axure)是一款专门用于管理企业备品备件的软件系统。该系统的主要功能包括备品备件存管理、采购管理、领用和归还管理以及报废处理等。下面将详细介绍该系统的几个主要模块。 1. 存管理:通过Axure系统,企业可以实时监控备品备件存情况,包括存数量、存放位置等信息。同时,系统会自动根据采购和领用的情况进行存的变动计算,并提供存预警功能,及时提醒企业补充备品备件。 2. 采购管理:Axure系统提供了完整的采购流程管理,包括采购申请、采购审批、供应商选择、采购合同管理等。企业可以根据需要自定义采购流程,并通过系统进行流程的自动化管理,提高采购效率,降低采购成本。 3. 领用和归还管理:该模块用于管理备品备件的领用和归还情况。员工可以通过系统提交领用申请,经过审批后,领用备品备件。同时,系统会记录领用的时间、领用人等信息,方便后期追溯和统计。在备品备件不再需要时,员工可以通过系统发起归还申请,系统会自动处理归还流程。 4. 报废处理:当备品备件出现质量问题或已达到寿命时,企业需要对其进行报废处理。Axure系统提供了完整的报废流程管理,包括报废申请、报废审批、报废记录等功能。系统会对报废备品备件进行统一管理,方便企业进行报废处理的追溯和分析。 总之,备品备件管理系统(Axure)是一款功能齐全、操作简便的软件系统,能够帮助企业高效管理备品备件,提高企业的运营效率和管理水平。 ### 回答2: 备品备件管理系统是一种通过使用axure软件来设计和开发的系统。该系统旨在帮助企业高效地管理备品备件的采购、存和使用情况。 首先,该系统可以通过在线订单的方式实现备品备件的采购。用户可以通过系统提交采购需求,系统会自动将采购需求发送给供应商。供应商收到采购需求后,可以及时进行确认和处理,并通过系统更新采购状态,方便用户实时跟踪采购进度。 其次,该系统具备存管理功能。每当备品备件入库或出时,都可以通过系统进行记录和更新存数量。同时,系统还可以提供存预警功能,当某一备品备件存数量低于设定的预警值时,系统会自动发送预警通知给相关人员,以便及时采购或补充存。 此外,该系统还支持备品备件的使用记录和维修记录管理。用户可以通过系统录入备品备件的使用情况和维修情况,包括使用日期、使用部门、维修日期、维修人员等信息。这些记录可以方便用户查询和分析备品备件的使用情况,以便进行合理的维修和更换决策。 最后,该系统还提供了数据报表和统计功能。用户可以通过系统生成备品备件使用报表、存报表和采购报表等,以方便管理人员对备品备件管理情况进行分析和决策。 综上所述,备品备件管理系统axure是一款功能强大的系统,可以帮助企业实现备品备件的高效管理,提高运营效率并降低成本。 ### 回答3: 备品备件管理系统axure是一款功能强大的软件工具,用于帮助企业管理和控制备品备件的流程和存。它提供了一套完整的解决方案,包括物资申请、采购、入库、出查询等功能。 首先,axure能够帮助企业实现备品备件的集中管理。它通过建立统一的物资数据,将所有备品备件的信息进行分类、归档和存储。用户可以通过系统快速查询和检索所需备件的信息,避免了繁琐的人工查找过程,提高了工作效率。 其次,axure还具有完善的存管理功能。它能够实时监控备品备件存情况,包括实际存数量、预警阈值等,并能够自动生成存报表。用户可以在系统中设置存预警值,一旦存低于该值,系统就会发出提醒,避免了因备件缺货而导致的生产延误或故障。 此外,axure还提供了供应商管理的功能模块。用户可以在系统中录入各个供应商的信息,包括联系方式、供货能力等,并可以追踪和评估供应商的服务质量和交货准时率。这样,企业可以根据供应商的表现进行合理的选择和调整,确保备品备件的及时供应和质量可靠。 总之,备品备件管理系统axure是一款功能全面、易于操作的软件工具,能够提升企业备品备件管理的效率和准确性。它能够帮助企业实现备件信息的集中管理、存的实时监控和供应商的有效管理,从而为企业提供了一个更加稳定、高效的备件管理平台。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值