From 1a29662a48818e3658b3e76ec5d35a2249099512 Mon Sep 17 00:00:00 2001 From: sunjianxi <839419401@qq.com> Date: Thu, 30 Apr 2026 10:01:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A8=A1=E5=85=B7=E7=94=B3=E6=8A=A5=E4=B8=8B?= =?UTF-8?q?=E5=8F=91erp-sjx?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../desk/order/pojo/entity/MoldApply.java | 2 + .../erpdata/feign/IErpDataProduceClient.java | 17 ++++-- .../feign/IErpDataProduceClientFallback.java | 6 ++- .../service/impl/MoldApplyServiceImpl.java | 24 +++++++++ .../erpdata/feign/ErpDataProduceClient.java | 8 ++- .../service/IErpDataProduceService.java | 4 +- .../impl/ErpDataProduceServiceImpl.java | 54 +++++++++++++++++++ 7 files changed, 108 insertions(+), 7 deletions(-) diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/MoldApply.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/MoldApply.java index 5d8b2d73..809214d3 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/MoldApply.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/MoldApply.java @@ -104,4 +104,6 @@ public class MoldApply extends BaseEntity { */ @TableField(value = "MEMO") private String memo; + + private Long parentId; } diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataProduceClient.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataProduceClient.java index 5ed2b163..0cfa3bd5 100644 --- a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataProduceClient.java +++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataProduceClient.java @@ -1,19 +1,18 @@ package org.springblade.erpdata.feign; -import com.alibaba.excel.annotation.format.DateTimeFormat; import org.springblade.common.constant.LauncherConstant; import org.springblade.core.tool.api.R; import org.springblade.desk.produce.pojo.dto.MesRbRedoRoutDTO; import org.springblade.erpdata.pojo.vo.*; import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.format.annotation.DateTimeFormat; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import java.util.Date; import java.util.List; -import java.util.Locale; import java.util.Map; /** @@ -26,7 +25,7 @@ import java.util.Map; ) public interface IErpDataProduceClient { - String API_PREFIX = "/feign/erpdata/produce"; + String API_PREFIX = "/feign/client/erpdata/produce"; String QUERY_BATCH = API_PREFIX + "/queryBatch"; String REWORK_ORDER = API_PREFIX + "/loadReworkOrder"; String REWORK_ORDER_SIZE = API_PREFIX + "/loadReworkOrderSize"; @@ -47,6 +46,7 @@ public interface IErpDataProduceClient { String CHECK_COMPLETE = API_PREFIX + "/checkComplete"; String PRO_RBINVIOGEN = API_PREFIX + "/proRbinviogen"; String PRO_RBTRANSFERLEV = API_PREFIX + "/proRbtransferlev"; + String CREATE_MOLD_PLAN = API_PREFIX + "/createMoldPlan"; /** @@ -215,4 +215,15 @@ public interface IErpDataProduceClient { @RequestParam(value = "recDept", required = false) String recDept, @RequestParam(value = "roamNo", required = false) String roamNo, @RequestParam(value = "deliverKey", required = false) String deliverKey, @RequestParam(value = "testQty") Integer testQty, @RequestParam(value = "lossQty") Integer lossQty, @RequestParam(value = "scrapQty") Integer scrapQty); + + @GetMapping(CREATE_MOLD_PLAN) + R createMoldPlan(@RequestParam(value = "partCode", required = false)String partCode, + @RequestParam(value = "moCode", required = false)String moCode, + @RequestParam(value = "plantype", required = false)String plantype, + @RequestParam(value = "quantity", required = false)Integer quantity, + @RequestParam(value = "needDate", required = false) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date needDate, + @RequestParam(value = "level", required = false)String level, + @RequestParam(value = "keeper", required = false)String keeper, + @RequestParam(value = "createMan", required = false)String createMan, + @RequestParam(value = "memo", required = false)String memo); } diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataProduceClientFallback.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataProduceClientFallback.java index da685eba..825824b6 100644 --- a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataProduceClientFallback.java +++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataProduceClientFallback.java @@ -2,7 +2,6 @@ package org.springblade.erpdata.feign; import org.springblade.core.tool.api.R; import org.springblade.desk.produce.pojo.dto.MesRbRedoRoutDTO; -import org.springblade.desk.produce.pojo.entity.OrderDeclare; import org.springblade.erpdata.pojo.vo.*; import org.springframework.stereotype.Component; @@ -119,4 +118,9 @@ public class IErpDataProduceClientFallback implements IErpDataProduceClient { return R.fail("获取数据失败"); } + @Override + public R createMoldPlan(String partCode, String moCode, String plantype, Integer quantity, Date needDate, String level, String keeper, String createMan, String memo) { + return R.fail("获取数据失败"); + } + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/MoldApplyServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/MoldApplyServiceImpl.java index bbab0953..4ac111a0 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/MoldApplyServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/MoldApplyServiceImpl.java @@ -1,14 +1,20 @@ package org.springblade.desk.order.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; +import jakarta.annotation.Resource; import lombok.RequiredArgsConstructor; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.utils.DateUtil; import org.springblade.desk.order.mapper.MoldApplyMapper; +import org.springblade.desk.order.mapper.MoldDemandMapper; import org.springblade.desk.order.pojo.entity.MoldApply; +import org.springblade.desk.order.pojo.entity.MoldDemand; import org.springblade.desk.order.pojo.enums.MoldApplyEnum; import org.springblade.desk.order.service.IMoldApplyService; +import org.springblade.erpdata.feign.IErpDataProduceClient; +import org.springblade.system.cache.UserCache; +import org.springblade.system.pojo.entity.User; import org.springframework.stereotype.Service; import java.util.Date; @@ -23,6 +29,11 @@ import java.util.List; @Service public class MoldApplyServiceImpl extends BaseServiceImpl implements IMoldApplyService { + private final MoldDemandMapper moldDemandMapper; + + @Resource + private IErpDataProduceClient erpDataProduceClient; + @Override public IPage selectPage(IPage page, MoldApply entity) { List dataList = baseMapper.selectPage(page, entity); @@ -46,8 +57,21 @@ public class MoldApplyServiceImpl extends BaseServiceImpl applyList) { + User createMan = UserCache.getUser(AuthUtil.getUserId()); for (MoldApply moldApply : applyList) { + MoldDemand moldDemand = moldDemandMapper.selectById(moldApply.getId()); + moldApply.setId(null); moldApply.setStatus(MoldApplyEnum.STATUS_CREATE.getCode()); + User keeper = UserCache.getUser(moldApply.getKeeper()); + String erpWoCode = erpDataProduceClient.createMoldPlan(moldApply.getPartCode(),moldApply.getToolCode(), + moldApply.getPlanTypeCode(),moldApply.getApplyNum().intValue(), + moldApply.getNeedDate(),moldApply.getQuaLevel(), + keeper.getRealName(),createMan.getRealName(),moldApply.getMemo()).getData(); + moldDemand.setMafStatus(11002); + moldDemand.setErpWoCode(erpWoCode); + moldDemand.setKeeper(moldApply.getKeeper()); + moldDemand.setReleaser(moldApply.getReleaser()); + moldDemandMapper.updateById(moldDemand); } return saveBatch(applyList); diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpDataProduceClient.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpDataProduceClient.java index e2e2b484..4536af50 100644 --- a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpDataProduceClient.java +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpDataProduceClient.java @@ -5,10 +5,8 @@ import lombok.AllArgsConstructor; import org.springblade.core.tenant.annotation.NonDS; import org.springblade.core.tool.api.R; import org.springblade.desk.produce.pojo.dto.MesRbRedoRoutDTO; -import org.springblade.desk.produce.pojo.entity.OrderDeclare; import org.springblade.erpdata.pojo.vo.*; import org.springblade.erpdata.service.IErpDataProduceService; -import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import java.util.Date; @@ -129,4 +127,10 @@ public class ErpDataProduceClient implements IErpDataProduceClient { return R.data(erpDataProduceService.proRbtransferlev(hrCode, ypCode, woCode, cardNo, partCode, batchNo, createMan, createTime, handoverUnit, handoverQty, recDept, roamNo, deliverKey, testQty, lossQty, scrapQty)); } + @Override + public R createMoldPlan(String partCode, String moCode, String plantype, Integer quantity, Date needDate, String level, String keeper, String createMan, String memo) { + return R.data(erpDataProduceService.createMoldPlan(partCode, moCode, plantype, quantity, needDate, level, keeper, createMan, memo)); + } + + } diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpDataProduceService.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpDataProduceService.java index ca301d58..f22f8f11 100644 --- a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpDataProduceService.java +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpDataProduceService.java @@ -3,7 +3,6 @@ package org.springblade.erpdata.service; import org.springblade.desk.produce.pojo.dto.MesRbRedoRoutDTO; import org.springblade.erpdata.pojo.vo.*; -import java.text.ParseException; import java.util.Date; import java.util.List; import java.util.Map; @@ -60,4 +59,7 @@ public interface IErpDataProduceService { ErpReturnDataVO proRbinviogen(String hrCode, String partCode, Integer handoverQty, String prodIdent, String batchNo, String ypCode, String woCode, String handoverUnit, String createMan, String recDept, String memo, String deliverKey, Integer testQty, Integer lossQty, Integer scrapQty); ErpReturnDataVO proRbtransferlev(String hrCode, String ypCode, String woCode, String cardNo, String partCode, String batchNo, String createMan, String createTime, String handoverUnit, Integer handoverQty, String recDept, String roamNo, String deliverKey, Integer testQty, Integer lossQty, Integer scrapQty); + + String createMoldPlan(String partCode, String moCode, String plantype, Integer quantity, Date needDate, String level, + String keeper, String createMan, String memo); } diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpDataProduceServiceImpl.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpDataProduceServiceImpl.java index 664917a4..32493664 100644 --- a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpDataProduceServiceImpl.java +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpDataProduceServiceImpl.java @@ -3,6 +3,7 @@ package org.springblade.erpdata.service.impl; import jakarta.annotation.Resource; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springblade.core.log.exception.ServiceException; import org.springblade.desk.produce.pojo.dto.MesRbRedoRoutDTO; import org.springblade.erpdata.mapper.ErpDataProduceMapper; @@ -465,4 +466,57 @@ public class ErpDataProduceServiceImpl implements IErpDataProduceService { erpReturnDataVO.setExcnote((String) resultMap.get("v_excnote")); return erpReturnDataVO; } + + + @Override + public String createMoldPlan(String partCode, String moCode, String plantype, Integer quantity, Date needDate, String level, + String keeper, String createMan, String memo) { + SimpleJdbcCall jdbcCall = new SimpleJdbcCall(jdbcTemplate) + // 指定存储过程名(包含 DB Link) + .withProcedureName("dba_mgr.pro_rbtoolreqm") + // 建议关闭元数据访问(通过 DB Link 访问时可避免权限/性能问题) + .withoutProcedureColumnMetaDataAccess() + // 显式声明参数 + .declareParameters( + new SqlParameter("v_prtno", Types.VARCHAR), // IN + new SqlParameter("v_toolcode", Types.VARCHAR), // IN + new SqlParameter("v_plntype", Types.VARCHAR), // IN + new SqlParameter("v_tlreqqty", Types.INTEGER), // IN + new SqlParameter("v_tlreqdat", Types.DATE), // IN + new SqlParameter("v_prtmdept", Types.VARCHAR), // IN + new SqlParameter("v_prtlotno", Types.VARCHAR), // IN + new SqlParameter("v_WARCTLR", Types.VARCHAR), // IN + new SqlParameter("v_operator", Types.VARCHAR), // IN + new SqlParameter("v_remark", Types.VARCHAR), // IN + new SqlParameter("v_stat", Types.VARCHAR), // IN + new SqlParameter("v_toolid1", Types.VARCHAR), // IN + new SqlOutParameter("v_excnote", Types.VARCHAR),// OUT + new SqlOutParameter("v_excflag", Types.VARCHAR), // OUT + new SqlOutParameter("v_toolid", Types.VARCHAR) // OUT + ); + // 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", "0"); + inParams.put("v_toolid1", ""); + + + // 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"); + return wxno; + } }