自动化立体仓库 - WMS系统
4d3e44bdb22726549f51272ad5a52ce359ac2d66..40ada0315f79eaaa30dce2f246878b3ea0d7493b
2025-12-20 1
#
40ada0 对比 | 目录
2025-12-20 1
#
d592e4 对比 | 目录
2个文件已添加
22个文件已修改
903 ■■■■■ 已修改文件
src/main/java/com/zy/asrs/entity/param/StockOutParam.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/result/FindLocNoAttributeVo.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/WorkService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java 189 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/handler/WrkMastStaInItHandler.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/kingdee/SaveOrderSyncScheduler.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/task/kingdee/handler/ReviewOrderSyncHandler.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/service/CommonService.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/web/WcsController.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/common/web/param/SearchLocParam.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/erp/kingdee/enums/KingDeeUtilType.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/LocDetlMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/basArmMastExp/basArmMastExp.js 265 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/common.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/pakStore/locCheckOut.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/pakStore/turnOver.js 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/basArmMastExp/basArmMastExp.html 270 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/order/order.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/pakStore/locCheckOut.html 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/pakStore/locDetlCheckQuery.html 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/pakStore/locDetlQuery.html 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/param/StockOutParam.java
@@ -14,6 +14,7 @@
    // 出站口
    private Integer outSite;
    private Integer outStaArea;
    // 物料编号集合
    private List<LocDetl> locDetls;
src/main/java/com/zy/asrs/entity/result/FindLocNoAttributeVo.java
@@ -17,6 +17,7 @@
    private String boxType1 = "1";
    private String boxType2 = "1";
    private String boxType3 = "1";
    private Integer outArea;
    public FindLocNoAttributeVo() {
    }
@@ -199,6 +200,14 @@
        this.standby3 = standby3;
    }
    public Integer getOutArea() {
        return outArea;
    }
    public void setOutArea(Integer outArea) {
        this.outArea = outArea;
    }
    public boolean beSimilar(LocDetl locDetl){
        return (this.matnr.equals(locDetl.getMatnr())
src/main/java/com/zy/asrs/service/WorkService.java
@@ -39,6 +39,7 @@
     * @param ioType 入出库类型
     */
    void stockOut(BasDevp staNo, List<LocDetlDto> locDetls, IoWorkType ioWorkType, Long userId);
    void stockOut(BasDevp staNo, Integer outStaArea, List<LocDetlDto> locDetls, IoWorkType ioWorkType, Long userId);
    void stockOut(BasDevp staNo, TaskDto taskDto, Long userId);
src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java
@@ -921,26 +921,10 @@
        String orderNo = null;
        for (CombParam.CombMat combMat : param.getCombMats()) {
            if(combMat.getSupplier().equals("1")){
//                List<OrderDetlPakin> orderDetlPakins = orderDetlPakinService.selectList(new EntityWrapper<OrderDetlPakin>()
//                        .eq("matnr", combMat.getMatnr()).eq("box_type3", combMat.getOrderNo())
//                        .eq("standby1", combMat.getStandby1()).eq("standby2", combMat.getStandby2())
//                        .eq("standby3", combMat.getStandby3()).eq("box_type2","BU-00001"));//1时检索和得
//                if (orderDetlPakins.size() > 0) {
//                    orderNo = orderDetlPakins.get(0).getOrderNo();
//                    combMat.setBoxType1(orderDetlPakins.get(0).getBoxType1());
//                    combMat.setBoxType2(orderDetlPakins.get(0).getBoxType2());
//                    combMat.setBoxType3(orderDetlPakins.get(0).getBoxType3());
//                    combMat.setMemo(orderDetlPakins.get(0).getMemo());
//                    combMat.setSupp(orderDetlPakins.get(0).getSupp());
//                    combMat.setSuppCode(orderDetlPakins.get(0).getSuppCode());
//                    combMat.setManu(orderDetlPakins.get(0).getManu());//仓库编码
//                } else {
//                    throw new CoolException("未查询到相关订单===>>" + param.getBarcode());
//                }
                List<OrderDetlPakin> orderDetlPakins = orderDetlPakinService.selectList(new EntityWrapper<OrderDetlPakin>()
                        .eq("matnr", combMat.getMatnr()).eq("box_type3", combMat.getOrderNo())
                        .eq("standby1", combMat.getStandby1()).eq("standby2", combMat.getStandby2())
                        .eq("standby3", combMat.getStandby3()).eq("box_type2","shyucheng.test"));
                        .eq("standby3", combMat.getStandby3()).eq("box_type2","BU-00001"));//1时检索和得
                if (orderDetlPakins.size() > 0) {
                    orderNo = orderDetlPakins.get(0).getOrderNo();
                    combMat.setBoxType1(orderDetlPakins.get(0).getBoxType1());
src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -487,7 +487,194 @@
            }catch (Exception e){}
        }
    }
    @Override
    @Transactional
    public void stockOut(BasDevp staNo,Integer outStaArea, List<LocDetlDto> locDetlDtos, IoWorkType ioWorkType, Long userId) {
        Date now = new Date();
        // 合并同类项
        Set<String> locNos = new HashSet<>();
        List<OutLocDto> dtos = new ArrayList<>();
        for (LocDetlDto locDetlDto : locDetlDtos) {
            String locNo = locDetlDto.getLocDetl().getLocNo();
            if (locNos.contains(locNo)) {
                for (OutLocDto dto : dtos) {
                    if (dto.getLocNo().equals(locNo)) {
                        dto.getLocDetlDtos().add(locDetlDto);
                        break;
                    }
                }
            } else {
                locNos.add(locNo);
                dtos.add(new OutLocDto(locNo, locDetlDto));
            }
        }
        Config configAutoMPArea = configService.selectConfigByCode("AutoMPArea");
        Integer ioType = null;
        // 生成工作档
        for (OutLocDto dto : dtos) {
            // 判断入出库类型:101.全板出库 or 103.拣料出库
            if (ioWorkType == null) {
                ioType = dto.isAll() ? 101 : 103;
            } else if (ioWorkType.equals(IoWorkType.CHECK_OUT)) {
                ioType = 107;
            }
            assert ioType != null;
            // 获取库位
            LocMast locMast = locMastService.selectById(dto.getLocNo());
            Integer outSta = staNo.getDevNo();
//            //2号堆垛机全板出库站指定为204站,拣料站指定为202
//            if(locMast.getCrnNo()==2){
//                outSta = ioType == 101 ? 204 : 202;
//            }
            // 获取路径
            StaDesc staDesc = staDescService.queryCrnStn(ioType, locMast.getCrnNo(), outSta);
//            if(ioType.equals(107)){
//                staDesc = staDescService.queryCrnStnCheck(ioType, locMast.getCrnNo(), outSta);
//            }
            // 生成工作号
            int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
            // 生成工作档
            WrkMast wrkMast = new WrkMast();
            wrkMast.setWrkNo(workNo);
            wrkMast.setIoTime(now);
            wrkMast.setWrkSts(11L); // 工作状态:11.生成出库ID
            wrkMast.setIoType(ioType); // 入出库状态
            wrkMast.setIoPri(13D); // 优先级:13
            wrkMast.setCrnNo(locMast.getCrnNo());
            wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 源站
            wrkMast.setStaNo(staDesc.getStnNo()); // 目标站
            wrkMast.setSourceLocNo(dto.getLocNo()); // 源库位
            wrkMast.setBarcode(locMast.getBarcode());
            wrkMast.setFullPlt("Y"); // 满板:Y
            wrkMast.setPicking("N"); // 拣料
            wrkMast.setExitMk("N"); // 退出
            wrkMast.setEmptyMk("N"); // 空板
            wrkMast.setCtnKind(outStaArea);//
            wrkMast.setLinkMis("N");
            wrkMast.setBarcode(locMast.getBarcode());
            wrkMast.setTakeNone("0");  //0非自动
            List<BasAgvWrkDetl> basAgvWrkDetls = null;
            List<BasAgvLocDetl> basAgvLocDetls = null;
            try{
                if (Boolean.parseBoolean(configAutoMPArea.getValue())){
                    if (wrkMast.getStaNoAgvSign()){
                        if (ioType==101){
                            // 全板出库
                            basAgvLocDetls = new ArrayList<>();
                        } else {
                            // 拣料出库
                            basAgvWrkDetls = new ArrayList<>();
                        }
                        wrkMast.setTakeNone("1"); //等待下发
                    } else {
                        wrkMast.setTakeNone("3");  //无需AGV搬运
                    }
                }
            } catch (Exception e) {}  //配置项不存在,不做处理
            wrkMast.setAppeUser(userId); // 操作人员数据
            wrkMast.setAppeTime(now);
            wrkMast.setModiUser(userId);
            wrkMast.setModiTime(now);
            if (!wrkMastService.insert(wrkMast)) {
                throw new CoolException("保存工作档失败,出库库位号:"+dto.getLocNo());
            }
            // 生成工作档明细
            for (LocDetlDto detlDto : dto.getLocDetlDtos()) {
                if (detlDto.getCount()==null || detlDto.getCount() <= 0.0D) {continue;}
                WrkDetl wrkDetl = new WrkDetl();
                wrkDetl.sync(detlDto.getLocDetl());
                wrkDetl.setOrderNo(""); // 手动出库不需要带出库存中的单据编号
                wrkDetl.setWrkNo(workNo);
                wrkDetl.setIoTime(now);
                Double anfme = ioType==101?detlDto.getLocDetl().getAnfme():detlDto.getCount();
                wrkDetl.setAnfme(anfme); // 数量
                wrkDetl.setAppeTime(now);
                wrkDetl.setAppeUser(userId);
                wrkDetl.setModiTime(now);
                wrkDetl.setModiUser(userId);
                try{
                    if (basAgvWrkDetls != null){
                        BasAgvWrkDetl basAgvWrkDetl = new BasAgvWrkDetl();
                        basAgvWrkDetl.sync(wrkDetl);
                        basAgvWrkDetls.add(basAgvWrkDetl);
                    }
                } catch (Exception e) {}  //配置项不存在,不做处理
                if (!wrkDetlService.insert(wrkDetl)) {
                    throw new CoolException("保存工作档明细失败");
                }
            }
//            if(locMastRgv !=null){
//                if (Boolean.parseBoolean(config.getValue()) && locMastRgv.getLocNo() != null && ioType != 107) {  //若有空库位且配置允许则绑定其备料库位号
//                    //修改agv备料区状态
//                    if(locMastRgv.getLocSts().equals("O") && ioType != 107){
//                        locMastRgv.setLocSts("S");
//                        locMastRgv.setModiUser(userId);
//                        locMastRgv.setModiTime(now);
//                        if (!locMastService.updateById(locMastRgv)) {
//                            throw new CoolException("预约agv备料区库位状态失败,库位号:"+locMastRgv.getLocNo());
//                        }
//                    }
//                }
//            }
            // 修改库位状态:   F.在库 ====>>> R.出库预约/P.拣料/盘点/并板出库中
            locMast = locMastService.selectById(dto.getLocNo());
            if (locMast.getLocSts().equals("F")) {
                try{
                    if (basAgvLocDetls != null){
                        List<LocDetl> locDetlList = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()));
                        for (LocDetl locDetl : locDetlList) {
                            BasAgvLocDetl basAgvLocDetl = new BasAgvLocDetl();
                            basAgvLocDetl.sync(locDetl);
                            basAgvLocDetls.add(basAgvLocDetl);
                        }
                    }
                } catch (Exception e) {}  //配置项不存在,不做处理
                locMast.setLocSts(ioType==101?"R":"P");
                locMast.setModiUser(userId);
                locMast.setModiTime(now);
                if (!locMastService.updateById(locMast)) {
                    throw new CoolException("预约库位状态失败,库位号:"+dto.getLocNo());
                }
            } else {
                log.error(dto.getLocNo() + "库位不是在库状态");
                throw new CoolException(dto.getLocNo() + "库位不是在库状态");
            }
            try{
                // 增加AGV库存中转数量
                if (basAgvLocDetls != null){
                    for (BasAgvLocDetl basAgvLocDetl : basAgvLocDetls) {
                        try{
                            basAgvLocDetlService.insert(basAgvLocDetl);
                        } catch (Exception e){
                            log.error("增加AGV库存中转数量失败");
                        }
                    }
                }
                if (basAgvWrkDetls != null){
                    for (BasAgvWrkDetl basAgvWrkDetl : basAgvWrkDetls) {
                        try{
                            basAgvWrkDetlService.insert(basAgvWrkDetl);
                        } catch (Exception e){
                            log.error("增加AGV库存中转数量失败");
                        }
                    }
                }
            }catch (Exception e){}
        }
    }
    @Override
    @Transactional
    public void stockOut(BasDevp staNo, TaskDto taskDto, Long userId) {
@@ -884,7 +1071,7 @@
            LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo()));
            if (locMast.getLocSts().equals("F")){
                // 启动出库开始 107.盘点出库
                stockOut(staNo, locDetlDtos, IoWorkType.CHECK_OUT, userId);
                stockOut(staNo,param.getOutStaArea(), locDetlDtos, IoWorkType.CHECK_OUT, userId);
            }else {
                throw new CoolException("所选库位存在状态不为F的库位,库位号:"+locMast.getLocNo()+" 、当前状态:"+locMast.getLocSts()+"-"+locMast.getLocSts$());
            }
src/main/java/com/zy/asrs/task/handler/WrkMastStaInItHandler.java
@@ -65,7 +65,7 @@
                        if(wrkMast.getIoType() == 57 || wrkMast.getIoType() == 53){
                            switch (wrkMast.getCrnNo()) {
                                case 1:
                                    if (wrkMast.getSourceStaNo() < 2000) {
                                    if (wrkMast.getStaNo() < 2000) {
                                        wrkMastSta1.setStaEnd(1004);
                                        break;
                                    } else {
@@ -73,7 +73,7 @@
                                        break;
                                    }
                                case 2:
                                    if (wrkMast.getSourceStaNo() < 2000) {
                                    if (wrkMast.getStaNo() < 2000) {
                                        wrkMastSta1.setStaEnd(1014);
                                        break;
                                    } else {
@@ -81,7 +81,7 @@
                                        break;
                                    }
                                case 4:
                                    if (wrkMast.getSourceStaNo() < 2000) {
                                    if (wrkMast.getStaNo() < 2000) {
                                        wrkMastSta1.setStaEnd(1028);
                                        break;
                                    } else {
@@ -89,7 +89,7 @@
                                        break;
                                    }
                                case 5:
                                    if (wrkMast.getSourceStaNo() < 2000) {
                                    if (wrkMast.getStaNo() < 2000) {
                                        wrkMastSta1.setStaEnd(1035);
                                        break;
                                    } else {
src/main/java/com/zy/asrs/task/kingdee/SaveOrderSyncScheduler.java
@@ -44,7 +44,7 @@
            List<Order> orders = orderService.selectComplete();
            if(orders.size() > 0){
                for (Order order : orders) {
                    if(order.getDocType() == 3 || order.getDocType() == 16 || order.getDocType() == 18 || order.getDocType() == 19){ //走新增提交审核流程
                    if(order.getDocType() == 3 || order.getDocType() == 16){ //走新增提交审核流程
                        ReturnT<String> result = saveOrderSyncHandler.start(order);//4已完成
                        if (!result.isSuccess()) {
                            log.error("单据[orderNo={}]新增保存至erp失败", order.getOrderNo());
src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java
@@ -174,7 +174,7 @@
                    jsonObject.put("modify_starttime",  latestUpdateTime);//业务起始日期
                    jsonObject.put("billstatus",  "B");//单据状态
                    jsonObject.put("modify_endtime",  sdf1.format(now));//业务起始日期
                    jsonObject.put("billtype_number",  "im_SalOutBill_STD_BT_S_R");//单据类型   退货类型待定
                    jsonObject.put("billtype_number",  "im_SalOutBill_STD_BT_S_R");//单据类型
                    break;
                case "PRD_PickMtrl"://生产领料单
                    path = imMdcMftproorder;
@@ -1530,7 +1530,7 @@
                            for (int k = 0; k < billEntryArray.size(); k++) {
                                JSONObject entry = billEntryArray.getJSONObject(k);
                                String matnr = entry.getString("material_number"); //物料编码,内部SKU
                                Double anfmeBox = entry.getDouble("eap7_integerfield");//箱数
                                Double anfmeBox = 0.0;//箱数
                                Double anfme = entry.getDouble("completqty");//个数
                                Double totalNumItems = entry.getDouble("eap7_decimalfield1");//总件数
                                Double totalVolume = entry.getDouble("eap7_decimalfield2");//总体积
@@ -1556,6 +1556,7 @@
                                            "商品不存在:" + matnr, false);
                                    continue;
                                }
                                anfmeBox = anfme/mat.getSafeQty();
                                // ========= 明细去重 =========
                                List<OrderDetl> orderDetls =
                                        orderDetlService.selectByOrderId(order.getId());
src/main/java/com/zy/asrs/task/kingdee/handler/ReviewOrderSyncHandler.java
@@ -223,7 +223,6 @@
                        }
                    }
                }
                order.setSettle(8L); // 更新状态为已上报审核 9->8
                orderService.updateById(order);
            } else {
src/main/java/com/zy/common/service/CommonService.java
@@ -1015,7 +1015,7 @@
        StaDesc staDesc = null;
        BasDevp staNo = null;
        if (Utils.BooleanWhsTypeSta(rowLastno, staDescId)) {
//        if (Utils.BooleanWhsTypeSta(rowLastno, staDescId)) {
            // 获取目标站
//            wrapper = new EntityWrapper<StaDesc>()
//                    .eq("type_no", staDescId)
@@ -1036,7 +1036,7 @@
//                }
//                startupDto.setStaNo(staNo.getDevNo());
//            }
        }
//        }
        // 更新库位排号
        if (Utils.BooleanWhsTypeSta(rowLastno, staDescId) && Cools.isEmpty(locMast)) {
@@ -1047,7 +1047,7 @@
        // 开始查找库位 ==============================>>
        // 1.按规则查找库位
        if (Cools.isEmpty(locMast)) {
        if (Cools.isEmpty(locMast) && sourceStaNo != 4006) {
            List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
                    .eq("row1", nearRow)
                    .eq("loc_sts", "O").eq("whs_type", rowLastnoType.getType().longValue())
@@ -1066,6 +1066,11 @@
                }
            }
        }
//        else{
//            if(findLocNoAttributeVo.getOutArea() == 1){
//
//            }
//        }
        // 递归查询
        if (Cools.isEmpty(locMast) || !locMast.getLocSts().equals("O")) {
src/main/java/com/zy/common/web/WcsController.java
@@ -136,7 +136,7 @@
        switch (param.getIoType()) {
            case 1://满托盘入库
            case 10://空托盘入库
                dto = startupFullPutStoreAgv(param.getSourceStaNo(), param.getBarcode(), locTypeDto);
                dto = startupFullPutStoreAgv(param.getSourceStaNo(), param.getBarcode(), locTypeDto,param.getOutArea());
                break;
//                dto = emptyPlateIn(param.getSourceStaNo(), locTypeDto, param.getBarcode());
//                break;
@@ -362,11 +362,12 @@
     * 全板入库AGV
     */
    @Transactional
    public StartupDto startupFullPutStoreAgv(Integer devpNo, String barcode, LocTypeDto locTypeDto) {
    public StartupDto startupFullPutStoreAgv(Integer devpNo, String barcode, LocTypeDto locTypeDto,Integer outArea) {
        // 源站点状态检测
//        BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
        // 检索库位
        FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo();
        findLocNoAttributeVo.setOutArea(outArea);
//        FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(waitPakins.get(0));
        StartupDto dto = commonService.getLocNo( 1, devpNo,findLocNoAttributeVo, locTypeDto);
        // 更新目标库位状态
src/main/java/com/zy/common/web/param/SearchLocParam.java
@@ -13,6 +13,7 @@
    private Integer sourceStaNo;
    private String barcode;
    private Integer outArea;
    // 库位规格( 0:未知, 1:低库位, 2:高库位)
    private Short locType1;
src/main/java/com/zy/erp/kingdee/enums/KingDeeUtilType.java
@@ -3,16 +3,16 @@
public enum KingDeeUtilType {
    BD_MATERIAL(0, "物料档案","BD_MATERIAL","","","",1),
    BD_RRGANIZATION(2, "供应商","BD_RRGANIZATION","","","",1),
//    PUR_RECEIVEBIll(3, "收料单","PUR_RECEIVEBIll","","","",1),
//    SAL_OUTSTOCK(7, "销售出库单","SAL_OUTSTOCK","FRealQty","","",0),
    PUR_RECEIVEBIll(3, "收料单","PUR_RECEIVEBIll","","","",1),
    SAL_OUTSTOCK(7, "销售出库单","SAL_OUTSTOCK","FRealQty","","",0),
//    STK_MisDelivery(19, "其他出库单","STK_MisDelivery","FQty","","",0),
//    STK_MISCELLANEOUS(18, "其他入库单","STK_MISCELLANEOUS","FQty","其他入库单","STK_MISCELLANEOUS",1),
//    SAL_RETURNSTOCK(9, "销售退货单","SAL_RETURNSTOCK","FRealQty","","",1),
//    PRD_PickMtrl(10, "生产领料单","PRD_PickMtrl","","","",0),
    PRD_ReturnMtrl(12, "生产退料单","PRD_ReturnMtrl","FQty","","",1),
//    PRD_FeedMtrl(14, "生产补料单","PRD_FeedMtrl","FActualQty","","",0),
//    PRD_MORPT(16, "生产汇报单","PRD_MORPT","FFinishQty","生产入库单","PRD_INSTOCK",1),
    SAL_RETURNSTOCK(9, "销售退货单","SAL_RETURNSTOCK","","","",1),
    PRD_PickMtrl(10, "生产领料单","PRD_PickMtrl","","","",0),
    PRD_ReturnMtrl(12, "生产退料单","PRD_ReturnMtrl","","","",1),
    PRD_FeedMtrl(14, "生产补料单","PRD_FeedMtrl","","","",0),
    PRD_MORPT(16, "生产汇报单","PRD_MORPT","","生产入库单","",1),
//    STK_InspectionForm(20, "产品检验单","STK_InspectionForm","","","",0),
    //    PUR_MRB(2, "采购退料单","PUR_MRB","FRMREALQTY","","",1),
src/main/resources/application.yml
@@ -1,5 +1,5 @@
server:
  port: 8888
  port: 8081
  servlet:
    context-path: /@pom.build.finalName@
@@ -98,7 +98,7 @@
    #登录接口开关
    LoginAuthenticationSwitch: true
    #上报、审核单据开关
    ReviewOrderSwitch: false
    ReviewOrderSwitch: true
  #  地址
  address:
    URL: https://shyucheng.test.kdgalaxy.com
src/main/resources/mapper/LocDetlMapper.xml
@@ -354,6 +354,12 @@
        <if test="standby2!=null and standby2!='' ">
            and a.standby2 like '%' + #{standby2} + '%'
        </if>
        <if test="standby3!=null and standby3!='' ">
            and a.standby3 like '%' + #{standby3} + '%'
        </if>
        <if test="boxType3!=null and boxType3!='' ">
            and a.box_type3 like '%' + #{boxType3} + '%'
        </if>
    </sql>
    <select id="getStockOutPage" resultMap="BaseResultMap">
src/main/webapp/static/js/basArmMastExp/basArmMastExp.js
New file
@@ -0,0 +1,265 @@
var pageCurr;
layui.config({
    base: baseUrl + "/static/layui/lay/modules/"
}).use(['table','laydate', 'form', 'admin'], function(){
    var table = layui.table;
    var $ = layui.jquery;
    var layer = layui.layer;
    var layDate = layui.laydate;
    var form = layui.form;
    var admin = layui.admin;
    // 数据渲染
    tableIns = table.render({
        elem: '#basArmMast',
        headers: {token: localStorage.getItem('token')},
        url: baseUrl+'/basArmMast/list/auth',
        page: true,
        limit: 15,
        limits: [15, 30, 50, 100, 200, 500],
        toolbar: '#toolbar',
        cellMinWidth: 50,
        height: 'full-120',
        cols: [[
            {type: 'checkbox'}
            ,
            {field: 'id', align: 'center',title: 'ID',hide: true}
            ,{field: 'armNo', align: 'center',title: '机械臂编号',hide: false}
            ,{field: 'orderNo', align: 'center',title: '订单号',hide: false}
            ,{field: 'armDirection', align: 'center',title: '操作方向',hide: true}
            ,{field: 'staNo', align: 'center',title: '终点',hide: false}
            ,{field: 'sortingLine', align: 'center',title: '起点',hide: false}
            ,{field: 'matnr', align: 'center',title: '商品编号',hide: false}
            ,{field: 'sku', align: 'center',title: 'sku',hide: true}
            // ,{field: 'po', align: 'center',title: 'po',hide: false}
            // ,{field: 'upc', align: 'center',title: 'upc',hide: false}
            // ,{field: 'status', align: 'center',title: '作业状态',hide: true}
            // ,{field: 'status$', align: 'center',title: '作业状态',hide: false}
            // ,{field: 'bindingTags', align: 'center',title: '分拣绑定标记',hide: false}
            // ,{field: 'priority', align: 'center',title: '优先级',hide: true}
            // ,{field: 'supplier', align: 'center',title: '货源',hide: false}
            ,{field: 'ctns', align: 'center',title: '总箱数',hide: true}
            // ,{field: 'createTime', align: 'center',title: '时间戳',hide: true}
            // ,{field: 'barcode', align: 'center',title: '托盘码',hide: false}
            // ,{field: 'armError', align: 'center',title: '异常代码',hide: true}
            // ,{field: 'armMsg', align: 'center',title: '异常信息',hide: true}
            ,{fixed: 'right', title:'操作', align: 'center', toolbar: '#operate', width:120}
        ]],
        request: {
            pageName: 'curr',
            pageSize: 'limit'
        },
        parseData: function (res) {
            return {
                'code': res.code,
                'msg': res.msg,
                'count': res.data.total,
                'data': res.data.records
            }
        },
        response: {
            statusCode: 200
        },
        done: function(res, curr, count) {
            if (res.code === 403) {
                top.location.href = baseUrl+"/";
            }
            pageCurr=curr;
            limit();
        }
    });
    // 监听排序事件
    table.on('sort(basArmMast)', function (obj) {
        var searchData = {};
        $.each($('#search-box [name]').serializeArray(), function() {
            searchData[this.name] = this.value;
        });
        searchData['orderByField'] = obj.field;
        searchData['orderByType'] = obj.type;
        tableIns.reload({
            where: searchData,
            page: {curr: 1}
        });
    });
    // 监听头工具栏事件
    table.on('toolbar(basArmMast)', function (obj) {
        var checkStatus = table.checkStatus(obj.config.id).data;
        switch(obj.event) {
            case 'addData':
                showEditModel();
                break;
            case 'deleteData':
               if (checkStatus.length === 0) {
                   layer.msg('请选择要删除的数据', {icon: 2});
                   return;
               }
               del(checkStatus.map(function (d) {
                   return d.id;
               }));
               break;
            case 'exportData':
                admin.confirm('确定导出Excel吗', {shadeClose: true}, function(){
                    var titles=[];
                    var fields=[];
                    obj.config.cols[0].map(function (col) {
                        if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
                            titles.push(col.title);
                            fields.push(col.field);
                        }
                    });
                    var exportData = {};
                    $.each($('#search-box [name]').serializeArray(), function() {
                        exportData[this.name] = this.value;
                    });
                    var param = {
                        'basArmMast': exportData,
                        'fields': fields
                    };
                    $.ajax({
                        url: baseUrl+"/basArmMast/export/auth",
                        headers: {'token': localStorage.getItem('token')},
                        data: JSON.stringify(param),
                        dataType:'json',
                        contentType:'application/json;charset=UTF-8',
                        method: 'POST',
                        success: function (res) {
                            layer.closeAll();
                            if (res.code === 200) {
                                table.exportFile(titles,res.data,'xls');
                            } else if (res.code === 403) {
                                top.location.href = baseUrl+"/";
                            } else {
                                layer.msg(res.msg, {icon: 2})
                            }
                        }
                    });
                });
                break;
        }
    });
    // 监听行工具事件
    table.on('tool(basArmMast)', function(obj){
        var data = obj.data;
        switch (obj.event) {
            case 'edit':
                showEditModel(data);
                break;
            case "del":
                del([data.id]);
                break;
        }
    });
    /* 弹窗 - 新增、修改 */
    function showEditModel(mData) {
        admin.open({
            type: 1,
            area: '600px',
            title: (mData ? '修改' : '添加') + '订单状态',
            content: $('#editDialog').html(),
            success: function (layero, dIndex) {
                layDateRender(mData);
                form.val('detail', mData);
                form.on('submit(editSubmit)', function (data) {
                    var loadIndex = layer.load(2);
                    $.ajax({
                        url: baseUrl+"/basArmMast/"+(mData?'update':'add')+"/auth",
                        headers: {'token': localStorage.getItem('token')},
                        data: data.field,
                        method: 'POST',
                        success: function (res) {
                            layer.close(loadIndex);
                            if (res.code === 200){
                                layer.close(dIndex);
                                layer.msg(res.msg, {icon: 1});
                                tableReload();
                            } else if (res.code === 403){
                                top.location.href = baseUrl+"/";
                            }else {
                                layer.msg(res.msg, {icon: 2});
                            }
                        }
                    })
                    return false;
                });
                $(layero).children('.layui-layer-content').css('overflow', 'visible');
                layui.form.render('select');
            }
        });
    }
    /* 删除 */
    function del(ids) {
        layer.confirm('确定要删除选中数据吗?', {
            skin: 'layui-layer-admin',
            shade: .1
        }, function (i) {
            layer.close(i);
            var loadIndex = layer.load(2);
            $.ajax({
                url: baseUrl+"/basArmMast/delete/auth",
                headers: {'token': localStorage.getItem('token')},
                data: {ids: ids},
                method: 'POST',
                success: function (res) {
                    layer.close(loadIndex);
                    if (res.code === 200){
                        layer.msg(res.msg, {icon: 1});
                        tableReload();
                    } else if (res.code === 403){
                        top.location.href = baseUrl+"/";
                    } else {
                        layer.msg(res.msg, {icon: 2});
                    }
                }
            })
        });
    }
    // 搜索
    form.on('submit(search)', function (data) {
        pageCurr = 1;
        tableReload(false);
    });
    // 重置
    form.on('submit(reset)', function (data) {
        pageCurr = 1;
        clearFormVal($('#search-box'));
        tableReload(false);
    });
    // 时间选择器
    function layDateRender(data) {
        setTimeout(function () {
            layDate.render({
                elem: '.layui-laydate-range'
                ,type: 'datetime'
                ,range: true
            });
        }, 300);
    }
    layDateRender();
});
// 关闭动作
$(document).on('click','#data-detail-close', function () {
    parent.layer.closeAll();
});
function tableReload(child) {
    var searchData = {};
    $.each($('#search-box [name]').serializeArray(), function() {
        searchData[this.name] = this.value;
    });
    tableIns.reload({
        where: searchData,
        page: {curr: pageCurr}
     });
}
src/main/webapp/static/js/common.js
@@ -234,7 +234,7 @@
    ,{field: 'anfme', align: 'center',title: '数量', hide: false}
    ,{field: 'zpallet', align: 'center',title: '托盘条码', hide: false}
    ,{field: 'boxType3', align: 'center',title: '采购单号', hide: true}
    ,{field: 'boxType3', align: 'center',title: '采购单号', hide: false}
    // ,{field: 'model', align: 'center',title: '代码', hide: true}
    // ,{field: 'color', align: 'center',title: '颜色', hide: true}
    // ,{field: 'brand', align: 'center',title: '品牌', hide: true}
src/main/webapp/static/js/pakStore/locCheckOut.js
@@ -43,11 +43,13 @@
                    layer.msg('请先添加盘点库存', {icon: 2});
                } else {
                    var staNo = $("#staNoSelect").val();
                    var outStaArea = $("#outboundAreaSelect").val();
                    if (staNo === "" || staNo === null){
                        layer.msg("请选择盘点站", {icon: 2});
                        return;
                    }
                    let param = {
                        outStaArea: outStaArea,
                        outSite: staNo,
                        locDetls: locDetlData
                    }
src/main/webapp/static/js/pakStore/turnOver.js
@@ -34,11 +34,11 @@
            ,{field: 'maktx', align: 'center',title: '商品名称', sort:true}
            ,{field: 'loc_no', align: 'center',title: '库位号', sort:true}
            ,{field: 'orderNo', align: 'center',title: '单据编号', hide: true}
            ,{field: 'batch', align: 'center',title: '批号', sort:true}
            // ,{field: 'batch', align: 'center',title: '批号', sort:true}
            ,{field: 'anfme', align: 'center',title: '数量',hide: false}
            ,{field: 'zpallet', align: 'center',title: '托盘条码',hide: false}
            ,{field: 'specs', align: 'center',title: '规格',hide: true}
            ,{field: 'weight', align: 'center',title: '重量', hide: true}
            // ,{field: 'specs', align: 'center',title: '规格',hide: true}
            // ,{field: 'weight', align: 'center',title: '重量', hide: true}
            ,{field: 'owner$', align: 'center',title: '货主', hide: false}
            ,{field: 'payment$', align: 'center',title: '货物形态', hide: false}
            ,{field: 'supp', align: 'center',title: 'po', hide: false}
src/main/webapp/views/basArmMastExp/basArmMastExp.html
New file
@@ -0,0 +1,270 @@
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title></title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
    <link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all">
    <link rel="stylesheet" href="../../static/css/cool.css" media="all">
</head>
<body>
<div class="layui-fluid">
    <div class="layui-card">
        <div class="layui-card-body">
            <div class="layui-form toolbar" id="search-box">
                <div class="layui-form-item">
<!--                    <div class="layui-inline">-->
<!--                        <div class="layui-input-inline">-->
<!--                            <input class="layui-input" type="text" name="id" placeholder="编号" autocomplete="off">-->
<!--                        </div>-->
<!--                    </div>-->
                    <div class="layui-inline">
                        <div class="layui-input-inline">
                            <input class="layui-input" type="text" name="arm_no" placeholder="机械臂编号" autocomplete="off">
                        </div>
                    </div>
                    <div class="layui-inline">
                        <div class="layui-input-inline">
                            <input class="layui-input" type="text" name="order_no" placeholder="订单号" autocomplete="off">
                        </div>
                    </div>
                    <div class="layui-inline">
                        <div class="layui-input-inline">
                            <input class="layui-input" type="text" name="sta_no" placeholder="终点、码垛位" autocomplete="off">
                        </div>
                    </div>
                    <div class="layui-inline">
                        <div class="layui-input-inline">
                            <input class="layui-input" type="text" name="sorting_line" placeholder="起点、拆垛位" autocomplete="off">
                        </div>
                    </div>
                    <div class="layui-inline">
                        <div class="layui-input-inline">
                            <select name="status" id="status" class="layui-input" type="text" placeholder="作业状态" autocomplete="off">
<!--                                <option style="display: none"></option>-->
                                <option value="">作业状态</option>
                                <option value="0">0.等待下发至机械臂</option>
                                <option value="1">1.机械臂作业中</option>
                                <option value="2">2.单码完成等待托盘完成</option>
                                <option value="3">3.自动组托中</option>
                                <option value="4">4.自动组托成功</option>
                                <option value="5">5.等待机械臂完成订单</option>
                                <option value="6">6.完结</option>
                            </select>
                        </div>
                    </div>
                    <div class="layui-inline">
                        <div class="layui-input-inline">
                            <input class="layui-input" type="text" name="sku" placeholder="sku" autocomplete="off">
                        </div>
                    </div>
                    <div class="layui-inline">
                        <div class="layui-input-inline">
                            <input class="layui-input" type="text" name="po" placeholder="po" autocomplete="off">
                        </div>
                    </div>
                    <div class="layui-inline">
                        <div class="layui-input-inline">
                            <input class="layui-input" type="text" name="upc" placeholder="upc" autocomplete="off">
                        </div>
                    </div>
<!--                     <div class="layui-inline" style="width: 300px">-->
<!--                        <div class="layui-input-inline">-->
<!--                            <input class="layui-input layui-laydate-range" name="create_time" type="text" placeholder="起始时间 - 终止时间" autocomplete="off" style="width: 300px">-->
<!--                        </div>-->
<!--                    </div>-->
                    <div class="layui-inline">
                        <div class="layui-input-inline">
                            <input class="layui-input" type="text" name="binding_tags" placeholder="分拣绑定标记" autocomplete="off">
                        </div>
                    </div>
                    <div class="layui-inline">
                        <div class="layui-input-inline">
                            <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="condition" placeholder="请输入" autocomplete="off">-->
<!--                        </div>-->
<!--                    </div>-->
                    <div class="layui-inline">&emsp;
                        <button class="layui-btn icon-btn" lay-filter="search" lay-submit>
                            <i class="layui-icon">&#xe615;</i>搜索
                        </button>
                        <button class="layui-btn icon-btn" lay-filter="reset" lay-submit>
                            <i class="layui-icon">&#xe666;</i>重置
                        </button>
                    </div>
                </div>
            </div>
            <table class="layui-hide" id="basArmMast" lay-filter="basArmMast"></table>
        </div>
    </div>
</div>
<script type="text/html" id="toolbar">
    <div class="layui-btn-container">
        <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">新增</button>
        <button class="layui-btn layui-btn-sm layui-btn-danger" id="btn-delete" lay-event="deleteData">删除</button>
        <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" style="float: right">导出</button>
    </div>
</script>
<script type="text/html" id="operate">
    <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">修改</a>
    <a class="layui-btn layui-btn-danger layui-btn-xs btn-edit" lay-event="del">删除</a>
</script>
<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
<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/basArmMast/basArmMast.js" charset="utf-8"></script>
</body>
<!-- 表单弹窗 -->
<script type="text/html" id="editDialog">
    <form id="detail" lay-filter="detail" class="layui-form admin-form model-form">
        <input name="id" type="hidden">
        <div class="layui-row">
            <div class="layui-col-md12">
<!--                <div class="layui-form-item">-->
<!--                    <label class="layui-form-label layui-form-required">机械臂编号: </label>-->
<!--                    <div class="layui-input-block">-->
<!--                        <input class="layui-input" name="armNo" placeholder="请输入机械臂编号" lay-vertype="tips" lay-verify="required">-->
<!--                    </div>-->
<!--                </div>-->
<!--                <div class="layui-form-item">-->
<!--                    <label class="layui-form-label layui-form-required">操作方向: </label>-->
<!--                    <div class="layui-input-block">-->
<!--                        <input class="layui-input" name="armDirection" placeholder="请输入操作方向" lay-vertype="tips" lay-verify="required">-->
<!--                    </div>-->
<!--                </div>-->
<!--                <div class="layui-form-item">-->
<!--                    <label class="layui-form-label layui-form-required">终点: </label>-->
<!--                    <div class="layui-input-block">-->
<!--                        <input class="layui-input" name="staNo" placeholder="请输入终点" lay-vertype="tips" lay-verify="required">-->
<!--                    </div>-->
<!--                </div>-->
<!--                <div class="layui-form-item">-->
<!--                    <label class="layui-form-label layui-form-required">起点: </label>-->
<!--                    <div class="layui-input-block">-->
<!--                        <input class="layui-input" name="sortingLine" placeholder="请输入起点" lay-vertype="tips" lay-verify="required">-->
<!--                    </div>-->
<!--                </div>-->
<!--                <div class="layui-form-item">-->
<!--                    <label class="layui-form-label layui-form-required">分拣绑定标记: </label>-->
<!--                    <div class="layui-input-block">-->
<!--                        <input class="layui-input" name="bindingTags" placeholder="请输入分拣绑定标记" lay-vertype="tips" lay-verify="required">-->
<!--                    </div>-->
<!--                </div>-->
<!--                <div class="layui-form-item">-->
<!--                    <label class="layui-form-label layui-form-required">优先级: </label>-->
<!--                    <div class="layui-input-block">-->
<!--                        <input class="layui-input" name="priority" placeholder="请输入优先级" lay-vertype="tips" lay-verify="required">-->
<!--                    </div>-->
<!--                </div>-->
<!--                <div class="layui-form-item">-->
<!--                    <label class="layui-form-label layui-form-required">状态: </label>-->
<!--                    <div class="layui-input-block">-->
<!--                        <input class="layui-input" name="status" placeholder="请输入状态" lay-vertype="tips" lay-verify="required">-->
<!--                    </div>-->
<!--                </div>-->
                <!-- 工作状态 -->
                <div class="layui-form-item">
                    <label class="layui-form-label layui-form-required">状态:</label>
                    <div class="layui-input-inline">
                        <select name="status">
                            <option value="0">0.等待下发至机械臂</option>
                            <option value="1">1.机械臂作业中</option>
                            <option value="2">2.单码完成等待托盘完成</option>
                            <option value="3">3.自动组托中</option>
                            <option value="4">4.自动组托成功</option>
                            <option value="5">5.等待机械臂完成订单</option>
                            <option value="6">6.完结</option>
                        </select>
                    </div>
                </div>
<!--                <div class="layui-form-item">-->
<!--                    <label class="layui-form-label layui-form-required">: </label>-->
<!--                    <div class="layui-input-block">-->
<!--                        <input class="layui-input" name="matnr" placeholder="请输入" lay-vertype="tips" lay-verify="required">-->
<!--                    </div>-->
<!--                </div>-->
<!--                <div class="layui-form-item">-->
<!--                    <label class="layui-form-label layui-form-required">: </label>-->
<!--                    <div class="layui-input-block">-->
<!--                        <input class="layui-input" name="sku" placeholder="请输入" lay-vertype="tips" lay-verify="required">-->
<!--                    </div>-->
<!--                </div>-->
<!--                <div class="layui-form-item">-->
<!--                    <label class="layui-form-label layui-form-required">: </label>-->
<!--                    <div class="layui-input-block">-->
<!--                        <input class="layui-input" name="po" placeholder="请输入" lay-vertype="tips" lay-verify="required">-->
<!--                    </div>-->
<!--                </div>-->
<!--                <div class="layui-form-item">-->
<!--                    <label class="layui-form-label layui-form-required">: </label>-->
<!--                    <div class="layui-input-block">-->
<!--                        <input class="layui-input" name="upc" placeholder="请输入" lay-vertype="tips" lay-verify="required">-->
<!--                    </div>-->
<!--                </div>-->
<!--                <div class="layui-form-item">-->
<!--                    <label class="layui-form-label layui-form-required">货源: </label>-->
<!--                    <div class="layui-input-block">-->
<!--                        <input class="layui-input" name="supplier" placeholder="请输入货源" lay-vertype="tips" lay-verify="required">-->
<!--                    </div>-->
<!--                </div>-->
<!--                <div class="layui-form-item">-->
<!--                    <label class="layui-form-label layui-form-required">: </label>-->
<!--                    <div class="layui-input-block">-->
<!--                        <input class="layui-input" name="orderNo" placeholder="请输入" lay-vertype="tips" lay-verify="required">-->
<!--                    </div>-->
<!--                </div>-->
<!--                <div class="layui-form-item">-->
<!--                    <label class="layui-form-label layui-form-required">箱数: </label>-->
<!--                    <div class="layui-input-block">-->
<!--                        <input class="layui-input" name="ctns" placeholder="请输入箱数" lay-vertype="tips" lay-verify="required">-->
<!--                    </div>-->
<!--                </div>-->
<!--                <div class="layui-form-item">-->
<!--                    <label class="layui-form-label layui-form-required">时间戳: </label>-->
<!--                    <div class="layui-input-block">-->
<!--                        <input class="layui-input" name="createTime" placeholder="请输入时间戳" lay-vertype="tips" lay-verify="required">-->
<!--                    </div>-->
<!--                </div>-->
                <div class="layui-form-item">
                    <label class="layui-form-label layui-form-required">托盘码: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="barcode" placeholder="请输入托盘码" lay-vertype="tips" lay-verify="required">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">异常代码: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="armError" placeholder="请输入异常代码">
                    </div>
                </div>
                <div class="layui-form-item">
                    <label class="layui-form-label">异常信息: </label>
                    <div class="layui-input-block">
                        <input class="layui-input" name="armMsg" placeholder="请输入异常信息">
                    </div>
                </div>
             </div>
        </div>
        <hr class="layui-bg-gray">
        <div class="layui-form-item text-right">
            <button class="layui-btn" lay-filter="editSubmit" lay-submit="">保存</button>
            <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>
        </div>
    </form>
</script>
</html>
src/main/webapp/views/order/order.html
@@ -101,7 +101,7 @@
<!--        <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">修改</a>-->
        <a class="layui-btn layui-btn-danger layui-btn-xs btn-delete" lay-event="del">删除</a>
    {{# } }}
<!--    <a class="layui-btn layui-btn-danger layui-btn-xs btn-delete" lay-event="del">删除</a>-->
    <a class="layui-btn layui-btn-danger layui-btn-xs btn-delete" lay-event="del">删除</a>
    {{# if (d.settle == 98) { }}
    <a class="layui-btn layui-btn-primary layui-border-blue layui-btn-xs btn-complete" lay-event="complete">彻底完结</a>
src/main/webapp/views/pakStore/locCheckOut.html
@@ -22,20 +22,21 @@
            border-radius: 5px;
            box-shadow: 0 0 3px rgba(0,0,0,.3);
        }
        #staNoSpan {
        #staNoSpan, #outboundAreaSpan {
            text-align: center;
            display: inline-block;
            width: 100px;
            font-size: 13px;
            margin-right: 10px; /* 增加右边间距 */
        }
        .layui-btn-container .layui-form-select {
            display: inline-block;
            width: 150px;
            width: 180px; /* 增加宽度 */
            height: 30px;
        }
        .layui-btn-container .layui-form-select.layui-form-selected {
            display: inline-block;
            width: 150px;
            width: 180px; /* 增加宽度 */
        }
        .layui-btn-container .layui-select-title input {
            font-size: 13px;
@@ -100,7 +101,16 @@
                <select id="staNoSelect" lay-verify="required">
                    <option value="">请选择站点</option>
                </select>
                <!-- 2.启动出库 -->
                <!-- 2.选择放货区域 -->
                <span id="outboundAreaSpan">放货区域:</span>
                <select id="outboundAreaSelect">
                    <option value="1">1</option>
                    <option value="2">2</option>
                    <option value="3">3</option>
                </select>
                <!-- 3.启动出库 -->
                <button class="layui-btn layui-btn-lg" id="btn-outbound" lay-event="outbound">盘点出库</button>
            </div>
        </div>
@@ -129,4 +139,3 @@
</body>
</html>
src/main/webapp/views/pakStore/locDetlCheckQuery.html
@@ -73,28 +73,28 @@
        </div>
        <div class="layui-inline">
            <div class="layui-input-inline">
                <input class="layui-input" type="text" name="matnr" placeholder="商品编号"  autocomplete="off">
                <input class="layui-input" type="text" name="matnr" placeholder="SKU"  autocomplete="off">
            </div>
        </div>
        <div class="layui-inline">
            <div class="layui-input-inline">
                <input class="layui-input" type="text" name="specs" placeholder="规格"  autocomplete="off">
                <input class="layui-input" type="text" name="boxType3" placeholder="采购单号"  autocomplete="off">
            </div>
        </div>
        <div class="layui-inline">
            <div class="layui-input-inline">
                <input class="layui-input" type="text" name="standby2" placeholder="UPC" autocomplete="off">
            </div>
        </div>
<!--        <div class="layui-inline">-->
<!--            <div class="layui-input-inline">-->
<!--                <input class="layui-input" type="text" name="maktx" placeholder="物料描述" autocomplete="off">-->
<!--                <select name="frozen" class="layui-input" type="text" autocomplete="off">-->
<!--                    <option value="">冻结否</option>-->
<!--                    <option value="0">未冻结</option>-->
<!--                    <option value="1">已冻结</option>-->
<!--                </select>-->
<!--            </div>-->
<!--        </div>-->
        <div class="layui-inline">
            <div class="layui-input-inline">
                <select name="frozen" class="layui-input" type="text" autocomplete="off">
                    <option value="">冻结否</option>
                    <option value="0">未冻结</option>
                    <option value="1">已冻结</option>
                </select>
            </div>
        </div>
        <!-- 日期范围 -->
        <div class="layui-inline" style="width: 300px">
            <div class="layui-input-inline">
@@ -127,6 +127,23 @@
</body>
<script>
    layui.use(['form', 'jquery'], function () {
        var $ = layui.jquery;
        var form = layui.form;
        // 重置按钮功能
        $('#reset').on('click', function () {
            // 重置表单内容
            $('#search-box')[0].reset();  // 清空表单
            form.render(); // 更新表单UI
            // 清除其他控件的值,比如日期范围
            $('.layui-laydate-range').val('');
            // 重新渲染表格
            tableReload();
        });
    });
    function getCol() {
        let cols = [
src/main/webapp/views/pakStore/locDetlQuery.html
@@ -64,28 +64,33 @@
        </div>
        <div class="layui-inline">
            <div class="layui-input-inline">
                <input class="layui-input" type="text" name="matnr" placeholder="商品编号"  autocomplete="off">
                <input class="layui-input" type="text" name="matnr" placeholder="SKU"  autocomplete="off">
            </div>
        </div>
        <div class="layui-inline">
            <div class="layui-input-inline">
                <input class="layui-input" type="text" name="specs" placeholder="规格"  autocomplete="off">
                <input class="layui-input" type="text" name="boxType3" 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">
                <input class="layui-input" type="text" name="standby2" placeholder="UPC" autocomplete="off">
            </div>
        </div>
        <div class="layui-inline">
            <div class="layui-input-inline">
                <select name="frozen" class="layui-input" type="text" autocomplete="off">
                    <option value="">冻结否</option>
                    <option value="0">未冻结</option>
                    <option value="1">已冻结</option>
                </select>
                <input class="layui-input" type="text" name="standby1" placeholder="PO" autocomplete="off">
            </div>
        </div>
<!--        <div class="layui-inline">-->
<!--            <div class="layui-input-inline">-->
<!--                <select name="frozen" class="layui-input" type="text" autocomplete="off">-->
<!--                    <option value="">冻结否</option>-->
<!--                    <option value="0">未冻结</option>-->
<!--                    <option value="1">已冻结</option>-->
<!--                </select>-->
<!--            </div>-->
<!--        </div>-->
        <!-- 日期范围 -->
        <div class="layui-inline" style="width: 300px">
            <div class="layui-input-inline">