| | |
| | | // } |
| | | 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> |