自动化立体仓库 - WMS系统
zwl
2025-04-16 b4b2da143af53a7422135abffd5306b282be6a39
2.0版本
27个文件已修改
367 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/LocDetlController.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/LocMastController.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OpenController.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/WrkDetlLogController.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/WrkDetl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/CheckDeepScheduler.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/ErrorStockScheduler.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/PlcLogScheduler.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/WorkMastScheduler.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/web/WcsController.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/LocDetlMapper.xml 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/common.js 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/report/workIn.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/report/workOut.js 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/stoMan/stoQue.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/locDetl/locDetl.html 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/locDetlStatis/locDetlStatis.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/mat/mat.html 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/pakStore/locDetlCheckQuery.html 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/pakStore/locDetlQuery.html 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/report/viewWorkIn.html 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/report/viewWorkOut.html 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/stoMan/stoQue.html 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/waitPakin/waitPakin.html 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/wrkDetlLog/wrkDetlLog.html 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/LocDetlController.java
@@ -343,4 +343,14 @@
        return R.ok(sum);
    }
    @GetMapping("/locDetl/source")
    public void getSource(){
        List<LocDetl>list = locDetlService.selectList(null);
        for (LocDetl locDetl : list) {
            LocMast locMast = locMastService.selectById(locDetl.getLocNo());
            locDetl.setSource(locMast.getLocAttribute());
            locDetlService.update(locDetl,new EntityWrapper<LocDetl>().eq("loc_no", locDetl.getLocNo()));
        }
    }
}
src/main/java/com/zy/asrs/controller/LocMastController.java
@@ -213,6 +213,18 @@
        return R.ok();
    }
    @GetMapping(value = "/locMast/check/column/group1")
    public void group1() {
        List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("row1",9));
        for (LocMast locMast : locMasts) {
            LocMast locMast1 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1",8).eq("bay1",locMast.getBay1()).eq("lev1",locMast.getLev1()));
            locMast1.setGroup1(locMast.getGroup1());
            locMastService.updateById(locMast1);
        }
    }
    @RequestMapping(value = "/locMast/init/auth")
    @ManagerAuth(memo = "初始化库位")
//    @Transactional
src/main/java/com/zy/asrs/controller/OpenController.java
@@ -233,13 +233,14 @@
                map1.put("ReturnStatus", "1");
                map1.put("ErrorMessage", "没有找到该任务号:" + taskNo);
            } else {
                if (wrkMast.getIoType() == 1) {
                if (wrkMast.getIoType() == 1||wrkMast.getIoType() == 57|| wrkMast.getIoType() == 53) {
                    wrkMast.setWrkSts(3L);//入库开始
                } else if (wrkMast.getIoType() == 11) {
                } else if (wrkMast.getIoType() == 11 ||wrkMast.getIoType() == 107|| wrkMast.getIoType() == 103 ) {
                    wrkMast.setWrkSts(13L);//出库开始
                }
                wrkMast.setModiTime(new Date());
                if (wrkMastService.updateById(wrkMast)) {
                    log.info("WMS任务开始更新"+wrkMast);
                    map1.put("ReturnStatus", "0");
                    map1.put("ErrorMessage", "");
                } else {
@@ -279,7 +280,8 @@
                        wrkMast.setWrkSts(14L);
                    }
                    wrkMast.setModiTime(new Date());
                    if (wrkMastService.updateById(wrkMast)) {
                    if (wrkMastService.update(wrkMast,new EntityWrapper<WrkMast>().eq("wrk_no",wrkMast.getWrkNo()))) {
                        log.info("WMS任务完成更新"+wrkMast);
                        map1.put("ReturnStatus", "0");
                        map1.put("ErrorMessage", "");
                    } else {
@@ -296,6 +298,8 @@
                    return map1;
                }
                workService.cancelWrkMast(String.valueOf(wrkMast.getWrkNo()),9999L);
                map1.put("ReturnStatus", "0");
                map1.put("ErrorMessage", "");
            }
        }
        return map1;
@@ -319,17 +323,7 @@
                map1.put("ErrorMessage", "没有找到该任务号:" + taskNo);
                return map1;
            }
            if ((wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107 || wrkMast.getIoType() == 110) && wrkMast.getWrkSts() != 14) {
                wrkMast.setWrkSts(14L);//出库到站点上
                wrkMast.setModiTime(new Date());
                if (wrkMastService.updateById(wrkMast)) {
                    map1.put("ReturnStatus", "0");
                    map1.put("ErrorMessage", "");
                } else {
                    map1.put("ReturnStatus", "1");
                    map1.put("ErrorMessage", "更新任务状态失败" + wrkMast);
                }
            } else if (wrkMast.getIoType() != 101) {
            if (wrkMast.getIoType() != 101) {
                map1.put("ReturnStatus", "0");
                map1.put("ErrorMessage", "");
                return map1;
src/main/java/com/zy/asrs/controller/WrkDetlLogController.java
@@ -62,6 +62,9 @@
        EntityWrapper<WrkDetlLog> wrapper = new EntityWrapper<>();
        excludeTrash(param);
        convert(param, wrapper);
        if(!Cools.isEmpty(param.get("anfme"))){
           wrapper.eq("anfme",param.get("anfme"));
        }
        if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));}
        else {
            wrapper.orderBy("modi_time", false);
src/main/java/com/zy/asrs/entity/WrkDetl.java
@@ -218,9 +218,9 @@
    private Integer deadWarn;
    /**
     * 制购 1: 制造  2: 采购  3: 外协
     * 深浅库位
     */
    @ApiModelProperty(value= "制购 1: 制造  2: 采购  3: 外协  ")
    @ApiModelProperty(value= "深浅库位")
    private Integer source;
    /**
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -870,6 +870,7 @@
        if (!wrkMastService.updateById(wrkMast)) {
            throw new CoolException("取消工作档失败");
        }
        // 保存工作主档历史档
        if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
            throw new CoolException("保存工作历史档失败, workNo = " + wrkMast.getWrkNo());
src/main/java/com/zy/asrs/task/CheckDeepScheduler.java
@@ -43,17 +43,17 @@
    @Autowired
    private CheckDeepHandler checkDeepHandler;
    /**
     * 将两个深库位合并为深浅库位,物料号相同,源库位入库日期早于目标库位对应深库位入库日期,库位状态都为F
     */
    @Scheduled(cron = "0/30 * * * * ?")
    private void execute() throws ParseException {
        if (!confirmDeep) return;
        ReturnT<String> result = checkDeepHandler.start();
        if (!result.isSuccess()) {
            log.error("库位移转===>>浅库位移转到深库位失败");
        }
    }
//    /**
//     * 将两个深库位合并为深浅库位,物料号相同,源库位入库日期早于目标库位对应深库位入库日期,库位状态都为F
//     */
//    @Scheduled(cron = "0/30 * * * * ?")
//    private void execute() throws ParseException {
//        if (!confirmDeep) return;
//
//        ReturnT<String> result = checkDeepHandler.start();
//        if (!result.isSuccess()) {
//            log.error("库位移转===>>浅库位移转到深库位失败");
//        }
//    }
}
src/main/java/com/zy/asrs/task/ErrorStockScheduler.java
@@ -19,7 +19,7 @@
    @Autowired
    private ErrorStockHandler errorStockHandler;
    @Scheduled(cron = "0/3 * * * * ? ")
//    @Scheduled(cron = "0/3 * * * * ? ")
    private void execute(){
        ReturnT<String> returnT = errorStockHandler.start();
        if (!returnT.isSuccess()) {
src/main/java/com/zy/asrs/task/PlcLogScheduler.java
@@ -19,7 +19,7 @@
    @Autowired
    private PlcLogHandler plcLogHandler;
    @Scheduled(cron = "0/3 * * * * ? ")
//    @Scheduled(cron = "0/3 * * * * ? ")
    private void execute(){
        ReturnT<String> returnT = plcLogHandler.start();
        if (!returnT.isSuccess()) {
src/main/java/com/zy/asrs/task/WorkMastScheduler.java
@@ -1,6 +1,11 @@
package com.zy.asrs.task;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.zy.asrs.entity.LocDetl;
import com.zy.asrs.entity.LocMast;
import com.zy.asrs.entity.WrkMast;
import com.zy.asrs.service.LocDetlService;
import com.zy.asrs.service.LocMastService;
import com.zy.asrs.service.WrkMastService;
import com.zy.asrs.task.core.ReturnT;
import com.zy.asrs.task.handler.WorkMastHandler;
@@ -25,10 +30,23 @@
    private WrkMastService wrkMastService;
    @Autowired
    private WorkMastHandler workMastHandler;
    @Autowired
    private LocMastService locMastService;
    @Autowired
    private LocDetlService locDetlService;
    @Scheduled(cron = "0/3 * * * * ? ")
    private void execute(){
        List<WrkMast> wrkMasts = wrkMastService.selectToBeCompleteData();
        //空库位数据都清空
        List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts","O"));
        for (LocMast locMast : locMasts) {
            LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no",locMast.getLocNo()));
            if(locDetl==null){
                continue;
            }
            locDetlService.delete(new EntityWrapper<LocDetl>().eq("loc_no",locMast.getLocNo()));
        }
        if (wrkMasts.isEmpty()) {
            return;
        }
@@ -43,6 +61,7 @@
                }
            }
        }
    }
}
src/main/java/com/zy/asrs/task/handler/WorkMastHandler.java
@@ -263,6 +263,23 @@
                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                        return FAIL.setMsg("盘点入库 ===>> 工作明细档为空; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                    }
                    for (WrkDetl wrkDetl:wrkDetls57){
                        LocDetl locDetl = new LocDetl();
                        locDetl.sync(wrkDetl);
                        locDetl.setAnfme(wrkDetl.getAnfme());//数量
                        locDetl.setLocNo(wrkMast.getLocNo()); // 库位号
                        locDetl.setZpallet(wrkDetl.getZpallet()); // 托盘条码
                        locDetl.setModiTime(now);
                        locDetl.setAppeTime(now);
                        locDetl.setPrice(0.0);
                        if (null != locDetl) {
                            if (!locDetlService.insert(locDetl)) {
//                                exceptionHandle("拣料入库 ===>> 修改库存明细数量失败;[workNo={0}],[locNo={1}]", wrkMast.getWrkNo(), wrkMast.getLocNo());
                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                                return FAIL.setMsg("拣料入库 ===>> 修改库存明细数量失败; [workNo=" + wrkMast.getWrkNo() + "],[locNo=" + wrkMast.getLocNo() + "]");
                            }
                        }
                    }
                    // 修改库位状态 S ====>> F
                    if (locMast.getLocSts().equals("S")) {
                        locMast.setLocSts(wrkMast.getFullPlt().equals("Y")?"F":"D");
src/main/java/com/zy/common/web/WcsController.java
@@ -92,6 +92,15 @@
            return storageResult;
        }
        BasDevp basDevp=basDevpService.selectOne(new EntityWrapper<BasDevp>().eq("dev_no",param.getWcsSourceStaNo()));
        //
        List<WrkMast> wrkMasts=wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("sta_no",param.getWcsSourceStaNo()).in("wrk_sts",11,12,13));
        if(!Cools.isEmpty(wrkMasts)){
            storageResult.setReturnStatus(1);
            storageResult.setErrorMessage("有出库任务禁止入库");
            basDevp.setArea("有出库任务禁止入库");
            basDevpService.updateById(basDevp);
            return storageResult;
        }
        int ioType = 0;
        List<WaitPakin> waitPakins = null;
        if (param.getWcsIoType() == 1) {
@@ -185,18 +194,21 @@
            WaitPakin waitPakin1=new WaitPakin();
            waitPakin1.sync(wrkDetl);
            locMast1 =commonService.getLocNo2(waitPakin1,arr,0,type,1);
            //更新货物所在库位的深浅号
            wrkDetl.setSource(locMast1.getLocAttribute());
            wrkDetlService.update(wrkDetl,new EntityWrapper<WrkDetl>().eq("wrk_no", wrkDetl.getWrkNo()));
            WrkMast wrkMast=wrkMastService.selectByBarcode(barcode);
            workNo = wrkMast.getWrkNo();
            int mbz=wrkMast.getStaNo()*10+Integer.valueOf(wrkMast.getSourceLocNo().substring(6));
            int mbz=basDevp.getDevNo()*10+Integer.valueOf(wrkMast.getSourceLocNo().substring(6));
            String ykw=wrkMast.getLocNo();
            wrkMast.setIoType(ioType-50);
            wrkMast.setWrkSts(1L);//入库
            wrkMast.setModiTime(new Date());
            wrkMast.setSourceStaNo(wrkMast.getStaNo()); // 源站
            wrkMast.setSourceStaNo(basDevp.getDevNo()); // 源站
            wrkMast.setStaNo(mbz); // 目标站
            wrkMast.setLocNo(locMast1.getLocNo()); // 目标库位 = 出库时的源库位
            wrkMast.setSourceLocNo(ykw); // 源库位
            wrkMastService.updateById(wrkMast);
        }else{
            int type=Cools.isEmpty(waitPakins.get(0).getBeBatch())?1:waitPakins.get(0).getBeBatch();
@@ -233,6 +245,7 @@
                throw new CoolException("保存工作档失败");
            }
            // 生成工作档明细
            int source = locMast1.getLocAttribute();
            waitPakins.forEach(waitPakin -> {
                WrkDetl wrkDetl = new WrkDetl();
                wrkDetl.sync(waitPakin);
@@ -240,6 +253,7 @@
                wrkDetl.setIoTime(wrkMast.getIoTime());
                wrkDetl.setAppeTime(now);
                wrkDetl.setModiTime(now);
                wrkDetl.setSource(source);
                if (!wrkDetlService.insert(wrkDetl)) {
                    basDevp.setArea("保存工作明细失败");
                    basDevpService.updateById(basDevp);
src/main/resources/mapper/LocDetlMapper.xml
@@ -106,13 +106,20 @@
        <if test="crnNo!=null and crnNo!='' ">
            and b.crn_no=#{crnNo}
        </if>
        <if test="specs!=null and specs!='' ">
            and a.specs=#{specs}
        </if>
        <if test="model!=null and model!='' ">
            and a.model=#{model}
        </if>
    </sql>
    <select id="getStockOutPage" resultMap="BaseResultMap">
        select * from
        (
        select
        ROW_NUMBER() over (order by a.appe_time,a.matnr,a.loc_no) as row,
        ROW_NUMBER() over (order by a.source desc, a.appe_time,a.matnr,a.loc_no) as row,
        a.*
        from asr_loc_detl a
        left join asr_loc_mast b on a.loc_no = b.loc_no
src/main/webapp/static/js/common.js
@@ -201,13 +201,13 @@
    ,{field: 'manuDate', align: 'center',title: '生产日期', hide: true}
    ,{field: 'itemNum', align: 'center',title: '品项数', hide: true}
    ,{field: 'safeQty', align: 'center',title: '安全库存量', hide: true}
    ,{field: 'weight', align: 'center',title: '单箱净重', hide: false}
    ,{field: 'length', align: 'center',title: '单箱毛重', hide: false}
    ,{field: 'volume', align: 'center',title: '单箱体积', hide: false}
    ,{field: 'threeCode', align: 'center',title: '箱子尺寸', hide: false}
    ,{field: 'weight', align: 'center',title: '单箱净重', hide: true}
    ,{field: 'length', align: 'center',title: '单箱毛重', hide: true}
    ,{field: 'volume', align: 'center',title: '单箱体积', hide: true}
    ,{field: 'threeCode', align: 'center',title: '箱子尺寸', hide: true}
    ,{field: 'supp', align: 'center',title: '供应商', hide: true}
    ,{field: 'suppCode', align: 'center',title: '供应商编码', hide: true}
    ,{field: 'beBatch$', align: 'center',title: '是否批次', hide: true}
    ,{field: 'beBatch', align: 'center',title: '特殊物料', hide: false}
    ,{field: 'deadTime', align: 'center',title: '保质期', hide: true}
    ,{field: 'deadWarn', align: 'center',title: '预警天数', hide: true}
    ,{field: 'source$', align: 'center',title: '制购', hide: true}
@@ -225,7 +225,7 @@
    {field: 'matnr', align: 'center',title: '商品编号', sort:true}
    ,{field: 'maktx', align: 'center',title: '商品名称', sort:true}
    ,{field: 'orderNo', align: 'center',title: '单据编号', hide: true}
    ,{field: 'batch', align: 'center',title: '合同号', sort:true}
    ,{field: 'loc_no', align: 'center',title: '库位号', sort:true}
    ,{field: 'anfme', align: 'center',title: '数量'}
    ,{field: 'zpallet', align: 'center',title: '托盘条码'}
src/main/webapp/static/js/report/workIn.js
@@ -2,8 +2,8 @@
function getCol() {
    var cols = [
        {field: 'ioTime$', align: 'center', title: '入库日期', width: 200}
        ,{field: 'loc_no', align: 'center',title: '库位号'}
        ,{field: 'model', align: 'center',title: '图号'}
        // ,{field: 'loc_no', align: 'center',title: '库位号'}
        // ,{field: 'model', align: 'center',title: '图号'}
    ];
    cols.push.apply(cols, detlCols);
    return cols;
src/main/webapp/static/js/report/workOut.js
@@ -2,10 +2,10 @@
function getCol() {
    var cols = [
        {field: 'ioTime$', align: 'center', title: '出库日期', width: 200}
        ,{field: 'loc_no', align: 'center',title: '库位号'}
        ,{field: 'crn_str_time', align: 'center',title: '堆垛机启动时间'}
        ,{field: 'crn_end_time', align: 'center',title: '堆垛机停止时间'}
        ,{field: 'model', align: 'center',title: '图号'}
        // ,{field: 'loc_no', align: 'center',title: '库位号'}
        // ,{field: 'crn_str_time', align: 'center',title: '堆垛机启动时间'}
        // ,{field: 'crn_end_time', align: 'center',title: '堆垛机停止时间'}
        // ,{field: 'model', align: 'center',title: '图号'}
    ];
    cols.push.apply(cols, detlCols);
    return cols;
src/main/webapp/static/js/stoMan/stoQue.js
@@ -33,6 +33,8 @@
            ,{field: 'row1', align: 'center',title: '排'}
            ,{field: 'bay1', align: 'center',title: '列'}
            ,{field: 'lev1', align: 'center',title: '层'}
            ,{field: 'group1', align: 'center',title: '组'}
            ,{field: 'locAttribute', align: 'center',title: '深浅库位'}
            ,{field: 'fullPlt', align: 'center',title: '满板', templet:function(row){
                    var html = "<input value='fullPlt' type='checkbox' lay-skin='primary' lay-filter='tableCheckbox' table-index='"+row.LAY_TABLE_INDEX+"'";
                    if(row.fullPlt === 'Y'){html += " checked ";}
src/main/webapp/views/locDetl/locDetl.html
@@ -29,11 +29,6 @@
            <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="batch" placeholder="合同号" autocomplete="off">
        </div>
    </div>
<!--    <div class="layui-inline">-->
<!--        <div class="layui-input-inline">-->
<!--            <input class="layui-input" type="text" name="row" placeholder="排数" autocomplete="off">-->
@@ -47,9 +42,13 @@
    </div>
    <div class="layui-inline">
        <div class="layui-input-inline">
            <input class="layui-input" type="text" name="batch" placeholder="批号" autocomplete="off">
            <input class="layui-input" type="text" name="anfme" placeholder="数量" autocomplete="off">
        </div>
    </div>
    <div class="layui-inline">
        <div class="layui-input-inline">
            <input class="layui-input" type="text" name="specs" placeholder="规格" autocomplete="off">
        </div>
    </div>
    <!-- 待添加 -->
src/main/webapp/views/locDetlStatis/locDetlStatis.html
@@ -19,6 +19,11 @@
            <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="model" 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">搜索
src/main/webapp/views/mat/mat.html
@@ -250,19 +250,6 @@
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">单箱净重</label>
                    <div class="layui-input-block">
                        <input name="weight" placeholder="请输入单箱净重格" class="layui-input">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">单箱体积</label>
                    <div class="layui-input-block">
                        <input name="volume" placeholder="请输入单箱体积" class="layui-input">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">图号</label>
@@ -296,18 +283,12 @@
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">单箱毛重</label>
                    <label class="layui-form-label">特殊物料</label>
                    <div class="layui-input-block">
                        <input name="length" placeholder="请输入单箱毛重" class="layui-input">
                        <input name="be_batch" placeholder="请输入特殊物料2" class="layui-input">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">单箱体积</label>
                    <div class="layui-input-block">
                        <input name="threeCode" placeholder="请输入箱子尺寸" class="layui-input">
                    </div>
                </div>
            </div>
        </div>
src/main/webapp/views/pakStore/locDetlCheckQuery.html
@@ -46,56 +46,41 @@
    <legend>搜索栏</legend>
    <!-- 搜索栏 -->
    <div id="search-box" class="layui-form layui-card-header">
<!--        <div class="layui-input-inline" style="margin-top: -10px">-->
<!--            <select id="crnNo" name="crnNo">-->
<!--                <option value="" style="display: none">请选择巷道</option>-->
<!--                <option value="1">1号</option>-->
<!--                <option value="2">2号</option>-->
<!--                <option value="3">3号</option>-->
<!--                <option value="4">4号</option>-->
<!--            </select>-->
<!--        </div>-->
        <div class="layui-inline">
            <div class="layui-input-inline cool-auto-complete">
                <input id="crnNo" class="layui-input" name="crnNo" type="text" placeholder="请输入" autocomplete="off" style="display: none">
                <input id="crnNo$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="堆垛机号" onfocus=this.blur()>
                <div class="cool-auto-complete-window">
                    <input class="cool-auto-complete-window-input" data-key="basCrnpQueryBycrnNo" onkeyup="autoLoad(this.getAttribute('data-key'))">
                    <select class="cool-auto-complete-window-select" data-key="basCrnpQueryBycrnNoSelect" onchange="confirmed(this.getAttribute('data-key'))" multiple="multiple">
                    </select>
            <div class="layui-inline">
                <div class="layui-input-inline">
                    <input class="layui-input" type="text" name="loc_no" placeholder="库位号" autocomplete="off">
                </div>
            </div>
        </div>
        <div class="layui-inline">
            <div class="layui-input-inline">
                <input class="layui-input" type="text" name="loc_no" placeholder="库位号" autocomplete="off">
            <div class="layui-inline">
                <div class="layui-input-inline">
                    <input class="layui-input" type="text" name="matnr" placeholder="商品编号"  autocomplete="off">
                </div>
            </div>
        </div>
        <div class="layui-inline">
            <div class="layui-input-inline">
                <input class="layui-input" type="text" name="matnr" placeholder="商品编号"  autocomplete="off">
            <div class="layui-inline">
                <div class="layui-input-inline">
                    <input class="layui-input" type="text" name="maktx" placeholder="商品名称" autocomplete="off">
                </div>
            </div>
        </div>
        <div class="layui-inline">
            <div class="layui-input-inline">
                <input class="layui-input" type="text" name="maktx" placeholder="物料描述" autocomplete="off">
            <div class="layui-inline">
                <div class="layui-input-inline">
                    <input class="layui-input" type="text" name="specs" placeholder="规格" autocomplete="off">
                </div>
            </div>
        </div>
        <!-- 日期范围 -->
        <div class="layui-inline" style="width: 300px">
            <div class="layui-input-inline">
                <input class="layui-input layui-laydate-range" name="modi_time" type="text" placeholder="起始时间 - 终止时间" autocomplete="off" style="width: 300px">
            <div class="layui-inline">
                <div class="layui-input-inline">
                    <input class="layui-input" type="text" name="model" placeholder="图号" autocomplete="off">
                </div>
            </div>
        </div>
        <div class="layui-inline">
            <div class="layui-input-inline">
                <input class="layui-input" type="text" name="batch" placeholder="合同号" autocomplete="off">
            <!-- 日期范围 -->
            <div class="layui-inline" style="width: 300px">
                <div class="layui-input-inline">
                    <input class="layui-input layui-laydate-range" name="modi_time" type="text" placeholder="起始时间 - 终止时间" autocomplete="off" style="width: 300px">
                </div>
            </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="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">重置</button>-->
            <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">重置</button>
        </div>
    </div>
</fieldset>
src/main/webapp/views/pakStore/locDetlQuery.html
@@ -47,17 +47,6 @@
    <!-- 搜索栏 -->
    <div id="search-box" class="layui-form layui-card-header">
        <div class="layui-inline">
            <div class="layui-input-inline cool-auto-complete">
                <input id="crnNo" class="layui-input" name="crnNo" type="text" placeholder="请输入" autocomplete="off" style="display: none">
                <input id="crnNo$" class="layui-input cool-auto-complete-div" onclick="autoShow(this.id)" type="text" placeholder="堆垛机号" onfocus=this.blur()>
                <div class="cool-auto-complete-window">
                    <input class="cool-auto-complete-window-input" data-key="basCrnpQueryBycrnNo" onkeyup="autoLoad(this.getAttribute('data-key'))">
                    <select class="cool-auto-complete-window-select" data-key="basCrnpQueryBycrnNoSelect" 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="loc_no" placeholder="库位号" autocomplete="off">
            </div>
@@ -69,12 +58,17 @@
        </div>
        <div class="layui-inline">
            <div class="layui-input-inline">
                <input class="layui-input" type="text" name="maktx" placeholder="物料描述" autocomplete="off">
                <input class="layui-input" type="text" name="maktx" placeholder="商品名称" autocomplete="off">
            </div>
        </div>
        <div class="layui-inline">
            <div class="layui-input-inline">
                <input class="layui-input" type="text" name="batch" placeholder="合同号" autocomplete="off">
                <input class="layui-input" type="text" name="specs" placeholder="规格" autocomplete="off">
            </div>
        </div>
        <div class="layui-inline">
            <div class="layui-input-inline">
                <input class="layui-input" type="text" name="model" placeholder="图号" autocomplete="off">
            </div>
        </div>
        <!-- 日期范围 -->
src/main/webapp/views/report/viewWorkIn.html
@@ -54,6 +54,11 @@
            <input class="layui-input" type="text" name="model" placeholder="图号" autocomplete="off">
        </div>
    </div>
    <div class="layui-inline">
    <div class="layui-input-inline">
        <input class="layui-input" type="text" name="anfme" placeholder="数量" autocomplete="off">
    </div>
</div>
    <div id="data-search-btn" class="layui-btn-container layui-form-item">
        <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">搜索</button>
        <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">重置</button>
src/main/webapp/views/report/viewWorkOut.html
@@ -54,6 +54,9 @@
            <input class="layui-input" type="text" name="model" placeholder="图号" autocomplete="off">
        </div>
    </div>
    <div class="layui-input-inline">
        <input class="layui-input" type="text" name="anfme" placeholder="数量" autocomplete="off">
    </div>
    <div id="data-search-btn" class="layui-btn-container layui-form-item">
        <button id="search" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="search">搜索</button>
        <button id="reset" class="layui-btn layui-btn-primary layui-btn-radius" lay-submit lay-filter="reset">重置</button>
src/main/webapp/views/stoMan/stoQue.html
@@ -53,6 +53,16 @@
            <input class="layui-input" type="text" name="barcode" placeholder="托盘码" autocomplete="off">
        </div>
    </div>
    <div class="layui-inline">
        <div class="layui-input-inline">
            <input class="layui-input" type="text" name="group1" placeholder="组" autocomplete="off">
        </div>
    </div>
    <div class="layui-inline">
        <div class="layui-input-inline">
            <input class="layui-input" type="text" name="loc_attribute" placeholder="深浅库位" autocomplete="off">
        </div>
    </div>
    <!-- 日期范围 -->
    <div class="layui-inline" style="width: 300px">
        <div class="layui-input-inline">
src/main/webapp/views/waitPakin/waitPakin.html
@@ -16,12 +16,12 @@
<div id="search-box" class="layui-form layui-card-header">
    <div class="layui-inline">
        <div class="layui-input-inline">
            <input class="layui-input" type="text" name="zpallet" placeholder="托盘条码" autocomplete="off">
            <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="batch" placeholder="合同号" autocomplete="off">
            <input class="layui-input" type="text" name="zpallet" placeholder="托盘码" autocomplete="off">
        </div>
    </div>
    <div class="layui-inline">
@@ -29,6 +29,22 @@
            <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="condition" placeholder="商品名称" autocomplete="off">
        </div>
    </div>
    <div class="layui-inline">
        <div class="layui-input-inline">
            <input class="layui-input" type="text" name="anfme" placeholder="数量" autocomplete="off">
        </div>
    </div>
    <div class="layui-inline">
        <div class="layui-input-inline">
            <input class="layui-input" type="text" name="specs" placeholder="规格" autocomplete="off">
        </div>
    </div>
    <!-- 日期范围 -->
    <div class="layui-inline" style="width: 300px">
        <div class="layui-input-inline">
src/main/webapp/views/wrkDetlLog/wrkDetlLog.html
@@ -19,14 +19,40 @@
            <input class="layui-input" type="text" name="wrk_no" placeholder="工作号" autocomplete="off">
        </div>
    </div>
    <div class="layui-inline" style="width: 300px">
    <div class="layui-inline">
        <div class="layui-input-inline">
            <input class="layui-input layui-laydate-range" name="modi_time" type="text" placeholder="起始时间 - 终止时间" autocomplete="off" style="width: 300px">
            <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="batch" placeholder="合同号" autocomplete="off">
            <input class="layui-input" type="text" name="zpallet" 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="condition" placeholder="商品名称" autocomplete="off">
        </div>
    </div>
    <div class="layui-inline">
        <div class="layui-input-inline">
            <input class="layui-input" type="text" name="anfme" placeholder="数量" autocomplete="off">
        </div>
    </div>
    <div class="layui-inline">
        <div class="layui-input-inline">
            <input class="layui-input" type="text" name="specs" placeholder="规格" autocomplete="off">
        </div>
    </div>
    <div class="layui-inline" style="width: 300px">
        <div class="layui-input-inline">
            <input class="layui-input layui-laydate-range" name="modi_time" type="text" placeholder="起始时间 - 终止时间" autocomplete="off" style="width: 300px">
        </div>
    </div>
    <!-- 待添加 -->