From f1ffdc2dc9ec6d8ae04701a2a46629e5bb53c09f Mon Sep 17 00:00:00 2001 From: wusiyu <2015098864@qq.com> Date: Fri, 26 Jun 2026 10:19:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=93=E5=BA=93=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../erpdata/feign/IErpDataWmsClient.java | 9 +++ .../feign/IErpDataWmsClientFallback.java | 6 ++ .../erpdata/feign/ErpDataWmsClient.java | 6 ++ .../erpdata/service/IErpDataWmsService.java | 3 + .../service/impl/ErpDataWmsServiceImpl.java | 59 ++++++++++++++++++- .../service/impl/StBuyOrderServiceImpl.java | 21 +++++-- .../service/impl/StWmsRequestServiceImpl.java | 28 ++++----- 7 files changed, 111 insertions(+), 21 deletions(-) diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataWmsClient.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataWmsClient.java index 7d6973124..58c69f627 100644 --- a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataWmsClient.java +++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataWmsClient.java @@ -6,6 +6,7 @@ import org.springblade.core.tool.api.R; import org.springblade.erpdata.pojo.vo.MeasuringToolMaintainVO; import org.springblade.erpdata.pojo.vo.PurchaseTrackVO; import org.springblade.erpdata.pojo.vo.StGoodsExtStatusVO; +import org.springblade.wms.pojo.dto.ErpStPurOtherDTO; import org.springblade.wms.pojo.entity.StRealtimeStock; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.format.annotation.DateTimeFormat; @@ -50,6 +51,8 @@ public interface IErpDataWmsClient { String SEND_RBFIRT_CHK = API_PREFIX + "/sendRbfirtChk"; + String SEND_PUR_OTHER_REST = API_PREFIX + "/sendPurOtherRest"; + /** * 到期送检发送erp */ @@ -116,4 +119,10 @@ public interface IErpDataWmsClient { @PostMapping(GET_MAINTEN_STATUS) R getMaintenStatus(@RequestParam("goodsCode")String goodsCode, @RequestParam("shCode")String shCode, @RequestParam("location")String location, @RequestParam("createTime") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date createTime); + + /** + * 额外计划发送erp + */ + @PostMapping(SEND_PUR_OTHER_REST) + R sendPurOtherRest(@RequestBody ErpStPurOtherDTO dto) throws BusinessException; } diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataWmsClientFallback.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataWmsClientFallback.java index 0af8ef1ed..f34d3f259 100644 --- a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataWmsClientFallback.java +++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataWmsClientFallback.java @@ -4,6 +4,7 @@ import org.springblade.core.tool.api.R; import org.springblade.erpdata.pojo.vo.MeasuringToolMaintainVO; import org.springblade.erpdata.pojo.vo.PurchaseTrackVO; import org.springblade.erpdata.pojo.vo.StGoodsExtStatusVO; +import org.springblade.wms.pojo.dto.ErpStPurOtherDTO; import org.springblade.wms.pojo.entity.StRealtimeStock; import org.springframework.format.annotation.DateTimeFormat; import org.springframework.stereotype.Component; @@ -78,4 +79,9 @@ public class IErpDataWmsClientFallback implements IErpDataWmsClient{ return R.fail("获取数据失败"); } + @Override + public R sendPurOtherRest(@RequestBody ErpStPurOtherDTO dto) { + return R.fail("获取数据失败"); + } + } diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpDataWmsClient.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpDataWmsClient.java index f390bbb99..bf1332268 100644 --- a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpDataWmsClient.java +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpDataWmsClient.java @@ -9,6 +9,7 @@ import org.springblade.erpdata.pojo.vo.MeasuringToolMaintainVO; import org.springblade.erpdata.pojo.vo.PurchaseTrackVO; import org.springblade.erpdata.pojo.vo.StGoodsExtStatusVO; import org.springblade.erpdata.service.IErpDataWmsService; +import org.springblade.wms.pojo.dto.ErpStPurOtherDTO; import org.springblade.wms.pojo.entity.StRealtimeStock; import org.springframework.web.bind.annotation.RestController; @@ -81,4 +82,9 @@ public class ErpDataWmsClient implements IErpDataWmsClient{ public R getMaintenStatus(String goodsCode, String shCode, String location, Date createTime) { return R.data(erpDataWmsService.getMaintenStatus(goodsCode, shCode, location, createTime)); } + + @Override + public R sendPurOtherRest(ErpStPurOtherDTO dto) throws BusinessException { + return R.data(erpDataWmsService.sendPurOtherRest(dto)); + } } diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpDataWmsService.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpDataWmsService.java index e635390fb..f83817d81 100644 --- a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpDataWmsService.java +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpDataWmsService.java @@ -4,6 +4,7 @@ import org.springblade.common.exception.BusinessException; import org.springblade.erpdata.pojo.vo.MeasuringToolMaintainVO; import org.springblade.erpdata.pojo.vo.PurchaseTrackVO; import org.springblade.erpdata.pojo.vo.StGoodsExtStatusVO; +import org.springblade.wms.pojo.dto.ErpStPurOtherDTO; import org.springblade.wms.pojo.entity.StRealtimeStock; import java.util.Date; @@ -38,4 +39,6 @@ public interface IErpDataWmsService { MeasuringToolMaintainVO getMaintenStatus(String goodsCode, String shCode, String location, Date createTime); String sendRbfirtChk(String goodsCode, String goodsName) throws BusinessException; + + String sendPurOtherRest(ErpStPurOtherDTO dto) throws BusinessException; } diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpDataWmsServiceImpl.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpDataWmsServiceImpl.java index 4afee4e9b..579c7097e 100644 --- a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpDataWmsServiceImpl.java +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpDataWmsServiceImpl.java @@ -10,6 +10,7 @@ import org.springblade.erpdata.pojo.vo.MeasuringToolMaintainVO; import org.springblade.erpdata.pojo.vo.PurchaseTrackVO; import org.springblade.erpdata.pojo.vo.StGoodsExtStatusVO; import org.springblade.erpdata.service.IErpDataWmsService; +import org.springblade.wms.pojo.dto.ErpStPurOtherDTO; import org.springblade.wms.pojo.entity.StRealtimeStock; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.SqlOutParameter; @@ -17,6 +18,7 @@ import org.springframework.jdbc.core.SqlParameter; import org.springframework.jdbc.core.simple.SimpleJdbcCall; import org.springframework.stereotype.Service; +import java.math.BigDecimal; import java.sql.Types; import java.util.Date; import java.util.HashMap; @@ -94,7 +96,7 @@ public class ErpDataWmsServiceImpl implements IErpDataWmsService { public String sendErpBuyRequest(String extraBill, Double qty, String ldapName) throws BusinessException{ SimpleJdbcCall jdbcCall = new SimpleJdbcCall(jdbcTemplate) // 指定存储过程名(包含 DB Link) - .withProcedureName("dba_mgr.pro_rbinvdeptreqmtn") + .withProcedureName("dba_mgr.pro_rbinvdeptreqmtnmes2") // 关闭元数据访问(DBLink 必须加) .withoutProcedureColumnMetaDataAccess() // 显式声明参数(顺序必须和存储过程一致) @@ -341,6 +343,61 @@ public class ErpDataWmsServiceImpl implements IErpDataWmsService { return excflag; } + @Override + public String sendPurOtherRest(ErpStPurOtherDTO dto) throws BusinessException { + SimpleJdbcCall jdbcCall = new SimpleJdbcCall(jdbcTemplate) + .withProcedureName("dba_mgr.pro_rbpurotherrp") + .withoutProcedureColumnMetaDataAccess() + // 严格按存储过程定义顺序声明参数 + .declareParameters( + // 全部IN输入参数 + new SqlParameter("v_prtno", Types.VARCHAR), + new SqlParameter("v_prtlotno", Types.VARCHAR), + new SqlParameter("v_reqdat", Types.VARCHAR), + new SqlParameter("v_reqqty", Types.NUMERIC), + new SqlParameter("v_reqdate", Types.VARCHAR), + new SqlParameter("v_plnarea", Types.VARCHAR), + new SqlParameter("v_reqstat", Types.VARCHAR), + new SqlParameter("v_reqctlr", Types.VARCHAR), + new SqlParameter("v_checkman", Types.VARCHAR), + new SqlParameter("v_checkdate", Types.VARCHAR), + new SqlParameter("v_note", Types.VARCHAR), + // OUT输出参数 + new SqlOutParameter("v_excnote", Types.VARCHAR), + new SqlOutParameter("v_excflag", Types.VARCHAR), + new SqlOutParameter("v_orderno", Types.VARCHAR) + ); + + // 封装入参,空值统一转空字符串避免Oracle null报错 + Map inParams = new HashMap<>(); + inParams.put("v_prtno", dto.getPrtno() == null ? "" : dto.getPrtno()); + inParams.put("v_prtlotno", dto.getPrtlotno() == null ? "" : dto.getPrtlotno()); + inParams.put("v_reqdat", dto.getReqdat() == null ? "" : dto.getReqdat()); + inParams.put("v_reqqty", dto.getReqqty() == null ? BigDecimal.ZERO : dto.getReqqty()); + inParams.put("v_reqdate", dto.getReqdate() == null ? "" : dto.getReqdate()); + inParams.put("v_plnarea", dto.getPlnarea() == null ? "" : dto.getPlnarea()); + inParams.put("v_reqstat", dto.getReqstat() == null ? "" : dto.getReqstat()); + inParams.put("v_reqctlr", dto.getReqctlr() == null ? "" : dto.getReqctlr()); + inParams.put("v_checkman", dto.getCheckman() == null ? "" : dto.getCheckman()); + inParams.put("v_checkdate", dto.getCheckdate() == null ? "" : dto.getCheckdate()); + inParams.put("v_note", dto.getNote() == null ? "" : dto.getNote()); + + // 执行存储过程 + Map resultMap = jdbcCall.execute(inParams); + + // 提取输出参数 + String excflag = (String) resultMap.get("v_excflag"); + String excnote = (String) resultMap.get("v_excnote"); + String orderNo = (String) resultMap.get("v_orderno"); + + // 业务异常判断 + if ("0".equals(excflag)) { + throw new BusinessException("MES生成额外计划发送ERP失败,请联系信息部!!! " + excnote); + } + + return orderNo; + } + @Override public StGoodsExtStatusVO getGoodsExtStatus(String goodsCode){ return erpDataWmsMapper.getGoodsExtStatus(goodsCode); diff --git a/blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StBuyOrderServiceImpl.java b/blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StBuyOrderServiceImpl.java index c19c05d82..213ebb321 100644 --- a/blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StBuyOrderServiceImpl.java +++ b/blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StBuyOrderServiceImpl.java @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; +import org.springblade.common.exception.BusinessException; import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.secure.BladeUser; @@ -311,10 +312,10 @@ public class StBuyOrderServiceImpl extends BaseServiceImpl ruser = userClient.userInfoById(request.getCreateUser()); User user = ruser.getData(); @@ -241,11 +241,11 @@ public class StWmsRequestServiceImpl extends BaseServiceImpl