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;
}
/**