|  |  |  | 
|---|
|  |  |  | private WrkMastLogService wrkMastLogService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private LocDetlService locDetlService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private MatService matService; | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private AgvLocDetlService agvLocDetlService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping(value = "/order/nav/list/auth") | 
|---|
|  |  |  | @ManagerAuth | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | wrapper.eq("status", 1); | 
|---|
|  |  |  | return R.ok(orderService.selectPage(new Page<>(curr, limit), wrapper)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //  所有入库订单 | 
|---|
|  |  |  | @RequestMapping(value = "/order/detls/in/page/auth") | 
|---|
|  |  |  | @ManagerAuth | 
|---|
|  |  |  | public R orderIn(@RequestParam(defaultValue = "1")Integer curr, | 
|---|
|  |  |  | @RequestParam(defaultValue = "10000")Integer limit, | 
|---|
|  |  |  | @RequestParam(required = false)String orderByField, | 
|---|
|  |  |  | @RequestParam(required = false)String orderByType, | 
|---|
|  |  |  | @RequestParam Map<String, Object> param){ | 
|---|
|  |  |  | EntityWrapper<Order> wrapper = new EntityWrapper<>(); | 
|---|
|  |  |  | excludeTrash(param); | 
|---|
|  |  |  | convert(param, wrapper); | 
|---|
|  |  |  | if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} else { | 
|---|
|  |  |  | wrapper.orderBy("settle").orderBy("create_time", false); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | wrapper.eq("status", 1); | 
|---|
|  |  |  | List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakin", 1)); | 
|---|
|  |  |  | List<Long> docIds = new ArrayList<>(); | 
|---|
|  |  |  | for (DocType pakin : pakins) { | 
|---|
|  |  |  | docIds.add(pakin.getDocId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | wrapper.in("doc_type",docIds); | 
|---|
|  |  |  | return R.ok(orderService.selectPage(new Page<>(curr, limit), wrapper)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //  所有入库订单明细 | 
|---|
|  |  |  | @RequestMapping(value = "/order/detls/pakin/page/auth") | 
|---|
|  |  |  | @ManagerAuth | 
|---|
|  |  |  | public R orderDetls(@RequestParam(defaultValue = "1")Integer curr, | 
|---|
|  |  |  | @RequestParam(defaultValue = "100")Integer limit, | 
|---|
|  |  |  | @RequestParam(required = false)String orderByField, | 
|---|
|  |  |  | @RequestParam(required = false)String orderByType, | 
|---|
|  |  |  | @RequestParam Map<String, Object> param){ | 
|---|
|  |  |  | EntityWrapper<OrderDetl> wrapper = new EntityWrapper<>(); | 
|---|
|  |  |  | excludeTrash(param); | 
|---|
|  |  |  | convert(param, wrapper); | 
|---|
|  |  |  | //        return R.ok(orderDetlService.getPakoutPage(toPage(curr, limit, param, OrderDetl.class))); | 
|---|
|  |  |  | List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakin", 1)); | 
|---|
|  |  |  | List<Long> docIds = new ArrayList<>(); | 
|---|
|  |  |  | for (DocType pakin : pakins) { | 
|---|
|  |  |  | if (pakin.getDocId() != 32) { | 
|---|
|  |  |  | docIds.add(pakin.getDocId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | wrapper.in("source",docIds); | 
|---|
|  |  |  | return R.ok(orderDetlService.selectPage(new Page<>(curr, limit), wrapper)); | 
|---|
|  |  |  | //        EntityWrapper<OrderDetl> wrapper = new EntityWrapper<>(); | 
|---|
|  |  |  | //        excludeTrash(param); | 
|---|
|  |  |  | //        convert(param, wrapper); | 
|---|
|  |  |  | //        if (!Cools.isEmpty(orderByField)){wrapper.orderBy(humpToLine(orderByField), "asc".equals(orderByType));} else { | 
|---|
|  |  |  | //            wrapper.orderBy("create_time", false); | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | //        List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakin", 1)); | 
|---|
|  |  |  | //        List<Long> docIds = new ArrayList<>(); | 
|---|
|  |  |  | //        for (DocType pakin : pakins) { | 
|---|
|  |  |  | //            docIds.add(pakin.getDocId()); | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | //        EntityWrapper<Order> orderEntityWrapper = new EntityWrapper<>(); | 
|---|
|  |  |  | //        List<Order> orders = orderService.selectList(orderEntityWrapper.in("doc_type",docIds)); | 
|---|
|  |  |  | //        List<String> orderNos = new ArrayList<>(); | 
|---|
|  |  |  | //        for (Order order : orders) { | 
|---|
|  |  |  | //            orderNos.add(order.getOrderNo()); | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | //        wrapper.in("order_no",orderNos); | 
|---|
|  |  |  | //        return R.ok(orderDetlService.selectPage(new Page<>(curr, limit), wrapper)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //  所有入库订单明细 | 
|---|
|  |  |  | @RequestMapping(value = "/order/bcp/detls/pakin/page/auth") | 
|---|
|  |  |  | @ManagerAuth | 
|---|
|  |  |  | public R bcpOrderDetls(@RequestParam(defaultValue = "1")Integer curr, | 
|---|
|  |  |  | @RequestParam(defaultValue = "100")Integer limit, | 
|---|
|  |  |  | @RequestParam(required = false)String orderByField, | 
|---|
|  |  |  | @RequestParam(required = false)String orderByType, | 
|---|
|  |  |  | @RequestParam Map<String, Object> param){ | 
|---|
|  |  |  | EntityWrapper<OrderDetl> wrapper = new EntityWrapper<>(); | 
|---|
|  |  |  | excludeTrash(param); | 
|---|
|  |  |  | convert(param, wrapper); | 
|---|
|  |  |  | //        return R.ok(orderDetlService.getPakoutPage(toPage(curr, limit, param, OrderDetl.class))); | 
|---|
|  |  |  | List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakin", 1)); | 
|---|
|  |  |  | List<Long> docIds = new ArrayList<>(); | 
|---|
|  |  |  | for (DocType pakin : pakins) { | 
|---|
|  |  |  | if (pakin.getDocId() == 32) { | 
|---|
|  |  |  | docIds.add(pakin.getDocId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | wrapper.in("source",docIds); | 
|---|
|  |  |  | return R.ok(orderDetlService.selectPage(new Page<>(curr, limit), wrapper)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping(value = "/order/bcpDb/detls/pakin/page/auth") | 
|---|
|  |  |  | @ManagerAuth | 
|---|
|  |  |  | public R bcpDbOrderDetls(@RequestParam(defaultValue = "1")Integer curr, | 
|---|
|  |  |  | @RequestParam(defaultValue = "100")Integer limit, | 
|---|
|  |  |  | @RequestParam(required = false)String orderByField, | 
|---|
|  |  |  | @RequestParam(required = false)String orderByType, | 
|---|
|  |  |  | @RequestParam Map<String, Object> param){ | 
|---|
|  |  |  | EntityWrapper<OrderDetl> wrapper = new EntityWrapper<>(); | 
|---|
|  |  |  | excludeTrash(param); | 
|---|
|  |  |  | convert(param, wrapper); | 
|---|
|  |  |  | //        return R.ok(orderDetlService.getPakoutPage(toPage(curr, limit, param, OrderDetl.class))); | 
|---|
|  |  |  | List<DocType> pakins = docTypeService.selectList(new EntityWrapper<DocType>().eq("pakout", 1)); | 
|---|
|  |  |  | List<Long> docIds = new ArrayList<>(); | 
|---|
|  |  |  | for (DocType pakin : pakins) { | 
|---|
|  |  |  | if (pakin.getDocId() == 33) { | 
|---|
|  |  |  | docIds.add(pakin.getDocId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | wrapper.in("source",docIds); | 
|---|
|  |  |  | Page<OrderDetl> page = orderDetlService.selectPage(new Page<>(curr, limit), wrapper); | 
|---|
|  |  |  | for (OrderDetl record : page.getRecords()) { | 
|---|
|  |  |  | Double sumAnfme = agvLocDetlService.getSumAnfmeDb(record.getMatnr(), record.getThreeCode(),1); | 
|---|
|  |  |  | record.setStock(sumAnfme == null ? 0 : sumAnfme); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return R.ok(page); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping(value = "/order/detl/all/auth") | 
|---|
|  |  |  | 
|---|
|  |  |  | for (OrderDetl orderDetl : param.getOrderDetlList()) { | 
|---|
|  |  |  | DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch()); | 
|---|
|  |  |  | if (DetlDto.has(list, dto)) { | 
|---|
|  |  |  | OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch()); | 
|---|
|  |  |  | OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getThreeCode(),orderDetl.getDeadTime()); | 
|---|
|  |  |  | item.setAnfme(item.getAnfme() + orderDetl.getAnfme()); | 
|---|
|  |  |  | if (!orderDetlService.updateById(item)) { | 
|---|
|  |  |  | throw new CoolException("保存订单明细档失败"); | 
|---|
|  |  |  | 
|---|
|  |  |  | list.add(dto); | 
|---|
|  |  |  | orderDetl.setOrderId(order.getId()); | 
|---|
|  |  |  | orderDetl.setOrderNo(order.getOrderNo()); | 
|---|
|  |  |  | orderDetl.setSource(param.getDocType().intValue()); | 
|---|
|  |  |  | orderDetl.setCreateBy(getUserId()); | 
|---|
|  |  |  | orderDetl.setCreateTime(now); | 
|---|
|  |  |  | orderDetl.setUpdateBy(getUserId()); | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (param.getDocType().intValue() == 32) { | 
|---|
|  |  |  | order = new Order( | 
|---|
|  |  |  | String.valueOf(snowflakeIdWorker.nextId()),    // 编号[非空] | 
|---|
|  |  |  | "DB" + param.getOrderNo(),    // 订单编号 | 
|---|
|  |  |  | DateUtils.convert(now),    // 单据日期 | 
|---|
|  |  |  | 33L,    // 单据类型 | 
|---|
|  |  |  | 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,    // 状态 | 
|---|
|  |  |  | getUserId(),    // 添加人员 | 
|---|
|  |  |  | now,    // 添加时间 | 
|---|
|  |  |  | getUserId(),    // 修改人员 | 
|---|
|  |  |  | now,    // 修改时间 | 
|---|
|  |  |  | null    // 备注 | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | if (!orderService.insert(order)) { | 
|---|
|  |  |  | throw new CoolException("生成半成品调拨单失败"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<DetlDto> dbList = new ArrayList<>(); | 
|---|
|  |  |  | for (OrderDetl orderDetl : param.getOrderDetlList()) { | 
|---|
|  |  |  | DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch()); | 
|---|
|  |  |  | if (DetlDto.has(dbList, dto)) { | 
|---|
|  |  |  | OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getThreeCode(),orderDetl.getDeadTime()); | 
|---|
|  |  |  | item.setAnfme(item.getAnfme() + orderDetl.getAnfme()); | 
|---|
|  |  |  | if (!orderDetlService.updateById(item)) { | 
|---|
|  |  |  | throw new CoolException("生成半成品调拨单明细档失败"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | dbList.add(dto); | 
|---|
|  |  |  | orderDetl.setOrderId(order.getId()); | 
|---|
|  |  |  | orderDetl.setOrderNo(order.getOrderNo()); | 
|---|
|  |  |  | orderDetl.setSource(33); | 
|---|
|  |  |  | orderDetl.setCreateBy(getUserId()); | 
|---|
|  |  |  | orderDetl.setCreateTime(now); | 
|---|
|  |  |  | orderDetl.setUpdateBy(getUserId()); | 
|---|
|  |  |  | orderDetl.setUpdateTime(now); | 
|---|
|  |  |  | orderDetl.setStatus(1); | 
|---|
|  |  |  | orderDetl.setQty(0.0D); | 
|---|
|  |  |  | if (!orderDetlService.insert(orderDetl)) { | 
|---|
|  |  |  | throw new CoolException("生成半成品调拨单明细档失败"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | return R.ok("订单添加成功"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | for (OrderDetl orderDetl : param.getOrderDetlList()) { | 
|---|
|  |  |  | DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch()); | 
|---|
|  |  |  | if (DetlDto.has(list, dto)) { | 
|---|
|  |  |  | OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch()); | 
|---|
|  |  |  | OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getThreeCode(),orderDetl.getDeadTime()); | 
|---|
|  |  |  | item.setAnfme(item.getAnfme() + orderDetl.getAnfme()); | 
|---|
|  |  |  | if (!orderDetlService.updateById(item)) { | 
|---|
|  |  |  | throw new CoolException("保存订单明细档失败"); | 
|---|
|  |  |  | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public R delete(@RequestParam Long orderId){ | 
|---|
|  |  |  | orderService.remove(orderId); | 
|---|
|  |  |  | //        Order order = orderService.selectById(orderId); | 
|---|
|  |  |  | //        if (order != null) { | 
|---|
|  |  |  | //            order.setStatus(0); | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | //        if (!orderService.updateById(order)) { | 
|---|
|  |  |  | //            throw new CoolException("删除订单失败"); | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | //        orderDetlService.modifyStatus(orderId, 0); | 
|---|
|  |  |  | return R.ok(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @RequestMapping(value = "/order/report/auth") | 
|---|
|  |  |  | @ManagerAuth(memo = "手动上传订单") | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public R report(@RequestParam Long orderId){ | 
|---|
|  |  |  | orderService.report(orderId,getUser().getUsername()); | 
|---|
|  |  |  | return R.ok(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | DataFormatter dataFormatter = new DataFormatter(); | 
|---|
|  |  |  | for (int i = 1; i < totalRows; i++) { | 
|---|
|  |  |  | Row row = sheet.getRow(i); | 
|---|
|  |  |  | // 订单编号 | 
|---|
|  |  |  | String uuid = dataFormatter.formatCellValue(row.getCell(0)); | 
|---|
|  |  |  | //单据类型 | 
|---|
|  |  |  | String docName =  dataFormatter.formatCellValue(row.getCell(0)); | 
|---|
|  |  |  | //单据编号 | 
|---|
|  |  |  | String uuid = dataFormatter.formatCellValue(row.getCell(1)); | 
|---|
|  |  |  | //物料号 | 
|---|
|  |  |  | String matnr = dataFormatter.formatCellValue(row.getCell(2)); | 
|---|
|  |  |  | //销售单号 | 
|---|
|  |  |  | String csocode = dataFormatter.formatCellValue(row.getCell(3)); | 
|---|
|  |  |  | //自由项 | 
|---|
|  |  |  | String isocode = dataFormatter.formatCellValue(row.getCell(4)); | 
|---|
|  |  |  | // 数量 | 
|---|
|  |  |  | 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 + "商品编码的商品不存在,请重新导入!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //String timeStr = DateUtils.convert(new Date()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | DocType docType = docTypeService.selectOne(new EntityWrapper<DocType>().eq("doc_name", docName)); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if(docType.getPakin() == 1){ | 
|---|
|  |  |  | uuid += "_I"; | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | uuid += "_O"; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Order order = orderService.selectByNo(uuid); | 
|---|
|  |  |  | if (null == order) { | 
|---|
|  |  |  | order = new Order( | 
|---|
|  |  |  | String.valueOf(snowflakeIdWorker.nextId()),    // 编号[非空] | 
|---|
|  |  |  | uuid,    // 订单编号 | 
|---|
|  |  |  | null,    // 单据日期 | 
|---|
|  |  |  | 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 { | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | if (!orderDetlService.insert(orderDetl)) { | 
|---|
|  |  |  | throw new CoolException("生成单据明细失败,请重新导入!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | if(!orderDetlService.increaseAnfme(order.getId(), matnr, null, anfme,csocode,isocode)) { | 
|---|
|  |  |  | throw new CoolException("生成单据明细失败,请重新导入!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (docType.getDocId().intValue() == 32) { | 
|---|
|  |  |  | String dbUuid = "DB" + uuid; | 
|---|
|  |  |  | Order order2 = orderService.selectByNo(dbUuid); | 
|---|
|  |  |  | if (null == order2) { | 
|---|
|  |  |  | order2 = new Order( | 
|---|
|  |  |  | String.valueOf(snowflakeIdWorker.nextId()),    // 编号[非空] | 
|---|
|  |  |  | dbUuid,    // 订单编号 | 
|---|
|  |  |  | null,    // 单据日期 | 
|---|
|  |  |  | 33L,    // 单据类型 | 
|---|
|  |  |  | 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(order2)) { | 
|---|
|  |  |  | throw new CoolException("生成单据主档失败,请重新导入!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | order2.setSettle(order.getSettle() == 1L ? 1L : 2L ); | 
|---|
|  |  |  | orderService.updateById(order2); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | OrderDetl orderDetl2 = orderDetlService.selectItem(order2.getId(), matnr, null,csocode,isocode); | 
|---|
|  |  |  | if (orderDetl2 == null) { | 
|---|
|  |  |  | orderDetl2 = new OrderDetl(); | 
|---|
|  |  |  | orderDetl2.sync(mat); | 
|---|
|  |  |  | orderDetl2.setSource(33); | 
|---|
|  |  |  | orderDetl2.setBatch(null); | 
|---|
|  |  |  | orderDetl2.setAnfme(anfme); | 
|---|
|  |  |  | orderDetl2.setOrderId(order2.getId()); | 
|---|
|  |  |  | orderDetl2.setOrderNo(order2.getOrderNo()); | 
|---|
|  |  |  | orderDetl2.setCreateBy(userId); | 
|---|
|  |  |  | orderDetl2.setCreateTime(now); | 
|---|
|  |  |  | orderDetl2.setUpdateBy(userId); | 
|---|
|  |  |  | orderDetl2.setUpdateTime(now); | 
|---|
|  |  |  | orderDetl2.setThreeCode(csocode); | 
|---|
|  |  |  | orderDetl2.setDeadTime(isocode); | 
|---|
|  |  |  | orderDetl2.setStatus(1); | 
|---|
|  |  |  | orderDetl2.setQty(0.0D); | 
|---|
|  |  |  | if (!orderDetlService.insert(orderDetl2)) { | 
|---|
|  |  |  | throw new CoolException("生成单据明细失败,请重新导入!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | if(!orderDetlService.increaseAnfme(order2.getId(), matnr, null, anfme,csocode,isocode)) { | 
|---|
|  |  |  | throw new CoolException("生成单据明细失败,请重新导入!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return R.ok(); | 
|---|
|  |  |  | return R.ok("导入成功"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * excel导入 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @PostMapping(value = "/order/excel/import2/auth") | 
|---|
|  |  |  | @ManagerAuth(memo = "销售单Excel导入") | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public R cstmrExcelImport2(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;    // 总 | 
|---|
|  |  |  | DataFormatter dataFormatter = new DataFormatter(); | 
|---|
|  |  |  | List<String> strs = new ArrayList<>(); | 
|---|
|  |  |  | for (int i = 1; i < totalRows; i++) { | 
|---|
|  |  |  | Row row = sheet.getRow(i); | 
|---|
|  |  |  | //单据类型 | 
|---|
|  |  |  | String docName =  dataFormatter.formatCellValue(row.getCell(0)); | 
|---|
|  |  |  | //单据编号 | 
|---|
|  |  |  | String uuid = dataFormatter.formatCellValue(row.getCell(1)); | 
|---|
|  |  |  | //物料号 | 
|---|
|  |  |  | String matnr = dataFormatter.formatCellValue(row.getCell(2)); | 
|---|
|  |  |  | Mat mat = matService.selectByMatnr(matnr); | 
|---|
|  |  |  | if (null == mat) { | 
|---|
|  |  |  | strs.add(matnr); | 
|---|
|  |  |  | //                throw new CoolException(matnr + "商品编码的商品不存在,请检查!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return R.ok("导入成功").add(strs); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|