| | |
| | | package zy.cloud.wms.manager.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.baomidou.mybatisplus.mapper.Wrapper; |
| | | import com.core.common.BaseRes; |
| | | import com.core.common.Cools; |
| | | import com.core.common.R; |
| | |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | 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.service.MainService; |
| | | import zy.cloud.wms.common.utils.VersionUtils; |
| | | import zy.cloud.wms.manager.entity.*; |
| | |
| | | private CstmrService cstmrService; |
| | | @Autowired |
| | | private PakinService pakinService; |
| | | @Autowired |
| | | private ReceiveService receiveService; |
| | | @Autowired |
| | | private ReceiveDetlService receiveDetlService; |
| | | |
| | | |
| | | |
| | | @Override |
| | | @Transactional |
| | |
| | | |
| | | @Override |
| | | public R stockOutPreview(StockOutParam param, Long userId, Long hostId) { |
| | | Order order = orderService.selectByOrderNo(param.getOrderNo(), hostId); |
| | | if (order.getSettle() != 1) { |
| | | Wrapper<Receive> wrapper = new EntityWrapper<Receive>() |
| | | .eq("order_no", param.getOrderNo()); |
| | | if (hostId != null) { |
| | | wrapper.eq("host_id", hostId); |
| | | } |
| | | Receive order_no = receiveService.selectOne(wrapper); |
| | | |
| | | if (order_no.getSettle() != 1){ |
| | | return R.error("此单据无法生成拣货单"); |
| | | } |
| | | List<OrderDetl> orderDetls = orderDetlService.selectByOrderNo(order.getOrderNo(), hostId); |
| | | if (Cools.isEmpty(orderDetls)) { |
| | | // Order order = orderService.selectByOrderNo(param.getOrderNo(), hostId); |
| | | // if (order.getSettle() != 1) { |
| | | // return R.error("此单据无法生成拣货单"); |
| | | // } |
| | | List<ReceiveDetl> receiveDetls = receiveDetlService.selectByOrderNo(order_no.getOrderNo(), hostId); |
| | | if (Cools.isEmpty(receiveDetls)) { |
| | | return R.error("此单据已失效,请联系管理员"); |
| | | } |
| | | OrderStoDto dto = new OrderStoDto().create(order.getOrderNo(), orderDetls); |
| | | return R.ok().add(mainService.stockOutPreview(dto, hostId)); |
| | | // List<OrderDetl> orderDetls = orderDetlService.selectByOrderNo(order.getOrderNo(), hostId); |
| | | // if (Cools.isEmpty(orderDetls)) { |
| | | // return R.error("此单据已失效,请联系管理员"); |
| | | // } |
| | | |
| | | ReceiveStoDto receiveStoDto = new ReceiveStoDto().create(order_no.getOrderNo(), receiveDetls); |
| | | // OrderStoDto dto = new OrderStoDto().create(order.getOrderNo(), orderDetls); |
| | | return R.ok().add(mainService.receiveStockOutPreview(receiveStoDto, hostId)); |
| | | } |
| | | |
| | | @Override |
| | | public R stockOutCreate(StockOutParam param, Long userId, Long hostId) { |
| | | Order order = orderService.selectByOrderNo(param.getOrderNo(), hostId); |
| | | if (order.getSettle() != 1) { |
| | | Receive receive = receiveService.selectByOrderNo(param.getOrderNo(), hostId); |
| | | // Order order = orderService.selectByOrderNo(param.getOrderNo(), hostId); |
| | | if (receive.getSettle() != 1) { |
| | | return R.error("此单据无法生成拣货单"); |
| | | } |
| | | List<OrderDetl> orderDetls = orderDetlService.selectByOrderNo(param.getOrderNo(), hostId); |
| | | if (Cools.isEmpty(orderDetls)) { |
| | | List<ReceiveDetl> receiveDetls = receiveDetlService.selectByOrderNo(param.getOrderNo(), hostId); |
| | | // List<OrderDetl> orderDetls = orderDetlService.selectByOrderNo(param.getOrderNo(), hostId); |
| | | if (Cools.isEmpty(receiveDetls)) { |
| | | return R.error("此单据已失效,请联系管理员"); |
| | | } |
| | | OrderStoDto dto = new OrderStoDto().create(order.getOrderNo(), orderDetls); |
| | | ReceiveStoDto receiveStoDto = new ReceiveStoDto().create(receive.getOrderNo(), receiveDetls); |
| | | // OrderStoDto dto = new OrderStoDto().create(receive.getOrderNo(), receiveDetls); |
| | | // 开始整理出库数据 |
| | | mainService.stockOutProcess(dto, hostId); |
| | | mainService.receiveStockOutProcess(receiveStoDto,hostId); |
| | | 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 |
| | |
| | | pakout.setUpdateTime(now); |
| | | pakout.setUpdateBy(userId); |
| | | pakout.setStatus(1); |
| | | |
| | | if (!pakoutService.insert(pakout)) { |
| | | throw new CoolException("生成拣货单失败"); |
| | | } |
| | |
| | | @Override |
| | | @Transactional |
| | | public R initOrder(InitOrderParam param, Long userId, Long hostId) { |
| | | Order order = orderService.selectByOrderNo(param.getOrderNo(), hostId); |
| | | if (order != null) { |
| | | 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("抱歉单号已存在,请修改单号"); |
| | | } |
| | | Date now = new Date(); |
| | | Item item = itemService.selectByName(param.getItem()); |
| | | Cstmr cstmr = cstmrService.selectByName(param.getCstmr()); |
| | | // 新增订单表头 |
| | | order = new Order( |
| | | order_no = new Receive( |
| | | hostId, |
| | | String.valueOf(snowflakeIdWorker.nextId()), // 编号[非空] |
| | | param.getOrderNo(), // 订单编号 |
| | |
| | | now, // 修改时间 |
| | | null // 备注 |
| | | ); |
| | | if (!orderService.insert(order)) { |
| | | // if (!orderService.insert(order)) { |
| | | // throw new CoolException("保存订单表头失败!"); |
| | | // } |
| | | 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; |
| | | // } |
| | | // 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()); |
| | |
| | | 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)) { |
| | | 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(Double.valueOf(mat.getCount())); |
| | | receiveDetl.setUnitPrice(mat.getPrice()); |
| | | receiveDetl.setWeight(mat.getWeight()); |
| | | if (!receiveDetlService.insert(receiveDetl)) { |
| | | throw new CoolException("保存订单明细失败"); |
| | | } |
| | | } |