| | |
| | | ioType = dto.isAll() ? 101 : 103; |
| | | } else if (ioWorkType.equals(IoWorkType.CHECK_OUT)) { |
| | | ioType = 107; |
| | | if (wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("io_type", 107)) > 0) { |
| | | throw new CoolException("只能存在一笔盘点任务"); |
| | | } |
| | | } |
| | | assert ioType != null; |
| | | // 获取库位 |
| | |
| | | } |
| | | // 修改订单明细 |
| | | if (BaseController.isJSON(locDto.getOrderNo())) { |
| | | OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch()); |
| | | if (orderDetl == null) { |
| | | orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null); |
| | | String[] orderNos = GetOrderNo(locDto.getOrderNo()); |
| | | Double anfme = locDto.getAnfme(); |
| | | for (String orderNo:orderNos){ |
| | | OrderDetl orderDetl = orderDetlService.selectItem(orderNo, locDto.getMatnr(), locDto.getBatch()); |
| | | if (orderDetl == null) { |
| | | orderDetl = orderDetlService.selectItem(orderNo, locDto.getMatnr(), null); |
| | | } |
| | | if (orderDetl.getAnfme()<=anfme){ |
| | | if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(),orderDetl.getAnfme())) { |
| | | throw new CoolException("修改订单明细数量失败"); |
| | | } |
| | | anfme=anfme-orderDetl.getAnfme(); |
| | | }else{ |
| | | if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(),anfme)) { |
| | | throw new CoolException("修改订单明细数量失败"); |
| | | } |
| | | } |
| | | orderService.updateSettle(orderDetl.getOrderId(), 2L, userId); |
| | | } |
| | | if (!orderDetlService.increase(orderDetl.getOrderId(), orderDetl.getMatnr(), orderDetl.getBatch(), locDto.getAnfme())) { |
| | | throw new CoolException("修改订单明细数量失败"); |
| | | } |
| | | orderService.updateSettle(orderDetl.getOrderId(), 2L, userId); |
| | | } else { |
| | | // 订单合并出库 |
| | | List<OrderDto> orderDtoList = JSON.parseArray(locDto.getOrderNo(), OrderDto.class); |
| | |
| | | } else { |
| | | throw new CoolException(taskDto.getLocNo() + "库位不是在库状态"); |
| | | } |
| | | } |
| | | |
| | | private String[] GetOrderNo(String orderNo){ |
| | | String[] s3= orderNo.split("\""); |
| | | String[] s =new String[(s3.length-1)/6]; |
| | | int i=0; |
| | | int j=0; |
| | | for (String ss:s3){ |
| | | if (ss.equals("orderNo")){ |
| | | s[i]=s3[j+2]; |
| | | i++; |
| | | } |
| | | j++; |
| | | } |
| | | return s; |
| | | } |
| | | private String[] GetAnfme(String orderNo){ |
| | | String[] s3= orderNo.split("\""); |
| | | String[] s =new String[(s3.length-1)/6]; |
| | | int i=0; |
| | | int j=0; |
| | | for (String ss:s3){ |
| | | if (ss.equals("anfme")){ |
| | | String[] s4 = s3[j + 1].split(":"); |
| | | String[] s5 = s4[1].split("\\."); |
| | | s[i]=s5[0]; |
| | | i++; |
| | | } |
| | | j++; |
| | | } |
| | | return s; |
| | | } |
| | | |
| | | @Override |
| | |
| | | @Override |
| | | @Transactional |
| | | public void locCheckOut(StockOutParam param, Long userId) { |
| | | if (wrkMastService.selectCount(new EntityWrapper<WrkMast>().eq("io_type", 107)) > 0) { |
| | | throw new CoolException("只能存在一笔盘点任务"); |
| | | } |
| | | // 目标站点状态检测 |
| | | BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite()); |
| | | // 获取库位明细 |
| | |
| | | // 订单关联 |
| | | List<WrkDetl> wrkDetls = wrkDetlService.selectByWrkNo(wrkMast.getWrkNo()); |
| | | for (WrkDetl wrkDetl : wrkDetls) { |
| | | if (!Cools.isEmpty(wrkDetl.getOrderNo())) { |
| | | if (BaseController.isJSON(wrkDetl.getOrderNo())) { |
| | | if (!orderDetlService.decrease(wrkDetl.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), wrkDetl.getAnfme())) { |
| | | throw new CoolException("订单数据回滚失败"); |
| | | } |
| | | } else { |
| | | // 订单合并出库 |
| | | List<OrderDto> orderDtoList = JSON.parseArray(wrkDetl.getOrderNo(), OrderDto.class); |
| | | for (OrderDto orderDto : orderDtoList) { |
| | | if (!orderDetlService.decrease(orderDto.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), orderDto.getAnfme())) { |
| | | String[] orderNos = GetOrderNo(wrkDetl.getOrderNo()); |
| | | String[] anfmes = GetAnfme(wrkDetl.getOrderNo()); |
| | | int i=0; |
| | | for (String orderNo:orderNos){ |
| | | if (!Cools.isEmpty(orderNo)) { |
| | | Double anfme=Integer.parseInt(anfmes[i])+0.0; |
| | | i++; |
| | | if (BaseController.isJSON(wrkDetl.getOrderNo())) { |
| | | if (!orderDetlService.decrease(orderNo, wrkDetl.getMatnr(), wrkDetl.getBatch(), anfme)) { |
| | | throw new CoolException("订单数据回滚失败"); |
| | | } |
| | | } else { |
| | | // 订单合并出库 |
| | | List<OrderDto> orderDtoList = JSON.parseArray(wrkDetl.getOrderNo(), OrderDto.class); |
| | | for (OrderDto orderDto : orderDtoList) { |
| | | if (!orderDetlService.decrease(orderDto.getOrderNo(), wrkDetl.getMatnr(), wrkDetl.getBatch(), orderDto.getAnfme())) { |
| | | throw new CoolException("订单数据回滚失败"); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |