|  |  | 
 |  |  | //            } | 
 |  |  |             if (Cools.isEmpty(orderDetl)) { | 
 |  |  |                 record.setStock(0D); | 
 |  |  |                 if (!Cools.isEmpty(orderNo)) { | 
 |  |  |                     record.setOrderNo(orderNo); | 
 |  |  |                 } | 
 |  |  |             } else { | 
 |  |  |                 record.setStock(orderDetl.getAnfme() - orderDetl.getQty()); | 
 |  |  |                 record.setOrderNo(orderDetl.getOrderNo()); | 
 
 |  |  | 
 |  |  | package com.zy.asrs.controller; | 
 |  |  |  | 
 |  |  | import com.alibaba.fastjson.JSON; | 
 |  |  | import com.alibaba.fastjson.JSONObject; | 
 |  |  | import com.baomidou.mybatisplus.mapper.EntityWrapper; | 
 |  |  | import com.baomidou.mybatisplus.mapper.Wrapper; | 
 |  |  | 
 |  |  | import java.io.IOException; | 
 |  |  | import java.io.InputStream; | 
 |  |  | import java.util.*; | 
 |  |  | import java.util.stream.Collectors; | 
 |  |  |  | 
 |  |  | @Slf4j | 
 |  |  | @RestController | 
 |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * excel导入 | 
 |  |  |      */ | 
 |  |  |     @PostMapping(value = "/order/excel/import3/auth") | 
 |  |  |     @ManagerAuth(memo = "单据Excel导入") | 
 |  |  |     @Transactional | 
 |  |  |     public R cstmrExcelImport3(MultipartFile file) throws IOException { | 
 |  |  |         InputStream inStream = file.getInputStream(); | 
 |  |  |         String fileMime = file.getContentType(); | 
 |  |  |         int excelVersion = 2007; | 
 |  |  |         if ("application/vnd.ms-excel".equals(fileMime)) { | 
 |  |  |             excelVersion = 2003; | 
 |  |  |         } | 
 |  |  |         Workbook book = null; | 
 |  |  |         try { | 
 |  |  |             if (excelVersion == 2003) { | 
 |  |  |                 book = new HSSFWorkbook(inStream); | 
 |  |  |             } else {  // 当 excel 是 2007 时 | 
 |  |  |                 book = new XSSFWorkbook(inStream); | 
 |  |  |             } | 
 |  |  |         } catch (Exception e) { | 
 |  |  |             log.error("fail", e); | 
 |  |  |             return R.error("导入文件格式错误,请使用xls后缀的文件!"); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         Sheet sheet = book.getSheetAt(0); | 
 |  |  |         int totalRows = sheet.getLastRowNum() + 1;    // 总 | 
 |  |  |         Long userId = getUserId(); | 
 |  |  |         Date now = new Date(); | 
 |  |  |         DataFormatter dataFormatter = new DataFormatter(); | 
 |  |  |         for (int i = 1; i < totalRows; i++) { | 
 |  |  |             Integer proSts = 0; | 
 |  |  |             Row row = sheet.getRow(i); | 
 |  |  |             //单据类型 | 
 |  |  |             String docName = dataFormatter.formatCellValue(row.getCell(0)).trim(); | 
 |  |  |             //单据编号 | 
 |  |  |             String uuid = dataFormatter.formatCellValue(row.getCell(1)).trim(); | 
 |  |  |             //物料号 | 
 |  |  |             String matnr = dataFormatter.formatCellValue(row.getCell(2)).trim(); | 
 |  |  |             //销售单号 | 
 |  |  |             String csocode = dataFormatter.formatCellValue(row.getCell(3)).trim(); | 
 |  |  |             //自由项 | 
 |  |  |             String isocode = dataFormatter.formatCellValue(row.getCell(4)).trim(); | 
 |  |  |             // 数量 | 
 |  |  |             if (Cools.isEmpty(dataFormatter.formatCellValue(row.getCell(5)))) { | 
 |  |  |                 continue; | 
 |  |  |             } | 
 |  |  |             Double anfme = Double.parseDouble(dataFormatter.formatCellValue(row.getCell(5))); | 
 |  |  |  | 
 |  |  |             Mat mat = matService.selectByMatnr(matnr); | 
 |  |  |             if (null == mat) { | 
 |  |  |                 throw new CoolException(matnr + "商品编码的商品不存在,请重新导入!"); | 
 |  |  |             } | 
 |  |  |             DocType docType = docTypeService.selectOne(new EntityWrapper<DocType>().eq("doc_name", docName)); | 
 |  |  |  | 
 |  |  |             String odNo = uuid; | 
 |  |  |             if (docName.contains("调拨单")) { | 
 |  |  |                 odNo = "DB" + odNo; | 
 |  |  |             } else if (docName.contains("加工单")) { | 
 |  |  |                 odNo = "JG" + odNo; | 
 |  |  |             }else { | 
 |  |  |                 if (docType.getPakin() == 1) { | 
 |  |  |                     odNo += "_I"; | 
 |  |  |                 } else { | 
 |  |  |                     odNo += "_O"; | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |             Date date = new Date(); | 
 |  |  |             Order order = orderService.selectByNo(odNo); | 
 |  |  |             if (null == order) { | 
 |  |  |                 order = new Order( | 
 |  |  |                         String.valueOf(snowflakeIdWorker.nextId()),    // 编号[非空] | 
 |  |  |                         odNo,    // 订单编号 | 
 |  |  |                         DateUtils.convert(date),    // 单据日期 | 
 |  |  |                         docType.getDocId(),    // 单据类型 | 
 |  |  |                         null,    // 项目编号 | 
 |  |  |                         null,    // | 
 |  |  |                         null,    // 调拨项目编号 | 
 |  |  |                         null,    // 初始票据号 | 
 |  |  |                         null,    // 票据号 | 
 |  |  |                         null,    // 客户编号 | 
 |  |  |                         null,    // 客户 | 
 |  |  |                         null,    // 联系方式 | 
 |  |  |                         null,    // 操作人员 | 
 |  |  |                         null,    // 合计金额 | 
 |  |  |                         null,    // 优惠率 | 
 |  |  |                         null,    // 优惠金额 | 
 |  |  |                         null,    // 销售或采购费用合计 | 
 |  |  |                         null,    // 实付金额 | 
 |  |  |                         null,    // 付款类型 | 
 |  |  |                         null,    // 业务员 | 
 |  |  |                         null,    // 结算天数 | 
 |  |  |                         null,    // 邮费支付类型 | 
 |  |  |                         null,    // 邮费 | 
 |  |  |                         null,    // 付款时间 | 
 |  |  |                         null,    // 发货时间 | 
 |  |  |                         null,    // 物流名称 | 
 |  |  |                         null,    // 物流单号 | 
 |  |  |                         1L,    // 订单状态 | 
 |  |  |                         1,    // 状态 | 
 |  |  |                         userId,    // 添加人员 | 
 |  |  |                         now,    // 添加时间 | 
 |  |  |                         userId,    // 修改人员 | 
 |  |  |                         now,    // 修改时间 | 
 |  |  |                         null    // 备注 | 
 |  |  |                 ); | 
 |  |  |                 if (!orderService.insert(order)) { | 
 |  |  |                     throw new CoolException("生成单据主档失败,请重新导入!"); | 
 |  |  |                 } | 
 |  |  |             } else { | 
 |  |  |                 //  有原订单在的情况 | 
 |  |  |                 DocType orderType = docTypeService.selectById(order.getDocType()); | 
 |  |  |                 if (!orderType.getDocName().equals(docName)) { | 
 |  |  |                     throw new CoolException("新订单:" + uuid + " 与系统内的订单号相同,单据类型不同。请确认新订单单据类型!"); | 
 |  |  |                 } | 
 |  |  |                 order.setSettle(order.getSettle() == 1L ? 1L : 2L); | 
 |  |  |                 orderService.updateById(order); | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             OrderDetl orderDetl = orderDetlService.selectItem(order.getId(), matnr, null, csocode, isocode); | 
 |  |  |             if (orderDetl == null) { | 
 |  |  |                 orderDetl = new OrderDetl(); | 
 |  |  |                 orderDetl.sync(mat); | 
 |  |  |                 orderDetl.setSource(docType.getDocId().intValue()); | 
 |  |  |                 orderDetl.setBatch(null); | 
 |  |  |                 orderDetl.setAnfme(anfme); | 
 |  |  |                 orderDetl.setOrderId(order.getId()); | 
 |  |  |                 orderDetl.setOrderNo(order.getOrderNo()); | 
 |  |  |                 orderDetl.setCreateBy(userId); | 
 |  |  |                 orderDetl.setCreateTime(now); | 
 |  |  |                 orderDetl.setUpdateBy(userId); | 
 |  |  |                 orderDetl.setUpdateTime(now); | 
 |  |  |                 orderDetl.setThreeCode(csocode); | 
 |  |  |                 orderDetl.setDeadTime(isocode); | 
 |  |  |                 orderDetl.setStatus(1); | 
 |  |  |                 orderDetl.setQty(0.0D); | 
 |  |  |                 orderDetl.setProcessSts(proSts); | 
 |  |  |                 if (!orderDetlService.insert(orderDetl)) { | 
 |  |  |                     throw new CoolException("生成单据明细失败,请重新导入!"); | 
 |  |  |                 } | 
 |  |  |             } else { | 
 |  |  |                 if (anfme < 0) { | 
 |  |  |                     throw new CoolException("订单数量不允许为负数!"); | 
 |  |  |                 } | 
 |  |  |                 if (!orderDetlService.increaseAnfme(order.getId(), matnr, null, anfme, csocode, isocode)) { | 
 |  |  |                     throw new CoolException("生成单据明细失败,请重新导入!"); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |         } | 
 |  |  |         return R.ok("导入成功"); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  | //    @RequestMapping(value = "/order/sync") | 
 |  |  | //    @Transactional | 
 |  |  | //    public R sync() { | 
 
 |  |  | 
 |  |  | package com.zy.asrs.controller; | 
 |  |  |  | 
 |  |  | import com.alibaba.excel.EasyExcel; | 
 |  |  | import com.alibaba.fastjson.JSONObject; | 
 |  |  | import com.baomidou.mybatisplus.mapper.EntityWrapper; | 
 |  |  | import com.baomidou.mybatisplus.mapper.Wrapper; | 
 |  |  | 
 |  |  | import com.core.common.*; | 
 |  |  | import com.zy.asrs.entity.*; | 
 |  |  | import com.zy.asrs.entity.result.WrkTraceVo; | 
 |  |  | import com.zy.asrs.excel.CloseOrderReadListener; | 
 |  |  | import com.zy.asrs.excel.ExcelOrder; | 
 |  |  | import com.zy.asrs.service.*; | 
 |  |  | import com.zy.common.web.BaseController; | 
 |  |  | import lombok.extern.slf4j.Slf4j; | 
 |  |  | import org.springframework.beans.BeanUtils; | 
 |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
 |  |  | import org.springframework.web.bind.annotation.*; | 
 |  |  | import org.springframework.web.multipart.MultipartFile; | 
 |  |  |  | 
 |  |  | import java.io.IOException; | 
 |  |  | import java.util.*; | 
 |  |  |  | 
 |  |  | @Slf4j | 
 |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private MatService matService; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private OrderService orderService; | 
 |  |  |  | 
 |  |  |     @RequestMapping(value = "/orderLog/nav/list/auth") | 
 |  |  |     @ManagerAuth | 
 |  |  |     public R navList(@RequestParam(required = false) String orderNo){ | 
 
 |  |  | 
 |  |  | package com.zy.asrs.service.impl; | 
 |  |  |  | 
 |  |  | import com.alibaba.fastjson.JSON; | 
 |  |  | import com.baomidou.mybatisplus.mapper.EntityWrapper; | 
 |  |  | import com.baomidou.mybatisplus.mapper.Wrapper; | 
 |  |  | import com.baomidou.mybatisplus.plugins.Page; | 
 |  |  | 
 |  |  | import com.core.common.Cools; | 
 |  |  | import com.core.common.SnowflakeIdWorker; | 
 |  |  | import com.core.exception.CoolException; | 
 |  |  | import com.zy.asrs.entity.*; | 
 |  |  | import com.zy.asrs.entity.AgvLocDetl; | 
 |  |  | import com.zy.asrs.entity.AgvLocMast; | 
 |  |  | import com.zy.asrs.entity.AgvWrkDetl; | 
 |  |  | import com.zy.asrs.entity.OrderDetl; | 
 |  |  | import com.zy.asrs.mapper.AgvLocDetlMapper; | 
 |  |  | import com.zy.asrs.service.*; | 
 |  |  | import com.zy.asrs.utils.Utils; | 
 |  |  | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public double queryStockAndSetLocDto(String matnr, String batch, String orderNo, List<LocDto> locDtoList, double issued, String csocode, String isoseq, String type) { | 
 |  |  |     public double queryStockAndSetLocDto(String matnr, String batch, String orderNo, List<LocDto> locDtoList, double issued, String csocode, String isoseq, String type2) { | 
 |  |  |         //根据物料号和批次找到对应的库存,并且按照修改时间排序 | 
 |  |  |         Wrapper<AgvLocDetl> wrapper = new EntityWrapper<AgvLocDetl>().eq("matnr", matnr).orderBy("modi_time"); | 
 |  |  |         if (type != null) { | 
 |  |  |             wrapper.notLike("loc_no", "F1"); | 
 |  |  |         } | 
 |  |  | //        if (type != null) { | 
 |  |  | //            wrapper.notLike("loc_no", "F1"); | 
 |  |  | //        } | 
 |  |  |         wapperSetCondition(wrapper, "batch", batch); | 
 |  |  |         wapperSetCondition(wrapper, "three_code", csocode); | 
 |  |  |         wapperSetCondition(wrapper, "dead_time", isoseq); | 
 |  |  |         //wapperSetCondition(wrapper, "dead_time", isoseq); | 
 |  |  |  | 
 |  |  |         if ("JG".equals(orderNo.substring(0, 2))) { | 
 |  |  |             wapperSetCondition(wrapper, "process_sts", "1"); | 
 |  |  |         } else { | 
 |  |  |             wrapper.ne("process_sts", "1"); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         List<AgvLocDetl> agvLocDetls = this.selectList(wrapper); | 
 |  |  | 
 |  |  |                 //locDto.setAgvStaNos(queryAgvStaNosByFloor(floor)); | 
 |  |  |                 //四期 | 
 |  |  |                 //locDto.setAgvStaNos(agvBasDevpService.selectCacheShelvesStationCodeByLocType(agvLocMast.getLocType1(), floor)); | 
 |  |  |                 locDto.setAgvStaNos(agvBasDevpService.selectCacheShelvesStationCodeByLocType(agvLocMast.getLocType1())); | 
 |  |  |  | 
 |  |  |                 List<String> strings = agvBasDevpService.selectCacheShelvesStationCodeByLocType(agvLocMast.getLocType1()); | 
 |  |  |                 List<String> agvStaNos = new ArrayList<>(); | 
 |  |  |                 if (agvLocDetl.getLocNo().contains("01F1")) { | 
 |  |  |                     for (String string : strings) { | 
 |  |  |                         if (string.contains("F1") || string.contains("F4")) { | 
 |  |  |                             agvStaNos.add(string); | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                 } else if (agvLocDetl.getLocNo().contains("02F1")) { | 
 |  |  |                     for (String string : strings) { | 
 |  |  |                         if (string.contains("F1") || string.contains("F4")) { | 
 |  |  |                             agvStaNos.add(string); | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                 } else if (agvLocDetl.getLocNo().contains("F2")) { | 
 |  |  |                     for (String string : strings) { | 
 |  |  |                         if (string.contains("F2") || string.contains("F4")) { | 
 |  |  |                             agvStaNos.add(string); | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                 } else if (agvLocDetl.getLocNo().contains("F3")) { | 
 |  |  |                     for (String string : strings) { | 
 |  |  |                         if (string.contains("F3")) { | 
 |  |  |                             agvStaNos.add(string); | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                 } else { | 
 |  |  |                     agvStaNos = strings; | 
 |  |  |                 } | 
 |  |  |                 locDto.setAgvStaNos(agvStaNos); | 
 |  |  |                 locDtoList.add(locDto); | 
 |  |  |  | 
 |  |  |                 issued -= anfme; | 
 
 |  |  | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         //寻找相应类型的空货架 | 
 |  |  |         AgvLocMast agvLocMast = agvLocMastService.selectEmptyZpallet(containerType, agvBasDevp.getFloor()); | 
 |  |  |         Integer floor = agvBasDevp.getFloor(); | 
 |  |  |         if (floor == 4) { | 
 |  |  |             floor = 1; | 
 |  |  |         } | 
 |  |  |         AgvLocMast agvLocMast = agvLocMastService.selectEmptyZpallet(containerType, floor); | 
 |  |  |         if (containerType == 0) { | 
 |  |  |             //空板自动出库,根据站点类型选择 | 
 |  |  |             agvLocMastService.selectEmptyZpalletByLocType1(agvBasDevp.getLocType1()); | 
 
 |  |  | 
 |  |  |  | 
 |  |  |         // 如果 作业数量等于单据总数量 && 工作明细档中无该单据的数据 && AGV工作明细档中无该单据的数据 | 
 |  |  |         //int count = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("order_no", orderNo)); | 
 |  |  |         //boolean wrkDeltExist = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().like("order_no", orderNo)) < 1; | 
 |  |  |         //boolean agvWrkDetlExist = agvWrkDetlService.selectCount(new EntityWrapper<AgvWrkDetl>().like("order_no", orderNo)) < 1; | 
 |  |  |         //boolean waitPakinExist = agvWaitPakinService.selectCount(new EntityWrapper<AgvWaitPakin>().like("order_no", orderNo)) < 1; | 
 |  |  |         boolean wrkDeltExist = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().like("order_no", orderNo)) < 1; | 
 |  |  |         boolean agvWrkDetlExist = agvWrkDetlService.selectCount(new EntityWrapper<AgvWrkDetl>().like("order_no", orderNo)) < 1; | 
 |  |  |         boolean waitPakinExist = agvWaitPakinService.selectCount(new EntityWrapper<AgvWaitPakin>().like("order_no", orderNo)) < 1; | 
 |  |  |  | 
 |  |  |         //ManPakOut manPakOut = manPakOutService.selectByOrderWithName(orderNo); | 
 |  |  |         ManPakOut manPakOut = manPakOutService.selectByOrderWithName(orderNo); | 
 |  |  |  | 
 |  |  |         //boolean manPakoutExist = Cools.isEmpty(manPakOut) || (manPakOut.getPayment() != null && manPakOut.getPayment() == 1); | 
 |  |  |         //if (complete && wrkDeltExist && agvWrkDetlExist && waitPakinExist && manPakoutExist) { | 
 |  |  |         if (complete) { | 
 |  |  |         boolean manPakoutExist = Cools.isEmpty(manPakOut) || (manPakOut.getPayment() != null && manPakOut.getPayment() == 1); | 
 |  |  |         if (complete && wrkDeltExist && agvWrkDetlExist && waitPakinExist && manPakoutExist) { | 
 |  |  |             if (pltType == null) { | 
 |  |  |                 if (!this.updateSettle(order.getId(), 6L, 9528L)) { | 
 |  |  |                     throw new CoolException("修改订单【orderNo = " + order.getOrderNo() + "】状态为已完成失败"); | 
 |  |  | 
 |  |  |  | 
 |  |  |         // 如果 作业数量等于单据总数量 && 工作明细档中无该单据的数据 && AGV工作明细档中无该单据的数据 | 
 |  |  |         //int count = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().eq("order_no", orderNo)); | 
 |  |  | //        boolean wrkDeltExist = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().like("order_no", orderNo)) < 1; | 
 |  |  | //        boolean agvWrkDetlExist = agvWrkDetlService.selectCount(new EntityWrapper<AgvWrkDetl>().like("order_no", orderNo)) < 1; | 
 |  |  | //        boolean waitPakinExist = agvWaitPakinService.selectCount(new EntityWrapper<AgvWaitPakin>().like("order_no", orderNo)) < 1; | 
 |  |  | // | 
 |  |  | //        ManPakOut manPakOut = manPakOutService.selectByOrderWithName(orderNo); | 
 |  |  | // | 
 |  |  | //        boolean manPakoutExist = Cools.isEmpty(manPakOut) || (manPakOut.getPayment() != null && manPakOut.getPayment() == 1); | 
 |  |  | //        if (complete && wrkDeltExist && agvWrkDetlExist && waitPakinExist && manPakoutExist) { | 
 |  |  |         if (complete) { | 
 |  |  |         boolean wrkDeltExist = wrkDetlService.selectCount(new EntityWrapper<WrkDetl>().like("order_no", orderNo)) < 1; | 
 |  |  |         boolean agvWrkDetlExist = agvWrkDetlService.selectCount(new EntityWrapper<AgvWrkDetl>().like("order_no", orderNo)) < 1; | 
 |  |  |         boolean waitPakinExist = agvWaitPakinService.selectCount(new EntityWrapper<AgvWaitPakin>().like("order_no", orderNo)) < 1; | 
 |  |  |  | 
 |  |  |         ManPakOut manPakOut = manPakOutService.selectByOrderWithName(orderNo); | 
 |  |  |  | 
 |  |  |         boolean manPakoutExist = Cools.isEmpty(manPakOut) || (manPakOut.getPayment() != null && manPakOut.getPayment() == 1); | 
 |  |  |         if (complete && wrkDeltExist && agvWrkDetlExist && waitPakinExist && manPakoutExist) { | 
 |  |  |             if (!this.updateSettle(order.getId(), 6L, 9528L)) { | 
 |  |  |                 throw new CoolException("修改订单【orderNo = " + order.getOrderNo() + "】状态为已完成失败"); | 
 |  |  |             } | 
 
 |  |  | 
 |  |  |     @Scheduled(cron = "0 0 2 * * ? ") | 
 |  |  |     private void delReportDataLog() { | 
 |  |  |         String format = DateUtil.format(DateUtil.offsetMonth(new Date(), -2), "yyyy-MM-dd HH:mm:ss"); | 
 |  |  |         List<ReportDataLog> agvWarnList = reportDataLogService.selectList(new EntityWrapper<ReportDataLog>().le("modi_time", format)); | 
 |  |  |         List<ReportDataLog> agvWarnList = reportDataLogService.selectList(new EntityWrapper<ReportDataLog>().le("create_time", format)); | 
 |  |  |         for (ReportDataLog agvWarn : agvWarnList) { | 
 |  |  |             reportDataLogService.deleteById(agvWarn); | 
 |  |  |         } | 
 
 |  |  | 
 |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
 |  |  | import org.springframework.stereotype.Component; | 
 |  |  |  | 
 |  |  | import java.util.ArrayList; | 
 |  |  | import java.util.List; | 
 |  |  |  | 
 |  |  | @Component | 
 |  |  | 
 |  |  |      * @param factory | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     public   AgvLocMast getLocNoRuleByFactory(int type, boolean isEmpty, String factory) { | 
 |  |  |     public AgvLocMast getLocNoRuleByFactory(int type, boolean isEmpty, String factory) { | 
 |  |  |         if (Cools.isEmpty(factory)) { | 
 |  |  |             throw new CoolException("搜索库位时,订单类型错误"); | 
 |  |  |         } | 
 |  |  | 
 |  |  |             if (factory.equalsIgnoreCase(AsrsConstants.ERCHANG)) { | 
 |  |  |                 if (isEmpty) { | 
 |  |  |                     wrapper.orderBy("lev1", true); | 
 |  |  |                 }else { | 
 |  |  |                 } else { | 
 |  |  |                     wrapper.orderBy("lev1", false); | 
 |  |  |                 } | 
 |  |  |             } else if (factory.equalsIgnoreCase(AsrsConstants.SANCHANG)) { | 
 |  |  |                 wrapper.orderBy("lev1", true); | 
 |  |  |             } | 
 |  |  |             List<AgvLocMast>   agvLocMasts = agvLocMastService.selectList(wrapper); | 
 |  |  |             List<AgvLocMast> agvLocMasts = agvLocMastService.selectList(wrapper); | 
 |  |  |  | 
 |  |  |             for (AgvLocMast agvLocMast : agvLocMasts) { | 
 |  |  |                 AgvLocMast agvLocMast1 = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvLocMast.getLocNo())); | 
 |  |  | 
 |  |  |      * @param floor | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     public AgvLocMast getLocNoRuleByFloor(int type, Integer floor, boolean isEmpty, Integer lev1) { | 
 |  |  |     public AgvLocMast getLocNoRuleByFloor(int type, Integer floor) { | 
 |  |  |         try { | 
 |  |  |             EntityWrapper<AgvLocMast> wrapper = new EntityWrapper<>(); | 
 |  |  |             wrapper.eq("loc_sts", "O").eq("loc_type1", type).eq("floor", floor).eq("lev1", lev1); | 
 |  |  |             wrapper.eq("loc_sts", "O").eq("loc_type1", type); | 
 |  |  |             if (floor == 4) { | 
 |  |  |                 wrapper.orderBy("lev1", false); | 
 |  |  |             } else { | 
 |  |  |                 wrapper.orderBy("lev1", true); | 
 |  |  |             } | 
 |  |  |             List<AgvLocMast> agvLocMasts = agvLocMastService.selectList(wrapper); | 
 |  |  |             for (AgvLocMast agvLocMast : agvLocMasts) { | 
 |  |  |                 AgvLocMast agvLocMast1 = agvLocMastService.selectOne(new EntityWrapper<AgvLocMast>().eq("loc_no", agvLocMast.getLocNo())); | 
 
 |  |  | 
 |  |  | //                locMast = locUtils.getLocNoRuleByFloor(type, floor, isEmpty, 2); | 
 |  |  | //            } else { | 
 |  |  | //                //不动这个逻辑 | 
 |  |  |             locMast = getLocNoRule(type, floor, isEmpty, isCurrLev); | 
 |  |  |             if (type == 6) { | 
 |  |  |                 locMast = locUtils.getLocNoRuleByFloor(type, floor); | 
 |  |  |             } else { | 
 |  |  |                 locMast = getLocNoRule(type, floor, isEmpty, isCurrLev); | 
 |  |  |             } | 
 |  |  | //            } | 
 |  |  |             if (locMast != null) { | 
 |  |  |                 return locMast; | 
 
 |  |  | 
 |  |  |     $("#importOrder").click(function () { | 
 |  |  |         $("#importExcel").trigger("click"); | 
 |  |  |     }); | 
 |  |  |     // 导入半成品 | 
 |  |  |     $("#importBcpOrder").click(function () { | 
 |  |  |         $("#importBcpExcel").trigger("click"); | 
 |  |  |     }); | 
 |  |  |  | 
 |  |  |      $("#orderCheckBtn").click(function () { | 
 |  |  |             $("#importExcel2").trigger("click"); | 
 |  |  | 
 |  |  |     }, function(index){ | 
 |  |  |     }); | 
 |  |  | } | 
 |  |  |  | 
 |  |  | function upload3(obj){ | 
 |  |  |     if(!obj.files) { | 
 |  |  |         return; | 
 |  |  |     } | 
 |  |  |     var file = obj.files[0]; | 
 |  |  |     admin.confirm('确认导入 [' + file.name +'] 文件吗?', function (index) { | 
 |  |  |         layer.load(1, {shade: [0.1,'#fff']}); | 
 |  |  |         var url = baseUrl + "/order/excel/import3/auth"; | 
 |  |  |         var form = new FormData(); | 
 |  |  |         form.append("file", file); | 
 |  |  |         let xhr = new XMLHttpRequest(); | 
 |  |  |         xhr.open("post", url, true); | 
 |  |  |         xhr.setRequestHeader('token', localStorage.getItem('token')); | 
 |  |  |         xhr.onload = uploadComplete; | 
 |  |  |         xhr.onerror =  uploadFailed; | 
 |  |  |         xhr.onloadend = function () { | 
 |  |  |             layer.closeAll('loading'); | 
 |  |  |         }; | 
 |  |  |         // xhr.upload.onprogress = progressFunction; | 
 |  |  |         xhr.upload.onloadstart = function(){ | 
 |  |  |             ot = new Date().getTime(); | 
 |  |  |             oloaded = 0; | 
 |  |  |         }; | 
 |  |  |         xhr.send(form); | 
 |  |  |     }, function(index){ | 
 |  |  |     }); | 
 |  |  | } | 
 |  |  | function uploadComplete(evt) { | 
 |  |  |     let res = JSON.parse(evt.target.responseText); | 
 |  |  |     if(res.code === 200) { | 
 
 |  |  | 
 |  |  |             {field: 'anfme', align: 'center',title: '数量', width: 90}, | 
 |  |  |             {field: 'qty', align: 'center',title: '作业数量', width: 90}, | 
 |  |  |             {field: 'matnr', align: 'center',title: '物料号', width: 140}, | 
 |  |  |             {field: 'maktx', align: 'center',title: '物料名称', width: 180}, | 
 |  |  |             {field: 'processSts$', title: '工序', hide: true}, | 
 |  |  |             {field: 'maktx', align: 'center',title: '物料名称'}, | 
 |  |  |             {field: 'processSts$', title: '工序', width: 140}, | 
 |  |  |             {field: 'reportQty', align: 'center',title: '上报数量', width: 90}, | 
 |  |  |             {field: 'settle$', align: 'center', title: '状态', templet: '#settleTpl',  minWidth: 130, width: 130}, | 
 |  |  |             //{field: 'defNumber', align: 'center', title: '业务类型'}, | 
 |  |  |             //{field: 'postFee', align: 'center', title: '总数量',  minWidth: 130, width: 130}, | 
 |  |  |             //{align: 'center', title: '明细', toolbar: '#tbLook', minWidth: 160, width: 160}, | 
 |  |  |             {field: 'orderTime', align: 'center',title: '单据日期', hide: true, width: 180}, | 
 |  |  |             {field: 'orderTime', align: 'center',title: '单据日期', width: 190}, | 
 |  |  |             //{field: 'shipCode', align: 'center',title: '制单人'}, | 
 |  |  |             {field: 'createBy$', title: '创建人', width: 120}, | 
 |  |  |             {field: 'createTime$', title: '创建时间', hide: true, width: 180}, | 
 
 |  |  | 
 |  |  |                         <button id="importOrder" class="layui-btn icon-btn btn-add"> | 
 |  |  |                             <i class="layui-icon layui-icon-upload"></i> 导入单据 | 
 |  |  |                         </button> | 
 |  |  |                         <button id="importBcpOrder" class="layui-btn icon-btn btn-add2"> | 
 |  |  |                             <i class="layui-icon layui-icon-upload"></i> 导入半成品箱壳单据 | 
 |  |  |                         </button> | 
 |  |  |                         <button id="orderCheckBtn" class="layui-btn icon-btn btn-add"> | 
 |  |  |                             <i class="layui-icon"></i>添加 | 
 |  |  |                         </button> | 
 |  |  |                         <input style="display:none" id="importExcel" type="file" onchange="upload(this)" > | 
 |  |  |                         <input style="display:none" id="importBcpExcel" type="file" onchange="upload3(this)" > | 
 |  |  |                         <input style="display:none" id="importExcel2" type="file" onchange="upload2(this)" > | 
 |  |  |                     </div> | 
 |  |  |                 </div> | 
 |  |  | 
 |  |  | <script type="text/javascript" src="../../static/js/echarts/echarts.min.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/order/order.js?v=7" charset="utf-8"></script> | 
 |  |  | <script type="text/javascript" src="../../static/js/order/order.js?v=8" charset="utf-8"></script> | 
 |  |  |  | 
 |  |  | <script type="text/template" id="docTypeTpl"> | 
 |  |  |     <option value="">选择类型</option> | 
 
 |  |  | 
 |  |  | <script type="text/javascript" src="../../static/js/echarts/echarts.min.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/orderView/orderView.js?v=11" charset="utf-8"></script> | 
 |  |  | <script type="text/javascript" src="../../static/js/orderView/orderView.js?v=12" charset="utf-8"></script> | 
 |  |  |  | 
 |  |  | <script type="text/template" id="docTypeTpl"> | 
 |  |  |     <option value="">选择类型</option> |