| | |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @Service("transferService") |
| | | public class TransferServiceImpl extends ServiceImpl<TransferMapper, Transfer> implements TransferService { |
| | |
| | | private OutStockItemService outStockItemService; |
| | | @Autowired |
| | | private TransferOrderService transferOrderService; |
| | | @Autowired |
| | | private TransferService transferService; |
| | | |
| | | /** |
| | | * @author Ryan |
| | |
| | | } catch (Exception e) { |
| | | throw new CoolException(e.getMessage()); |
| | | } |
| | | |
| | | /***保存成功,自动生成出库单*/ |
| | | genOutStock(transfer, loginUserId); |
| | | |
| | | return R.ok(); |
| | | } |
| | | |
| | |
| | | throw new CoolException("数据错误:调拔单明细不存在!!"); |
| | | } |
| | | WkOrder wkOrder = new WkOrder(); |
| | | String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_TRANSFER_ORDER_CODE, transfer); |
| | | String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_OUT_STOCK_CODE, transfer); |
| | | if (StringUtils.isBlank(ruleCode)) { |
| | | throw new CoolException("调拔单号生成失败!!"); |
| | | throw new CoolException("出库单生成失败!!"); |
| | | } |
| | | |
| | | Double anfmes = items.stream().mapToDouble(TransferItem::getAnfme).sum(); |
| | | wkOrder.setCode(ruleCode) |
| | | .setAnfme(anfmes) |
| | | .setExceStatus(AsnExceStatus.ASN_EXCE_STATUS_UN_EXCE.val) |
| | | .setType(OrderType.ORDER_TRANSFER.type) |
| | | .setExceStatus(AsnExceStatus.OUT_STOCK_STATUS_TASK_INIT.val) |
| | | .setType(OrderType.ORDER_OUT.type) |
| | | .setWkType(OrderWorkType.ORDER_WORK_TYPE_STOCK_TERANSFER.type) |
| | | .setCreateBy(loginUserId) |
| | | .setUpdateBy(loginUserId) |
| | |
| | | throw new CoolException("出库单明细保存失败!!"); |
| | | } |
| | | |
| | | transfer.setExceStatus(WaveExceStatus.WAVE_EXCE_STATUS_EXCING.val); |
| | | transfer.setExceStatus(CheckExceStatus.CHECK_ORDER_STATUS_INIT.val); |
| | | |
| | | if (!this.updateById(transfer)) { |
| | | throw new CoolException("调拔单更新失败!!"); |
| | | } |
| | | |
| | | TransferOrder transferOrder = new TransferOrder(); |
| | | transferOrder.setTransferId(transfer.getId()).setOrderId(wkOrder.getId()).setExceStatus(1); |
| | | transferOrder.setTransferId(transfer.getId()).setOrderId(wkOrder.getId()).setExceStatus((int)CheckExceStatus.CHECK_ORDER_STATUS_INIT.val); |
| | | |
| | | if (!transferOrderService.save(transferOrder)) { |
| | | throw new CoolException("单据关联失败!!"); |
| | |
| | | |
| | | return transfer; |
| | | } |
| | | |
| | | /** |
| | | * @author Ryan |
| | | * @date 2025/7/29 |
| | | * @description: 删除调拔单 |
| | | * @version 1.0 |
| | | */ |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public boolean removeTransfer(List<Long> list) { |
| | | List<WkOrder> wkOrders = outStockService.list(new LambdaQueryWrapper<WkOrder>().in(WkOrder::getPoId, list)); |
| | | if (!wkOrders.isEmpty()) { |
| | | Set<Long> longs = wkOrders.stream().map(WkOrder::getId).collect(Collectors.toSet()); |
| | | if (!outStockService.remove(new LambdaQueryWrapper<WkOrder>() |
| | | .in(WkOrder::getId, longs) |
| | | .eq(WkOrder::getExceStatus, AsnExceStatus.OUT_STOCK_STATUS_TASK_INIT.val))) { |
| | | throw new CoolException("当前出库单已执行,不支持删除!!"); |
| | | } |
| | | outStockItemService.remove(new LambdaQueryWrapper<WkOrderItem>().in(WkOrderItem::getOrderId, longs)); |
| | | transferOrderService.remove(new LambdaQueryWrapper<TransferOrder>().in(TransferOrder::getTransferId, list)); |
| | | } |
| | | |
| | | transferService.removeByIds(list); |
| | | transferItemService.remove(new LambdaQueryWrapper<TransferItem>().in(TransferItem::getTransferId, list)); |
| | | return true; |
| | | } |
| | | } |