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

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

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

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

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

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

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

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

前端改造

查询条件中增加仓库条件

javascript"><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>

http://www.niftyadmin.cn/n/901832.html

相关文章

git上master分支的代码合并到dev分支

今天&#xff0c;同事提交代码的时候&#xff0c;无意中提交到了master分支上。 公司的规定是&#xff0c;master只用来合并代码&#xff0c;开发的话&#xff0c;请使用dev分支。 这样的话&#xff0c;就需要把master分支的代码合并到dev分支。 操作也是很简单的&#xff0…

Proxy error: Could not proxy request /v1/3/login from localhost to http://localhost:8719/

今天换了新电脑&#xff0c;搭建测试环境的时候&#xff0c;报错了。 F12可以看到登陆的时候直接500&#xff0c;报错信息如下&#xff1a; 前端日志显示如下&#xff1a; 我尝试了很多种方法&#xff0c;最终都没有解决掉。 正一筹莫展的时候&#xff0c;我忽然看到后台环…

PDA设备BUG修复和打包成APK文件

BUG 备品备件再PDA设备中的领料出库功能&#xff0c;根据单据号无法查询。 修复 PDA后端代码直接用git下载下来&#xff0c;然后用HBuilder X直接打开就可以了。 后端代码我大致看了看&#xff0c;没有SDK&#xff0c;只有vue页面&#xff0c;因此不那么复杂。 但是即便是…

【需求研发001】--备品备件系统优化

1.PDA领料出库&#xff0c;拣配任务清单按创建日期自动排序 PDA的领料出库&#xff0c;虽然是在PDA设备里操作&#xff0c;但是它真正调用的&#xff0c;是备品备件生产环境的后端。 因此&#xff0c;这个需求&#xff0c;只需要改动生产环境的后端API&#xff0c;即可。 找…

【网页的基本标签】

写个页面 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width…

备品备件--【跨公司入库流程】

前端页面&#xff1a; 以外向交货单号&#xff0c;7600030297为例。 查询数据页面&#xff1a; 后台类&#xff1a;SpareZtmmLldController &#xff0c;对应的方法&#xff1a;‘/spare/lld/list’&#xff0c;参数&#xff1a;VBELN 后台SQL&#xff1a; -- 主数据查询方…

【移动端:rules 规则校验不生效】

今天遇到一个BUG&#xff0c;虽然在vue页面里加了规则校验&#xff0c;但是并没有生效。 经过排查后发现&#xff0c;在form表单中要增加prop属性。 如下图 但是即便是这样&#xff0c;规则依然不生效&#xff0c;最后更改为以下方式&#xff0c;才起效。 至于为什么要把规…

【维修类别】

需求分析 维修类别功能界面如下&#xff1a; 维修类别大致就是故障种类&#xff0c;它是丛属班组的&#xff0c;目前系统中在用的班组只有两个【电仪和设备】 除了从属于班组&#xff0c;维修类别还和具体的设备种类有关&#xff0c;&#xff08;比如加弹机&#xff0c;染色机…