| | |
| | | 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 ReceiveService receiveService; |
| | | @Autowired |
| | | private ReceiveDetlService receiveDetlService; |
| | | @Autowired |
| | | ReceiveLogService receiveLogService; |
| | | @Autowired |
| | | private WaveService waveService; |
| | | @Autowired |
| | | private WaveDetlService waveDetlService; |
| | | |
| | | |
| | | @Override |
| | |
| | | if (!pakinService.insert(pakin)) { |
| | | throw new CoolException("保存入库记录失败"); |
| | | } |
| | | |
| | | /** |
| | | * 上架完成之后,存放数据至上架统计表 man_receive_log |
| | | */ |
| | | ReceiveLog receiveLog = new ReceiveLog(); |
| | | receiveLog.setOrderNo("");//单号 |
| | | receiveLog.setNodeId(node.getId());//库位号id |
| | | receiveLog.setNodeName(node.getName());//库位名称 |
| | | receiveLog.setMatnr(dto.getMatnr());//物料编码 |
| | | receiveLog.setAnfme(dto.getCount());//数量 |
| | | receiveLog.setBatch(dto.getBatch());//批号 |
| | | receiveLog.setCreateBy(userId);//添加人员 |
| | | receiveLog.setUpdateBy(userId);//修改人员 |
| | | receiveLog.setCreateTime(now); |
| | | receiveLog.setUpdateTime(now); |
| | | receiveLog.setIoType(1); |
| | | receiveLogService.insert(receiveLog); |
| | | // 修改库存 |
| | | LocDetl locDetl = locDetlService.getLocDetl(node.getId(), dto.getMatnr()); |
| | | if (locDetl == null) { |
| | |
| | | locDetl.setZpallet(""); |
| | | locDetl.setAnfme(dto.getCount()); |
| | | VersionUtils.setLocDetl(locDetl, mat); |
| | | locDetl.setBatch(dto.getBatch()); |
| | | // locDetl.setDocId(param.getDocType().longValue()); |
| | | // locDetl.setDocNum(docNum); |
| | | locDetl.setStatus(1); |
| | |
| | | |
| | | @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("生成拣货单成功"); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public R stockOutPrint(StockOutParam param, Long userId, Long hostId) { |
| | | |
| | | Order order = orderService.selectByOrderNo(param.getOrderNo(), hostId); |
| | | if (order == null) { |
| | | return R.error("此单据已失效"); |
| | |
| | | vo.setCstmrName(order.getCstmrName()); |
| | | vo.setWorkerName(Cools.isEmpty(order.getOperMemb())? "" : order.getOperMemb()); |
| | | return R.ok().add(vo); |
| | | } |
| | | |
| | | @Override |
| | | public R stockInPrint(StockOutParam param, Long userId, Long hostId) { |
| | | Receive receive = receiveService.selectByOrderNo(param.getOrderNo(), hostId); |
| | | if (receive == null) { |
| | | return R.error("此单据已失效"); |
| | | } |
| | | List<Pakout> pakouts = pakoutService.selectList(new EntityWrapper<Pakout>().eq("doc_num", receive.getOrderNo()).eq("host_id", hostId)); |
| | | Double total = 0.0D; |
| | | for (Pakout pakout : pakouts) { |
| | | total = pakout.getAnfme() + total; |
| | | } |
| | | StoPrintVo vo = new StoPrintVo(); |
| | | vo.setDocNum(param.getOrderNo()); |
| | | vo.setList(pakouts); |
| | | vo.setTotal(total); |
| | | vo.setCstmrName(receive.getCstmrName()); |
| | | vo.setWorkerName(Cools.isEmpty(receive.getOperMemb())? "" : receive.getOperMemb()); |
| | | return R.ok().add(vo); |
| | | |
| | | } |
| | | |
| | | @Override |
| | |
| | | } |
| | | return R.ok("拣货单已取消"); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public R initOrder(InitOrderParam param, Long userId, Long hostId) { |
| | | public R initReceive(InitOrderParam param, Long userId, Long hostId){ |
| | | Receive order_no = receiveService.selectOne(new EntityWrapper<Receive>() |
| | | .eq("order_no", param.getOrderNo())); |
| | | // Order order = orderService.selectByOrderNo(param.getOrderNo(), hostId); |
| | | if (order_no != null) { |
| | | return R.error("抱歉单号已存在,请修改单号"); |
| | | } |
| | |
| | | now, // 修改时间 |
| | | null // 备注 |
| | | ); |
| | | if (!receiveService.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; |
| | | } |
| | | ReceiveDetl receiveDetl = new ReceiveDetl(); |
| | | receiveDetl.setHostId(hostId); |
| | | receiveDetl.setOrderId(order_no.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(dto.getCount()); |
| | | receiveDetl.setUnitPrice(mat.getPrice()); |
| | | receiveDetl.setWeight(mat.getWeight()); |
| | | if (!receiveDetlService.insert(receiveDetl)) { |
| | | throw new CoolException("保存订单明细失败"); |
| | | } |
| | | } |
| | | return R.ok("创建订单成功"); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public R initOrder(InitOrderParam param, Long userId, Long hostId) { |
| | | // Receive order_no = receiveService.selectOne(new EntityWrapper<Receive>() |
| | | // .eq("order_no", param.getOrderNo())); |
| | | Order order = orderService.selectByOrderNo(param.getOrderNo(), hostId); |
| | | if (order != null) { |
| | | return R.error("抱歉单号已存在,请修改单号"); |
| | | } |
| | | Date now = new Date(); |
| | | Item item = itemService.selectByName(param.getItem()); |
| | | Cstmr cstmr = cstmrService.selectByName(param.getCstmr()); |
| | | // 新增订单表头 |
| | | Order order1 = new Order(); |
| | | order1.setUuid(String.valueOf(snowflakeIdWorker.nextId())); |
| | | order1.setHostId(hostId); |
| | | order1.setOrderNo(param.getOrderNo()); |
| | | order1.setOrderTime(param.getOrderTime()); |
| | | order1.setDocType(param.getDocType()); |
| | | order1.setItemId(item == null? null : item.getId()); |
| | | order1.setItemName(param.getItem()); |
| | | order1.setCstmr(cstmr == null? null : cstmr.getId()); |
| | | order1.setCstmrName(param.getCstmr()); |
| | | order1.setSettle(1L); |
| | | order1.setStatus(1); |
| | | order1.setCreateBy(userId); |
| | | order1.setCreateTime(now); |
| | | order1.setUpdateBy(userId); |
| | | order1.setUpdateTime(now); |
| | | // order_no = new Receive( |
| | | // hostId, |
| | | // String.valueOf(snowflakeIdWorker.nextId()), // 编号[非空] |
| | | // param.getOrderNo(), // 订单编号 |
| | | // param.getOrderTime(), // 单据日期 |
| | | // param.getDocType(), // 单据类型 |
| | | // item==null?null:item.getId(), // 项目编号 |
| | | // param.getItem(), // 项目名称 |
| | | // null, // 调拨项目编号 |
| | | // null, // 初始票据号 |
| | | // null, // 票据号 |
| | | // cstmr==null?null:cstmr.getId(), // 客户编号 |
| | | // param.getCstmr(), // 客户 |
| | | // 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("保存订单表头失败!"); |
| | | // } |
| | | if (!receiveService.insert(order_no)) { |
| | | if (!orderService.insert(order1)) { |
| | | throw new CoolException("保存订单表头失败!"); |
| | | } |
| | | |
| | |
| | | log.error("{}商品不存在。", dto.getMatnr()); |
| | | continue; |
| | | } |
| | | ReceiveDetl receiveDetl = new ReceiveDetl(); |
| | | receiveDetl.setHostId(hostId); |
| | | receiveDetl.setOrderId(order_no.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(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.setOrderNo(order1.getOrderNo()); |
| | | 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)); |
| | | } |
| | | |
| | | } |