From ab2c3d0c0c2038c9671433e510edec0a99dbe9ac Mon Sep 17 00:00:00 2001 From: sugy <455459989@qq.com> Date: Tue, 20 Jan 2026 11:05:18 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E4=BA=A7=E8=AE=A1=E5=88=92=E5=90=8C?= =?UTF-8?q?=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- blade-ops/blade-job/pom.xml | 6 ++ .../processor/quality/MesRbWoProcessor.java | 43 +++++++++++++ .../desk/order/feign/IApsClient.java | 7 +++ .../erpdata/feign/IErpMesRbWoClient.java | 63 +++++++++++++++++++ .../feign/IErpMesRbWoClientFallback.java | 22 +++++++ .../erpdata/pojo/dto/view/MesRbWo.java | 20 ++++++ .../desk/order/feign/ApsClient.java | 11 ++++ .../erpdata/feign/ErpMesRbWoClient.java | 62 ++++++++++++++++++ .../erpdata/mapper/ErpMesRbWoMapper.java | 21 +++++++ .../erpdata/mapper/ErpMesRbWoMapper.xml | 9 +++ .../erpdata/service/IErpMesRbWoService.java | 22 +++++++ .../service/impl/ErpMesRbWoServiceImpl.java | 33 ++++++++++ 12 files changed, 319 insertions(+) create mode 100644 blade-ops/blade-job/src/main/java/org/springblade/job/processor/quality/MesRbWoProcessor.java create mode 100644 blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbWoClient.java create mode 100644 blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbWoClientFallback.java create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpMesRbWoClient.java create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbWoMapper.java create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbWoMapper.xml create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpMesRbWoService.java create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpMesRbWoServiceImpl.java diff --git a/blade-ops/blade-job/pom.xml b/blade-ops/blade-job/pom.xml index 444800ac..8d7b5745 100644 --- a/blade-ops/blade-job/pom.xml +++ b/blade-ops/blade-job/pom.xml @@ -46,6 +46,12 @@ 4.6.0.RELEASE compile + + org.springblade + blade-erpdata-api + 4.6.0.RELEASE + compile + diff --git a/blade-ops/blade-job/src/main/java/org/springblade/job/processor/quality/MesRbWoProcessor.java b/blade-ops/blade-job/src/main/java/org/springblade/job/processor/quality/MesRbWoProcessor.java new file mode 100644 index 00000000..bcdedd6a --- /dev/null +++ b/blade-ops/blade-job/src/main/java/org/springblade/job/processor/quality/MesRbWoProcessor.java @@ -0,0 +1,43 @@ +package org.springblade.job.processor.quality; + +import lombok.RequiredArgsConstructor; +import org.springblade.desk.order.feign.IApsClient; +import org.springblade.desk.order.pojo.entity.YieldPlan; +import org.springblade.erpdata.feign.IErpMesRbWoClient; +import org.springblade.erpdata.pojo.dto.view.MesRbWo; +import tech.powerjob.worker.core.processor.ProcessResult; +import tech.powerjob.worker.core.processor.TaskContext; +import tech.powerjob.worker.core.processor.sdk.BasicProcessor; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +@RequiredArgsConstructor +public class MesRbWoProcessor implements BasicProcessor { + + private final IErpMesRbWoClient mesRbWoClient; + + private final IApsClient apsClient; + + @Override + public ProcessResult process(TaskContext taskContext) throws Exception { + List mesRbWoList=mesRbWoClient.getList(null).getData(); + List yieldPlanList=new ArrayList<>(); + mesRbWoList.forEach(mesRbWo -> { + YieldPlan yieldPlan=new YieldPlan(); + yieldPlan.setYpCode(mesRbWo.getWono()); + yieldPlan.setPartCode(mesRbWo.getPrtno()); + yieldPlan.setProductType(mesRbWo.getPrtlotno()); + yieldPlan.setPartName(mesRbWo.getPlndept()); + yieldPlan.setPlate(mesRbWo.getWoporqty()); + yieldPlan.setProductIdent(mesRbWo.getWoreqdat()); + yieldPlan.setUseDept(Long.valueOf(mesRbWo.getPlannerdesc())); + yieldPlan.setYpQty(Long.valueOf(mesRbWo.getWototqty())); + yieldPlan.setYpArea(new BigDecimal(mesRbWo.getPrtmdept())); + yieldPlanList.add(yieldPlan); + }); + apsClient.saveList(yieldPlanList); + return new ProcessResult(true); + } +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/feign/IApsClient.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/feign/IApsClient.java index b0eb8824..34eb7f05 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/feign/IApsClient.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/feign/IApsClient.java @@ -1,8 +1,12 @@ package org.springblade.desk.order.feign; import org.springblade.core.launch.constant.AppConstant; +import org.springblade.desk.order.pojo.entity.YieldPlan; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; + +import java.util.List; /** * 排产相关定时任务接口声明 @@ -17,6 +21,7 @@ public interface IApsClient { String API_PREFIX = "/feign/aps/"; String SYNC_ORDER_FROM_OLD_MES = API_PREFIX + "/syncOrderFromOldMes"; + String SYNC_PLAN_FROM_SAVE = API_PREFIX + "/syncPlanSave"; /** * 从旧mes平台同步生产订单 @@ -25,4 +30,6 @@ public interface IApsClient { */ @GetMapping(SYNC_ORDER_FROM_OLD_MES) Boolean syncOrderFromOldMes(); + @PostMapping(SYNC_PLAN_FROM_SAVE) + void saveList(List yieldOrderList); } diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbWoClient.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbWoClient.java new file mode 100644 index 00000000..835f92d9 --- /dev/null +++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbWoClient.java @@ -0,0 +1,63 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.erpdata.feign; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.tool.api.R; +import org.springblade.erpdata.pojo.dto.AllocationDTO; +import org.springblade.erpdata.pojo.dto.view.MesRbWo; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; + +import java.util.List; + +/** + * Feign接口类 + * + * @author Chill + */ +@FeignClient( + value = AppConstant.APPLICATION_SYSTEM_NAME, + fallback = IErpMesRbWoClientFallback.class +) +public interface IErpMesRbWoClient { + + String API_PREFIX = "/feign/erpdata/mesrbwo"; + String GET_LIST = API_PREFIX + "/getList"; + + /** + * 查询烧结配套信息 + * + * @param + * @param entity + * @return + */ + @PostMapping(GET_LIST) + R> getList(MesRbWo entity); + +} diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbWoClientFallback.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbWoClientFallback.java new file mode 100644 index 00000000..3ea6696e --- /dev/null +++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbWoClientFallback.java @@ -0,0 +1,22 @@ +package org.springblade.erpdata.feign; + +import org.springblade.core.tool.api.R; +import org.springblade.erpdata.pojo.dto.view.MesRbWo; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * Feign失败配置 + * + * @author lqk + * @date 2025-12-17 15:13 + */ +@Component +public class IErpMesRbWoClientFallback implements IErpMesRbWoClient { + + @Override + public R> getList(MesRbWo entity) { + return R.fail("获取数据失败"); + } +} diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/view/MesRbWo.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/view/MesRbWo.java index 42dd68c1..56f5fc2e 100644 --- a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/view/MesRbWo.java +++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/view/MesRbWo.java @@ -1,10 +1,30 @@ package org.springblade.erpdata.pojo.dto.view; +import lombok.Data; + /** * 对应ERP中视图 v_mes_rb_wo * * @author lqk * @date 2026-01-16 17:34 */ +@Data public class MesRbWo { + + private String wono; + private String prtno; + private String prtlotno; + private String plndept; + private String woporqty; + private String woreqdat; + private String plannerdesc; + private String wopordat; + private String remark; + private String wototqty; + private String prtmdept; + private String processline; + private String warctlrdesc; + private String kdofplat; + private String processlinedesc; + private String prodline; } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/feign/ApsClient.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/feign/ApsClient.java index 62a8d767..12f9f88d 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/feign/ApsClient.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/feign/ApsClient.java @@ -28,8 +28,11 @@ package org.springblade.desk.order.feign; import io.swagger.v3.oas.annotations.Hidden; import lombok.RequiredArgsConstructor; import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.desk.order.pojo.entity.YieldPlan; import org.springblade.desk.order.service.IYieldOrderService; +import org.springblade.desk.order.service.IYieldPlanService; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; @@ -47,6 +50,8 @@ public class ApsClient implements IApsClient { private final IYieldOrderService yieldOrderService; + private final IYieldPlanService yieldPlanService; + @Override @GetMapping(SYNC_ORDER_FROM_OLD_MES) public Boolean syncOrderFromOldMes() { @@ -58,4 +63,10 @@ public class ApsClient implements IApsClient { return Boolean.TRUE; } + + @Override + @PostMapping(SYNC_PLAN_FROM_SAVE) + public void saveList(List yieldPlanList) { + yieldPlanService.saveOrUpdateBatch(yieldPlanList); + } } diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpMesRbWoClient.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpMesRbWoClient.java new file mode 100644 index 00000000..1dc38a9d --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpMesRbWoClient.java @@ -0,0 +1,62 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * without a commercial license is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for such purposes. Copyright of this software + * remains with BladeX. + *

+ * Using this software signifies agreement to this License, and the software + * must not be used for illegal purposes. + *

+ * THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is + * not liable for any claims arising from secondary or illegal development. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.erpdata.feign; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.v3.oas.annotations.Hidden; +import lombok.AllArgsConstructor; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.core.tool.api.R; +import org.springblade.erpdata.pojo.dto.AllocationDTO; +import org.springblade.erpdata.pojo.dto.view.MesRbWo; +import org.springblade.erpdata.service.IErpDataSearchService; +import org.springblade.erpdata.service.IErpMesRbWoService; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + + +/** + * 字典服务Feign实现类 + * + * @author Chill + */ +@NonDS +@Hidden +@RestController +@AllArgsConstructor +public class ErpMesRbWoClient implements IErpMesRbWoClient { + + private final IErpMesRbWoService erpMesRbWoService; + + + @Override + public R> getList(MesRbWo entity) { + return R.data(erpMesRbWoService.getList(entity)); + } +} diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbWoMapper.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbWoMapper.java new file mode 100644 index 00000000..1a43be8b --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbWoMapper.java @@ -0,0 +1,21 @@ +package org.springblade.erpdata.mapper; + +import com.baomidou.mybatisplus.core.mapper.Mapper; +import org.springblade.erpdata.pojo.dto.view.MesRbWo; + +import java.util.List; + +/** + * Mapper 接口 + * + * @author lqk + */ +public interface ErpMesRbWoMapper extends Mapper { + + /** + * 从ERP视图中获取要同步的生产计划 + * + * @return + */ + List getYieldPlanErpList(); +} diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbWoMapper.xml b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbWoMapper.xml new file mode 100644 index 00000000..6f43ba49 --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbWoMapper.xml @@ -0,0 +1,9 @@ + + + + + + + diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpMesRbWoService.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpMesRbWoService.java new file mode 100644 index 00000000..22ac2527 --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpMesRbWoService.java @@ -0,0 +1,22 @@ +package org.springblade.erpdata.service; + +import org.springblade.erpdata.pojo.dto.view.MesRbWo; + +import java.util.List; + +/** + * ERP数据查询service + * + * @author lqk + */ +public interface IErpMesRbWoService { + + /** + * 查询订单数据 + * + * @param entity + * @return + */ + List getList(MesRbWo entity); + +} diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpMesRbWoServiceImpl.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpMesRbWoServiceImpl.java new file mode 100644 index 00000000..cb51e739 --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpMesRbWoServiceImpl.java @@ -0,0 +1,33 @@ +package org.springblade.erpdata.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.core.tool.api.R; +import org.springblade.erpdata.mapper.ErpDataSearchMapper; +import org.springblade.erpdata.mapper.ErpMesRbWoMapper; +import org.springblade.erpdata.pojo.dto.AllocationDTO; +import org.springblade.erpdata.pojo.dto.view.MesRbWo; +import org.springblade.erpdata.service.IErpDataSearchService; +import org.springblade.erpdata.service.IErpMesRbWoService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @author lqk + * @date 2025-11-26 9:39 + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class ErpMesRbWoServiceImpl implements IErpMesRbWoService { + + private final ErpMesRbWoMapper mesRbWoMapper; + + + @Override + public List getList(MesRbWo entity) { + return mesRbWoMapper.getYieldPlanErpList(); + } +}