From 3a40c3679b786267552a6018b1a60509ef2d4af2 Mon Sep 17 00:00:00 2001 From: liweidong-hj Date: Fri, 15 May 2026 14:06:48 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=8C=E7=BA=A7=E5=AE=A1=E6=89=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../desk/order/mapper/YieldOrderMapper.xml | 4 +- .../impl/PlateGoodsRecordServiceImpl.java | 54 ++++++++++++++++--- 2 files changed, 48 insertions(+), 10 deletions(-) diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/YieldOrderMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/YieldOrderMapper.xml index 171a2c32e..de0a2b0bd 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/YieldOrderMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/YieldOrderMapper.xml @@ -85,11 +85,11 @@ FROM MES_YIELD_ORDER yo LEFT JOIN MES_PLATE_GOODS_RECORD_DETAIL grd ON yo.id = grd.YO_ID LEFT JOIN MES_WORK_ORDER wo on yo.ID = wo.YO_ID - LEFT JOIN BS_TEAM_SET ts on wo.ts_Id = ts.ID + LEFT JOIN BS_CENTER_TEAM ct on wo.ts_Id = ct.TS_ID WHERE yo.IS_DELETED = 0 AND grd.ID IS NULL and wo.OEM = 0 - AND ts.WC_ID = #{wcId} + AND ct.WC_ID = #{wcId} AND yo.PLATE_GOODS_CODE = #{plateGoodsCode} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/PlateGoodsRecordServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/PlateGoodsRecordServiceImpl.java index 3ac6b26fd..34d2283f6 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/PlateGoodsRecordServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/PlateGoodsRecordServiceImpl.java @@ -3,10 +3,12 @@ package org.springblade.desk.order.service.impl; import com.alibaba.cloud.commons.lang.StringUtils; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import jakarta.annotation.Resource; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.common.constant.CommonConstant; import org.springblade.common.utils.StringPrefixUtils; +import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.base.BaseEntity; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.secure.BladeUser; @@ -42,7 +44,9 @@ import org.springblade.desk.order.service.IPlateGoodsRecordService; import org.springblade.scheduling.pojo.entity.CraftAbilityEntity; import org.springblade.scheduling.pojo.entity.QualityGradeEntity; import org.springblade.system.cache.DictCache; +import org.springblade.wms.feign.WmsTaskClient; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import java.math.BigDecimal; @@ -72,6 +76,7 @@ public class PlateGoodsRecordServiceImpl extends BaseServiceImpl selectPage(IPage page, PlateGoodsRecord entity) { List dataList = baseMapper.selectPage(page, entity); @@ -435,22 +440,55 @@ public class PlateGoodsRecordServiceImpl extends BaseServiceImpl ids, Integer approvalStatus, String approvalMemo) { - List plateGoodsRecordList = new ArrayList<>(); - BladeUser user = AuthUtil.getUser(); - ids.forEach(id -> { - PlateGoodsRecord plateGoodsRecord = new PlateGoodsRecord(); - plateGoodsRecord.setId(id); + + for (Long id : ids) { + // 1. 查询完整对象 + PlateGoodsRecord plateGoodsRecord = this.getById(id); + if (plateGoodsRecord == null) { + throw new ServiceException("记录不存在,id:" + id); + } + + // 2. 设置审批信息 plateGoodsRecord.setApprovalMan2(user.getUserId()); plateGoodsRecord.setApprovalTime2(DateUtil.now()); plateGoodsRecord.setApprovalStatus2(approvalStatus); plateGoodsRecord.setApprovalMemo2(approvalMemo); - plateGoodsRecordList.add(plateGoodsRecord); - }); - return this.updateBatchById(plateGoodsRecordList); + // 3. 审批成功时的额外处理 + if (approvalStatus.equals(PlateGoodsEnum.SECOND_STATUS_PASS.getCode())) { + try { + BigDecimal goodsDemand = plateGoodsRecord.getGoodsDemand(); + Double goodsDemandDouble = goodsDemand != null + ? goodsDemand.setScale(6, RoundingMode.HALF_UP).doubleValue() + : null; + + Long goodsBoId = wmsTaskClient.buyOrderApply( + plateGoodsRecord.getGoodsCode(), + goodsDemandDouble, + plateGoodsRecord.getCreateUser(), + plateGoodsRecord.getCreateTime(), + user.getUserId(), + plateGoodsRecord.getUpdateTime() + ); + + plateGoodsRecord.setGoodsBoId(goodsBoId); + } catch (Exception e) { + log.error("调用ERP失败,id:{}", id, e); + throw new ServiceException("调用ERP接口失败:" + e.getMessage()); + } + } + + // 4. 更新数据库 + this.updateById(plateGoodsRecord); + } + + return true; } /**