| | |
| | | |
| | | // 出站口 |
| | | private Integer outSite; |
| | | private Integer outStaArea; |
| | | |
| | | // 物料编号集合 |
| | | private List<LocDetl> locDetls; |
| | |
| | | private String boxType1 = "1"; |
| | | private String boxType2 = "1"; |
| | | private String boxType3 = "1"; |
| | | private Integer outArea; |
| | | |
| | | public FindLocNoAttributeVo() { |
| | | } |
| | |
| | | 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()) |
| | |
| | | * @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); |
| | | |
| | |
| | | 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()); |
| | |
| | | }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) { |
| | |
| | | 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$()); |
| | | } |
| | |
| | | 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 { |
| | |
| | | break; |
| | | } |
| | | case 2: |
| | | if (wrkMast.getSourceStaNo() < 2000) { |
| | | if (wrkMast.getStaNo() < 2000) { |
| | | wrkMastSta1.setStaEnd(1014); |
| | | break; |
| | | } else { |
| | |
| | | break; |
| | | } |
| | | case 4: |
| | | if (wrkMast.getSourceStaNo() < 2000) { |
| | | if (wrkMast.getStaNo() < 2000) { |
| | | wrkMastSta1.setStaEnd(1028); |
| | | break; |
| | | } else { |
| | |
| | | break; |
| | | } |
| | | case 5: |
| | | if (wrkMast.getSourceStaNo() < 2000) { |
| | | if (wrkMast.getStaNo() < 2000) { |
| | | wrkMastSta1.setStaEnd(1035); |
| | | break; |
| | | } else { |
| | |
| | | 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()); |
| | |
| | | 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; |
| | |
| | | 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");//总体积 |
| | |
| | | "商品不存在:" + matnr, false); |
| | | continue; |
| | | } |
| | | anfmeBox = anfme/mat.getSafeQty(); |
| | | // ========= 明细去重 ========= |
| | | List<OrderDetl> orderDetls = |
| | | orderDetlService.selectByOrderId(order.getId()); |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | order.setSettle(8L); // 更新状态为已上报审核 9->8 |
| | | orderService.updateById(order); |
| | | } else { |
| | |
| | | StaDesc staDesc = null; |
| | | BasDevp staNo = null; |
| | | |
| | | if (Utils.BooleanWhsTypeSta(rowLastno, staDescId)) { |
| | | // if (Utils.BooleanWhsTypeSta(rowLastno, staDescId)) { |
| | | // 获取目标站 |
| | | // wrapper = new EntityWrapper<StaDesc>() |
| | | // .eq("type_no", staDescId) |
| | |
| | | // } |
| | | // startupDto.setStaNo(staNo.getDevNo()); |
| | | // } |
| | | } |
| | | // } |
| | | |
| | | // 更新库位排号 |
| | | if (Utils.BooleanWhsTypeSta(rowLastno, staDescId) && Cools.isEmpty(locMast)) { |
| | |
| | | // 开始查找库位 ==============================>> |
| | | |
| | | // 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()) |
| | |
| | | } |
| | | } |
| | | } |
| | | // else{ |
| | | // if(findLocNoAttributeVo.getOutArea() == 1){ |
| | | // |
| | | // } |
| | | // } |
| | | |
| | | // 递归查询 |
| | | if (Cools.isEmpty(locMast) || !locMast.getLocSts().equals("O")) { |
| | |
| | | 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; |
| | |
| | | * 全板入库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); |
| | | // 更新目标库位状态 |
| | |
| | | private Integer sourceStaNo; |
| | | |
| | | private String barcode; |
| | | private Integer outArea; |
| | | |
| | | // 库位规格( 0:未知, 1:低库位, 2:高库位) |
| | | private Short locType1; |
| | |
| | | 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), |
| | |
| | | server: |
| | | port: 8888 |
| | | port: 8081 |
| | | servlet: |
| | | context-path: /@pom.build.finalName@ |
| | | |
| | |
| | | #登录接口开关 |
| | | LoginAuthenticationSwitch: true |
| | | #上报、审核单据开关 |
| | | ReviewOrderSwitch: false |
| | | ReviewOrderSwitch: true |
| | | # 地址 |
| | | address: |
| | | URL: https://shyucheng.test.kdgalaxy.com |
| | |
| | | <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"> |
| New file |
| | |
| | | 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} |
| | | }); |
| | | } |
| | |
| | | ,{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} |
| | |
| | | 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 |
| | | } |
| | |
| | | ,{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} |
| New file |
| | |
| | | <!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">  |
| | | <button class="layui-btn icon-btn" lay-filter="search" lay-submit> |
| | | <i class="layui-icon"></i>搜索 |
| | | </button> |
| | | <button class="layui-btn icon-btn" lay-filter="reset" lay-submit> |
| | | <i class="layui-icon"></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> |
| | | |
| | |
| | | <!-- <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> |
| | |
| | | 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; |
| | |
| | | <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> |
| | |
| | | |
| | | </body> |
| | | </html> |
| | | |
| | |
| | | </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"> |
| | |
| | | |
| | | </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 = [ |
| | |
| | | </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"> |