package com.vincent.rsf.server.manager.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.vincent.rsf.framework.common.R; import com.vincent.rsf.framework.exception.CoolException; import com.vincent.rsf.server.manager.controller.params.TransferItemParams; import com.vincent.rsf.server.manager.entity.WkOrder; import com.vincent.rsf.server.manager.entity.WkOrderItem; import com.vincent.rsf.server.manager.enums.AsnExceStatus; import com.vincent.rsf.server.manager.enums.CheckExceStatus; import com.vincent.rsf.server.manager.enums.OrderSourceType; import com.vincent.rsf.server.manager.enums.OrderType; import com.vincent.rsf.server.manager.mapper.TransferMapper; import com.vincent.rsf.server.manager.entity.Transfer; import com.vincent.rsf.server.manager.service.TransferService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.vincent.rsf.server.system.constant.SerialRuleCode; import com.vincent.rsf.server.system.utils.SerialRuleUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Objects; @Service("transferService") public class TransferServiceImpl extends ServiceImpl implements TransferService { /** * @author Ryan * @date 2025/7/25 * @description: 保存调拔单及明细 * @version 1.0 */ @Override @Transactional(rollbackFor = Exception.class) public R saveTransfer(TransferItemParams params, Long loginUserId) { if (Objects.isNull(params.getTransfer())) { throw new CoolException("主单信息不能为空"); } Transfer transfer = params.getTransfer(); if (StringUtils.isBlank(transfer.getType() + "")) { throw new CoolException("业务类型不能为空!!"); } String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_TRANSFER_ORDER_CODE, transfer); if (StringUtils.isBlank(ruleCode)) { throw new CoolException("编码规则错误:请检查「SYS_TRANSFER_ORDER_CODE」是否设置正确!!"); } transfer.setCode(ruleCode) .setExceStatus(CheckExceStatus.CHECK_ORDER_STATUS_UN_EXCE.val) .setSource(OrderSourceType.ORDER_SOURCE_TYPE_SYSTEM.val) .setUpdateBy(loginUserId) .setCreateBy(loginUserId); if (!this.save(transfer)) { throw new CoolException("主单保存失败!!"); } if (params.getItems().isEmpty()) { throw new CoolException("收货通知单明细不能为空!!"); } params.setTransfer(transfer); try { svaeOrUpdateOrderItem(params, loginUserId); } catch (Exception e) { throw new CoolException(e.getMessage()); } return R.ok(); } private void svaeOrUpdateOrderItem(TransferItemParams params, Long loginUserId) { // Transfer orders = params.getTransfer(); // params.getItems().forEach(item -> { // item.put("orderId", orders.getId()); // item.put("orderCode", orders.getCode()); // item.put("poCode", orders.getPoCode()); // item.put("createBy", loginUserId); // item.put("updateBy", loginUserId); // if (!asnOrderItemService.fieldsSave(item, loginUserId)) { // throw new CoolException("明细保存失败!!"); // } // }); // List orderItems = checkOrderItemService.list(new LambdaQueryWrapper() // .eq(WkOrderItem::getOrderId, params.getOrders().getId())); // Double sum = orderItems.stream().mapToDouble(WkOrderItem::getAnfme).sum(); // orders.setAnfme(sum); // if (!this.updateById(orders)) { // throw new CoolException("计划收货数量修改失败!!"); // } } /** * @author Ryan * @date 2025/7/25 * @description: 调拔单及明细修改 * @version 1.0 */ @Override public R updateTransfer(TransferItemParams params, Long loginUserId) { return null; } }