From a530b9e774fb657d283927ec7d9e396c930b67ef Mon Sep 17 00:00:00 2001 From: wusiyu <2015098864@qq.com> Date: Tue, 16 Jun 2026 13:41:17 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E4=BB=93=E5=BA=93=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/org/springblade/wms/pojo/vo/StGoodsVO.java | 3 +++ .../main/java/org/springblade/wms/mapper/StGoodsMapper.xml | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/pojo/vo/StGoodsVO.java b/blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/pojo/vo/StGoodsVO.java index f51e76601..4ab9af3e6 100644 --- a/blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/pojo/vo/StGoodsVO.java +++ b/blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/pojo/vo/StGoodsVO.java @@ -30,4 +30,7 @@ public class StGoodsVO extends StGoods { @Schema(description = "库房ID(关联st_storehouse表)") private Long shId; + @TableField(exist = false) + private String goodsCodeAndGoodsName; + } diff --git a/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StGoodsMapper.xml b/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StGoodsMapper.xml index 2eb30708a..0af9a2cbc 100644 --- a/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StGoodsMapper.xml +++ b/blade-service/blade-wms/src/main/java/org/springblade/wms/mapper/StGoodsMapper.xml @@ -115,6 +115,11 @@ ON g.goods_code = sl.goods_code WHERE g.is_deleted = 0 AND g.used = 1 + + AND (g.goods_code LIKE '%' || #{stGoods.goodsCodeAndGoodsName} || '%' + OR g.goods_name LIKE '%' || #{stGoods.goodsCodeAndGoodsName} || '%') + + AND g.goods_code LIKE '%' || #{stGoods.goodsCode} || '%' From 39958698d27f209a635667432f73a7da5e14c6aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=B6=9B?= Date: Tue, 16 Jun 2026 13:57:10 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=88=86=E6=B4=BE?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E8=AE=A2=E5=8D=95=E5=AE=9A=E6=97=B6=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E5=88=86=E6=B4=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../YieldOrderAutoDispatchProcessor.java | 30 +++++++++++++++++++ .../desk/produce/feign/IApsProduceClient.java | 11 +++++-- .../order/service/IYieldOrderService.java | 7 +++++ .../service/impl/YieldOrderServiceImpl.java | 9 +++++- .../desk/produce/feign/ApsProduceClient.java | 16 ++++++++++ 5 files changed, 70 insertions(+), 3 deletions(-) create mode 100644 blade-ops/blade-job/src/main/java/org/springblade/job/processor/produce/YieldOrderAutoDispatchProcessor.java diff --git a/blade-ops/blade-job/src/main/java/org/springblade/job/processor/produce/YieldOrderAutoDispatchProcessor.java b/blade-ops/blade-job/src/main/java/org/springblade/job/processor/produce/YieldOrderAutoDispatchProcessor.java new file mode 100644 index 000000000..58e51241b --- /dev/null +++ b/blade-ops/blade-job/src/main/java/org/springblade/job/processor/produce/YieldOrderAutoDispatchProcessor.java @@ -0,0 +1,30 @@ +package org.springblade.job.processor.produce; + +import jakarta.annotation.Resource; +import lombok.Data; +import lombok.extern.slf4j.Slf4j; +import org.springblade.desk.produce.feign.IApsProduceClient; +import org.springframework.stereotype.Component; +import tech.powerjob.worker.core.processor.ProcessResult; +import tech.powerjob.worker.core.processor.TaskContext; +import tech.powerjob.worker.core.processor.sdk.BasicProcessor; + +/** + * 异常订单自动分派 + * + * @author litao + */ +@Component +@Data +@Slf4j +public class YieldOrderAutoDispatchProcessor implements BasicProcessor { + + @Resource + private IApsProduceClient client; + + @Override + public ProcessResult process(TaskContext context) throws Exception { + log.info("异常订单自动分派开始"); + return new ProcessResult(client.yieldOrderAutoDispatch()); + } +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/feign/IApsProduceClient.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/feign/IApsProduceClient.java index 227bbd5a6..39a748809 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/feign/IApsProduceClient.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/feign/IApsProduceClient.java @@ -18,8 +18,7 @@ public interface IApsProduceClient { String SYNC_ORDER_FROM_OLD_MES = API_PREFIX + "/syncOrderFromOldMes"; String CONFIRM_ORDER = API_PREFIX + "/confirmOrder"; - - + String YIELD_ORDER_AUTO_DISPATCH = API_PREFIX + "/yieldOrderAutoDispatch"; /** * 从旧mes平台同步生产订单 * @@ -35,4 +34,12 @@ public interface IApsProduceClient { */ @GetMapping(CONFIRM_ORDER) boolean confirmOrder(); + + /** + * 异常订单自动分派 + * + * @return + */ + @GetMapping(YIELD_ORDER_AUTO_DISPATCH) + boolean yieldOrderAutoDispatch(); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderService.java index 34cf19854..e46ee4d5a 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderService.java @@ -340,4 +340,11 @@ public interface IYieldOrderService extends BaseService { YieldOrder getByCardNo(String cardNo); List getSubCompleteData(YieldOrder yieldOrder); + + /** + * 生产订单自动分派 + * @param yieldOrder + * @return + */ + List yieldOrderAutoDispatch(YieldOrder yieldOrder); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java index 408ef1825..49856e7a0 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java @@ -1000,6 +1000,8 @@ public class YieldOrderServiceImpl extends BaseServiceImpl yieldOrderAutoDispatch(YieldOrder yieldOrder) { boolean result = this.verifyYieldOrderResource(yieldOrder); if (result) { List list = yieldOrderCraftService.list(Wrappers.lambdaQuery().eq(YieldOrderCraft::getYoId, yieldOrder.getId()).orderByAsc(YieldOrderCraft::getProcessNo)); - list.stream().forEach(craft -> { + list.forEach(craft -> { if (craft.getWorkCenterId() != null) { WorkCenter workCenter = workCenterService.getById(craft.getWorkCenterId()); craft.setWorkCenterName(workCenter.getWcName()); diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/feign/ApsProduceClient.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/feign/ApsProduceClient.java index a049f07f9..4c7640014 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/feign/ApsProduceClient.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/produce/feign/ApsProduceClient.java @@ -13,6 +13,7 @@ import org.springframework.web.bind.annotation.RestController; import java.time.LocalDateTime; import java.time.ZoneId; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -61,4 +62,19 @@ public class ApsProduceClient implements IApsProduceClient { return true; } + @Override + public boolean yieldOrderAutoDispatch() { + List orders = yieldOrderService.list(Wrappers.lambdaQuery().eq(YieldOrder::getValidationResult, YieldOrderEnum.VALIDATION_RESULT_LESS_RESOURCE.getCode())); + log.info("异常订单待自动分派数量:{}", orders.size()); + for (YieldOrder yieldOrder : orders) { + try { + yieldOrderService.yieldOrderAutoDispatch(yieldOrder); + } catch (Exception e) { + log.error("异常订单自动分派失败,流程卡号{},错误信息为{}", yieldOrder.getCardNo(), e.getMessage()); + } + } + log.info("异常订单自动分派结束"); + return true; + } + } From f42c78b1ff12652d2a76fc03b9ef61f07ef58ffe Mon Sep 17 00:00:00 2001 From: liweidong-hj Date: Tue, 16 Jun 2026 14:01:26 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E9=95=80=E5=B1=82=E7=89=A9=E6=96=99?= =?UTF-8?q?=E4=BA=8C=E7=BA=A7=E5=AE=A1=E6=89=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../enums/MesApprovalRecordBizTypeEnum.java | 1 + .../impl/PlateGoodsApplyServiceImpl.java | 18 ++++++++++++++++++ .../impl/PlateGoodsRecordServiceImpl.java | 8 ++++++++ 3 files changed, 27 insertions(+) diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/enums/MesApprovalRecordBizTypeEnum.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/enums/MesApprovalRecordBizTypeEnum.java index 4a47fd517..4b3738e05 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/enums/MesApprovalRecordBizTypeEnum.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/enums/MesApprovalRecordBizTypeEnum.java @@ -22,6 +22,7 @@ public enum MesApprovalRecordBizTypeEnum { BATCH_PLANNING_CATEGORY("槽液计划类/审核"), BATCH_PLANNING_TASK("槽液任务/审核"), PLATE_GOODS_RECORD("镀层物料需求申报/审核"), + PLATE_GOODS_APPLY("镀层物料添加量申报/审核"), ; private final String desc; diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/PlateGoodsApplyServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/PlateGoodsApplyServiceImpl.java index d5d84dbcf..6de6be0dd 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/PlateGoodsApplyServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/PlateGoodsApplyServiceImpl.java @@ -10,6 +10,8 @@ import org.springblade.core.secure.BladeUser; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; +import org.springblade.desk.common.enums.MesApprovalRecordBizTypeEnum; +import org.springblade.desk.common.service.IMesApprovalRecordService; import org.springblade.desk.order.mapper.PlateGoodsApplyMapper; import org.springblade.desk.order.pojo.entity.AssayContentDetail; import org.springblade.desk.order.pojo.entity.PlateGoodsApply; @@ -18,6 +20,7 @@ import org.springblade.desk.order.pojo.entity.PlateGoodsRecord; import org.springblade.desk.order.pojo.enums.AssayContentEnum; import org.springblade.desk.order.pojo.enums.PlateGoodsEnum; import org.springblade.desk.order.service.*; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -40,6 +43,9 @@ public class PlateGoodsApplyServiceImpl extends BaseServiceImpl selectPage(IPage page, PlateGoodsApply entity) { List dataList = baseMapper.selectPage(page, entity); @@ -60,6 +66,14 @@ public class PlateGoodsApplyServiceImpl extends BaseServiceImpl goodsApplyDetailList = new ArrayList<>(); for (PlateGoodsRecord goodsRecord : addRecordList) { diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/PlateGoodsRecordServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/PlateGoodsRecordServiceImpl.java index 938e1d697..24021f04c 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/PlateGoodsRecordServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/PlateGoodsRecordServiceImpl.java @@ -614,6 +614,14 @@ public class PlateGoodsRecordServiceImpl extends BaseServiceImpl Date: Tue, 16 Jun 2026 14:08:18 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/PlateGoodsApplyServiceImpl.java | 12 ++++++++++-- .../order/service/impl/YieldOrderServiceImpl.java | 8 +++++--- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/PlateGoodsApplyServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/PlateGoodsApplyServiceImpl.java index 6de6be0dd..2ff278ec3 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/PlateGoodsApplyServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/PlateGoodsApplyServiceImpl.java @@ -68,11 +68,11 @@ public class PlateGoodsApplyServiceImpl extends BaseServiceImpl Date: Tue, 16 Jun 2026 14:12:20 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=88=86=E6=B4=BE?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E8=AE=A2=E5=8D=95=E5=AE=9A=E6=97=B6=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E5=88=86=E6=B4=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../desk/order/service/impl/YieldOrderServiceImpl.java | 1 - 1 file changed, 1 deletion(-) diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java index 36e01a0a6..df13230e9 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java @@ -386,7 +386,6 @@ public class YieldOrderServiceImpl extends BaseServiceImpl Date: Tue, 16 Jun 2026 14:20:42 +0800 Subject: [PATCH 6/7] =?UTF-8?q?=E9=95=80=E5=B1=82=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E9=87=8F=E7=94=B3=E6=8A=A5=E4=BB=A3=E5=8A=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/MesPlateGoodsApplyServiceImpl.java | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/impl/MesPlateGoodsApplyServiceImpl.java diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/impl/MesPlateGoodsApplyServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/impl/MesPlateGoodsApplyServiceImpl.java new file mode 100644 index 000000000..9c20e95e5 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/impl/MesPlateGoodsApplyServiceImpl.java @@ -0,0 +1,50 @@ +package org.springblade.desk.common.service.impl; + +import org.springblade.core.tool.utils.Func; +import org.springblade.desk.common.enums.MesApprovalRecordBizTypeEnum; +import org.springblade.desk.common.service.ApprovalRecordDetailStrategy; +import org.springblade.desk.order.pojo.entity.PlateGoodsApply; +import org.springblade.desk.order.pojo.entity.PlateGoodsRecord; +import org.springblade.desk.order.pojo.vo.PlateGoodsApplyVo; +import org.springblade.desk.order.service.IPlateGoodsApplyDetailService; +import org.springblade.desk.order.service.IPlateGoodsApplyService; +import org.springblade.desk.order.wrapper.PlateGoodsApplyWrapper; +import org.springblade.desk.order.wrapper.PlateGoodsRecordWrapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 物料添加量申报审核待办策略实现类 + */ +@Service +public class MesPlateGoodsApplyServiceImpl implements ApprovalRecordDetailStrategy { + + @Autowired + IPlateGoodsApplyService plateGoodsApplyService; + + @Autowired + IPlateGoodsApplyDetailService plateGoodsApplyDetailService; + + + @Override + public String getBizType() { + return MesApprovalRecordBizTypeEnum.PLATE_GOODS_APPLY.getDesc(); + } + + @Override + public PlateGoodsApplyVo getDetail(Long bizId) { + PlateGoodsApply apply = plateGoodsApplyService.getById(bizId); + + PlateGoodsApplyVo vo = PlateGoodsApplyWrapper.build().entityVO(apply); + + // 查询关联订单列表 + List recordList = plateGoodsApplyDetailService.listRecordByApplyId(apply.getId()); + if (Func.isNotEmpty(recordList)) { + vo.setRecordVos(PlateGoodsRecordWrapper.build().listVO(recordList)); + } + + return vo; + } +} From 137e6b066761a632b3dab8cddd881b48f75d3f93 Mon Sep 17 00:00:00 2001 From: wusiyu <2015098864@qq.com> Date: Tue, 16 Jun 2026 14:51:36 +0800 Subject: [PATCH 7/7] =?UTF-8?q?=E4=BB=93=E5=BA=93=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/springblade/wms/pojo/entity/StRealtimeStock.java | 3 ++- .../org/springblade/wms/controller/StGoodsController.java | 6 ++++++ .../wms/service/impl/StOtherOutRecordServiceImpl.java | 6 +++++- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/pojo/entity/StRealtimeStock.java b/blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/pojo/entity/StRealtimeStock.java index 9c9bc195f..e61a8af91 100644 --- a/blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/pojo/entity/StRealtimeStock.java +++ b/blade-service-api/blade-wms-api/src/main/java/org/springblade/wms/pojo/entity/StRealtimeStock.java @@ -203,7 +203,8 @@ public class StRealtimeStock extends TenantEntity { @TableField(exist = false) private Long outRecordId; - + @Schema(description = "领料人ID") + private Long picker; } diff --git a/blade-service/blade-wms/src/main/java/org/springblade/wms/controller/StGoodsController.java b/blade-service/blade-wms/src/main/java/org/springblade/wms/controller/StGoodsController.java index 6869a9335..7812b88e3 100644 --- a/blade-service/blade-wms/src/main/java/org/springblade/wms/controller/StGoodsController.java +++ b/blade-service/blade-wms/src/main/java/org/springblade/wms/controller/StGoodsController.java @@ -1,5 +1,6 @@ package org.springblade.wms.controller; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; @@ -69,6 +70,11 @@ public class StGoodsController extends BladeController { QueryWrapper wrapper = Condition.getQueryWrapper(stGoods, StGoods.class); wrapper.eq("is_deleted", 0) .orderByDesc("create_time"); + + String goodsCodeAndGoodsName = StrUtil.toString(stGoods.get("goodsCodeAndGoodsName")); + if (StrUtil.isNotBlank(goodsCodeAndGoodsName)) { + wrapper.and(w -> w.like("goods_code", goodsCodeAndGoodsName).or().like("goods_name", goodsCodeAndGoodsName)); + } IPage pages = stGoodsService.page(Condition.getPage(query), wrapper); return R.data(StGoodsWrapper.build().pageVO(pages)); } diff --git a/blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StOtherOutRecordServiceImpl.java b/blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StOtherOutRecordServiceImpl.java index 1c9a51bfa..6a259f087 100644 --- a/blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StOtherOutRecordServiceImpl.java +++ b/blade-service/blade-wms/src/main/java/org/springblade/wms/service/impl/StOtherOutRecordServiceImpl.java @@ -1,5 +1,6 @@ package org.springblade.wms.service.impl; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import jakarta.annotation.Resource; @@ -254,6 +255,9 @@ public class StOtherOutRecordServiceImpl extends BaseServiceImpl