| | |
| | |
|
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
| | | import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
|
| | | import com.zy.asrs.framework.common.R;
|
| | | import com.zy.asrs.framework.exception.CoolException;
|
| | | import com.zy.asrs.wms.asrs.entity.*;
|
| | | import com.zy.asrs.wms.asrs.entity.dto.PickSheetDetlDto;
|
| | | import com.zy.asrs.wms.asrs.entity.dto.ShippingOrderDetlDto;
|
| | | import com.zy.asrs.wms.asrs.entity.enums.*;
|
| | | import com.zy.asrs.wms.asrs.entity.enums.OrderType;
|
| | | import com.zy.asrs.wms.asrs.entity.param.BatchMergeOrdersParam;
|
| | | import com.zy.asrs.wms.asrs.entity.param.GeneratePakInParam;
|
| | | import com.zy.asrs.wms.asrs.entity.param.PakinOnShelvesParams;
|
| | | import com.zy.asrs.wms.asrs.mapper.CacheSiteMapper;
|
| | | import com.zy.asrs.wms.asrs.mapper.SeedSitesMapper;
|
| | | import com.zy.asrs.wms.asrs.mapper.*;
|
| | | import com.zy.asrs.wms.asrs.service.*;
|
| | | import com.zy.asrs.wms.system.entity.Host;
|
| | | import com.zy.asrs.wms.system.service.HostService;
|
| | |
| | |
|
| | | @Autowired
|
| | | private SeedSitesMapper seedSitesMapper;
|
| | | @Autowired
|
| | | private OrderDetlMapper orderDetlMapper;
|
| | | @Autowired
|
| | | private WaveSeedMapper waveSeedMapper;
|
| | | @Autowired
|
| | | private WaveSeedLogService waveSeedLogService;
|
| | | @Autowired
|
| | | private OrderDetlLogService orderDetlLogService;
|
| | |
|
| | |
|
| | | @Override
|
| | | @Transactional(rollbackFor = Exception.class)
|
| | |
| | | if (workService.generatePakIn(generatePakInParam)) {
|
| | | return true;
|
| | | }
|
| | | } else {
|
| | | //fixme 平库是否需要预约入库
|
| | | }
|
| | | return false;
|
| | | }
|
| | |
| | | throw new CoolException("库位没有分配所属仓库区域!!");
|
| | | }
|
| | | locAreas.forEach(locArea -> {
|
| | | LocAreaType typeServiceOne = locAreaTypeService.getOne(new LambdaQueryWrapper<LocAreaType>().eq(LocAreaType::getId, locArea.getTypeId()), false);
|
| | | LocAreaType typeServiceOne = locAreaTypeService.getOne(new LambdaQueryWrapper<LocAreaType>().eq(LocAreaType::getId, locArea.getTypeId()));
|
| | | if (typeServiceOne.getParentId() != LocAreaTypeSts.LOC_AREA_TYPE_FLAT.id && typeServiceOne.getId() != LocAreaTypeSts.LOC_AREA_TYPE_FLAT.id) {
|
| | | throw new CoolException("请选择平库区库位,再操作!!");
|
| | | }
|
| | |
| | | }
|
| | |
|
| | | List<WaitPakin> waitPakins = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, shelvesParams.getBarcode()));
|
| | | if (waitPakins.isEmpty()) {
|
| | | throw new CoolException("当前拖盘没有组拖档!!");
|
| | | }
|
| | |
|
| | | waitPakins.forEach(pakin -> {
|
| | | LocDetl locDetl = new LocDetl();
|
| | | locDetl.setAnfme(pakin.getAnfme());
|
| | |
| | | waitPakins.forEach(waitPakin -> {
|
| | | WaitPakinLog pakinLog = new WaitPakinLog();
|
| | | BeanUtils.copyProperties(waitPakin, pakinLog);
|
| | | pakinLog.setIoStatus(1);
|
| | | if (!waitPakinLogService.saveOrUpdate(pakinLog)) {
|
| | | throw new CoolException("组拖历史档更新失败");
|
| | | }
|
| | |
| | | if (!waitPakinService.removeBatchByIds(waitPakins)) {
|
| | | throw new CoolException("组拖档删除失败!!");
|
| | | }
|
| | |
|
| | | //通过组拖订单ID获取订单,并删除原单据,加入单据历史档
|
| | | List<Long> list = waitPakins.stream().map(WaitPakin::getOrderId).collect(Collectors.toList());
|
| | | Set<Long> list = waitPakins.stream().map(WaitPakin::getOrderId).collect(Collectors.toSet());
|
| | | List<Order> orders = orderService.list(new LambdaQueryWrapper<Order>().in(Order::getId, list));
|
| | | //订单入历史档
|
| | | orders.forEach(order -> {
|
| | | if (order.getOrderType() != OrderType.PK_IN_ORDER.id) {
|
| | | throw new CoolException("当前订单类型:" + order.getOrderType() + ",不可做平库上架操作!!");
|
| | | }
|
| | | //修改订单状态为已完成
|
| | | order.setOrderSettle(OrderSettleType.COMPLETE.val());
|
| | |
|
| | | OrderLog orderLog = new OrderLog();
|
| | | BeanUtils.copyProperties(order, orderLog);
|
| | | if (!orderLogService.save(orderLog)) {
|
| | |
| | | }
|
| | | });
|
| | |
|
| | | //删除订单数据
|
| | | if (!orderService.removeBatchByIds(orders)) {
|
| | | throw new CoolException("订单删除失败!!");
|
| | | }
|
| | |
|
| | | List<OrderDetl> detls = orderDetlMapper.selectList(new LambdaQueryWrapper<OrderDetl>().in(OrderDetl::getOrderId, list));
|
| | | List<OrderDetlLog> detlLogs = new ArrayList<>();
|
| | | detls.forEach(delt ->{
|
| | | OrderDetlLog detlLog = new OrderDetlLog();
|
| | | BeanUtils.copyProperties(delt, detlLog);
|
| | | detlLogs.add(detlLog);
|
| | | });
|
| | |
|
| | | //订单明细转历史档
|
| | | if (!orderDetlLogService.saveBatch(detlLogs)) {
|
| | | throw new CoolException("订单明细转历史失败!!");
|
| | | }
|
| | |
|
| | | //删除订单明细数据
|
| | | if (!orderDetlService.remove(new LambdaQueryWrapper<OrderDetl>().in(OrderDetl::getOrderId, list))) {
|
| | | throw new CoolException("订单明细删除失败!!");
|
| | | }
|
| | |
|
| | | return true;
|
| | |
| | | if (!remove) {
|
| | | throw new CoolException("原始订单明细删除失败!!");
|
| | | }
|
| | | if (orderService.remove(new LambdaQueryWrapper<Order>().in(Order::getId, list))) {
|
| | | if (!orderService.remove(new LambdaQueryWrapper<Order>().in(Order::getId, list))) {
|
| | | throw new CoolException("原始订单删除失败!!");
|
| | | }
|
| | |
|
| | |
| | | return true;
|
| | | }
|
| | |
|
| | | @Override
|
| | | public R selectShippingDetl(Map<String, Object> params) {
|
| | | //判断订单是否为空
|
| | | if (StringUtil.isNullOrEmpty((String) params.get("orderNo"))) {
|
| | | throw new CoolException("订单编码号不能为空!!");
|
| | | }
|
| | | String orderId = params.get("orderNo").toString();
|
| | | List<ShippingOrderDetlDto> waveSeeds = waveSeedMapper.selectShippingOrderDtel(orderId);
|
| | |
|
| | | return R.ok(waveSeeds);
|
| | | }
|
| | |
|
| | | /**
|
| | | * 发货单明细确认
|
| | | * 1. 出库修改订单完成状态,判断订单是否完成,完成加入历史档,未完成修改订单已完成数量
|
| | | * 2. 删除订单已完成播种明细信息
|
| | | * 3. 清除集货区绑定数据
|
| | | * @param params
|
| | | * @return
|
| | | */
|
| | | @Override
|
| | | @Transactional(rollbackFor = Exception.class)
|
| | | public R confirmShippingDetl(List<ShippingOrderDetlDto> params) {
|
| | | if (params.isEmpty()) {
|
| | | throw new CoolException("发货单据明细为空,不可执行发货操作!!");
|
| | | }
|
| | | params.forEach(order -> {
|
| | | //删除出库订单及明细,加入订单历史档
|
| | | if (order.getAnfme() == order.getWorkQty()) { //完全拣货
|
| | | OrderDetl byId = orderDetlService.getById(order.getId());
|
| | | OrderDetlLog orderDetlLog = new OrderDetlLog();
|
| | | BeanUtils.copyProperties(orderDetlLog, byId);
|
| | | orderDetlLog.setQty(order.getWorkQty());
|
| | | orderDetlLog.setWorkQty(0.0);
|
| | | if (!orderDetlLogService.save(orderDetlLog)) {
|
| | | throw new CoolException("订单明细转历史档失败!!");
|
| | | }
|
| | |
|
| | | if (!orderDetlService.removeById(byId)) {
|
| | | throw new CoolException("订单明细不存在!!");
|
| | | }
|
| | |
|
| | | //查询当前订单下否还有明细存在
|
| | | List<OrderDetl> orders = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>().eq(OrderDetl::getOrderNo, order.getOrderNo()));
|
| | |
|
| | | if (orders.isEmpty()) {
|
| | | Order one = orderService.getOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderNo, order.getOrderNo()));
|
| | | if (Objects.isNull(one)) {
|
| | | throw new CoolException("订单不存在!!");
|
| | | }
|
| | | OrderLog orderLog = new OrderLog();
|
| | |
|
| | | BeanUtils.copyProperties(one, orderLog);
|
| | |
|
| | | if (!orderLogService.save(orderLog)) {
|
| | | throw new CoolException("原始订单转历史档失败!!");
|
| | | }
|
| | |
|
| | | if (!orderService.remove(new LambdaQueryWrapper<Order>().eq(Order::getOrderNo, order.getOrderNo()))) {
|
| | | throw new CoolException("原始订单删除失败!!");
|
| | | }
|
| | | }
|
| | | } else {
|
| | | //todo 删除已完成明细,保留原始主单及未完成明细
|
| | | }
|
| | |
|
| | | List<WaveSeed> waveSeeds = waveSeedMapper.selectList(new LambdaQueryWrapper<WaveSeed>().eq(WaveSeed::getOrderDetlId, order.getId()));
|
| | | //fixme 订单明细未播种,默认可发货
|
| | | if (!waveSeeds.isEmpty()) {
|
| | | ArrayList<WaveSeedLog> waveSeedLogs = new ArrayList<>();
|
| | | waveSeeds.forEach(seed -> {
|
| | | WaveSeedLog waveSeedLog = new WaveSeedLog();
|
| | | BeanUtils.copyProperties(waveSeedLog, seed);
|
| | | waveSeedLog.setId(null);
|
| | | waveSeedLogs.add(waveSeedLog);
|
| | | });
|
| | | if (waveSeedLogService.saveBatch(waveSeedLogs)) {
|
| | | throw new CoolException("波明历史档保存失败!!");
|
| | | }
|
| | | }
|
| | | //删除播种明细信息
|
| | | if (waveSeedMapper.deleteByIds(waveSeeds) < 1) {
|
| | | throw new CoolException("播种明细删除携程!!");
|
| | | }
|
| | | });
|
| | |
|
| | |
|
| | | return null;
|
| | | }
|
| | |
|
| | | }
|