| | |
| | | import zy.cloud.wms.common.model.MatnrDto; |
| | | import zy.cloud.wms.common.model.OrderStoDto; |
| | | import zy.cloud.wms.common.model.ReceiveStoDto; |
| | | import zy.cloud.wms.common.model.WaveStoDto; |
| | | import zy.cloud.wms.common.service.MainService; |
| | | import zy.cloud.wms.common.utils.VersionUtils; |
| | | import zy.cloud.wms.manager.entity.*; |
| | |
| | | private ReceiveDetlService receiveDetlService; |
| | | @Autowired |
| | | ReceiveLogService receiveLogService; |
| | | @Autowired |
| | | private WaveService waveService; |
| | | @Autowired |
| | | private WaveDetlService waveDetlService; |
| | | |
| | | |
| | | @Override |
| | |
| | | |
| | | @Override |
| | | public R stockOutPreview(StockOutParam param, Long userId, Long hostId) { |
| | | Wrapper<Receive> wrapper = new EntityWrapper<Receive>() |
| | | Wrapper<Order> wrapper = new EntityWrapper<Order>() |
| | | .eq("order_no", param.getOrderNo()); |
| | | if (hostId != null) { |
| | | wrapper.eq("host_id", hostId); |
| | | } |
| | | Receive order_no = receiveService.selectOne(wrapper); |
| | | Order order_no = orderService.selectOne(wrapper); |
| | | |
| | | if (order_no.getSettle() != 1){ |
| | | return R.error("此单据无法生成拣货单"); |
| | |
| | | // if (order.getSettle() != 1) { |
| | | // return R.error("此单据无法生成拣货单"); |
| | | // } |
| | | List<ReceiveDetl> receiveDetls = receiveDetlService.selectByOrderNo(order_no.getOrderNo(), hostId); |
| | | if (Cools.isEmpty(receiveDetls)) { |
| | | List<OrderDetl> orderDetls = orderDetlService.selectByOrderNo(order_no.getOrderNo(), hostId); |
| | | if (Cools.isEmpty(orderDetls)) { |
| | | return R.error("此单据已失效,请联系管理员"); |
| | | } |
| | | // List<OrderDetl> orderDetls = orderDetlService.selectByOrderNo(order.getOrderNo(), hostId); |
| | |
| | | // return R.error("此单据已失效,请联系管理员"); |
| | | // } |
| | | |
| | | ReceiveStoDto receiveStoDto = new ReceiveStoDto().create(order_no.getOrderNo(), receiveDetls); |
| | | OrderStoDto orderStoDto = new OrderStoDto().create(order_no.getOrderNo(), orderDetls); |
| | | // OrderStoDto dto = new OrderStoDto().create(order.getOrderNo(), orderDetls); |
| | | return R.ok().add(mainService.receiveStockOutPreview(receiveStoDto, hostId)); |
| | | return R.ok().add(mainService.orderOutPreview(orderStoDto, hostId)); |
| | | } |
| | | |
| | | @Override |
| | | public R stockOutCreate(StockOutParam param, Long userId, Long hostId) { |
| | | Receive receive = receiveService.selectByOrderNo(param.getOrderNo(), hostId); |
| | | // Order order = orderService.selectByOrderNo(param.getOrderNo(), hostId); |
| | | if (receive.getSettle() != 1) { |
| | | // Receive receive = receiveService.selectByOrderNo(param.getOrderNo(), hostId); |
| | | Order order = orderService.selectByOrderNo(param.getOrderNo(), hostId); |
| | | if (order.getSettle() != 1) { |
| | | return R.error("此单据无法生成拣货单"); |
| | | } |
| | | List<ReceiveDetl> receiveDetls = receiveDetlService.selectByOrderNo(param.getOrderNo(), hostId); |
| | | List<OrderDetl> orderDetls = orderDetlService.selectByOrderNo(param.getOrderNo(), hostId); |
| | | // List<OrderDetl> orderDetls = orderDetlService.selectByOrderNo(param.getOrderNo(), hostId); |
| | | if (Cools.isEmpty(receiveDetls)) { |
| | | if (Cools.isEmpty(orderDetls)) { |
| | | return R.error("此单据已失效,请联系管理员"); |
| | | } |
| | | ReceiveStoDto receiveStoDto = new ReceiveStoDto().create(receive.getOrderNo(), receiveDetls); |
| | | OrderStoDto orderStoDto = new OrderStoDto().create(order.getOrderNo(), orderDetls); |
| | | // OrderStoDto dto = new OrderStoDto().create(receive.getOrderNo(), receiveDetls); |
| | | // 开始整理出库数据 |
| | | mainService.receiveStockOutProcess(receiveStoDto,hostId); |
| | | mainService.orderStockOutProcess(orderStoDto,hostId,userId); |
| | | return R.ok("生成拣货单成功"); |
| | | } |
| | | |
| | |
| | | order1.setOrderNo(param.getOrderNo()); |
| | | order1.setOrderTime(param.getOrderTime()); |
| | | order1.setDocType(param.getDocType()); |
| | | order1.setItemId(item.getId()); |
| | | order1.setItemId(item == null? null : item.getId()); |
| | | order1.setItemName(param.getItem()); |
| | | order1.setCstmr(cstmr.getId()); |
| | | order1.setCstmr(cstmr == null? null : cstmr.getId()); |
| | | order1.setCstmrName(param.getCstmr()); |
| | | order1.setSettle(1L); |
| | | order1.setStatus(1); |
| | |
| | | log.error("{}商品不存在。", dto.getMatnr()); |
| | | continue; |
| | | } |
| | | ReceiveDetl receiveDetl = new ReceiveDetl(); |
| | | receiveDetl.setHostId(hostId); |
| | | receiveDetl.setOrderId(order1.getId()); |
| | | receiveDetl.setAnfme(dto.getCount()); |
| | | receiveDetl.setCreateTime(now); |
| | | receiveDetl.setCreateBy(userId); |
| | | receiveDetl.setUpdateBy(userId); |
| | | receiveDetl.setUpdateTime(now); |
| | | receiveDetl.setStatus(1); |
| | | receiveDetl.setMatnr(mat.getMatnr()); |
| | | receiveDetl.setMaktx(mat.getMaktx()); |
| | | receiveDetl.setName(mat.getName()); |
| | | receiveDetl.setSpecs(mat.getSpecs()); |
| | | receiveDetl.setModel(mat.getModel()); |
| | | receiveDetl.setBatch(mat.getBatch()); |
| | | receiveDetl.setUnit(mat.getUnit()); |
| | | receiveDetl.setBarcode(mat.getBarcode()); |
| | | receiveDetl.setItemNum(mat.getItemNum()); |
| | | receiveDetl.setCount(Double.valueOf(mat.getCount())); |
| | | receiveDetl.setUnitPrice(mat.getPrice()); |
| | | receiveDetl.setWeight(mat.getWeight()); |
| | | if (!receiveDetlService.insert(receiveDetl)) { |
| | | OrderDetl orderDetl = new OrderDetl(); |
| | | orderDetl.setHostId(hostId); |
| | | orderDetl.setOrderId(order1.getId()); |
| | | orderDetl.setAnfme(dto.getCount()); |
| | | orderDetl.setCreateTime(now); |
| | | orderDetl.setCreateBy(userId); |
| | | orderDetl.setUpdateBy(userId); |
| | | orderDetl.setUpdateTime(now); |
| | | orderDetl.setStatus(1); |
| | | orderDetl.setMatnr(mat.getMatnr()); |
| | | orderDetl.setMaktx(mat.getMaktx()); |
| | | orderDetl.setName(mat.getName()); |
| | | orderDetl.setSpecs(mat.getSpecs()); |
| | | orderDetl.setModel(mat.getModel()); |
| | | orderDetl.setBatch(mat.getBatch()); |
| | | orderDetl.setUnit(mat.getUnit()); |
| | | orderDetl.setBarcode(mat.getBarcode()); |
| | | orderDetl.setItemNum(mat.getItemNum()); |
| | | orderDetl.setCount(mat.getCount() == null ? 0 : mat.getCount()); |
| | | orderDetl.setUnitPrice(mat.getPrice()); |
| | | orderDetl.setWeight(mat.getWeight()); |
| | | if (!orderDetlService.insert(orderDetl)) { |
| | | throw new CoolException("保存订单明细失败"); |
| | | } |
| | | } |
| | |
| | | return R.ok(); |
| | | } |
| | | |
| | | @Override |
| | | // @Transactional |
| | | public R initOutOrder(InitOrderParam param, Long userId, Long hostId) { |
| | | Order order_no = orderService.selectOne(new EntityWrapper<Order>() |
| | | .eq("order_no", param.getOrderNo())); |
| | | // Order order = orderService.selectByOrderNo(param.getOrderNo(), hostId); |
| | | if (order_no != null) { |
| | | return R.error("抱歉单号已存在,请修改单号"); |
| | | } |
| | | Date now = new Date(); |
| | | Item item = itemService.selectByName(param.getItem()); |
| | | Cstmr cstmr = cstmrService.selectByName(param.getCstmr()); |
| | | |
| | | // 新增订单表头 |
| | | order_no = new Order(); |
| | | order_no.setHostId(hostId); |
| | | order_no.setUuid(String.valueOf(snowflakeIdWorker.nextId())); |
| | | order_no.setOrderNo(param.getOrderNo()); |
| | | order_no.setOrderTime(param.getOrderTime()); |
| | | order_no.setDocType(param.getDocType()); |
| | | order_no.setItemId(item==null?null:item.getId()); |
| | | order_no.setItemName(param.getItem()); |
| | | order_no.setCstmr(cstmr==null?null:cstmr.getId()); |
| | | order_no.setCstmrName(param.getCstmr()); |
| | | order_no.setSettle(1L); |
| | | order_no.setStatus(1); |
| | | order_no.setCreateTime(now); |
| | | order_no.setCreateBy(userId); |
| | | order_no.setUpdateTime(now); |
| | | order_no.setUpdateBy(userId); |
| | | |
| | | // if (!orderService.insert(order)) { |
| | | // throw new CoolException("保存订单表头失败!"); |
| | | // } |
| | | if (!orderService.insert(order_no)) { |
| | | throw new CoolException("保存订单表头失败!"); |
| | | } |
| | | |
| | | // // 遍历商品数量并保存 |
| | | // for (MatnrDto dto : param.getList()){ |
| | | // Mat mat = matService.selectByMatnr(hostId, dto.getMatnr()); |
| | | // if (mat == null) { |
| | | // log.error("{}商品不存在。", dto.getMatnr()); |
| | | // continue; |
| | | // } |
| | | // OrderDetl orderDetl = new OrderDetl(); |
| | | // orderDetl.setHostId(hostId); |
| | | // orderDetl.setOrderId(order.getId()); // 订单内码 |
| | | // orderDetl.setAnfme(dto.getCount()); // 数量 |
| | | // orderDetl.setCreateBy(userId); |
| | | // orderDetl.setCreateTime(now); |
| | | // orderDetl.setUpdateBy(userId); |
| | | // orderDetl.setUpdateTime(now); |
| | | // orderDetl.setStatus(1); |
| | | // VersionUtils.setOrderDetl(orderDetl, mat); |
| | | // if (!orderDetlService.insert(orderDetl)) { |
| | | // throw new CoolException("保存订单明细失败"); |
| | | // } |
| | | // } |
| | | // 遍历商品数量并保存 |
| | | for (MatnrDto dto : param.getList()){ |
| | | Mat mat = matService.selectByMatnr(hostId, dto.getMatnr()); |
| | | if (mat == null) { |
| | | log.error("{}商品不存在。", dto.getMatnr()); |
| | | continue; |
| | | } |
| | | OrderDetl orderDtel = new OrderDetl(); |
| | | orderDtel.setHostId(hostId); |
| | | orderDtel.setOrderId(order_no.getId()); |
| | | orderDtel.setAnfme(dto.getCount()); |
| | | orderDtel.setCreateTime(now); |
| | | orderDtel.setCreateBy(userId); |
| | | orderDtel.setUpdateBy(userId); |
| | | orderDtel.setUpdateTime(now); |
| | | orderDtel.setStatus(1); |
| | | orderDtel.setMatnr(mat.getMatnr()); |
| | | orderDtel.setMaktx(mat.getMaktx()); |
| | | orderDtel.setName(mat.getName()); |
| | | orderDtel.setSpecs(mat.getSpecs()); |
| | | orderDtel.setModel(mat.getModel()); |
| | | orderDtel.setBatch(mat.getBatch()); |
| | | orderDtel.setUnit(mat.getUnit()); |
| | | orderDtel.setBarcode(mat.getBarcode()); |
| | | orderDtel.setItemNum(mat.getItemNum()); |
| | | orderDtel.setCount(mat.getCount() == null ? 0 : mat.getCount()); |
| | | orderDtel.setUnitPrice(mat.getPrice()); |
| | | orderDtel.setWeight(mat.getWeight()); |
| | | if (!orderDetlService.insert(orderDtel)) { |
| | | throw new CoolException("保存订单明细失败"); |
| | | } |
| | | } |
| | | return R.ok("创建订单成功"); |
| | | } |
| | | |
| | | @Override |
| | | public R wavePreview(StockOutParam stockOutParam, Long userId, Long hostId) { |
| | | Wrapper<Wave> wrapper = new EntityWrapper<Wave>() |
| | | .eq("id", stockOutParam.getOrderNo()); |
| | | |
| | | if (hostId != null) { |
| | | wrapper.eq("host_id", hostId); |
| | | } |
| | | Wave wave = waveService.selectOne(wrapper); |
| | | |
| | | if (wave.getStatus() != 0){ |
| | | return R.error("此单据无法生成拣货单"); |
| | | } |
| | | // Order order = orderService.selectByOrderNo(param.getOrderNo(), hostId); |
| | | // if (order.getSettle() != 1) { |
| | | // return R.error("此单据无法生成拣货单"); |
| | | // } |
| | | List<WaveDetl> waveDetls = waveDetlService.selectList(new EntityWrapper<WaveDetl>() |
| | | .eq("wave_id", stockOutParam.getOrderNo())); |
| | | if (Cools.isEmpty(waveDetls)) { |
| | | return R.error("此单据已失效,请联系管理员"); |
| | | } |
| | | // List<OrderDetl> orderDetls = orderDetlService.selectByOrderNo(order.getOrderNo(), hostId); |
| | | // if (Cools.isEmpty(orderDetls)) { |
| | | // return R.error("此单据已失效,请联系管理员"); |
| | | // } |
| | | |
| | | WaveStoDto waveStoDto = new WaveStoDto().create(stockOutParam.getOrderNo(),waveDetls); |
| | | // OrderStoDto dto = new OrderStoDto().create(order.getOrderNo(), orderDetls); |
| | | return R.ok().add(mainService.waveOutPreview(waveStoDto, hostId)); |
| | | } |
| | | |
| | | } |