From b3fb196506fcdcc8e13a19c909bf45c733e13ed4 Mon Sep 17 00:00:00 2001
From: wusiyu <2015098864@qq.com>
Date: Tue, 28 Apr 2026 17:10:05 +0800
Subject: [PATCH 1/3] =?UTF-8?q?=E4=BB=93=E5=BA=93=E7=AE=A1=E7=90=86?=
=?UTF-8?q?=E5=8F=91=E9=80=81erp=E5=A2=9E=E5=8A=A0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
blade-service-api/blade-erpdata-api/pom.xml | 6 +
.../erpdata/feign/IErpDataWmsClient.java | 53 +++++
.../feign/IErpDataWmsClientFallback.java | 36 +++
blade-service/blade-erpdata/pom.xml | 6 +
.../erpdata/feign/ErpDataWmsClient.java | 51 +++++
.../erpdata/service/IErpDataWmsService.java | 26 +++
.../service/impl/ErpDataWmsServiceImpl.java | 211 ++++++++++++++++++
blade-service/blade-wms/pom.xml | 6 +
.../controller/StMoldApplyForController.java | 2 +-
.../wms/service/IStMoldApplyForService.java | 1 +
.../impl/StExpireSubmissionServiceImpl.java | 12 +-
.../impl/StMoldApplyForServiceImpl.java | 46 +++-
.../service/impl/StWmsRequestServiceImpl.java | 16 +-
13 files changed, 459 insertions(+), 13 deletions(-)
create mode 100644 blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataWmsClient.java
create mode 100644 blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataWmsClientFallback.java
create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpDataWmsClient.java
create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpDataWmsService.java
create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpDataWmsServiceImpl.java
diff --git a/blade-service-api/blade-erpdata-api/pom.xml b/blade-service-api/blade-erpdata-api/pom.xml
index e3c498ed..0235a807 100644
--- a/blade-service-api/blade-erpdata-api/pom.xml
+++ b/blade-service-api/blade-erpdata-api/pom.xml
@@ -26,6 +26,12 @@
org.springblade
blade-desk-api
+
+ org.springblade
+ blade-wms-api
+ 4.6.0.RELEASE
+ compile
+
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
new file mode 100644
index 00000000..7f6ce12c
--- /dev/null
+++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataWmsClient.java
@@ -0,0 +1,53 @@
+package org.springblade.erpdata.feign;
+
+import org.springblade.common.constant.LauncherConstant;
+import org.springblade.common.exception.BusinessException;
+import org.springblade.core.tool.api.R;
+import org.springblade.wms.pojo.entity.StRealtimeStock;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.Date;
+
+/**
+ * @version 1.0
+ * @program: jonhon-mes-svr
+ * @ClassName IErpDataWmsClient
+ * @description:
+ * @autor: WuSiYu
+ * @create 2026-04-28 11:32
+ **/
+@FeignClient(
+ value = LauncherConstant.APPLICATION_ERP_DATA_NAME
+)
+public interface IErpDataWmsClient {
+
+ String API_PREFIX = "/feign/erpdata/wms";
+
+ String SEND_ST_SUBMISSION = API_PREFIX + "/sendStSubmission";
+
+ String SEND_ERP_BUY_REQUEST = API_PREFIX + "/sendErpBuyRequest";
+
+ String CREATE_MOLD_PLAN = API_PREFIX + "/createMoldPlan";
+
+ /**
+ * 到期送检发送erp
+ */
+ @GetMapping(SEND_ST_SUBMISSION)
+ R sendStSubmission(@RequestParam("stRealtimeStock")StRealtimeStock stRealtimeStock, @RequestParam("goodsCode")String goodsCode, @RequestParam("userName")String userName) throws BusinessException;
+
+ /**
+ * 仓库提请发送erp
+ */
+ @GetMapping(SEND_ERP_BUY_REQUEST)
+ R sendErpBuyRequest(@RequestParam("extraBill")String extraBill, @RequestParam("qty")Double qty, @RequestParam("ldapName")String ldapName) throws BusinessException;
+
+ /**
+ * 工装计划申报发送erp
+ */
+ @GetMapping(CREATE_MOLD_PLAN)
+ R createMoldPlan(@RequestParam("partCode")String partCode, @RequestParam("moCode")String moCode, @RequestParam("plantype")String plantype, @RequestParam("quantity")Double quantity,
+ @RequestParam("needDate")Date needDate, @RequestParam("level")String level, @RequestParam("keeper")String keeper, @RequestParam("createMan")String createMan,
+ @RequestParam("memo")String memo, @RequestParam("urgentType")String urgentType, @RequestParam("erpWoCode")String erpWoCode) 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
new file mode 100644
index 00000000..44b7028e
--- /dev/null
+++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataWmsClientFallback.java
@@ -0,0 +1,36 @@
+package org.springblade.erpdata.feign;
+
+import org.springblade.core.tool.api.R;
+import org.springblade.wms.pojo.entity.StRealtimeStock;
+import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.Date;
+
+/**
+ * @version 1.0
+ * @program: jonhon-mes-svr
+ * @ClassName IErpDataWmsClientFallback
+ * @description:
+ * @autor: WuSiYu
+ * @create 2026-04-28 14:18
+ **/
+@Component
+public class IErpDataWmsClientFallback implements IErpDataWmsClient{
+ @Override
+ public R sendStSubmission(@RequestParam("stRealtimeStock") StRealtimeStock stRealtimeStock, @RequestParam("goodsCode")String goodsCode, @RequestParam("userName")String userName) {
+ return R.fail("获取数据失败");
+ }
+
+ @Override
+ public R sendErpBuyRequest(@RequestParam("extraBill")String extraBill, @RequestParam("qty")Double qty, @RequestParam("ldapName")String ldapName) {
+ return R.fail("获取数据失败");
+ }
+
+ @Override
+ public R createMoldPlan(@RequestParam("partCode")String partCode, @RequestParam("moCode")String moCode, @RequestParam("plantype")String plantype, @RequestParam("quantity")Double quantity,
+ @RequestParam("needDate") Date needDate, @RequestParam("level")String level, @RequestParam("keeper")String keeper, @RequestParam("createMan")String createMan,
+ @RequestParam("memo")String memo, @RequestParam("urgentType")String urgentType, @RequestParam("erpWoCode")String erpWoCode) {
+ return R.fail("获取数据失败");
+ }
+}
diff --git a/blade-service/blade-erpdata/pom.xml b/blade-service/blade-erpdata/pom.xml
index 7e6c5f8a..affd25c2 100644
--- a/blade-service/blade-erpdata/pom.xml
+++ b/blade-service/blade-erpdata/pom.xml
@@ -48,6 +48,12 @@
hutool-all
5.8.16
+
+ org.springblade
+ blade-wms-api
+ 4.6.0.RELEASE
+ compile
+
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
new file mode 100644
index 00000000..3524da9e
--- /dev/null
+++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpDataWmsClient.java
@@ -0,0 +1,51 @@
+package org.springblade.erpdata.feign;
+
+import io.swagger.v3.oas.annotations.Hidden;
+import lombok.AllArgsConstructor;
+import org.springblade.common.exception.BusinessException;
+import org.springblade.core.tenant.annotation.NonDS;
+import org.springblade.core.tool.api.R;
+import org.springblade.erpdata.service.IErpDataWmsService;
+import org.springblade.wms.pojo.entity.StRealtimeStock;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Date;
+
+/**
+ * @version 1.0
+ * @program: jonhon-mes-svr
+ * @ClassName ErpDataWmsClient
+ * @description:
+ * @autor: WuSiYu
+ * @create 2026-04-28 11:30
+ **/
+@NonDS
+@Hidden
+@RestController
+@AllArgsConstructor
+public class ErpDataWmsClient implements IErpDataWmsClient{
+
+ private final IErpDataWmsService erpDataWmsService;
+ @Override
+ public R sendStSubmission(StRealtimeStock stRealtimeStock, String goodsCode, String userName) throws BusinessException {
+ return R.data(erpDataWmsService.sendStSubmission(stRealtimeStock, goodsCode, userName));
+ }
+
+ @Override
+ public R sendErpBuyRequest(String extraBill, Double qty, String ldapName) throws BusinessException {
+ return R.data(erpDataWmsService.sendErpBuyRequest(extraBill, qty, ldapName));
+ }
+
+ @Override
+ public R createMoldPlan(String partCode, String moCode, String plantype, Double quantity, Date needDate, String level,
+ String keeper, String createMan, String memo, String urgentType, String erpWoCode) throws BusinessException {
+ return R.data(erpDataWmsService.createMoldPlan(partCode, moCode, plantype, quantity, needDate, level,
+ keeper, createMan, memo, urgentType, erpWoCode));
+ }
+
+// @Override
+// public R deleteMoldPlan(String erpWoCode) throws BusinessException{
+// erpDataWmsService.deleteMoldPlan(erpWoCode);
+// return R.success("删除工装计划成功");
+// }
+}
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
new file mode 100644
index 00000000..b8d0e740
--- /dev/null
+++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpDataWmsService.java
@@ -0,0 +1,26 @@
+package org.springblade.erpdata.service;
+
+import org.springblade.common.exception.BusinessException;
+import org.springblade.wms.pojo.entity.StRealtimeStock;
+
+import java.util.Date;
+
+/**
+ * @version 1.0
+ * @program: jonhon-mes-svr
+ * @ClassName IErpDataWmsService
+ * @description:
+ * @autor: WuSiYu
+ * @create 2026-04-28 11:24
+ **/
+
+public interface IErpDataWmsService {
+
+ String sendStSubmission(StRealtimeStock stRealtimeStock, String goodsCode, String userName) throws BusinessException;
+
+ String sendErpBuyRequest(String extraBill, Double qty, String ldapName) throws BusinessException;
+
+ String createMoldPlan(String partCode, String moCode, String plantype, Double quantity, Date needDate, String level, String keeper, String createMan, String memo, String urgentType, String erpWoCode) throws BusinessException;
+
+// void deleteMoldPlan(String erpWoCode) 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
new file mode 100644
index 00000000..fae842e3
--- /dev/null
+++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpDataWmsServiceImpl.java
@@ -0,0 +1,211 @@
+package org.springblade.erpdata.service.impl;
+
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springblade.common.exception.BusinessException;
+import org.springblade.erpdata.service.IErpDataWmsService;
+import org.springblade.wms.pojo.entity.StRealtimeStock;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.jdbc.core.SqlOutParameter;
+import org.springframework.jdbc.core.SqlParameter;
+import org.springframework.jdbc.core.simple.SimpleJdbcCall;
+import org.springframework.stereotype.Service;
+
+import java.sql.Types;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @version 1.0
+ * @program: jonhon-mes-svr
+ * @ClassName ErpDataWmsServiceImpl
+ * @description:
+ * @autor: WuSiYu
+ * @create 2026-04-28 11:23
+ **/
+
+@Slf4j
+@RequiredArgsConstructor
+@Service
+public class ErpDataWmsServiceImpl implements IErpDataWmsService {
+
+ private final JdbcTemplate jdbcTemplate;
+
+ @Override
+ public String sendStSubmission(StRealtimeStock stRealtimeStock, String goodsCode, String userName) throws BusinessException {
+
+ // 1. 创建存储过程调用
+ SimpleJdbcCall jdbcCall = new SimpleJdbcCall(jdbcTemplate)
+ // 存储过程名 + DBLink
+ .withProcedureName("dba_mgr.pro_rbprtchk@erp_mes_link")
+ // 关闭元数据(DBLink必须加)
+ .withoutProcedureColumnMetaDataAccess()
+ // 声明参数:顺序必须和存储过程一致!
+ .declareParameters(
+ new SqlParameter("v_prtno", Types.VARCHAR), // IN 物料号
+ new SqlParameter("v_prtlotno", Types.VARCHAR), // IN 生产标识
+ new SqlParameter("v_barcode", Types.VARCHAR), // IN 库存条码值
+ new SqlParameter("v_invqty", Types.DOUBLE), // IN 库存数量
+ new SqlParameter("v_splycode", Types.VARCHAR), // IN 供方代码
+ new SqlParameter("v_qutno", Types.VARCHAR), // IN 检验编号
+ new SqlParameter("v_chkname", Types.VARCHAR), // IN 送检人员
+ new SqlOutParameter("v_excnote", Types.VARCHAR), // OUT 错误信息
+ new SqlOutParameter("v_excflag", Types.VARCHAR), // OUT 状态
+ new SqlOutParameter("v_prtchno", Types.VARCHAR) // OUT 送检单号
+ );
+
+ // 2. 封装输入参数
+ Map inParams = new HashMap<>();
+ inParams.put("v_prtno", goodsCode);
+ inParams.put("v_prtlotno", stRealtimeStock.getQuantityLevel());
+ inParams.put("v_barcode", stRealtimeStock.getBarCode());
+ inParams.put("v_invqty", stRealtimeStock.getQuantity());
+ inParams.put("v_splycode", StringUtils.isNotBlank(stRealtimeStock.getSplyCode()) ? stRealtimeStock.getSplyCode() : "");
+ inParams.put("v_qutno", stRealtimeStock.getCheckCode());
+ inParams.put("v_chkname", userName);
+
+ // 3. 执行存储过程
+ Map resultMap = jdbcCall.execute(inParams);
+
+ // 4. 获取输出参数
+ String excflag = (String) resultMap.get("v_excflag");
+ String excnote = (String) resultMap.get("v_excnote");
+ String wsCode = (String) resultMap.get("v_prtchno");
+
+ // 5. 业务判断
+ if ("0".equals(excflag)) {
+ throw new BusinessException("到期送检发送失败,请联系信息部!!! " + excnote);
+ }
+
+ return wsCode;
+ }
+
+ @Override
+ public String sendErpBuyRequest(String extraBill, Double qty, String ldapName) throws BusinessException{
+ SimpleJdbcCall jdbcCall = new SimpleJdbcCall(jdbcTemplate)
+ // 指定存储过程名(包含 DB Link)
+ .withProcedureName("dba_mgr.pro_rbinvdeptreqmtn@erp_mes_link")
+ // 关闭元数据访问(DBLink 必须加)
+ .withoutProcedureColumnMetaDataAccess()
+ // 显式声明参数(顺序必须和存储过程一致)
+ .declareParameters(
+ new SqlParameter("v_wono", Types.VARCHAR), // IN
+ new SqlParameter("v_applyqty", Types.DOUBLE), // IN
+ new SqlParameter("v_mtnman", Types.VARCHAR), // IN
+ new SqlOutParameter("v_excnote", Types.VARCHAR),// OUT
+ new SqlOutParameter("v_excflag", Types.VARCHAR) // OUT
+ );
+
+ // 2. 封装输入参数
+ Map inParams = new HashMap<>();
+ inParams.put("v_wono", extraBill == null ? "" : extraBill);
+ inParams.put("v_applyqty", qty == null ? 0D : qty);
+ inParams.put("v_mtnman", ldapName == null ? "" : ldapName);
+
+ // 3. 执行并获取结果 Map
+ Map resultMap = jdbcCall.execute(inParams);
+
+ // 4. 提取输出参数
+ String excflag = (String) resultMap.get("v_excflag");
+ String excnote = (String) resultMap.get("v_excnote");
+
+ // 5. 业务判断
+ if ("0".equals(excflag)) {
+ throw new BusinessException("申报信息发送erp失败!" + excnote);
+ }
+
+ return excflag;
+ }
+
+ @Override
+ public String createMoldPlan(String partCode, String moCode, String plantype, Double quantity, Date needDate, String level,
+ String keeper, String createMan, String memo, String urgentType, String erpWoCode) throws BusinessException{
+
+ SimpleJdbcCall jdbcCall = new SimpleJdbcCall(jdbcTemplate)
+ // 指定存储过程名(包含 DB Link)
+ .withProcedureName("dba_mgr.pro_rbtoolreqm@erp_mes_link")
+ // 关闭元数据访问(DBLink 必须加)
+ .withoutProcedureColumnMetaDataAccess()
+ // 显式声明参数(顺序必须和存储过程一致)
+ .declareParameters(
+ new SqlParameter("v_prtno", Types.VARCHAR),
+ new SqlParameter("v_toolcode", Types.VARCHAR),
+ new SqlParameter("v_plntype", Types.VARCHAR),
+ new SqlParameter("v_tlreqqty", Types.INTEGER),
+ new SqlParameter("v_tlreqdat", Types.DATE),
+ new SqlParameter("v_prtmdept", Types.VARCHAR),
+ new SqlParameter("v_prtlotno", Types.VARCHAR),
+ new SqlParameter("v_WARCTLR", Types.VARCHAR),
+ new SqlParameter("v_operator", Types.VARCHAR),
+ new SqlParameter("v_remark", Types.VARCHAR),
+ new SqlParameter("v_stat", Types.VARCHAR),
+ new SqlParameter("v_toolid1", Types.VARCHAR),
+ new SqlOutParameter("v_excnote", Types.VARCHAR),
+ new SqlOutParameter("v_excflag", Types.VARCHAR),
+ new SqlOutParameter("v_toolid", Types.VARCHAR)
+ );
+
+ // 2. 封装输入参数
+ Map inParams = new HashMap<>();
+ inParams.put("v_prtno", partCode);
+ inParams.put("v_toolcode", moCode);
+ inParams.put("v_plntype", plantype);
+ inParams.put("v_tlreqqty", quantity);
+ inParams.put("v_tlreqdat", needDate);
+ inParams.put("v_prtmdept", "3600");
+ inParams.put("v_prtlotno", level);
+ inParams.put("v_WARCTLR", keeper);
+ inParams.put("v_operator", createMan);
+ inParams.put("v_remark", StringUtils.isBlank(memo) ? "" : memo);
+ inParams.put("v_stat", urgentType);
+ inParams.put("v_toolid1", StringUtils.isNotBlank(erpWoCode) ? erpWoCode : "");
+
+ // 3. 执行并获取结果 Map
+ Map resultMap = jdbcCall.execute(inParams);
+
+ // 4. 提取输出参数
+ String excflag = (String) resultMap.get("v_excflag");
+ String excnote = (String) resultMap.get("v_excnote");
+ String wxno = (String) resultMap.get("v_toolid");
+
+ // 5. 业务判断
+ if ("0".equals(excflag)) {
+ throw new BusinessException("模具计划发送erp" + excnote);
+ }
+
+ return wxno;
+ }
+
+// @Override
+// public void deleteMoldPlan(String erpWoCode) throws BusinessException {
+// SimpleJdbcCall jdbcCall = new SimpleJdbcCall(jdbcTemplate)
+// // 指定存储过程名(包含 DB Link)
+// .withProcedureName("dba_mgr.pro_rbtooldel@erp_mes_link")
+// // 关闭元数据访问(DBLink 必须加)
+// .withoutProcedureColumnMetaDataAccess()
+// // 显式声明参数
+// .declareParameters(
+// new SqlParameter("v_toolid", Types.VARCHAR), // IN
+// new SqlOutParameter("v_excnote", Types.VARCHAR), // OUT
+// new SqlOutParameter("v_excflag", Types.VARCHAR) // OUT
+// );
+// // 2. 封装输入参数
+// Map inParams = new HashMap<>();
+// inParams.put("v_toolid", erpWoCode);
+//
+// // 3. 执行并获取结果 Map
+// Map resultMap = jdbcCall.execute(inParams);
+//
+// // 4. 提取输出参数
+// String excflag = (String) resultMap.get("v_excflag");
+// String excnote = (String) resultMap.get("v_excnote");
+//
+// // 5. 业务判断
+// if ("0".equals(excflag)) {
+// throw new BusinessException("删除工装计划失败" + excnote);
+// }
+// }
+
+}
diff --git a/blade-service/blade-wms/pom.xml b/blade-service/blade-wms/pom.xml
index b0341293..55a80bd8 100644
--- a/blade-service/blade-wms/pom.xml
+++ b/blade-service/blade-wms/pom.xml
@@ -89,6 +89,12 @@
1.5-beta1
compile
+
+ org.springblade
+ blade-erpdata-api
+ 4.6.0.RELEASE
+ compile
+
diff --git a/blade-service/blade-wms/src/main/java/org/springblade/wms/controller/StMoldApplyForController.java b/blade-service/blade-wms/src/main/java/org/springblade/wms/controller/StMoldApplyForController.java
index 77bfc466..fe6f5ed7 100644
--- a/blade-service/blade-wms/src/main/java/org/springblade/wms/controller/StMoldApplyForController.java
+++ b/blade-service/blade-wms/src/main/java/org/springblade/wms/controller/StMoldApplyForController.java
@@ -134,7 +134,7 @@ public class StMoldApplyForController extends BladeController {
@ApiLog("工装计划申请表 删除")
@Operation(summary = "逻辑删除", description = "传入ids")
public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
- return R.status(stMoldApplyForService.deleteLogic(Func.toLongList(ids)));
+ return R.status(stMoldApplyForService.delete(Func.toLongList(ids)));
}
diff --git a/blade-service/blade-wms/src/main/java/org/springblade/wms/service/IStMoldApplyForService.java b/blade-service/blade-wms/src/main/java/org/springblade/wms/service/IStMoldApplyForService.java
index 750beae4..69f656e0 100644
--- a/blade-service/blade-wms/src/main/java/org/springblade/wms/service/IStMoldApplyForService.java
+++ b/blade-service/blade-wms/src/main/java/org/springblade/wms/service/IStMoldApplyForService.java
@@ -40,5 +40,6 @@ public interface IStMoldApplyForService extends BaseService {
void addOrEditProcess(List list, List deleteIds, BladeUser user);
+ boolean delete(List deleteIds);
}
diff --git a/blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StExpireSubmissionServiceImpl.java b/blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StExpireSubmissionServiceImpl.java
index 1910bbfa..0ad5f1d3 100644
--- a/blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StExpireSubmissionServiceImpl.java
+++ b/blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StExpireSubmissionServiceImpl.java
@@ -4,8 +4,10 @@ import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import jakarta.annotation.Resource;
+import org.springblade.common.exception.BusinessException;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.secure.BladeUser;
+import org.springblade.erpdata.feign.IErpDataWmsClient;
import org.springblade.wms.excel.StExpireSubmissionExcel;
import org.springblade.wms.mapper.StExpireSubmissionMapper;
import org.springblade.wms.pojo.entity.StExpireSubmission;
@@ -37,6 +39,8 @@ public class StExpireSubmissionServiceImpl extends BaseServiceImpl implements IStMoldApplyForService {
+ @Resource
+ IUserClient userClient;
+ @Resource
+ IErpDataWmsClient erpDataWmsClient;
@Override
public IPage selectStMoldApplyForPage(IPage page, StMoldApplyForVO stMoldApplyFor) {
@@ -45,13 +55,20 @@ public class StMoldApplyForServiceImpl extends BaseServiceImpl ruser = userClient.userInfoById(plan.getKeeper());
+ User keeper = ruser.getData();
+ String erpWoCode = null;
// 1. 调 ERP
- String erpWoCode = baseMapper.createMoldPlan(
- plan.getPartCode(), plan.getMoCode(), plan.getPlanType(),
- plan.getQuantity(), plan.getNeedDate(), plan.getQuaLevel(),
- plan.getKeeper(), user.getUserId(),
- StrUtil.blankToDefault(plan.getMemo(), ""),
- plan.getUrgentType(), StrUtil.nullToEmpty(plan.getErpWoCode()));
+ try {
+ erpWoCode = erpDataWmsClient.createMoldPlan(
+ plan.getPartCode(), plan.getMoCode(), plan.getPlanType(),
+ plan.getQuantity(), plan.getNeedDate(), plan.getQuaLevel(),
+ keeper.getAccount(), user.getAccount(),
+ StrUtil.blankToDefault(plan.getMemo(), ""),
+ plan.getUrgentType(), StrUtil.nullToEmpty(plan.getErpWoCode())).getData();
+ } catch (BusinessException e) {
+ throw new RuntimeException("创建模具计划失败:" + e.getMessage());
+ }
// 2. 本地落库
if (plan.getId() != null) { // 修改
@@ -80,6 +97,23 @@ public class StMoldApplyForServiceImpl extends BaseServiceImpl deleteIds){
+ if (CollUtil.isNotEmpty(deleteIds)) {
+ for (Long id : deleteIds) {
+ StMoldApplyFor plan = this.getById(id);
+ if (plan == null) continue;
+ if (!StMoldApplyFor.MAF_STATUS_OK.equals(plan.getMafStatus())) {
+ baseMapper.deleteMoldPlan(plan.getErpWoCode());
+ plan.setMafStatus(StMoldApplyFor.MAF_STATUS_ERP_DEL);
+ this.updateById(plan);
+ }
+ }
+ this.deleteLogic(deleteIds);
+ }
+ return true;
+ }
@Override
public List exportStMoldApplyFor(Wrapper queryWrapper) {
diff --git a/blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StWmsRequestServiceImpl.java b/blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StWmsRequestServiceImpl.java
index aed75859..5f9aca29 100644
--- a/blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StWmsRequestServiceImpl.java
+++ b/blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StWmsRequestServiceImpl.java
@@ -5,12 +5,14 @@ import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import jakarta.annotation.Resource;
+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;
import org.springblade.core.tool.api.R;
import org.springblade.desk.common.feign.IMesApprovalRecordClient;
import org.springblade.desk.common.pojo.entity.MesApprovalRecordEntity;
+import org.springblade.erpdata.feign.IErpDataWmsClient;
import org.springblade.system.feign.ISysClient;
import org.springblade.system.feign.IUserClient;
import org.springblade.system.pojo.entity.User;
@@ -46,6 +48,8 @@ public class StWmsRequestServiceImpl extends BaseServiceImpl selectStWmsRequestPage(IPage page, StWmsRequestVO stWmsRequest) {
@@ -192,10 +196,14 @@ public class StWmsRequestServiceImpl extends BaseServiceImpl ruser = userClient.userInfoById(request.getCreateUser());
User user = ruser.getData();
- this.sendErpBuyRequest(
- stBuyOrder.getExtraBill(),
- request.getRequestQty(),
- user.getAccount());
+ try {
+ erpDataWmsClient.sendErpBuyRequest(
+ stBuyOrder.getExtraBill(),
+ request.getRequestQty(),
+ user.getAccount());
+ } catch (BusinessException e) {
+ throw new RuntimeException("仓库提请发送ERP失败:" + e.getMessage());
+ }
}
}
From 11c9287583234783185ec2f7c13d21c90477eee9 Mon Sep 17 00:00:00 2001
From: maxiangong <298222784@qq.com>
Date: Tue, 28 Apr 2026 17:29:07 +0800
Subject: [PATCH 2/3] =?UTF-8?q?=E7=BB=A9=E6=95=88=E5=A1=AB=E6=8A=A5?=
=?UTF-8?q?=E8=B0=83=E6=95=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../controller/BsEfficiencyTaskController.java | 10 ++++++++--
.../efficiency/mapper/EfficiencyTaskReportMapper.xml | 1 +
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/controller/BsEfficiencyTaskController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/controller/BsEfficiencyTaskController.java
index 7d3a9c03..04382f84 100644
--- a/blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/controller/BsEfficiencyTaskController.java
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/controller/BsEfficiencyTaskController.java
@@ -288,21 +288,27 @@ public class BsEfficiencyTaskController extends BladeController {
tableColumnList.add(tableColumn);
}
List> tableDataList = new ArrayList<>();
+ LinkedHashMap> tableMap = new LinkedHashMap<>();
if (!CollectionUtils.isEmpty(mapList)) {
for (LinkedHashMap map : mapList) {
LinkedHashMap tableData = new LinkedHashMap<>();
for (Map.Entry entry : headMap.entrySet()) {
tableData.put(entry.getValue(), map.get(entry.getKey()));
}
- R userInfoResult = userClient.userInfoByCode((String) tableData.get("employeeCode"));
+ String empployeeCode = (String) tableData.get("employeeCode");
+ R userInfoResult = userClient.userInfoByCode(empployeeCode);
if (userInfoResult.getData() == null || userInfoResult.getData().getUser() == null || !tableData.get("employeeName").equals(userInfoResult.getData().getUser().getRealName())) {
tableData.put("isSysUser", "0");
} else {
tableData.put("isSysUser", "1");
}
- tableDataList.add(tableData);
+ if(tableMap.containsKey(empployeeCode)){
+ tableMap.remove(empployeeCode);
+ }
+ tableMap.put(empployeeCode, tableData);
}
}
+ tableDataList.addAll(tableMap.values());
resultMap.put("tableColumn", tableColumnList);
resultMap.put("tableData", tableDataList);
return R.data(resultMap);
diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/mapper/EfficiencyTaskReportMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/mapper/EfficiencyTaskReportMapper.xml
index f0014099..b3a26e8b 100644
--- a/blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/mapper/EfficiencyTaskReportMapper.xml
+++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/efficiency/mapper/EfficiencyTaskReportMapper.xml
@@ -91,6 +91,7 @@
and t.YEAR_MONTH = #{yearMonth}
+ ORDER BY tr.EMPLOYEE_CODE ASC
\ No newline at end of file
From 0055e8caa0a78e4432927ef3a5ad580c3d580cfd Mon Sep 17 00:00:00 2001
From: wusiyu <2015098864@qq.com>
Date: Tue, 28 Apr 2026 18:04:01 +0800
Subject: [PATCH 3/3] =?UTF-8?q?=E4=BB=93=E5=BA=93=E7=AE=A1=E7=90=86?=
=?UTF-8?q?=E5=8F=91=E9=80=81erp=E5=A2=9E=E5=8A=A0=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 | 5 ++
.../erpdata/feign/ErpDataWmsClient.java | 9 ++-
.../erpdata/service/IErpDataWmsService.java | 2 +-
.../service/impl/ErpDataWmsServiceImpl.java | 65 ++++++++++---------
.../impl/StMoldApplyForServiceImpl.java | 16 +++--
6 files changed, 64 insertions(+), 42 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 7f6ce12c..57aecdf1 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
@@ -31,6 +31,8 @@ public interface IErpDataWmsClient {
String CREATE_MOLD_PLAN = API_PREFIX + "/createMoldPlan";
+ String DELETE_MOLD_PLAN = API_PREFIX + "/deleteMoldPlan";
+
/**
* 到期送检发送erp
*/
@@ -50,4 +52,11 @@ public interface IErpDataWmsClient {
R createMoldPlan(@RequestParam("partCode")String partCode, @RequestParam("moCode")String moCode, @RequestParam("plantype")String plantype, @RequestParam("quantity")Double quantity,
@RequestParam("needDate")Date needDate, @RequestParam("level")String level, @RequestParam("keeper")String keeper, @RequestParam("createMan")String createMan,
@RequestParam("memo")String memo, @RequestParam("urgentType")String urgentType, @RequestParam("erpWoCode")String erpWoCode) throws BusinessException;
+
+ /**
+ * 工装计划申报删除发送erp
+ */
+ @GetMapping(DELETE_MOLD_PLAN)
+ R deleteMoldPlan(@RequestParam("erpWoCode")String erpWoCode) 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 44b7028e..ccdf1e55 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
@@ -33,4 +33,9 @@ public class IErpDataWmsClientFallback implements IErpDataWmsClient{
@RequestParam("memo")String memo, @RequestParam("urgentType")String urgentType, @RequestParam("erpWoCode")String erpWoCode) {
return R.fail("获取数据失败");
}
+
+ @Override
+ public R deleteMoldPlan(@RequestParam("erpWoCode")String erpWoCode) {
+ 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 3524da9e..4e1777b1 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
@@ -43,9 +43,8 @@ public class ErpDataWmsClient implements IErpDataWmsClient{
keeper, createMan, memo, urgentType, erpWoCode));
}
-// @Override
-// public R deleteMoldPlan(String erpWoCode) throws BusinessException{
-// erpDataWmsService.deleteMoldPlan(erpWoCode);
-// return R.success("删除工装计划成功");
-// }
+ @Override
+ public R deleteMoldPlan(String erpWoCode) throws BusinessException {
+ return R.data(erpDataWmsService.deleteMoldPlan(erpWoCode));
+ }
}
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 b8d0e740..103a0d5f 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
@@ -22,5 +22,5 @@ public interface IErpDataWmsService {
String createMoldPlan(String partCode, String moCode, String plantype, Double quantity, Date needDate, String level, String keeper, String createMan, String memo, String urgentType, String erpWoCode) throws BusinessException;
-// void deleteMoldPlan(String erpWoCode) throws BusinessException;
+ String deleteMoldPlan(String erpWoCode) 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 fae842e3..5e24db8f 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
@@ -39,7 +39,7 @@ public class ErpDataWmsServiceImpl implements IErpDataWmsService {
// 1. 创建存储过程调用
SimpleJdbcCall jdbcCall = new SimpleJdbcCall(jdbcTemplate)
// 存储过程名 + DBLink
- .withProcedureName("dba_mgr.pro_rbprtchk@erp_mes_link")
+ .withProcedureName("dba_mgr.pro_rbprtchk")
// 关闭元数据(DBLink必须加)
.withoutProcedureColumnMetaDataAccess()
// 声明参数:顺序必须和存储过程一致!
@@ -86,7 +86,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@erp_mes_link")
+ .withProcedureName("dba_mgr.pro_rbinvdeptreqmtn")
// 关闭元数据访问(DBLink 必须加)
.withoutProcedureColumnMetaDataAccess()
// 显式声明参数(顺序必须和存储过程一致)
@@ -125,7 +125,7 @@ public class ErpDataWmsServiceImpl implements IErpDataWmsService {
SimpleJdbcCall jdbcCall = new SimpleJdbcCall(jdbcTemplate)
// 指定存储过程名(包含 DB Link)
- .withProcedureName("dba_mgr.pro_rbtoolreqm@erp_mes_link")
+ .withProcedureName("dba_mgr.pro_rbtoolreqm")
// 关闭元数据访问(DBLink 必须加)
.withoutProcedureColumnMetaDataAccess()
// 显式声明参数(顺序必须和存储过程一致)
@@ -178,34 +178,35 @@ public class ErpDataWmsServiceImpl implements IErpDataWmsService {
return wxno;
}
-// @Override
-// public void deleteMoldPlan(String erpWoCode) throws BusinessException {
-// SimpleJdbcCall jdbcCall = new SimpleJdbcCall(jdbcTemplate)
-// // 指定存储过程名(包含 DB Link)
-// .withProcedureName("dba_mgr.pro_rbtooldel@erp_mes_link")
-// // 关闭元数据访问(DBLink 必须加)
-// .withoutProcedureColumnMetaDataAccess()
-// // 显式声明参数
-// .declareParameters(
-// new SqlParameter("v_toolid", Types.VARCHAR), // IN
-// new SqlOutParameter("v_excnote", Types.VARCHAR), // OUT
-// new SqlOutParameter("v_excflag", Types.VARCHAR) // OUT
-// );
-// // 2. 封装输入参数
-// Map inParams = new HashMap<>();
-// inParams.put("v_toolid", erpWoCode);
-//
-// // 3. 执行并获取结果 Map
-// Map resultMap = jdbcCall.execute(inParams);
-//
-// // 4. 提取输出参数
-// String excflag = (String) resultMap.get("v_excflag");
-// String excnote = (String) resultMap.get("v_excnote");
-//
-// // 5. 业务判断
-// if ("0".equals(excflag)) {
-// throw new BusinessException("删除工装计划失败" + excnote);
-// }
-// }
+ @Override
+ public String deleteMoldPlan(String erpWoCode) throws BusinessException {
+ SimpleJdbcCall jdbcCall = new SimpleJdbcCall(jdbcTemplate)
+ // 指定存储过程名(包含 DB Link)
+ .withProcedureName("dba_mgr.pro_rbtooldel")
+ // 关闭元数据访问(DBLink 必须加)
+ .withoutProcedureColumnMetaDataAccess()
+ // 显式声明参数
+ .declareParameters(
+ new SqlParameter("v_toolid", Types.VARCHAR), // IN
+ new SqlOutParameter("v_excnote", Types.VARCHAR), // OUT
+ new SqlOutParameter("v_excflag", Types.VARCHAR) // OUT
+ );
+ // 2. 封装输入参数
+ Map inParams = new HashMap<>();
+ inParams.put("v_toolid", erpWoCode);
+
+ // 3. 执行并获取结果 Map
+ Map resultMap = jdbcCall.execute(inParams);
+
+ // 4. 提取输出参数
+ String excflag = (String) resultMap.get("v_excflag");
+ String excnote = (String) resultMap.get("v_excnote");
+
+ // 5. 业务判断
+ if ("0".equals(excflag)) {
+ throw new BusinessException("删除工装计划失败" + excnote);
+ }
+ return excflag;
+ }
}
diff --git a/blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StMoldApplyForServiceImpl.java b/blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StMoldApplyForServiceImpl.java
index a5fc48ef..d3e5f08a 100644
--- a/blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StMoldApplyForServiceImpl.java
+++ b/blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StMoldApplyForServiceImpl.java
@@ -89,7 +89,11 @@ public class StMoldApplyForServiceImpl extends BaseServiceImpl