From b09758e64cd624b28de31e223ca66d0056943925 Mon Sep 17 00:00:00 2001 From: wusiyu <2015098864@qq.com> Date: Thu, 30 Apr 2026 12:20:41 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=93=E5=BA=93=E7=AE=A1=E7=90=86=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wms/ExecuteStGoodsExtUpdateProcessor.java | 39 ++++++++++++++ .../erpdata/feign/IErpDataWmsClient.java | 10 ++++ .../feign/IErpDataWmsClientFallback.java | 8 +++ .../springblade/wms/feign/WmsTaskClient.java | 29 +++++++++++ .../erpdata/feign/ErpDataWmsClient.java | 7 +++ .../erpdata/mapper/ErpDataWmsMapper.java | 21 ++++++++ .../erpdata/mapper/ErpDataWmsMapper.xml | 51 +++++++++++++++++++ .../erpdata/service/IErpDataWmsService.java | 4 ++ .../service/impl/ErpDataWmsServiceImpl.java | 12 +++++ .../wms/feign/WmsTaskClientImpl.java | 32 ++++++++++++ .../wms/mapper/StExpireSubmissionMapper.xml | 2 +- .../wms/service/IStGoodsExtService.java | 2 + .../impl/StExpireSubmissionServiceImpl.java | 2 + .../service/impl/StGoodsExtServiceImpl.java | 35 ++++++++++++- 14 files changed, 252 insertions(+), 2 deletions(-) create mode 100644 blade-ops/blade-job/src/main/java/org/springblade/job/processor/wms/ExecuteStGoodsExtUpdateProcessor.java create mode 100644 blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/feign/WmsTaskClient.java create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpDataWmsMapper.java create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpDataWmsMapper.xml create mode 100644 blade-service/blade-wms/src/main/java/org/springblade/wms/feign/WmsTaskClientImpl.java diff --git a/blade-ops/blade-job/src/main/java/org/springblade/job/processor/wms/ExecuteStGoodsExtUpdateProcessor.java b/blade-ops/blade-job/src/main/java/org/springblade/job/processor/wms/ExecuteStGoodsExtUpdateProcessor.java new file mode 100644 index 00000000..ab05f157 --- /dev/null +++ b/blade-ops/blade-job/src/main/java/org/springblade/job/processor/wms/ExecuteStGoodsExtUpdateProcessor.java @@ -0,0 +1,39 @@ +package org.springblade.job.processor.wms; + +import jakarta.annotation.Resource; +import lombok.Data; +import lombok.extern.slf4j.Slf4j; +import org.springblade.wms.feign.WmsTaskClient; +import org.springframework.stereotype.Component; +import tech.powerjob.worker.core.processor.ProcessResult; +import tech.powerjob.worker.core.processor.TaskContext; +import tech.powerjob.worker.core.processor.sdk.BasicProcessor; + +/** + * @version 1.0 + * @program: jonhon-mes-svr + * @ClassName ExecuteStGoodsExtUpdateProcessor + * @description: + * @autor: WuSiYu + * @create 2026-04-30 10:08 + **/ +@Component +@Data +@Slf4j +public class ExecuteStGoodsExtUpdateProcessor implements BasicProcessor { + + @Resource + WmsTaskClient wmsTaskClient; + @Override + public ProcessResult process(TaskContext context) throws Exception { + log.info("开始执行物料状态同步erp"); + try { + boolean result = wmsTaskClient.executeGoodsStatusUpdate(); + log.info("===== 物料状态定时更新完成 ====="); + return new ProcessResult(result); + } catch (Exception e) { + log.error("===== 物料状态定时更新异常 =====", e); + return new ProcessResult(false, e.getMessage()); + } + } +} 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 8ed4f502..e97ee8e2 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 @@ -3,6 +3,7 @@ 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.erpdata.pojo.vo.StGoodsExtStatusVO; import org.springblade.wms.pojo.entity.StRealtimeStock; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; @@ -10,6 +11,7 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import java.util.Date; +import java.util.List; /** * @version 1.0 @@ -34,6 +36,8 @@ public interface IErpDataWmsClient { String DELETE_MOLD_PLAN = API_PREFIX + "/deleteMoldPlan"; + String GET_GOODS_EXT_STATUS = API_PREFIX + "/getGoodsExtStatus"; + /** * 到期送检发送erp */ @@ -60,4 +64,10 @@ public interface IErpDataWmsClient { @PostMapping(DELETE_MOLD_PLAN) R deleteMoldPlan(@RequestParam("erpWoCode")String erpWoCode) throws BusinessException; + /** + * 物料状态监控同步 + */ + @PostMapping(GET_GOODS_EXT_STATUS) + R> getGoodsExtStatus(); + } 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 0c1237c5..e6eddd5d 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 @@ -1,12 +1,14 @@ package org.springblade.erpdata.feign; import org.springblade.core.tool.api.R; +import org.springblade.erpdata.pojo.vo.StGoodsExtStatusVO; import org.springblade.wms.pojo.entity.StRealtimeStock; import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import java.util.Date; +import java.util.List; /** * @version 1.0 @@ -39,4 +41,10 @@ public class IErpDataWmsClientFallback implements IErpDataWmsClient{ public R deleteMoldPlan(@RequestParam("erpWoCode")String erpWoCode) { return R.fail("获取数据失败"); } + + @Override + public R> getGoodsExtStatus() { + return R.fail("获取数据失败"); + } + } diff --git a/blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/feign/WmsTaskClient.java b/blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/feign/WmsTaskClient.java new file mode 100644 index 00000000..632ec574 --- /dev/null +++ b/blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/feign/WmsTaskClient.java @@ -0,0 +1,29 @@ +package org.springblade.wms.feign; + +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; + +/** + * @version 1.0 + * @program: jonhon-mes-svr + * @ClassName WmsTaskClient + * @description: + * @autor: WuSiYu + * @create 2026-04-30 10:21 + **/ +@FeignClient( + value = "blade-wms" +) +public interface WmsTaskClient { + + String API_PREFIX = "/feign/client/wms"; + + String EXECUTE_GOODS_STATUS_UPDATE = API_PREFIX + "/executeGoodsStatusUpdate"; + + /** + * 物料状态监控同步erp + */ + @PostMapping(EXECUTE_GOODS_STATUS_UPDATE) + boolean executeGoodsStatusUpdate(); + +} 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 4e1777b1..f9da4681 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 @@ -5,11 +5,13 @@ 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.pojo.vo.StGoodsExtStatusVO; import org.springblade.erpdata.service.IErpDataWmsService; import org.springblade.wms.pojo.entity.StRealtimeStock; import org.springframework.web.bind.annotation.RestController; import java.util.Date; +import java.util.List; /** * @version 1.0 @@ -47,4 +49,9 @@ public class ErpDataWmsClient implements IErpDataWmsClient{ public R deleteMoldPlan(String erpWoCode) throws BusinessException { return R.data(erpDataWmsService.deleteMoldPlan(erpWoCode)); } + + @Override + public R> getGoodsExtStatus() { + return R.data(erpDataWmsService.getGoodsExtStatus()); + } } diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpDataWmsMapper.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpDataWmsMapper.java new file mode 100644 index 00000000..4572ef41 --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpDataWmsMapper.java @@ -0,0 +1,21 @@ +package org.springblade.erpdata.mapper; + +import com.baomidou.mybatisplus.core.mapper.Mapper; +import org.springblade.erpdata.pojo.vo.StGoodsExtStatusVO; + +import java.util.List; + +/** + * @version 1.0 + * @program: jonhon-mes-svr + * @ClassName ErpDataWmsMapper + * @description: + * @autor: WuSiYu + * @create 2026-04-29 16:52 + **/ + +public interface ErpDataWmsMapper extends Mapper { + + List getGoodsExtStatus(); + +} diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpDataWmsMapper.xml b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpDataWmsMapper.xml new file mode 100644 index 00000000..a8895582 --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpDataWmsMapper.xml @@ -0,0 +1,51 @@ + + + + + + + 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 103a0d5f..dd807733 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 @@ -1,9 +1,11 @@ package org.springblade.erpdata.service; import org.springblade.common.exception.BusinessException; +import org.springblade.erpdata.pojo.vo.StGoodsExtStatusVO; import org.springblade.wms.pojo.entity.StRealtimeStock; import java.util.Date; +import java.util.List; /** * @version 1.0 @@ -23,4 +25,6 @@ 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; String deleteMoldPlan(String erpWoCode) throws BusinessException; + + List getGoodsExtStatus(); } 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 5e24db8f..cd305e46 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 @@ -1,9 +1,12 @@ 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.common.exception.BusinessException; +import org.springblade.erpdata.mapper.ErpDataWmsMapper; +import org.springblade.erpdata.pojo.vo.StGoodsExtStatusVO; import org.springblade.erpdata.service.IErpDataWmsService; import org.springblade.wms.pojo.entity.StRealtimeStock; import org.springframework.jdbc.core.JdbcTemplate; @@ -15,6 +18,7 @@ import org.springframework.stereotype.Service; import java.sql.Types; import java.util.Date; import java.util.HashMap; +import java.util.List; import java.util.Map; /** @@ -31,6 +35,9 @@ import java.util.Map; @Service public class ErpDataWmsServiceImpl implements IErpDataWmsService { + @Resource + private final ErpDataWmsMapper erpDataWmsMapper; + private final JdbcTemplate jdbcTemplate; @Override @@ -209,4 +216,9 @@ public class ErpDataWmsServiceImpl implements IErpDataWmsService { return excflag; } + @Override + public List getGoodsExtStatus(){ + return erpDataWmsMapper.getGoodsExtStatus(); + } + } diff --git a/blade-service/blade-wms/src/main/java/org/springblade/wms/feign/WmsTaskClientImpl.java b/blade-service/blade-wms/src/main/java/org/springblade/wms/feign/WmsTaskClientImpl.java new file mode 100644 index 00000000..a5596d9a --- /dev/null +++ b/blade-service/blade-wms/src/main/java/org/springblade/wms/feign/WmsTaskClientImpl.java @@ -0,0 +1,32 @@ +package org.springblade.wms.feign; + +import io.swagger.v3.oas.annotations.Hidden; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.wms.service.IStGoodsExtService; +import org.springframework.web.bind.annotation.RestController; + +/** + * @version 1.0 + * @program: jonhon-mes-svr + * @ClassName WmsTaskClient + * @description: + * @autor: WuSiYu + * @create 2026-04-30 10:20 + **/ +@NonDS +@Hidden +@RestController +@AllArgsConstructor +@Slf4j +public class WmsTaskClientImpl implements WmsTaskClient{ + + private final IStGoodsExtService stGoodsExtService; + + @Override + public boolean executeGoodsStatusUpdate() { + stGoodsExtService.executeGoodsStatusUpdate(); + return true; + } +} diff --git a/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StExpireSubmissionMapper.xml b/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StExpireSubmissionMapper.xml index 670f0608..6307e8c5 100644 --- a/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StExpireSubmissionMapper.xml +++ b/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StExpireSubmissionMapper.xml @@ -32,7 +32,7 @@ se.es_time AS esTime, se.es_man AS esMan, se.submit_status AS submitStatus, - NVL(se.es_qty, 0), + se.es_qty, -- 物料表:物料编码、物料名称 g.goods_code AS goodsCode, g.goods_name AS goodsName, diff --git a/blade-service/blade-wms/src/main/java/org/springblade/wms/service/IStGoodsExtService.java b/blade-service/blade-wms/src/main/java/org/springblade/wms/service/IStGoodsExtService.java index b3734138..f8146cab 100644 --- a/blade-service/blade-wms/src/main/java/org/springblade/wms/service/IStGoodsExtService.java +++ b/blade-service/blade-wms/src/main/java/org/springblade/wms/service/IStGoodsExtService.java @@ -41,5 +41,7 @@ public interface IStGoodsExtService extends BaseService { IPage selectGoodsExtPage(IPage page, Map stGoodsExt); Boolean getSpecial(Long goodsId); + + void executeGoodsStatusUpdate(); } 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 0ad5f1d3..0f7908a7 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 @@ -71,6 +71,8 @@ public class StExpireSubmissionServiceImpl extends BaseServiceImpl implements IStGoodsExtService { + @Resource + private IErpDataWmsClient erpDataWmsClient; + @Override public IPage selectStGoodsExtPage(IPage page, StGoodsExtVO stGoodsExt) { return page.setRecords(baseMapper.selectStGoodsExtPage(page, stGoodsExt)); @@ -58,6 +65,32 @@ public class StGoodsExtServiceImpl extends BaseServiceImpl statusList = erpDataWmsClient.getGoodsExtStatus().getData(); + + // 2. 遍历结果,更新到 st_goods_ext 表 + for (StGoodsExtStatusVO vo : statusList) { + StGoodsExt ext = baseMapper.selectById(vo.getId()); + ext.setGoodsId(vo.getGoodsId()); + ext.setFirstStore(vo.getInvqty1j()); + ext.setLastStore(vo.getLastQty()); + ext.setPlanQty(vo.getPlanqty()); + ext.setGoodsStatus(vo.getGoodsStatus()); +// ext.setUpdateTime(new Date()); +// ext.setUpdateUser(AuthUtil.getUserId()); + + this.updateById(ext); + } + + log.info("===== 物料状态定时更新完成 =====", statusList.size()); + } catch (Exception e) { + log.info("===== 物料状态定时更新异常 =====", e); + } + } @Override public List exportStGoodsExt(Wrapper queryWrapper) {