自动化立体仓库 - WMS系统
zhangc
2024-12-23 9f10f8c5f5ddbf763d6f7774b98e82bb0126f735
更新滞留天数报告及搜索条件
13个文件已修改
378 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/ReportQueryController.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/ViewStayTimeBean.java 240 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application-loc.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/ViewStayTimeMapper.xml 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/agvWrkLog/wrkLog.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/agvWrkMast/wrkMast.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/agvWrkMastLog/wrkMastLog.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/orderLog/order.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/report/stayTime.js 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/agvWrkLog/wrkLog.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/agvWrkMast/wrkMast.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/agvWrkMastLog/wrkMastLog.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/report/viewStayTime.html 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/ReportQueryController.java
@@ -89,6 +89,26 @@
        if (!Cools.isEmpty(locNo) && !locNo.equals("null")) {
            bean.setLoc_no(locNo);
        }
        String lev1 = String.valueOf(param.get("lev1"));
        if (!Cools.isEmpty(locNo) && !locNo.equals("null")) {
            bean.setLev1(Integer.parseInt(lev1));
        }
        String floor = String.valueOf(param.get("floor"));
        if (!Cools.isEmpty(locNo) && !locNo.equals("null")) {
            bean.setFloor(Integer.parseInt(floor));
        }
        String matnr = String.valueOf(param.get("matnr"));
        if (!Cools.isEmpty(locNo) && !locNo.equals("null")) {
            bean.setMatnr(matnr);
        }
        String maktx = String.valueOf(param.get("maktx"));
        if (!Cools.isEmpty(locNo) && !locNo.equals("null")) {
            bean.setMaktx(maktx);
        }
        String locType1 = String.valueOf(param.get("locType1"));
        if (!Cools.isEmpty(locNo) && !locNo.equals("null")) {
            bean.setMaktx(locType1);
        }
//        List<ViewStayTimeBean> list = reportQueryMapper.queryViewStayTimeList(bean);
//        int count = reportQueryMapper.getViewStayTimeCount(bean);
        List<ViewStayTimeBean> list = reportQueryMapper.queryAllViewStayTimeList(bean);
src/main/java/com/zy/asrs/entity/ViewStayTimeBean.java
@@ -19,169 +19,179 @@
@Data
public class ViewStayTimeBean {
    private int pageNumber;
    private int pageSize;
    private int pageNumber;
    private int pageSize;
    private int stay_time;
    private int stay_time;
    private String begin_date;
    private String end_date;
    private String begin_date;
    private String end_date;
    private Integer row;
    private Integer row;
    private Double store_max;
    private Double store_max;
    private Double store_min;
    private Double store_min;
    private Integer store_max_date;
    private Integer store_max_date;
    private Integer sum_qty;
    private Integer sum_qty;
    @ApiModelProperty(value= "库位号")
    private String loc_no;
    @ApiModelProperty(value = "库位号")
    private String loc_no;
    @ApiModelProperty(value= "货架条码")
    private String zpallet;
    @ApiModelProperty(value = "货架条码")
    private String zpallet;
    @ApiModelProperty(value= "数量")
    private Double anfme;
    @ApiModelProperty(value = "数量")
    private Double anfme;
    @ApiModelProperty(value= "物料号")
    private String matnr;
    @ApiModelProperty(value = "物料号")
    private String matnr;
    @ApiModelProperty(value= "物料号")
    private String maktx;
    private Integer floor;
    @ApiModelProperty(value= "序列码")
    private String batch;
    private Integer lev1;
    @ApiModelProperty(value= "单据编号")
    @TableField("order_no")
    private String orderNo;
    private Integer locType1;
    @ApiModelProperty(value= "规格")
    private String specs;
    @ApiModelProperty(value = "物料号")
    private String maktx;
    @ApiModelProperty(value= "批次")
    private String model;
    @ApiModelProperty(value = "序列码")
    private String batch;
    @ApiModelProperty(value= "颜色")
    private String color;
    @ApiModelProperty(value = "单据编号")
    @TableField("order_no")
    private String orderNo;
    @ApiModelProperty(value= "品牌")
    private String brand;
    private String order_no;
    @ApiModelProperty(value= "单位")
    private String unit;
    @ApiModelProperty(value= "单价")
    private Double price;
    @ApiModelProperty(value = "规格")
    private String specs;
    @ApiModelProperty(value= "sku")
    private String sku;
    @ApiModelProperty(value = "批次")
    private String model;
    @ApiModelProperty(value= "包数")
    private Double units;
    @ApiModelProperty(value = "颜色")
    private String color;
    @ApiModelProperty(value= "条码")
    private String barcode;
    @ApiModelProperty(value = "品牌")
    private String brand;
    @ApiModelProperty(value= "物料状态")
    private String origin;
    @ApiModelProperty(value = "单位")
    private String unit;
    @ApiModelProperty(value= "厂家")
    private String manu;
    @ApiModelProperty(value = "单价")
    private Double price;
    @ApiModelProperty(value= "单据时间")
    private String manu_date;
    @ApiModelProperty(value = "sku")
    private String sku;
    @ApiModelProperty(value= "品项数")
    private String item_num;
    @ApiModelProperty(value = "包数")
    private Double units;
    @ApiModelProperty(value= "安全库存量")
    private Double safe_qty;
    @ApiModelProperty(value = "条码")
    private String barcode;
    @ApiModelProperty(value= "重量")
    private Double weight;
    @ApiModelProperty(value = "物料状态")
    private String origin;
    @ApiModelProperty(value= "长度")
    private Double length;
    @ApiModelProperty(value = "厂家")
    private String manu;
    @ApiModelProperty(value= "体积")
    private Double volume;
    @ApiModelProperty(value = "单据时间")
    private String manu_date;
    @ApiModelProperty(value= "三方编码")
    private String three_code;
    @ApiModelProperty(value = "品项数")
    private String item_num;
    @ApiModelProperty(value= "供应商")
    private String supp;
    @ApiModelProperty(value = "安全库存量")
    private Double safe_qty;
    @ApiModelProperty(value= "供应商编码")
    private String supp_code;
    @ApiModelProperty(value = "重量")
    private Double weight;
    @ApiModelProperty(value= "是否批次 1: 是  0: 否  ")
    private Integer be_batch;
    @ApiModelProperty(value = "长度")
    private Double length;
    @ApiModelProperty(value= "保质期")
    private String dead_time;
    @ApiModelProperty(value = "体积")
    private Double volume;
    @ApiModelProperty(value= "预警天数")
    private Integer dead_warn;
    @ApiModelProperty(value = "三方编码")
    private String three_code;
    @ApiModelProperty(value= "制购 1: 制造  2: 采购  3: 外协  ")
    private Integer source;
    @ApiModelProperty(value= "要求检验 1: 是  0: 否  ")
    private Integer inspect;
    @ApiModelProperty(value = "供应商")
    private String supp;
    @ApiModelProperty(value= "危险品 1: 是  0: 否  ")
    private Integer danger;
    @ApiModelProperty(value = "供应商编码")
    private String supp_code;
    @ApiModelProperty(value= "修改人员")
    private Long modi_user;
    @ApiModelProperty(value = "是否批次 1: 是  0: 否  ")
    private Integer be_batch;
    @ApiModelProperty(value= "修改时间")
    private Date modi_time;
    @ApiModelProperty(value = "保质期")
    private String dead_time;
    @ApiModelProperty(value= "创建者")
    private Long appe_user;
    @ApiModelProperty(value = "预警天数")
    private Integer dead_warn;
    @ApiModelProperty(value= "添加时间")
    private Date appe_time;
    @ApiModelProperty(value = "制购 1: 制造  2: 采购  3: 外协  ")
    private Integer source;
    @ApiModelProperty(value= "备注")
    private String memo;
    @ApiModelProperty(value = "要求检验 1: 是  0: 否  ")
    private Integer inspect;
    public String getModiUser$(){
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.modi_user);
        if (!Cools.isEmpty(user)){
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    @ApiModelProperty(value = "危险品 1: 是  0: 否  ")
    private Integer danger;
    public String getModiTime$(){
        if (Cools.isEmpty(this.modi_time)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modi_time);
    }
    @ApiModelProperty(value = "修改人员")
    private Long modi_user;
    public String getAppeUser$(){
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.appe_user);
        if (!Cools.isEmpty(user)){
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    @ApiModelProperty(value = "修改时间")
    private Date modi_time;
    public String getAppeTime$(){
        if (Cools.isEmpty(this.appe_time)){
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appe_time);
    }
    @ApiModelProperty(value = "创建者")
    private Long appe_user;
    @ApiModelProperty(value = "添加时间")
    private Date appe_time;
    @ApiModelProperty(value = "备注")
    private String memo;
    public String getModiUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.modi_user);
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public String getModiTime$() {
        if (Cools.isEmpty(this.modi_time)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.modi_time);
    }
    public String getAppeUser$() {
        UserService service = SpringUtils.getBean(UserService.class);
        User user = service.selectById(this.appe_user);
        if (!Cools.isEmpty(user)) {
            return String.valueOf(user.getUsername());
        }
        return null;
    }
    public String getAppeTime$() {
        if (Cools.isEmpty(this.appe_time)) {
            return "";
        }
        return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.appe_time);
    }
}
src/main/resources/application-loc.yml
@@ -94,7 +94,7 @@
#  url: http://39.184.149.30:8877
#  orderReportPath: /DBMS/U8/CM/add
mes:
  report: true
  report: false
  url: https://v3-ali.blacklake.cn/api/openapi/domain/web/v1/route
  orderReportPath: /inventory/open/v2/transfer_order/ordinary/_execute
  pakinReportPath: /inventory/open/v2/inbound_order/execute/_inbound
src/main/resources/mapper/ViewStayTimeMapper.xml
@@ -42,6 +42,42 @@
        </if>
</sql>
    <sql id="viewStayTimeConditionSql2">
        <if test="loc_no!=null and loc_no!='' ">
            and asr_loc_mast.loc_no like '%' + #{loc_no} + '%'
        </if>
        <if test="floor!=null and floor!='' ">
            and floor = #{floor}
        </if>
        <if test="locType1!=null and locType1!='' ">
            and loc_type1 = #{locType1}
        </if>
        <if test="lev1!=null and lev1!='' ">
            and lev1 = #{lev1}
        </if>
        <if test="matnr!=null and matnr!='' ">
            and matnr like '%' + #{matnr} + '%'
        </if>
        <if test="stay_time!=null and stay_time!='' ">
            and stay_time > #{stay_time}
        </if>
        <if test="maktx!=null and maktx!='' ">
            and (maktx like '%' + #{maktx} + '%'
            )
        </if>
        <if test="begin_date!=null and begin_date!='' ">
            <![CDATA[
            and appe_time >= #{begin_date}
            ]]>
        </if>
        <if test="end_date!=null and end_date!='' ">
            <![CDATA[
            and appe_time <= #{end_date}
            ]]>
        </if>
    </sql>
<!-- 分页查询所有信息 -->
<select id="queryViewStayTimeList" parameterType="com.zy.asrs.entity.ViewStayTimeBean" resultType="com.zy.asrs.entity.ViewStayTimeBean">
    select
@@ -106,7 +142,7 @@
                          , all_loc_detl.*
                     FROM all_loc_detl
                     where 1=1
                     <include refid="viewStayTimeConditionSql"></include>
                     <include refid="viewStayTimeConditionSql2"></include>
                 ) t
                     left join (select matnr as c ,store_max_date,store_max,store_min from man_mat) b
                               on t.matnr = b.c
@@ -130,7 +166,7 @@
                          , all_loc_detl.*
                     FROM all_loc_detl
                     where 1=1
                     <include refid="viewStayTimeConditionSql"></include>
                     <include refid="viewStayTimeConditionSql2"></include>
                 ) t
         ) a
</select>
src/main/webapp/static/js/agvWrkLog/wrkLog.js
@@ -16,6 +16,7 @@
    cols.push.apply(cols, detlCols);
    cols.push({field: 'modiUser$', align: 'center',title: '修改人员',hide: true}
        ,{field: 'appUser$', align: 'center',title: '用户'}
        ,{field: 'modiTime$', align: 'center',title: '修改时间',hide: true}
    )
    return cols;
src/main/webapp/static/js/agvWrkMast/wrkMast.js
@@ -57,6 +57,7 @@
            // ,{field: 'crnStrTime$', align: 'center',title: '堆垛机启动时间'}
            // ,{field: 'crnEndTime$', align: 'center',title: '堆垛机停止时间'}
            // ,{field: 'refIotime$', align: 'center',title: '拣料时间'}
            ,{field: 'appeUser$', align: 'center',title: '用户'}
            ,{field: 'appeTime$', align: 'center',title: '开始时间', hide:false, width: 160}
            ,{field: 'modiUser$', align: 'center',title: '修改人员', hide:true}
            ,{field: 'modiTime$', align: 'center',title: '修改时间', hide:true, width: 160}
src/main/webapp/static/js/agvWrkMastLog/wrkMastLog.js
@@ -28,7 +28,7 @@
            ,{field: 'ioPri', align: 'center',title: '优先级'}
            ,{field: 'sourceLocNo', align: 'center',title: '源库位'}
            ,{field: 'locNo', align: 'center',title: '目标库位'}
            ,{field: 'modiUser$', align: 'center',title: '修改人员', hide:true}
            ,{field: 'appeUser$', align: 'center',title: '用户'}
            ,{field: 'appeTime$', align: 'center',title: '开始时间', hide:false}
            ,{field: 'barcode', align: 'center',title: '货架码'}
            ,{fixed: 'right', title:'操作', align: 'center', toolbar: '#operate', width: 80}
src/main/webapp/static/js/orderLog/order.js
@@ -54,8 +54,9 @@
            //{field: 'postFee', align: 'center', title: '总数量',  minWidth: 130, width: 130},
            {align: 'center', title: '明细', toolbar: '#tbLook', minWidth: 160, width: 160},
            {field: 'createTime$', title: '创建时间', hide: true},
            {field: 'createBy$', title: '创建人'},
            {field: 'orderTime', align: 'center',title: '单据日期'},
            {field: 'shipCode', align: 'center',title: '制单人', hide: false},
            //{field: 'shipCode', align: 'center',title: '制单人', hide: false},
            {field: 'settle$', align: 'center', title: '状态', templet: '#settleTpl',  minWidth: 160, width: 160},
            {field: 'memo', align: 'center',title: '备注', hide: true},
            {field: 'cstmrName', align: 'center',title: '供应商/客户编码', hide: true},
src/main/webapp/static/js/report/stayTime.js
@@ -4,8 +4,29 @@
        {field: 'appeTime$', title: '入库时间', align: 'center', width: 200}
        ,{field: 'stay_time', align: 'center',title: '滞留天数'}
        ,{field: 'loc_no', align: 'center',title: '库位号'}
        ,{field: 'zpallet', align: 'center',title: '货架条码', hide: false}
       // ,{field: 'suppCode', align: 'center',title: '货架码', hide: false}
        ,{field: 'matnr', align: 'center',title: '商品编码'}
        ,{field: 'anfme', align: 'center',title: '数量'}
        ,{field: 'batch', align: 'center',title: '批次自由项'}
        ,{field: 'maktx', align: 'center',title: '商品名称'}
        ,{field: 'order_no', align: 'center',title: '单据编号', hide: false}
        ,{field: 'three_code', align: 'center',title: '销售订单号'}
        ,{field: 'deadTime', align: 'center',title: '销售订单行号' ,hide: true}
        ,{field: 'specs', align: 'center',title: '规格型号', hide: true}
        ,{field: 'model', align: 'center',title: '通用型号', hide: true}
        ,{field: 'processSts$', align: 'center',title: '工序', hide: true}
        ,{field: 'brand', align: 'center',title: '商品分类编码', hide: true}
        ,{field: 'color', align: 'center',title: '商品分类名称', hide: true}
        ,{field: 'unit', align: 'center',title: '计量单位', hide: true}
        ,{field: 'price', align: 'center',title: '进项税', hide: true}
        ,{field: 'units', align: 'center',title: '销项税', hide: true}
        ,{field: 'dsDate', align: 'center',title: '启用日期', hide: true}
        ,{field: 'supp', align: 'center',title: '建档人', hide: true}
        ,{field: 'dInvCreateDatetime', align: 'center',title: '建档日期', hide: true}
    ];
    cols.push.apply(cols, detlCols);
    //cols.push.apply(cols, detlCols);
    return cols;
}
src/main/webapp/views/agvWrkLog/wrkLog.html
@@ -92,7 +92,7 @@
<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/agvWrkLog/wrkLog.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/agvWrkLog/wrkLog.js?v=1" charset="utf-8"></script>
<iframe id="detail-iframe" scrolling="auto" style="display:none;"></iframe>
src/main/webapp/views/agvWrkMast/wrkMast.html
@@ -144,7 +144,7 @@
<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/agvWrkMast/wrkMast.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/agvWrkMast/wrkMast.js?v=2" charset="utf-8"></script>
<iframe id="detail-iframe" scrolling="auto" style="display:none;"></iframe>
src/main/webapp/views/agvWrkMastLog/wrkMastLog.html
@@ -89,7 +89,7 @@
<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/agvWrkMastLog/wrkMastLog.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/agvWrkMastLog/wrkMastLog.js?v=1" charset="utf-8"></script>
<iframe id="detail-iframe" scrolling="auto" style="display:none;"></iframe>
src/main/webapp/views/report/viewStayTime.html
@@ -24,10 +24,44 @@
            <input class="layui-input" type="text" name="loc_no" placeholder="库位号" autocomplete="off">
        </div>
    </div>
    <div class="layui-inline">
        <div class="layui-input-inline">
            <input class="layui-input" type="text" name="matnr" placeholder="物料编号" autocomplete="off">
        </div>
    </div>
    <div class="layui-inline">
        <div class="layui-input-inline">
            <input class="layui-input" type="text" name="maktx" placeholder="物料名称" autocomplete="off">
        </div>
    </div>
    <div class="layui-inline">
        <div class="layui-input-inline cool-auto-complete">
            <input id="locType1" class="layui-input" type="text" style="display: none" name="loc_type1">
            <input id="locType1$" placeholder="库位类型" class="layui-input cool-auto-complete-div"  onclick="autoShow(this.id)" type="text" onfocus=this.blur()>
            <div class="cool-auto-complete-window">
                <input class="cool-auto-complete-window-input" data-key="basLocType1QueryBylocType1" onkeyup="autoLoad(this.getAttribute('data-key'))">
                <select class="cool-auto-complete-window-select" data-key="basLocType1QueryBylocType1Select" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
                </select>
            </div>
        </div>
    </div>
    <div class="layui-inline">
        <div class="layui-input-inline">
            <input class="layui-input" type="text" name="lev1" placeholder="层" autocomplete="off">
        </div>
    </div>
    <div class="layui-inline">
        <div class="layui-input-inline">
            <input class="layui-input" type="text" name="floor" placeholder="楼" autocomplete="off">
        </div>
    </div>
    <!-- 待添加 -->
    <div id="data-search-btn" class="layui-btn-container layui-form-item" style="display: inline-block">
        <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">搜索</button>
        <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">搜索
        </button>
    </div>
</div>
@@ -35,7 +69,7 @@
<table class="layui-hide" id="stayTime" lay-filter="stayTime"></table>
<script type="text/html" id="toolbar">
    <div class="layui-btn-container">
        <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" >导出</button>
        <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData">导出</button>
    </div>
</script>
@@ -46,7 +80,7 @@
<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/report/stayTime.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/report/stayTime.js?v=2" charset="utf-8"></script>
</body>
</html>