diff --git a/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java b/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java index 9fa4230c..e3dc1cce 100644 --- a/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java +++ b/blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java @@ -150,6 +150,13 @@ public interface LauncherConstant { return appName.concat(GROUP_NAME); } + /** + * wms + */ + String APPLICATION_WMS_NAME = "blade-wms"; + + + /** * 动态获取nacos地址 * 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 { + +} diff --git a/blade-service/blade-wms/pom.xml b/blade-service/blade-wms/pom.xml index 804f48bb..aea13cf2 100644 --- a/blade-service/blade-wms/pom.xml +++ b/blade-service/blade-wms/pom.xml @@ -15,6 +15,10 @@ jar + + org.springblade + blade-starter-mybatis + org.springblade blade-core-boot @@ -42,6 +46,43 @@ hutool-all 5.8.16 + + org.apache.poi + poi + + + com.alibaba + easyexcel-core + 3.3.4 + compile + + + com.alibaba + easyexcel-core + 3.3.4 + compile + + + org.springblade + blade-starter-excel + + + + org.springblade + blade-user-api + 4.6.0.RELEASE + compile + + + org.springblade + blade-system-api + 4.6.0.RELEASE + compile + + + org.springblade + blade-desk-api + diff --git a/blade-service/blade-wms/src/main/java/org/springblade/wms/WmsApplication.java b/blade-service/blade-wms/src/main/java/org/springblade/wms/WmsApplication.java index 3aef6e77..3e9749cb 100644 --- a/blade-service/blade-wms/src/main/java/org/springblade/wms/WmsApplication.java +++ b/blade-service/blade-wms/src/main/java/org/springblade/wms/WmsApplication.java @@ -1,5 +1,6 @@ -package org.springblade.erpdata; +package org.springblade.wms; +import org.springblade.common.constant.LauncherConstant; import org.springblade.core.cloud.client.BladeCloudApplication; import org.springblade.core.launch.BladeApplication; import org.springblade.core.launch.constant.AppConstant; @@ -13,7 +14,7 @@ import org.springblade.core.launch.constant.AppConstant; public class WmsApplication { public static void main(String[] args) { - BladeApplication.run(AppConstant.APPLICATION_DESK_NAME, WmsApplication.class, args); + BladeApplication.run(LauncherConstant.APPLICATION_WMS_NAME, WmsApplication.class, args); System.out.println("==================="); System.out.println("==================="); System.out.println("=======启动成功!====");