From 7bc3a8f3368f221a7b89f0a78928c316c19f6630 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=B6=9B?= Date: Sat, 24 Jan 2026 09:39:41 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=BE=AA=E7=8E=AF?= =?UTF-8?q?=E4=BE=9D=E8=B5=96=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/RbProduceManageController.java | 4 +- .../produce/service/IWorkOrderRunService.java | 9 -- .../produce/service/IWorkOrderService.java | 7 + .../service/impl/WorkOrderRunServiceImpl.java | 122 ------------------ .../service/impl/WorkOrderServiceImpl.java | 96 +++++++++++++- 5 files changed, 101 insertions(+), 137 deletions(-) diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/RbProduceManageController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/RbProduceManageController.java index 55f04e5e..b1f5a726 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/RbProduceManageController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/RbProduceManageController.java @@ -31,8 +31,6 @@ public class RbProduceManageController extends BladeController { private final IWorkOrderService workOrderService; - private final IWorkOrderRunService workOrderRunService; - @GetMapping("/page") @ApiOperationSupport(order = 1) @Operation(summary = "车间订单列表分页", description = "传入WorkOrderVO") @@ -76,7 +74,7 @@ public class RbProduceManageController extends BladeController { @ApiOperationSupport(order = 6) @Operation(summary = "获取转外协所需数据", description = "传入produceManageDTO") public R listProProcess(@RequestBody ListProProcessDTO listProProcessDTO) { - return R.data(workOrderRunService.listProProcess(listProProcessDTO)); + return R.data(workOrderService.listProProcess(listProProcessDTO)); } @PostMapping(value = "/transferBill") diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderRunService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderRunService.java index eeb5ddf5..d424a77f 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderRunService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderRunService.java @@ -1,11 +1,7 @@ package org.springblade.desk.produce.service; import org.springblade.core.mp.base.BaseService; -import org.springblade.desk.produce.pojo.dto.ListProProcessDTO; import org.springblade.desk.produce.pojo.entity.WorkOrderRun; -import org.springblade.desk.produce.pojo.entity.WorkPlanRun; - -import java.util.List; /** * 车间订单运行记录表 服务类 @@ -14,9 +10,4 @@ import java.util.List; */ public interface IWorkOrderRunService extends BaseService { - /** - *

方法名: listProProcess

- *

方法描述: 转单加载组装数据

- */ - List listProProcess(ListProProcessDTO listProProcessDTO); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderService.java index c0e3cb27..fdd28089 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderService.java @@ -2,6 +2,7 @@ package org.springblade.desk.produce.service; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.mp.base.BaseService; +import org.springblade.desk.produce.pojo.dto.ListProProcessDTO; import org.springblade.desk.produce.pojo.dto.WorkOrderDTO; import org.springblade.desk.produce.pojo.entity.WorkOrder; import org.springblade.desk.produce.pojo.entity.WorkOrderRun; @@ -36,4 +37,10 @@ public interface IWorkOrderService extends BaseService { boolean updateStatus(List idArr, Integer status, Long userId, String memo); boolean transferBill(List workOrderRuns, List workPlanRuns); + + /** + *

方法名: listProProcess

+ *

方法描述: 转单加载组装数据

+ */ + List listProProcess(ListProProcessDTO listProProcessDTO); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java index 674cd711..8a3885cc 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java @@ -1,29 +1,11 @@ package org.springblade.desk.produce.service.impl; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; -import org.apache.commons.lang3.StringUtils; -import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.base.BaseServiceImpl; -import org.springblade.desk.dashboard.pojo.entity.BsProcessSetEntity; -import org.springblade.desk.dashboard.service.IBsProcessSetService; import org.springblade.desk.produce.mapper.WorkOrderRunMapper; -import org.springblade.desk.produce.pojo.dto.ListProProcessDTO; import org.springblade.desk.produce.pojo.entity.WorkOrderRun; -import org.springblade.desk.produce.pojo.entity.WorkPlan; -import org.springblade.desk.produce.pojo.entity.WorkPlanRun; import org.springblade.desk.produce.service.IWorkOrderRunService; -import org.springblade.desk.produce.service.IWorkPlanService; import org.springframework.stereotype.Service; -import org.springframework.util.CollectionUtils; - -import java.time.Instant; -import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -import static com.alibaba.fastjson2.util.DateUtils.DEFAULT_ZONE_ID; /** * 车间订单运行记录表 服务实现类 @@ -34,108 +16,4 @@ import static com.alibaba.fastjson2.util.DateUtils.DEFAULT_ZONE_ID; @RequiredArgsConstructor public class WorkOrderRunServiceImpl extends BaseServiceImpl implements IWorkOrderRunService { - private final IWorkPlanService prWorkPlanService; - - private final IBsProcessSetService bsProcessSetService; - - @Override - public List listProProcess(ListProProcessDTO listProProcessDTO) { - List woIds = listProProcessDTO.getWoIds(); - Integer runType = listProProcessDTO.getRunType(); - if (CollectionUtils.isEmpty(woIds) || runType == null) { - return null; - } - Long curWoId = woIds.get(0); - List wpList = prWorkPlanService.list(Wrappers.lambdaQuery(WorkPlan.class).eq(WorkPlan::getWoId, curWoId)); - List wprList = new ArrayList<>(wpList.size()); - // 拿出第一个单子对应的可以派外协的工序 - String proName = ""; - for (WorkPlan wp : wpList) { - WorkPlanRun wpr = new WorkPlanRun(); - //验证 - if (!this.checkWp(wp, runType)) { - continue; - } - //转厂内时所有工序自动标记 - if (WorkOrderRun.RUN_TYPE_2.equals(runType)) { - wpr.setHandle(Boolean.TRUE); - } else { - wpr.setHandle(Boolean.FALSE); - } - - //组装工序号和工序id,用于批量验证是否一致 - if (StringUtils.isBlank(proName)) { - proName = wp.getOrders() + "_" + wp.getPpsId(); - } else { - proName = proName + "," + wp.getOrders() + "_" + wp.getPpsId(); - } - wpr.setCaId(wp.getCaId()); - wpr.setStartTime(localDateTimeToDate(wp.getStartTime())); - wpr.setEndTime(localDateTimeToDate(wp.getEndTime())); - wpr.setWpId(wp.getWoId()); - wprList.add(wpr); - } - - //如果是批量操作 - if (woIds.size() > 1) { - //从集合里面提出首单id - woIds.remove(curWoId); - - //验证其他车间订单是否满足条件 - for (Long aLong : woIds) { - wpList = prWorkPlanService.list(Wrappers.lambdaQuery(WorkPlan.class).eq(WorkPlan::getWoId, aLong)); - // 拿出其他单子可以派外协的工序与第一条做对比 - String otherProName = ""; - for (WorkPlan wp : wpList) { - - //验证 - if (!this.checkWp(wp, runType)) { - continue; - } - //组装工序号和工序id,用于批量验证是否一致 - if (StringUtils.isBlank(otherProName)) { - otherProName = wp.getOrders() + "_" + wp.getPpsId(); - } else { - otherProName = otherProName + "," + wp.getOrders() + "_" + wp.getPpsId(); - } - } - if (!proName.equals(otherProName)) { - throw new ServiceException("请选择相同的可转出的工序进行操作!!!"); - } - } - } - return wprList; - } - - private boolean checkWp(WorkPlan wp, Integer runType) { - //不分派工序不能操作 - BsProcessSetEntity processSet = bsProcessSetService.getById(wp.getPpsId()); - if (processSet == null) { - return false; - } - if ("1".equals(processSet.getIsDispatch())) { - return false; - } - //如果是转厂内,则非厂外的工序跳过 - if (WorkOrderRun.RUN_TYPE_2.equals(runType) && "0".equals(wp.getOem())) { - return false; - } - return true; - } - - /** - * LocalDateTime 转 Date - * @param localDateTime - * @return - */ - private Date localDateTimeToDate(LocalDateTime localDateTime) { - // 空值校验,避免空指针异常 - if (localDateTime == null) { - return null; - } - // 1. LocalDateTime + 时区 → ZonedDateTime → Instant - Instant instant = localDateTime.atZone(DEFAULT_ZONE_ID).toInstant(); - // 2. Instant → Date - return Date.from(instant); - } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java index c120d83c..9c0016e6 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java @@ -8,13 +8,13 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.base.BaseServiceImpl; -import org.springblade.core.secure.utils.AuthUtil; import org.springblade.desk.dashboard.pojo.entity.BsProcessSetEntity; import org.springblade.desk.dashboard.service.IBsProcessSetService; import org.springblade.desk.order.pojo.entity.YieldOrder; import org.springblade.desk.order.pojo.enums.YieldOrderEnum; import org.springblade.desk.order.service.IYieldOrderService; import org.springblade.desk.produce.mapper.WorkOrderMapper; +import org.springblade.desk.produce.pojo.dto.ListProProcessDTO; import org.springblade.desk.produce.pojo.dto.WorkOrderDTO; import org.springblade.desk.produce.pojo.entity.*; import org.springblade.desk.produce.pojo.vo.BatchPrepareVO; @@ -27,10 +27,15 @@ import org.springblade.desk.quality.service.IPlanTestService; import org.springblade.desk.quality.service.IWorkPlanItemService; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import java.rmi.ServerException; +import java.time.Instant; +import java.time.LocalDateTime; import java.util.*; +import static com.alibaba.fastjson2.util.DateUtils.DEFAULT_ZONE_ID; + /** * 车间订单表 服务实现类 * @@ -202,7 +207,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl listProProcess(ListProProcessDTO listProProcessDTO) { + List woIds = listProProcessDTO.getWoIds(); + Integer runType = listProProcessDTO.getRunType(); + if (CollectionUtils.isEmpty(woIds) || runType == null) { + return null; + } + Long curWoId = woIds.get(0); + List wpList = workPlanService.list(Wrappers.lambdaQuery(WorkPlan.class).eq(WorkPlan::getWoId, curWoId)); + List wprList = new ArrayList<>(wpList.size()); + // 拿出第一个单子对应的可以派外协的工序 + String proName = ""; + for (WorkPlan wp : wpList) { + WorkPlanRun wpr = new WorkPlanRun(); + //验证 + if (!this.checkWp(wp, runType)) { + continue; + } + //转厂内时所有工序自动标记 + if (WorkOrderRun.RUN_TYPE_2.equals(runType)) { + wpr.setHandle(Boolean.TRUE); + } else { + wpr.setHandle(Boolean.FALSE); + } + + //组装工序号和工序id,用于批量验证是否一致 + if (StringUtils.isBlank(proName)) { + proName = wp.getOrders() + "_" + wp.getPpsId(); + } else { + proName = proName + "," + wp.getOrders() + "_" + wp.getPpsId(); + } + wpr.setCaId(wp.getCaId()); + wpr.setStartTime(localDateTimeToDate(wp.getStartTime())); + wpr.setEndTime(localDateTimeToDate(wp.getEndTime())); + wpr.setWpId(wp.getWoId()); + wprList.add(wpr); + } + + //如果是批量操作 + if (woIds.size() > 1) { + //从集合里面提出首单id + woIds.remove(curWoId); + + //验证其他车间订单是否满足条件 + for (Long aLong : woIds) { + wpList = workPlanService.list(Wrappers.lambdaQuery(WorkPlan.class).eq(WorkPlan::getWoId, aLong)); + // 拿出其他单子可以派外协的工序与第一条做对比 + String otherProName = ""; + for (WorkPlan wp : wpList) { + + //验证 + if (!this.checkWp(wp, runType)) { + continue; + } + //组装工序号和工序id,用于批量验证是否一致 + if (StringUtils.isBlank(otherProName)) { + otherProName = wp.getOrders() + "_" + wp.getPpsId(); + } else { + otherProName = otherProName + "," + wp.getOrders() + "_" + wp.getPpsId(); + } + } + if (!proName.equals(otherProName)) { + throw new ServiceException("请选择相同的可转出的工序进行操作!!!"); + } + } + } + return wprList; + } + + private boolean checkWp(WorkPlan wp, Integer runType) { //不分派工序不能操作 BsProcessSetEntity processSet = bsProcessSetService.getById(wp.getPpsId()); if (processSet == null) { @@ -271,6 +345,22 @@ public class WorkOrderServiceImpl extends BaseServiceImpl Date: Sat, 24 Jan 2026 16:40:35 +0800 Subject: [PATCH 2/2] =?UTF-8?q?erp=E5=90=8C=E6=AD=A5=E7=8E=BB=E7=92=83?= =?UTF-8?q?=E9=A5=BC=E8=AE=A2=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../erp/SynCloseProdPlanProcessor.java | 27 +++++ .../processor/erp/SynGlassCakeProcessor.java | 27 +++++ .../{quality => erp}/SynMesRbWoProcessor.java | 10 +- .../desk/order/feign/IApsClient.java | 9 +- .../desk/order/feign/IApsOrderClient.java | 45 +++++++++ .../desk/order/pojo/entity/YieldPlan.java | 2 +- .../erpdata/feign/IErpMesRbWoClient.java | 8 +- .../feign/IErpMesRbWoClientFallback.java | 14 ++- .../erpdata/pojo/dto/table/Rrbwoerptomes.java | 22 ++++- .../erpdata/pojo/dto/table/Wo.java | 8 +- .../desk/order/feign/ApsClient.java | 9 +- .../desk/order/feign/ApsOrderClient.java | 74 ++++++++++++++ .../erpdata/feign/ErpMesRbWoClient.java | 37 ++++--- .../mapper/ErpRrbwoerptomesMapper.java | 14 +++ .../erpdata/mapper/ErpRrbwoerptomesMapper.xml | 5 + .../erpdata/mapper/ErpWoMapper.java | 14 +++ .../erpdata/mapper/ErpWoMapper.xml | 5 + .../erpdata/service/IErpMesRbWoService.java | 4 + .../service/IErpRrbwoerptomesService.java | 12 +++ .../erpdata/service/IErpWoService.java | 12 +++ .../impl/ErpMesRbPurtosoServiceImpl.java | 8 -- .../service/impl/ErpMesRbWoServiceImpl.java | 98 +++++++++++++++++-- .../impl/ErpRrbwoerptomesServiceImpl.java | 20 ++++ .../service/impl/ErpWoServiceImpl.java | 20 ++++ 24 files changed, 450 insertions(+), 54 deletions(-) create mode 100644 blade-ops/blade-job/src/main/java/org/springblade/job/processor/erp/SynCloseProdPlanProcessor.java create mode 100644 blade-ops/blade-job/src/main/java/org/springblade/job/processor/erp/SynGlassCakeProcessor.java rename blade-ops/blade-job/src/main/java/org/springblade/job/processor/{quality => erp}/SynMesRbWoProcessor.java (61%) create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/feign/IApsOrderClient.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/order/feign/ApsOrderClient.java create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpRrbwoerptomesMapper.java create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpRrbwoerptomesMapper.xml create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpWoMapper.java create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpWoMapper.xml create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpRrbwoerptomesService.java create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpWoService.java create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpRrbwoerptomesServiceImpl.java create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpWoServiceImpl.java diff --git a/blade-ops/blade-job/src/main/java/org/springblade/job/processor/erp/SynCloseProdPlanProcessor.java b/blade-ops/blade-job/src/main/java/org/springblade/job/processor/erp/SynCloseProdPlanProcessor.java new file mode 100644 index 00000000..6da6ad07 --- /dev/null +++ b/blade-ops/blade-job/src/main/java/org/springblade/job/processor/erp/SynCloseProdPlanProcessor.java @@ -0,0 +1,27 @@ +package org.springblade.job.processor.erp; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.erpdata.feign.IErpMesRbWoClient; +import tech.powerjob.worker.core.processor.ProcessResult; +import tech.powerjob.worker.core.processor.TaskContext; +import tech.powerjob.worker.core.processor.sdk.BasicProcessor; + +import java.util.concurrent.CompletableFuture; + +@RequiredArgsConstructor +@Slf4j +public class SynCloseProdPlanProcessor implements BasicProcessor { + + private final IErpMesRbWoClient mesRbWoClient; + + + + @Override + public ProcessResult process(TaskContext taskContext) throws Exception { + log.info("同步关闭生产计划定时任务开始"); + CompletableFuture runFuture = CompletableFuture.runAsync(()-> mesRbWoClient.synCloseProdPlan()); + log.info("同步关闭生产计划定时任务结束"); + return new ProcessResult(true); + } +} diff --git a/blade-ops/blade-job/src/main/java/org/springblade/job/processor/erp/SynGlassCakeProcessor.java b/blade-ops/blade-job/src/main/java/org/springblade/job/processor/erp/SynGlassCakeProcessor.java new file mode 100644 index 00000000..2f973a55 --- /dev/null +++ b/blade-ops/blade-job/src/main/java/org/springblade/job/processor/erp/SynGlassCakeProcessor.java @@ -0,0 +1,27 @@ +package org.springblade.job.processor.erp; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.erpdata.feign.IErpMesRbWoClient; +import tech.powerjob.worker.core.processor.ProcessResult; +import tech.powerjob.worker.core.processor.TaskContext; +import tech.powerjob.worker.core.processor.sdk.BasicProcessor; + +import java.util.concurrent.CompletableFuture; + +@RequiredArgsConstructor +@Slf4j +public class SynGlassCakeProcessor implements BasicProcessor { + + private final IErpMesRbWoClient mesRbWoClient; + + + + @Override + public ProcessResult process(TaskContext taskContext) throws Exception { + log.info("同步玻璃饼订单定时任务开始"); + CompletableFuture runFuture = CompletableFuture.runAsync(()-> mesRbWoClient.synGlassCake()); + log.info("同步玻璃饼订单定时任务结束"); + return new ProcessResult(true); + } +} diff --git a/blade-ops/blade-job/src/main/java/org/springblade/job/processor/quality/SynMesRbWoProcessor.java b/blade-ops/blade-job/src/main/java/org/springblade/job/processor/erp/SynMesRbWoProcessor.java similarity index 61% rename from blade-ops/blade-job/src/main/java/org/springblade/job/processor/quality/SynMesRbWoProcessor.java rename to blade-ops/blade-job/src/main/java/org/springblade/job/processor/erp/SynMesRbWoProcessor.java index 52a164e5..e874e7bc 100644 --- a/blade-ops/blade-job/src/main/java/org/springblade/job/processor/quality/SynMesRbWoProcessor.java +++ b/blade-ops/blade-job/src/main/java/org/springblade/job/processor/erp/SynMesRbWoProcessor.java @@ -1,12 +1,16 @@ -package org.springblade.job.processor.quality; +package org.springblade.job.processor.erp; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springblade.erpdata.feign.IErpMesRbWoClient; import tech.powerjob.worker.core.processor.ProcessResult; import tech.powerjob.worker.core.processor.TaskContext; import tech.powerjob.worker.core.processor.sdk.BasicProcessor; +import java.util.concurrent.CompletableFuture; + @RequiredArgsConstructor +@Slf4j public class SynMesRbWoProcessor implements BasicProcessor { private final IErpMesRbWoClient mesRbWoClient; @@ -15,7 +19,9 @@ public class SynMesRbWoProcessor implements BasicProcessor { @Override public ProcessResult process(TaskContext taskContext) throws Exception { - mesRbWoClient.synMesRbWo(); + log.info("同步生产订单定时任务开始"); + CompletableFuture runFuture = CompletableFuture.runAsync(()-> mesRbWoClient.synMesRbWo()); + log.info("同步生产订单定时任务结束"); 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 34eb7f05..136bcdaa 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,12 +1,8 @@ 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; /** * 排产相关定时任务接口声明 @@ -21,7 +17,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平台同步生产订单 @@ -30,6 +26,5 @@ 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-desk-api/src/main/java/org/springblade/desk/order/feign/IApsOrderClient.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/feign/IApsOrderClient.java new file mode 100644 index 00000000..6e68eb28 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/feign/IApsOrderClient.java @@ -0,0 +1,45 @@ +package org.springblade.desk.order.feign; + +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.desk.dashboard.pojo.entity.DsCraftEntity; +import org.springblade.desk.dashboard.pojo.entity.DsPartEntity; +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; + +/** + * 排产相关定时任务接口声明 + * + * @author lqk + */ +@FeignClient( + value = AppConstant.APPLICATION_DESK_NAME +) +public interface IApsOrderClient { + + String API_PREFIX = "/feign/aps/order"; + + + String SYNC_PLAN_FROM_SAVE = API_PREFIX + "/syncPlanSave"; + String GET_CRAFT_LIST = API_PREFIX + "/getDsCraftList"; + String GET_PLAN_LIST = API_PREFIX + "/getPlanList"; + String GET_PART_LIST = API_PREFIX + "/getPartList"; + String UPDATE_BY_ID = API_PREFIX + "/updateById"; + String CLOSE_PLAN_LIST = API_PREFIX + "/getClosePlanList"; + + @PostMapping(SYNC_PLAN_FROM_SAVE) + void saveList(List yieldOrderList); + @GetMapping(GET_CRAFT_LIST) + List getDsCraftList(); + @GetMapping(GET_PLAN_LIST) + List getPlanList(); + @GetMapping(GET_PART_LIST) + List getPartList(List partCodeList); + @GetMapping(UPDATE_BY_ID) + void updateById(YieldPlan yieldPlan); + @GetMapping(CLOSE_PLAN_LIST) + List getClosePlanList(); +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/YieldPlan.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/YieldPlan.java index 281232ff..f7ddf5e8 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/YieldPlan.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/entity/YieldPlan.java @@ -80,7 +80,7 @@ public class YieldPlan extends BaseEntity { * 面积(㎡) */ @TableField(value = "YP_AREA") - private BigDecimal ypArea; + private Double ypArea; /** * 需求交期 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 index ba8a9a7b..bb418a62 100644 --- 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 @@ -35,5 +35,11 @@ public interface IErpMesRbWoClient { /** * 同步生产计划数据 */ - void synMesRbWo(); + R synMesRbWo(); + /** + * 同步玻璃饼订单 + */ + R synGlassCake(); + + RsynCloseProdPlan(); } 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 index 71e79991..e89b43a5 100644 --- 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 @@ -21,7 +21,17 @@ public class IErpMesRbWoClientFallback implements IErpMesRbWoClient { } @Override - public void synMesRbWo() { - R.fail("获取数据失败"); + public R synMesRbWo() { + return R.fail("获取数据失败"); + } + + @Override + public R synGlassCake() { + return R.fail("获取数据失败"); + } + + @Override + public R synCloseProdPlan() { + return R.fail("获取数据失败"); } } diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/table/Rrbwoerptomes.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/table/Rrbwoerptomes.java index 5fdd7ecb..852b0969 100644 --- a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/table/Rrbwoerptomes.java +++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/table/Rrbwoerptomes.java @@ -1,6 +1,13 @@ package org.springblade.erpdata.pojo.dto.table; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + +import java.util.Date; /** * 对应ERP中表 t_rbwoerptomes @@ -9,13 +16,18 @@ import lombok.Data; * @date 2026-01-16 17:32 */ @Data -public class Rrbwoerptomes { +@TableName("t_rbwoerptomes") +public class Rrbwoerptomes extends BaseEntity { - private String wono; //工作订单号 + @TableField(value = "WONO") + private String woNo; //工作订单号 - private String process_line_desc; //工艺路线明细 + @TableField(value = "PROCESS_LINE_DESC") + private String processLineDesc; //工艺路线明细 - private String readtime; //读取时间 + @TableField(value = "READTIME") + private Date readTime; //读取时间 - private String read_content; //读取内容 + @TableField(value = "READ_CONTENT") + private String readContent; //读取内容 } diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/table/Wo.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/table/Wo.java index a1663428..adb20205 100644 --- a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/table/Wo.java +++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/table/Wo.java @@ -1,6 +1,9 @@ package org.springblade.erpdata.pojo.dto.table; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; +import org.springblade.core.mp.base.BaseEntity; /** * 对应ERP中表 t_wo @@ -9,8 +12,10 @@ import lombok.Data; * @date 2026-01-16 17:32 */ @Data -public class Wo { +@TableName("t_wo") +public class Wo extends BaseEntity { + @TableField(value = "WONO") private String wono; //工作订单 private String splcode; //批次号 @@ -151,7 +156,6 @@ public class Wo { private String wochkqty; //抽检数 - private String id; //新系统同步id private String dataflag; //新老系统数据标识: 0-老系统,1-新系统 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 12f9f88d..0f529ffc 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 @@ -25,9 +25,12 @@ */ package org.springblade.desk.order.feign; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import io.swagger.v3.oas.annotations.Hidden; import lombok.RequiredArgsConstructor; import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.desk.dashboard.pojo.entity.DsCraftEntity; +import org.springblade.desk.dashboard.service.IDsCraftService; import org.springblade.desk.order.pojo.entity.YieldPlan; import org.springblade.desk.order.service.IYieldOrderService; import org.springblade.desk.order.service.IYieldPlanService; @@ -50,7 +53,6 @@ public class ApsClient implements IApsClient { private final IYieldOrderService yieldOrderService; - private final IYieldPlanService yieldPlanService; @Override @GetMapping(SYNC_ORDER_FROM_OLD_MES) @@ -64,9 +66,4 @@ 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-desk/src/main/java/org/springblade/desk/order/feign/ApsOrderClient.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/feign/ApsOrderClient.java new file mode 100644 index 00000000..f8d0e83c --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/feign/ApsOrderClient.java @@ -0,0 +1,74 @@ +package org.springblade.desk.order.feign; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import io.swagger.v3.oas.annotations.Hidden; +import lombok.RequiredArgsConstructor; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.desk.dashboard.pojo.entity.DsCraftEntity; +import org.springblade.desk.dashboard.pojo.entity.DsPartEntity; +import org.springblade.desk.dashboard.service.IDsCraftService; +import org.springblade.desk.dashboard.service.IDsPartService; +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; + +/** + * Feign 排产相关定时任务接口 + * + * @author Chill + */ +@NonDS +@Hidden() +@RestController +@RequiredArgsConstructor +public class ApsOrderClient implements IApsOrderClient { + + private final IYieldPlanService yieldPlanService; + + private final IDsCraftService dsCraftService; + + private final IDsPartService dsPartService; + + @Override + @PostMapping(SYNC_PLAN_FROM_SAVE) + public void saveList(List yieldPlanList) { + yieldPlanService.saveOrUpdateBatch(yieldPlanList); + } + + @Override + public List getDsCraftList() { + return dsCraftService.list(); + } + + @Override + public List getPlanList() { + return yieldPlanService.list(new QueryWrapper().lambda() + .eq(YieldPlan::getIsDeleted, 0).eq(YieldPlan::getPlanType, 12002) + .eq(YieldPlan::getGenerateGlassCake, 0)); + } + + @Override + public List getPartList(List partCodeList) { + return dsPartService.list(new QueryWrapper().lambda() + .in(DsPartEntity::getPartCode, partCodeList) + .like(DsPartEntity::getPartName, "玻璃")); + } + + @Override + public void updateById(YieldPlan yieldPlan) { + yieldPlanService.updateById(yieldPlan); + } + + @Override + public List getClosePlanList() { + return yieldPlanService.list(new QueryWrapper().lambda() + .lt(YieldPlan::getStatus, "10015") + .orderByAsc(YieldPlan::getCheckCloseTime) + .last("limit 1000")); + } +} 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 index a653eab5..09b02823 100644 --- 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 @@ -22,16 +22,29 @@ import java.util.List; @AllArgsConstructor public class ErpMesRbWoClient implements IErpMesRbWoClient { - private final IErpMesRbWoService erpMesRbWoService; - - - @Override - public R> getList(MesRbWo entity) { - return R.data(erpMesRbWoService.getList(entity)); - } - - @Override - public void synMesRbWo() { - erpMesRbWoService.synMesRbWo(); - } + private final IErpMesRbWoService erpMesRbWoService; + + + @Override + public R> getList(MesRbWo entity) { + return R.data(erpMesRbWoService.getList(entity)); + } + + @Override + public R synMesRbWo() { + erpMesRbWoService.synMesRbWo(); + return R.success(); + } + + @Override + public R synGlassCake() { + erpMesRbWoService.synGlassCake(); + return R.success(); + } + + @Override + public R synCloseProdPlan() { + erpMesRbWoService.synCloseProdPlan(); + return R.success(); + } } diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpRrbwoerptomesMapper.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpRrbwoerptomesMapper.java new file mode 100644 index 00000000..3b8ec8ed --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpRrbwoerptomesMapper.java @@ -0,0 +1,14 @@ +package org.springblade.erpdata.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.erpdata.pojo.dto.table.Rrbwoerptomes; + +/** + * Mapper 接口 + * + * @author lqk + */ +public interface ErpRrbwoerptomesMapper extends BaseMapper { + + +} diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpRrbwoerptomesMapper.xml b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpRrbwoerptomesMapper.xml new file mode 100644 index 00000000..b05474a9 --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpRrbwoerptomesMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpWoMapper.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpWoMapper.java new file mode 100644 index 00000000..8e1a0956 --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpWoMapper.java @@ -0,0 +1,14 @@ +package org.springblade.erpdata.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.erpdata.pojo.dto.table.Wo; + +/** + * Mapper 接口 + * + * @author lqk + */ +public interface ErpWoMapper extends BaseMapper { + + +} diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpWoMapper.xml b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpWoMapper.xml new file mode 100644 index 00000000..099aff49 --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpWoMapper.xml @@ -0,0 +1,5 @@ + + + + + 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 index 06426f9f..c57565b2 100644 --- 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 @@ -22,4 +22,8 @@ public interface IErpMesRbWoService { * 同步生产计划数据 */ void synMesRbWo(); + + void synGlassCake(); + + void synCloseProdPlan(); } diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpRrbwoerptomesService.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpRrbwoerptomesService.java new file mode 100644 index 00000000..ff25f33b --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpRrbwoerptomesService.java @@ -0,0 +1,12 @@ +package org.springblade.erpdata.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.erpdata.pojo.dto.table.Rrbwoerptomes; + +/** + * ERP数据查询service + * + * @author lqk + */ +public interface IErpRrbwoerptomesService extends BaseService { +} diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpWoService.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpWoService.java new file mode 100644 index 00000000..13d09ed1 --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpWoService.java @@ -0,0 +1,12 @@ +package org.springblade.erpdata.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.erpdata.pojo.dto.table.Wo; + +/** + * ERP数据查询service + * + * @author lqk + */ +public interface IErpWoService extends BaseService { +} diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpMesRbPurtosoServiceImpl.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpMesRbPurtosoServiceImpl.java index 2e80b846..09c51f9c 100644 --- a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpMesRbPurtosoServiceImpl.java +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpMesRbPurtosoServiceImpl.java @@ -3,18 +3,10 @@ package org.springblade.erpdata.service.impl; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.desk.order.feign.IApsClient; -import org.springblade.desk.order.pojo.entity.YieldPlan; import org.springblade.erpdata.mapper.ErpMesRbPurtosoMapper; -import org.springblade.erpdata.mapper.ErpMesRbWoMapper; -import org.springblade.erpdata.pojo.dto.view.MesRbWo; import org.springblade.erpdata.service.IErpMesRbPurtosoService; -import org.springblade.erpdata.service.IErpMesRbWoService; import org.springframework.stereotype.Service; -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.List; - /** * @author lqk * @date 2025-11-26 9:39 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 index cbb8dfed..cde526a7 100644 --- 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 @@ -1,16 +1,24 @@ package org.springblade.erpdata.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springblade.desk.order.feign.IApsClient; +import org.springblade.desk.dashboard.pojo.entity.DsCraftEntity; +import org.springblade.desk.dashboard.pojo.entity.DsPartEntity; +import org.springblade.desk.order.feign.IApsOrderClient; import org.springblade.desk.order.pojo.entity.YieldPlan; +import org.springblade.desk.order.pojo.enums.YieldPlanEnum; import org.springblade.erpdata.mapper.ErpMesRbWoMapper; +import org.springblade.erpdata.pojo.dto.table.Rrbwoerptomes; +import org.springblade.erpdata.pojo.dto.table.Wo; import org.springblade.erpdata.pojo.dto.view.MesRbWo; import org.springblade.erpdata.service.IErpMesRbWoService; +import org.springblade.erpdata.service.IErpRrbwoerptomesService; +import org.springblade.erpdata.service.IErpWoService; import org.springframework.stereotype.Service; -import java.math.BigDecimal; import java.util.ArrayList; +import java.util.Date; import java.util.List; /** @@ -24,7 +32,11 @@ public class ErpMesRbWoServiceImpl implements IErpMesRbWoService { private final ErpMesRbWoMapper mesRbWoMapper; - private final IApsClient apsClient; + private final IApsOrderClient apsOrderClient; + + private final IErpRrbwoerptomesService rbwoerptomesService; + + private final IErpWoService woService; @Override @@ -44,27 +56,97 @@ public class ErpMesRbWoServiceImpl implements IErpMesRbWoService { * INTO v_product_type, v_part_name, v_po_area, v_craft_way, v_config_no * FROM ds_part a WHERE a.part_code = v_prtno; */ + List dsPartList=new ArrayList<>();//todo 获取零件信息 + List partCodeList=dsPartList.stream().map(x->x.getPartCode()).toList(); List yieldPlanList=new ArrayList<>(); + //若零件不为空, 验证零件是否存在二级零件工艺 + List dsCraftList= apsOrderClient.getDsCraftList(); + List partIdList=dsCraftList.stream().map(x->x.getPartId()).toList(); + final Long[] partId = {0L}; + List rbwoerptomesList=new ArrayList<>(); mesRbWoList.forEach(mesRbWo -> { YieldPlan yieldPlan=new YieldPlan(); + //b1. 根据零件号从`DS_PART`表中查询零件信息 + dsPartList.forEach(dsPart -> { + if(dsPartList!=null&&dsPart.getPartCode().equals(mesRbWo.getPrtno())){ + yieldPlan.setProductType(dsPart.getProductType()); + yieldPlan.setPartName(dsPart.getPartName()); + yieldPlan.setYpArea(dsPart.getArea()); + yieldPlan.setPrimaryCraft(dsPart.getCraftWay()); + partId[0] =dsPart.getId(); + } + }); yieldPlan.setPlanType(12001L);//赋值默认值12001 if(mesRbWo.getProcesslinedesc().contains("封接") ||"LX08-05-028,LX08-05-030,LX08-05-031".contains(mesRbWo.getProcessline())){ yieldPlan.setPlanType(12002L); yieldPlan.setPlate("烧结电镀"); } + //b3. 状态字段赋值,新mes中对应字段(status) + yieldPlan.setStatus(YieldPlanEnum.STATUS_DISPATCHED.getCode()); + yieldPlan.setRoamNo(""); + //1. 若零件为空 + if(!partCodeList.contains(mesRbWo.getPrtno())){ + yieldPlan.setStatus(YieldPlanEnum.STATUS_NO_CRAFT.getCode()); + yieldPlan.setRoamNo("无零件信息!!"); + }else {//2. 若零件不为空, 验证零件是否存在二级零件工艺 + if(partId==null||partId[0]==null||(partId!=null&&partId[0]!=null&&!partIdList.contains(partId[0]))){ + yieldPlan.setStatus(YieldPlanEnum.STATUS_NO_CRAFT.getCode()); + yieldPlan.setRoamNo("无二级工艺信息!!"); + } + } yieldPlan.setYpCode(mesRbWo.getWono()); yieldPlan.setPartCode(mesRbWo.getPrtno()); - yieldPlan.setProductType(mesRbWo.getPrtlotno()); - yieldPlan.setPartName(mesRbWo.getPlndept()); - yieldPlan.setPlate(mesRbWo.getKdofplat()); yieldPlan.setProductIdent(mesRbWo.getWoreqdat()); yieldPlan.setYpQty(Long.valueOf(mesRbWo.getWototqty())); - yieldPlan.setYpArea(new BigDecimal(mesRbWo.getPrtmdept())); yieldPlan.setYpQty(Long.valueOf(mesRbWo.getWototqty())); yieldPlan.setDemandDate(mesRbWo.getWopordat()); yieldPlanList.add(yieldPlan); + //插入记录表 + Rrbwoerptomes rbwoerptomes=new Rrbwoerptomes(); + rbwoerptomes.setWoNo(mesRbWo.getWono()); + rbwoerptomes.setProcessLineDesc(mesRbWo.getProcesslinedesc()); + rbwoerptomes.setReadTime(new Date()); + rbwoerptomes.setReadContent(mesRbWo.getProcessline()); + rbwoerptomesList.add(rbwoerptomes); + }); + apsOrderClient.saveList(yieldPlanList); + rbwoerptomesService.saveOrUpdateBatch(rbwoerptomesList); + } + + @Override + public void synGlassCake() { + List yieldPlanList=apsOrderClient.getPlanList(); + List partCodeList=yieldPlanList.stream().map(x->x.getPartCode()).toList(); + //b1. 查询该计划的零件是否是玻璃相关的零件列表(sub_cursor) + List dsPartList=apsOrderClient.getPartList(partCodeList);// 获取零件信息 + List partList=dsPartList.stream().map(x->x.getPartCode()).toList(); + yieldPlanList.forEach(yieldPlan -> { + if(!partList.contains(yieldPlan.getPartCode())){ + yieldPlan.setGenerateGlassCake(1); + yieldPlan.setId(yieldPlan.getId()); + apsOrderClient.updateById(yieldPlan); + } + }); + + } + /** + * 同步关闭计划 + */ + @Override + public void synCloseProdPlan() { + List yieldPlanList=apsOrderClient.getClosePlanList(); + yieldPlanList.forEach(yieldPlan -> { + Wo wo=woService.getOne(new QueryWrapper() + .eq("WONO",yieldPlan.getYpCode())); + if(wo!=null){ + yieldPlan.setCheckCloseTime(new Date()); + apsOrderClient.updateById(yieldPlan); + }else { + yieldPlan.setStatus(YieldPlanEnum.STATUS_COMPLETED.getCode()); + yieldPlan.setCheckCloseTime(new Date()); + apsOrderClient.updateById(yieldPlan); + } }); - apsClient.saveList(yieldPlanList); } } diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpRrbwoerptomesServiceImpl.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpRrbwoerptomesServiceImpl.java new file mode 100644 index 00000000..3581de55 --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpRrbwoerptomesServiceImpl.java @@ -0,0 +1,20 @@ +package org.springblade.erpdata.service.impl; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.erpdata.mapper.ErpRrbwoerptomesMapper; +import org.springblade.erpdata.pojo.dto.table.Rrbwoerptomes; +import org.springblade.erpdata.service.IErpRrbwoerptomesService; +import org.springframework.stereotype.Service; + +/** + * @author lqk + * @date 2025-11-26 9:39 + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class ErpRrbwoerptomesServiceImpl extends BaseServiceImpl implements IErpRrbwoerptomesService { + +} diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpWoServiceImpl.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpWoServiceImpl.java new file mode 100644 index 00000000..04793664 --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpWoServiceImpl.java @@ -0,0 +1,20 @@ +package org.springblade.erpdata.service.impl; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.erpdata.mapper.ErpWoMapper; +import org.springblade.erpdata.pojo.dto.table.Wo; +import org.springblade.erpdata.service.IErpWoService; +import org.springframework.stereotype.Service; + +/** + * @author lqk + * @date 2025-11-26 9:39 + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class ErpWoServiceImpl extends BaseServiceImpl implements IErpWoService { + +}