From 1c9c8ec75f6a1457252315b606d1c314babd2d41 Mon Sep 17 00:00:00 2001 From: liuqingkun Date: Fri, 27 Feb 2026 13:48:57 +0800 Subject: [PATCH 1/9] =?UTF-8?q?=E7=94=9F=E4=BA=A7=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=B7=A5=E8=89=BA=E6=9F=A5=E8=AF=A2=E3=80=81=E7=83=A7=E7=BB=93?= =?UTF-8?q?=E9=85=8D=E5=A5=97=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/bootstrap.yml | 2 +- .../feign/IErpDataPartClientFallback.java | 2 - .../erpdata/feign/IErpDataSearchClient.java | 60 ------------------- .../feign/IErpDataSearchClientFallback.java | 21 ------- .../erpdata/feign/IErpMesRbPkpqryClient.java | 36 +++++++++++ .../feign/IErpMesRbPkpqryClientFallback.java | 19 ++++++ .../feign/IErpPartoplinkFirseqClient.java | 34 +++++++++++ .../IErpPartoplinkFirseqClientFallback.java | 20 +++++++ ...AllocationDTO.java => MesRbPkpqryDTO.java} | 31 +++++++--- .../erpdata/pojo/dto/PartoplinkFirseqDTO.java | 48 +++++++++++++++ .../service/impl/DsPartServiceImpl.java | 3 - .../order/controller/YieldPlanController.java | 31 ++++------ .../service/impl/YieldPlanServiceImpl.java | 17 +++++- .../erpdata/feign/ErpDataPartClient.java | 5 -- .../erpdata/feign/ErpDataSearchClient.java | 35 ----------- .../erpdata/feign/ErpMesRbPkpqryClient.java | 33 ++++++++++ .../feign/ErpPartoplinkFirseqClient.java | 35 +++++++++++ .../erpdata/mapper/ErpDataSearchMapper.java | 30 ---------- .../erpdata/mapper/ErpDataSearchMapper.xml | 15 ----- .../erpdata/mapper/ErpMesRbPkpqryMapper.java | 27 +++++++++ .../erpdata/mapper/ErpMesRbPkpqryMapper.xml | 22 +++++++ .../mapper/ErpPartoplinkFirseqMapper.java | 22 +++++++ .../mapper/ErpPartoplinkFirseqMapper.xml | 9 +++ .../service/IErpDataSearchService.java | 22 ------- .../service/IErpMesRbPkpqryService.java | 25 ++++++++ .../service/IErpPartoplinkFirseqService.java | 22 +++++++ .../impl/ErpDataSearchServiceImpl.java | 29 --------- .../impl/ErpMesRbPkpqryServiceImpl.java | 29 +++++++++ .../impl/ErpPartoplinkFirseqServiceImpl.java | 32 ++++++++++ 29 files changed, 466 insertions(+), 250 deletions(-) delete mode 100644 blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataSearchClient.java delete mode 100644 blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataSearchClientFallback.java create mode 100644 blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbPkpqryClient.java create mode 100644 blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbPkpqryClientFallback.java create mode 100644 blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpPartoplinkFirseqClient.java create mode 100644 blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpPartoplinkFirseqClientFallback.java rename blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/{AllocationDTO.java => MesRbPkpqryDTO.java} (54%) create mode 100644 blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/PartoplinkFirseqDTO.java delete mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpDataSearchClient.java create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpMesRbPkpqryClient.java create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpPartoplinkFirseqClient.java delete mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpDataSearchMapper.java delete mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpDataSearchMapper.xml create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbPkpqryMapper.java create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbPkpqryMapper.xml create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpPartoplinkFirseqMapper.java create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpPartoplinkFirseqMapper.xml delete mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpDataSearchService.java create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpMesRbPkpqryService.java create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpPartoplinkFirseqService.java delete mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpDataSearchServiceImpl.java create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpMesRbPkpqryServiceImpl.java create mode 100644 blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpPartoplinkFirseqServiceImpl.java diff --git a/blade-gateway/src/main/resources/bootstrap.yml b/blade-gateway/src/main/resources/bootstrap.yml index 5c9f4fd5..138acdb2 100644 --- a/blade-gateway/src/main/resources/bootstrap.yml +++ b/blade-gateway/src/main/resources/bootstrap.yml @@ -1,5 +1,5 @@ server: - port: 80 + port: 81 spring: cloud: diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataPartClientFallback.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataPartClientFallback.java index f3465df9..2394e6b7 100644 --- a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataPartClientFallback.java +++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataPartClientFallback.java @@ -1,8 +1,6 @@ package org.springblade.erpdata.feign; -import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.tool.api.R; -import org.springblade.erpdata.pojo.dto.AllocationDTO; import org.springframework.stereotype.Component; /** diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataSearchClient.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataSearchClient.java deleted file mode 100644 index 0ad8f560..00000000 --- a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataSearchClient.java +++ /dev/null @@ -1,60 +0,0 @@ -/** - * BladeX Commercial License Agreement - * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. - *

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

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

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

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

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

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

- * Author: Chill Zhuang (bladejava@qq.com) - */ -package org.springblade.erpdata.feign; - - -import com.baomidou.mybatisplus.core.metadata.IPage; -import org.springblade.core.launch.constant.AppConstant; -import org.springblade.core.tool.api.R; -import org.springblade.erpdata.pojo.dto.AllocationDTO; -import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.web.bind.annotation.PostMapping; - -/** - * Feign接口类 - * - * @author Chill - */ -@FeignClient( - value = AppConstant.APPLICATION_SYSTEM_NAME, - fallback = IErpDataSearchClientFallback.class -) -public interface IErpDataSearchClient { - - String API_PREFIX = "/feign/erpdata/client"; - String PAGE_ALLOCATION = API_PREFIX + "/pageAllocation"; - - /** - * 查询烧结配套信息 - * - * @param page - * @param entity - * @return - */ - @PostMapping(PAGE_ALLOCATION) - R> pageAllocation(IPage page, AllocationDTO entity); - -} diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataSearchClientFallback.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataSearchClientFallback.java deleted file mode 100644 index 3d09df03..00000000 --- a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataSearchClientFallback.java +++ /dev/null @@ -1,21 +0,0 @@ -package org.springblade.erpdata.feign; - -import com.baomidou.mybatisplus.core.metadata.IPage; -import org.springblade.core.tool.api.R; -import org.springblade.erpdata.pojo.dto.AllocationDTO; -import org.springframework.stereotype.Component; - -/** - * Feign失败配置 - * - * @author lqk - * @date 2025-12-17 15:13 - */ -@Component -public class IErpDataSearchClientFallback implements IErpDataSearchClient { - - @Override - public R> pageAllocation(IPage page, AllocationDTO entity) { - return R.fail("获取数据失败"); - } -} diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbPkpqryClient.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbPkpqryClient.java new file mode 100644 index 00000000..0abe71ed --- /dev/null +++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbPkpqryClient.java @@ -0,0 +1,36 @@ +package org.springblade.erpdata.feign; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.tool.api.R; +import org.springblade.erpdata.pojo.dto.MesRbPkpqryDTO; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; + +/** + * Feign接口类 + * + * @author liuqingkun + */ +@FeignClient( + value = AppConstant.APPLICATION_SYSTEM_NAME, + fallback = IErpMesRbPkpqryClientFallback.class +) +public interface IErpMesRbPkpqryClient { + + String API_PREFIX = "/feign/erpdata/mesRbPkpqry/"; + String SELECT_PAGE = API_PREFIX + "selectPage"; + + /** + * 查询配置结果 + * + * @param page 分页参数 + * @param pkno 配套单号 + * @param prtmdept 主制部门 + * @param subpkdateStart 配套开始时间 + * @param subpkdateEnd 配套结束时间 + * @return + */ + @GetMapping(SELECT_PAGE) + R> selectPage(IPage page, String pkno, String prtmdept, String subpkdateStart, String subpkdateEnd); +} diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbPkpqryClientFallback.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbPkpqryClientFallback.java new file mode 100644 index 00000000..50ad2890 --- /dev/null +++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbPkpqryClientFallback.java @@ -0,0 +1,19 @@ +package org.springblade.erpdata.feign; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.tool.api.R; +import org.springblade.erpdata.pojo.dto.MesRbPkpqryDTO; + +/** + * Feign接口类 + * + * @author liuqingkun + */ +public class IErpMesRbPkpqryClientFallback implements IErpMesRbPkpqryClient { + + @Override + public R> selectPage(IPage page, String pkno, String prtmdept, String subpkdateStart, String subpkdateEnd) { + return R.fail("获取数据失败"); + } +} diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpPartoplinkFirseqClient.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpPartoplinkFirseqClient.java new file mode 100644 index 00000000..50eced21 --- /dev/null +++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpPartoplinkFirseqClient.java @@ -0,0 +1,34 @@ +package org.springblade.erpdata.feign; + + +import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.tool.api.R; +import org.springblade.erpdata.pojo.dto.PartoplinkFirseqDTO; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; + +import java.util.List; + +/** + * Feign接口类 + * + * @author liuqingkun + */ +@FeignClient( + value = AppConstant.APPLICATION_SYSTEM_NAME, + fallback = IErpPartoplinkFirseqClientFallback.class +) +public interface IErpPartoplinkFirseqClient { + + String API_PREFIX = "/feign/erpdata/partoplinkFirseq/"; + String LIST_BY_PART_CODE = API_PREFIX + "listByPartCode"; + + /** + * 根据物料号查询一级工序 + * + * @param partCode + * @return + */ + @GetMapping(LIST_BY_PART_CODE) + R> listByPartCode(String partCode); +} diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpPartoplinkFirseqClientFallback.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpPartoplinkFirseqClientFallback.java new file mode 100644 index 00000000..fb589c66 --- /dev/null +++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpPartoplinkFirseqClientFallback.java @@ -0,0 +1,20 @@ +package org.springblade.erpdata.feign; + + +import org.springblade.core.tool.api.R; +import org.springblade.erpdata.pojo.dto.PartoplinkFirseqDTO; + +import java.util.List; + +/** + * Feign接口类 + * + * @author liuqingkun + */ +public class IErpPartoplinkFirseqClientFallback implements IErpPartoplinkFirseqClient { + + @Override + public R> listByPartCode(String partCode) { + return R.fail("获取数据失败"); + } +} diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/AllocationDTO.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/MesRbPkpqryDTO.java similarity index 54% rename from blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/AllocationDTO.java rename to blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/MesRbPkpqryDTO.java index a3740c33..31a21cf0 100644 --- a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/AllocationDTO.java +++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/MesRbPkpqryDTO.java @@ -1,92 +1,109 @@ package org.springblade.erpdata.pojo.dto; +import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; - -import java.io.Serializable; +import lombok.NoArgsConstructor; /** - * 配套信息查询 - * - * @author lqk + * @author liuqingkun */ @Data -public class AllocationDTO implements Serializable { - +@NoArgsConstructor +public class MesRbPkpqryDTO { /** * 配套单号 */ + @Schema(description = "配套单号") private String pkno; /** * 父件号 */ + @Schema(description = "父件号") private String prntno; /** * 型号 */ + @Schema(description = "型号") private String mtltmrk; /** * 生产标识 */ + @Schema(description = "生产标识") private String prtlotno; /** * 需求日期 */ + @Schema(description = "需求日期") private String pkreqdat; /** * 父件批次 */ + @Schema(description = "父件批次") private String fjSplcode; /** * 父件配套数 */ + @Schema(description = "父件配套数") private String fjPkavqty; /** * 配套序号 */ + @Schema(description = "配套序号") private String serialno; /** * 主制部门 */ + @Schema(description = "主制部门") private String prtmdept; /** * 计划标记 */ + @Schema(description = "计划标记") private String plnsign; /** * 制造订单号 */ + @Schema(description = "制造订单号") private String mono; /** * 计划员 */ + @Schema(description = "计划员") private String schemer; /** * 调度员 */ + @Schema(description = "调度员") private String planner1; /** * 配套日期 */ + @Schema(description = "配套日期") private String subpkdate; /** * 保管员 */ + @Schema(description = "保管员") private String warctlr; /** * 条码序号 */ + @Schema(description = "条码序号") private String barcodeno; /** * 计划部门 */ + @Schema(description = "计划部门") private String plandept; /** * 备注 */ + @Schema(description = "备注") private String remark; /** * 物料标识 */ + @Schema(description = "物料标识") private String prtclass; } diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/PartoplinkFirseqDTO.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/PartoplinkFirseqDTO.java new file mode 100644 index 00000000..f0f3f7fa --- /dev/null +++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/PartoplinkFirseqDTO.java @@ -0,0 +1,48 @@ +package org.springblade.erpdata.pojo.dto; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author liuqingkun + */ +@Data +@NoArgsConstructor +public class PartoplinkFirseqDTO { + /** + * 零件号 + */ + @Schema(description = "零件号") + private String partcode; + /** + * 零件名称 + */ + @Schema(description = "零件名称") + private String partname; + /** + * 一级工艺计划(A)号 + */ + @Schema(description = "一级工艺计划(A)号") + private String firpp; + /** + * 一级工艺计划名称 + */ + @Schema(description = "一级工艺计划名称") + private String firppname; + /** + * 一级工序 + */ + @Schema(description = "一级工序") + private String firseq; + /** + * 一级工序名称 + */ + @Schema(description = "一级工序名称") + private String firseqname; + /** + * 一级工序序号 + */ + @Schema(description = "一级工序序号") + private String firseqno; +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsPartServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsPartServiceImpl.java index 2fa64a6b..7f0c8301 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsPartServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsPartServiceImpl.java @@ -6,7 +6,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.base.BaseServiceImpl; -import org.springblade.core.mp.support.Condition; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.SpringUtil; @@ -17,8 +16,6 @@ import org.springblade.desk.dashboard.pojo.entity.*; import org.springblade.desk.dashboard.pojo.vo.*; import org.springblade.desk.dashboard.service.*; import org.springblade.erpdata.feign.IErpDataPartClient; -import org.springblade.erpdata.feign.IErpDataSearchClient; -import org.springblade.erpdata.pojo.dto.AllocationDTO; import org.springblade.system.feign.IUserClient; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/controller/YieldPlanController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/controller/YieldPlanController.java index 5e9bf1f6..ecce6874 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/controller/YieldPlanController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/controller/YieldPlanController.java @@ -15,14 +15,13 @@ import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; -import org.springblade.core.tool.utils.SpringUtil; import org.springblade.desk.order.pojo.entity.YieldPlan; import org.springblade.desk.order.pojo.enums.YieldPlanEnum; import org.springblade.desk.order.pojo.vo.YieldPlanVo; import org.springblade.desk.order.service.IYieldPlanService; import org.springblade.desk.order.wrapper.YieldPlanWrapper; -import org.springblade.erpdata.feign.IErpDataSearchClient; -import org.springblade.erpdata.pojo.dto.AllocationDTO; +import org.springblade.erpdata.feign.IErpMesRbPkpqryClient; +import org.springblade.erpdata.pojo.dto.MesRbPkpqryDTO; import org.springframework.web.bind.annotation.*; import java.util.List; @@ -40,14 +39,7 @@ public class YieldPlanController extends BladeController { private final IYieldPlanService yieldPlanService; - private static IErpDataSearchClient erpDataSearchClient; - - private static IErpDataSearchClient getErpDataSearchClient() { - if (erpDataSearchClient == null) { - erpDataSearchClient = SpringUtil.getBean(IErpDataSearchClient.class); - } - return erpDataSearchClient; - } + private final IErpMesRbPkpqryClient mesRbPkpqryClient; /** * 分页查询列表-电镀 @@ -186,18 +178,21 @@ public class YieldPlanController extends BladeController { /** * 分页查询配套信息 * - * @param entity + * @param pkno + * @param prtmdept + * @param subpkdateStart + * @param subpkdateEnd * @param query * @return */ @GetMapping("/pageAllocation") - @Parameters({ - @Parameter(name = "ypCode", description = "计划单号", in = ParameterIn.QUERY, schema = @Schema(type = "string")), - @Parameter(name = "partCode", description = "零件号", in = ParameterIn.QUERY, schema = @Schema(type = "string")) - }) @Operation(summary = "分页查询配套信息", description = "") - public R> pageAllocation(@Parameter(hidden = true) AllocationDTO entity, Query query) { - R> result = getErpDataSearchClient().pageAllocation(Condition.getPage(query), entity); + public R> pageAllocation(@Parameter(description = "配套单号", required = false) @RequestParam String pkno, + @Parameter(description = "主制部门", required = false) @RequestParam String prtmdept, + @Parameter(description = "配套开始时间", required = false) @RequestParam String subpkdateStart, + @Parameter(description = "配套结束时间", required = false) @RequestParam String subpkdateEnd, + Query query) { + R> result = mesRbPkpqryClient.selectPage(Condition.getPage(query), pkno, prtmdept, subpkdateStart, subpkdateEnd); return result; } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldPlanServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldPlanServiceImpl.java index c119a4f8..5238b84f 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldPlanServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldPlanServiceImpl.java @@ -9,6 +9,8 @@ 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.core.tool.api.R; +import org.springblade.core.tool.api.ResultCode; import org.springblade.core.tool.utils.ObjectUtil; import org.springblade.desk.dashboard.pojo.entity.DsPartEntity; import org.springblade.desk.dashboard.service.IDsPartService; @@ -19,12 +21,15 @@ import org.springblade.desk.order.pojo.enums.YieldPlanEnum; import org.springblade.desk.order.pojo.vo.LineMemoVo; import org.springblade.desk.order.service.IYieldOrderService; import org.springblade.desk.order.service.IYieldPlanService; +import org.springblade.erpdata.feign.IErpPartoplinkFirseqClient; +import org.springblade.erpdata.pojo.dto.PartoplinkFirseqDTO; import org.springframework.stereotype.Service; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.stream.Collectors; /** * 服务实现类 @@ -79,11 +84,19 @@ public class YieldPlanServiceImpl extends BaseServiceImpl getFirstProcess(String partCode) { List resultList = new ArrayList<>(); - //TODO 根据物料号, 调用ERP方法查询一级工序 - // select * from dba_mgr.v_partoplink_firseq@erp_mes_link a where prtno=:partCode + + // 根据物料号, 调用ERP方法查询一级工序 + R> result = partoplinkFirseqClient.listByPartCode(partCode); + if (ResultCode.SUCCESS.getCode() == result.getCode()) { + resultList = result.getData().stream() + .map(item -> JSONObject.parseObject(JSONObject.toJSONString(item))) + .collect(Collectors.toList()); + } return resultList; } diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpDataPartClient.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpDataPartClient.java index 389c2455..c73dc452 100644 --- a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpDataPartClient.java +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpDataPartClient.java @@ -1,15 +1,10 @@ package org.springblade.erpdata.feign; -import com.baomidou.mybatisplus.core.metadata.IPage; import io.swagger.v3.oas.annotations.Hidden; import lombok.AllArgsConstructor; -import org.springblade.common.exception.BusinessException; import org.springblade.core.tenant.annotation.NonDS; -import org.springblade.core.tool.api.R; import org.springblade.desk.dashboard.pojo.entity.DsPartEntity; -import org.springblade.erpdata.pojo.dto.AllocationDTO; -import org.springblade.erpdata.service.IErpDataSearchService; import org.springblade.erpdata.service.IErpPartService; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpDataSearchClient.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpDataSearchClient.java deleted file mode 100644 index 10298ec4..00000000 --- a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpDataSearchClient.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.springblade.erpdata.feign; - - -import com.baomidou.mybatisplus.core.metadata.IPage; -import io.swagger.v3.oas.annotations.Hidden; -import lombok.AllArgsConstructor; -import org.springblade.core.tenant.annotation.NonDS; -import org.springblade.core.tool.api.R; -import org.springblade.desk.dashboard.pojo.entity.DsPartEntity; -import org.springblade.erpdata.pojo.dto.AllocationDTO; -import org.springblade.erpdata.service.IErpDataSearchService; -import org.springblade.erpdata.service.IErpPartService; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RestController; - - -/** - * 字典服务Feign实现类 - * - * @author Chill - */ -@NonDS -@Hidden -@RestController -@AllArgsConstructor -public class ErpDataSearchClient implements IErpDataSearchClient{ - - private final IErpDataSearchService dataSearchService; - - @Override - @GetMapping(PAGE_ALLOCATION) - public R> pageAllocation(IPage page, AllocationDTO entity) { - return R.data(dataSearchService.queryAllocation(page, entity)); - } -} diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpMesRbPkpqryClient.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpMesRbPkpqryClient.java new file mode 100644 index 00000000..0cf6c197 --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpMesRbPkpqryClient.java @@ -0,0 +1,33 @@ +package org.springblade.erpdata.feign; + + +import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.v3.oas.annotations.Hidden; +import lombok.AllArgsConstructor; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.core.tool.api.R; +import org.springblade.erpdata.pojo.dto.MesRbPkpqryDTO; +import org.springblade.erpdata.service.IErpMesRbPkpqryService; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + + +/** + * 字典服务Feign实现类 + * + * @author liuqingkun + */ +@NonDS +@Hidden +@RestController +@AllArgsConstructor +public class ErpMesRbPkpqryClient implements IErpMesRbPkpqryClient { + + private final IErpMesRbPkpqryService mesRbPkpqryService; + + @GetMapping(SELECT_PAGE) + @Override + public R> selectPage(IPage page, String pkno, String prtmdept, String subpkdateStart, String subpkdateEnd) { + return R.data(mesRbPkpqryService.page(page, pkno, prtmdept, subpkdateStart, subpkdateEnd)); + } +} diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpPartoplinkFirseqClient.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpPartoplinkFirseqClient.java new file mode 100644 index 00000000..bcb504a4 --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpPartoplinkFirseqClient.java @@ -0,0 +1,35 @@ +package org.springblade.erpdata.feign; + + +import io.swagger.v3.oas.annotations.Hidden; +import lombok.AllArgsConstructor; +import org.springblade.core.tenant.annotation.NonDS; +import org.springblade.core.tool.api.R; +import org.springblade.erpdata.pojo.dto.PartoplinkFirseqDTO; +import org.springblade.erpdata.service.IErpPartoplinkFirseqService; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + + +/** + * 字典服务Feign实现类 + * + * @author liuqingkun + */ +@NonDS +@Hidden +@RestController +@AllArgsConstructor +public class ErpPartoplinkFirseqClient implements IErpPartoplinkFirseqClient { + + private final IErpPartoplinkFirseqService partoplinkFirseqService; + + @GetMapping(LIST_BY_PART_CODE) + @Override + public R> listByPartCode(String partCode) { + List dataList = partoplinkFirseqService.listByPartCode(partCode); + return R.data(dataList); + } +} diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpDataSearchMapper.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpDataSearchMapper.java deleted file mode 100644 index 1d2c31c4..00000000 --- a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpDataSearchMapper.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.springblade.erpdata.mapper; - -import com.baomidou.mybatisplus.core.mapper.Mapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import org.springblade.erpdata.pojo.dto.AllocationDTO; -import org.springblade.erpdata.pojo.dto.view.MesRbWo; - -import java.util.List; - -/** - * Mapper 接口 - * - * @author lqk - */ -public interface ErpDataSearchMapper extends Mapper { - /** - * 查询烧结配套信息 - * - * @param page - * @return - */ - List queryAllocation(IPage page); - - /** - * 从ERP视图中获取要同步的生产计划 - * - * @return - */ - List getYieldPlanErpList(); -} diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpDataSearchMapper.xml b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpDataSearchMapper.xml deleted file mode 100644 index 5448e43f..00000000 --- a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpDataSearchMapper.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbPkpqryMapper.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbPkpqryMapper.java new file mode 100644 index 00000000..c5512a9a --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbPkpqryMapper.java @@ -0,0 +1,27 @@ +package org.springblade.erpdata.mapper; + +import com.baomidou.mybatisplus.core.mapper.Mapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.erpdata.pojo.dto.MesRbPkpqryDTO; + +import java.util.List; + +/** + * Mapper 接口 + * + * @author lqk + */ +public interface ErpMesRbPkpqryMapper extends Mapper { + + /** + * 自定义分页 - 查询配置结果 + * + * @param page 分页参数 + * @param pkno 配套单号 + * @param prtmdept 主制部门 + * @param subpkdateStart 配套开始时间 + * @param subpkdateEnd 配套结束时间 + * @return + */ + List selectPage(IPage page, String pkno, String prtmdept, String subpkdateStart, String subpkdateEnd); +} diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbPkpqryMapper.xml b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbPkpqryMapper.xml new file mode 100644 index 00000000..cb5cb242 --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpMesRbPkpqryMapper.xml @@ -0,0 +1,22 @@ + + + + + diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpPartoplinkFirseqMapper.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpPartoplinkFirseqMapper.java new file mode 100644 index 00000000..e5c457d9 --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpPartoplinkFirseqMapper.java @@ -0,0 +1,22 @@ +package org.springblade.erpdata.mapper; + +import com.baomidou.mybatisplus.core.mapper.Mapper; +import org.springblade.erpdata.pojo.dto.PartoplinkFirseqDTO; + +import java.util.List; + +/** + * Mapper 接口 + * + * @author lqk + */ +public interface ErpPartoplinkFirseqMapper extends Mapper { + + /** + * 根据物料号查询一级工序 + * + * @param partCode + * @return + */ + List listByPartCode(String partCode); +} diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpPartoplinkFirseqMapper.xml b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpPartoplinkFirseqMapper.xml new file mode 100644 index 00000000..081b6a4d --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpPartoplinkFirseqMapper.xml @@ -0,0 +1,9 @@ + + + + + diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpDataSearchService.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpDataSearchService.java deleted file mode 100644 index d2275156..00000000 --- a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpDataSearchService.java +++ /dev/null @@ -1,22 +0,0 @@ -package org.springblade.erpdata.service; - -import com.baomidou.mybatisplus.core.metadata.IPage; -import org.springblade.erpdata.pojo.dto.AllocationDTO; - -/** - * ERP数据查询service - * - * @author lqk - */ -public interface IErpDataSearchService { - - /** - * 查询烧结配套信息 - * - * @param page - * @param entity - * @return - */ - IPage queryAllocation(IPage page, AllocationDTO entity); - -} diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpMesRbPkpqryService.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpMesRbPkpqryService.java new file mode 100644 index 00000000..b55838bf --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpMesRbPkpqryService.java @@ -0,0 +1,25 @@ +package org.springblade.erpdata.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.erpdata.pojo.dto.MesRbPkpqryDTO; + +/** + * ERP数据查询service + * + * @author liuqingkun + */ +public interface IErpMesRbPkpqryService { + + /** + * 查询配置结果 + * + * @param page 分页参数 + * @param pkno 配套单号 + * @param prtmdept 主制部门 + * @param subpkdateStart 配套开始时间 + * @param subpkdateEnd 配套结束时间 + * @return + */ + IPage page(IPage page, String pkno, String prtmdept, String subpkdateStart, String subpkdateEnd); + +} diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpPartoplinkFirseqService.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpPartoplinkFirseqService.java new file mode 100644 index 00000000..980279ea --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpPartoplinkFirseqService.java @@ -0,0 +1,22 @@ +package org.springblade.erpdata.service; + +import org.springblade.erpdata.pojo.dto.PartoplinkFirseqDTO; + +import java.util.List; + +/** + * ERP数据查询service + * + * @author liuqingkun + */ +public interface IErpPartoplinkFirseqService { + + /** + * 根据物料号查询一级工序 + * + * @param partCode + * @return + */ + List listByPartCode(String partCode); + +} diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpDataSearchServiceImpl.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpDataSearchServiceImpl.java deleted file mode 100644 index 195915ad..00000000 --- a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpDataSearchServiceImpl.java +++ /dev/null @@ -1,29 +0,0 @@ -package org.springblade.erpdata.service.impl; - -import com.baomidou.mybatisplus.core.metadata.IPage; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springblade.erpdata.mapper.ErpDataSearchMapper; -import org.springblade.erpdata.pojo.dto.AllocationDTO; -import org.springblade.erpdata.service.IErpDataSearchService; -import org.springframework.stereotype.Service; - -import java.util.List; - -/** - * @author lqk - * @date 2025-11-26 9:39 - */ -@Slf4j -@RequiredArgsConstructor -@Service -public class ErpDataSearchServiceImpl implements IErpDataSearchService { - - private final ErpDataSearchMapper dataSearchMapper; - - @Override - public IPage queryAllocation(IPage page, AllocationDTO entity) { - List dataList = dataSearchMapper.queryAllocation(page); - return page.setRecords(dataList); - } -} diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpMesRbPkpqryServiceImpl.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpMesRbPkpqryServiceImpl.java new file mode 100644 index 00000000..68941b27 --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpMesRbPkpqryServiceImpl.java @@ -0,0 +1,29 @@ +package org.springblade.erpdata.service.impl; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springblade.erpdata.mapper.ErpMesRbPkpqryMapper; +import org.springblade.erpdata.pojo.dto.MesRbPkpqryDTO; +import org.springblade.erpdata.service.IErpMesRbPkpqryService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @author liuqingkun + * @date 2026-1-31 + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class ErpMesRbPkpqryServiceImpl implements IErpMesRbPkpqryService { + + private final ErpMesRbPkpqryMapper mesRbPkpqryMapper; + + @Override + public IPage page(IPage page, String pkno, String prtmdept, String subpkdateStart, String subpkdateEnd) { + List dataList = mesRbPkpqryMapper.selectPage(page, pkno, prtmdept, subpkdateStart, subpkdateEnd); + return page.setRecords(dataList); + } +} diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpPartoplinkFirseqServiceImpl.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpPartoplinkFirseqServiceImpl.java new file mode 100644 index 00000000..151d605b --- /dev/null +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpPartoplinkFirseqServiceImpl.java @@ -0,0 +1,32 @@ +package org.springblade.erpdata.service.impl; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springblade.erpdata.mapper.ErpPartoplinkFirseqMapper; +import org.springblade.erpdata.pojo.dto.PartoplinkFirseqDTO; +import org.springblade.erpdata.service.IErpPartoplinkFirseqService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @author liuqingkun + * @date 2026-1-31 + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class ErpPartoplinkFirseqServiceImpl implements IErpPartoplinkFirseqService { + + private final ErpPartoplinkFirseqMapper erpPartoplinkFirseqMapper; + + @Override + public List listByPartCode(String partCode) { + if (StringUtils.isEmpty(partCode)) { + return null; + } + + return erpPartoplinkFirseqMapper.listByPartCode(partCode); + } +} From 94bbe4dd5869c954a533186106ab3bb5822235d6 Mon Sep 17 00:00:00 2001 From: liuqingkun Date: Fri, 27 Feb 2026 13:50:23 +0800 Subject: [PATCH 2/9] =?UTF-8?q?=E7=BD=91=E5=85=B3=E7=AB=AF=E5=8F=A3?= =?UTF-8?q?=E5=8F=B7=E5=9B=9E=E9=80=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- blade-gateway/src/main/resources/bootstrap.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blade-gateway/src/main/resources/bootstrap.yml b/blade-gateway/src/main/resources/bootstrap.yml index 138acdb2..5c9f4fd5 100644 --- a/blade-gateway/src/main/resources/bootstrap.yml +++ b/blade-gateway/src/main/resources/bootstrap.yml @@ -1,5 +1,5 @@ server: - port: 81 + port: 80 spring: cloud: From df0904443dd04c43bfcebb5fe8f83d27b872e02a Mon Sep 17 00:00:00 2001 From: liuqingkun Date: Fri, 27 Feb 2026 14:13:35 +0800 Subject: [PATCH 3/9] =?UTF-8?q?erp=E6=9F=A5=E8=AF=A2=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../erpdata/pojo/dto/MesRbPkpqryDTO.java | 20 +++++++++++++++++++ .../mapper/ErpPartoplinkFirseqMapper.xml | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/MesRbPkpqryDTO.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/MesRbPkpqryDTO.java index 31a21cf0..a5df8921 100644 --- a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/MesRbPkpqryDTO.java +++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/pojo/dto/MesRbPkpqryDTO.java @@ -1,5 +1,6 @@ package org.springblade.erpdata.pojo.dto; +import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.NoArgsConstructor; @@ -14,96 +15,115 @@ public class MesRbPkpqryDTO { * 配套单号 */ @Schema(description = "配套单号") + @TableField("pkno") private String pkno; /** * 父件号 */ @Schema(description = "父件号") + @TableField("prntno") private String prntno; /** * 型号 */ @Schema(description = "型号") + @TableField("mtltmrk") private String mtltmrk; /** * 生产标识 */ @Schema(description = "生产标识") + @TableField("prtlotno") private String prtlotno; /** * 需求日期 */ @Schema(description = "需求日期") + @TableField("pkreqdat") private String pkreqdat; /** * 父件批次 */ @Schema(description = "父件批次") + @TableField("fj_splcode") private String fjSplcode; /** * 父件配套数 */ @Schema(description = "父件配套数") + @TableField("fj_pkavqty") private String fjPkavqty; /** * 配套序号 */ @Schema(description = "配套序号") + @TableField("serialno") private String serialno; /** * 主制部门 */ @Schema(description = "主制部门") + @TableField("prtmdept") private String prtmdept; /** * 计划标记 */ @Schema(description = "计划标记") + @TableField("plnsign") private String plnsign; /** * 制造订单号 */ @Schema(description = "制造订单号") + @TableField("mono") private String mono; /** * 计划员 */ @Schema(description = "计划员") + @TableField("schemer") private String schemer; /** * 调度员 */ @Schema(description = "调度员") + @TableField("planner1") private String planner1; /** * 配套日期 */ @Schema(description = "配套日期") + @TableField("subpkdate") private String subpkdate; /** * 保管员 */ @Schema(description = "保管员") + @TableField("warctlr") private String warctlr; /** * 条码序号 */ @Schema(description = "条码序号") + @TableField("barcodeno") private String barcodeno; /** * 计划部门 */ @Schema(description = "计划部门") + @TableField("plandept") private String plandept; /** * 备注 */ @Schema(description = "备注") + @TableField("remark") private String remark; /** * 物料标识 */ @Schema(description = "物料标识") + @TableField("prtclass") private String prtclass; } diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpPartoplinkFirseqMapper.xml b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpPartoplinkFirseqMapper.xml index 081b6a4d..26429d94 100644 --- a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpPartoplinkFirseqMapper.xml +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpPartoplinkFirseqMapper.xml @@ -2,7 +2,7 @@ From 98fc64576d9cb494dddefa8e1ecdf28fd0774fc1 Mon Sep 17 00:00:00 2001 From: sunjianxi <839419401@qq.com> Date: Fri, 27 Feb 2026 14:24:36 +0800 Subject: [PATCH 4/9] =?UTF-8?q?=E6=8E=92=E4=BA=A7=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E5=88=86=E6=9E=90-sjx?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pojo/entity/WorkPlanEntity.java | 5 +- .../FmProjectApplicationController.java | 8 + .../controller/CertificateTypeController.java | 134 ++++++++++++++++ .../controller/QualityGradeController.java | 11 ++ .../controller/WorkOrderController.java | 24 ++- .../mapper/CertificateTypeMapper.java | 39 +++++ .../mapper/CertificateTypeMapper.xml | 36 +++++ .../scheduling/mapper/WorkOrderMapper.java | 5 + .../scheduling/mapper/WorkOrderMapper.xml | 147 +++++++++++++++++- .../service/ICertificateTypeService.java | 37 +++++ .../scheduling/service/IWorkOrderService.java | 5 + .../impl/CertificateTypeServiceImpl.java | 39 +++++ .../service/impl/WorkOrderServiceImpl.java | 59 ++++++- .../service/impl/WorkPlanServiceImpl.java | 20 +++ .../scheduling/scheduling/vo/WorkPlanVO.java | 7 +- .../wrapper/CertificateTypeWrapper.java | 35 +++++ 16 files changed, 598 insertions(+), 13 deletions(-) create mode 100644 blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/controller/CertificateTypeController.java create mode 100644 blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/CertificateTypeMapper.java create mode 100644 blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/CertificateTypeMapper.xml create mode 100644 blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/ICertificateTypeService.java create mode 100644 blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/CertificateTypeServiceImpl.java create mode 100644 blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/wrapper/CertificateTypeWrapper.java diff --git a/blade-service-api/blade-scheduling-api/src/main/java/org/springblade/scheduling/pojo/entity/WorkPlanEntity.java b/blade-service-api/blade-scheduling-api/src/main/java/org/springblade/scheduling/pojo/entity/WorkPlanEntity.java index 0f41ac6d..0bd714cf 100644 --- a/blade-service-api/blade-scheduling-api/src/main/java/org/springblade/scheduling/pojo/entity/WorkPlanEntity.java +++ b/blade-service-api/blade-scheduling-api/src/main/java/org/springblade/scheduling/pojo/entity/WorkPlanEntity.java @@ -274,9 +274,6 @@ public class WorkPlanEntity extends BaseEntity { */ private String factTeamMembers; - /** - * 零件号 - */ - private String partCode; + } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/process/controller/FmProjectApplicationController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/process/controller/FmProjectApplicationController.java index bcf09a40..d43202d5 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/process/controller/FmProjectApplicationController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/process/controller/FmProjectApplicationController.java @@ -40,6 +40,7 @@ import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.secure.BladeUser; import org.springblade.core.secure.annotation.IsAdmin; +import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.Func; @@ -50,6 +51,8 @@ import org.springblade.desk.process.pojo.vo.FmProjectApplicationVO; import org.springblade.desk.process.service.IFmProjectApplicationService; import org.springblade.desk.process.service.IFmProjectMilestoneService; import org.springblade.desk.process.wrapper.FmProjectApplicationWrapper; +import org.springblade.system.feign.IUserClient; +import org.springblade.system.pojo.entity.User; import org.springframework.web.bind.annotation.*; import java.text.SimpleDateFormat; @@ -73,6 +76,8 @@ public class FmProjectApplicationController extends BladeController { private final IFmProjectMilestoneService fmProjectMilestoneService; + private final IUserClient userClient; + /** * 项目管理 详情 */ @@ -145,6 +150,9 @@ public class FmProjectApplicationController extends BladeController { if(fmProjectApplication.getTouchingTime()==null){ fmProjectApplication.setTouchingTime(new Date()); } + BladeUser bladeUser = AuthUtil.getUser(); + User user = userClient.userInfoById(bladeUser.getUserId()).getData(); + fmProjectApplication.setTouchingMan(user.getRealName()); Boolean flag=fmProjectApplicationService.saveOrUpdate(fmProjectApplication); if(flag){ List stoneList=fmProjectApplication.getStoneList(); diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/controller/CertificateTypeController.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/controller/CertificateTypeController.java new file mode 100644 index 00000000..61f50a6d --- /dev/null +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/controller/CertificateTypeController.java @@ -0,0 +1,134 @@ +package org.springblade.scheduling.scheduling.controller; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; +import lombok.AllArgsConstructor; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.core.excel.util.ExcelUtil; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.DateUtil; +import org.springblade.core.tool.utils.Func; +import org.springblade.desk.jobtransfer.pojo.entity.CertificateTypeEntity; +import org.springblade.desk.jobtransfer.pojo.excel.CertificateTypeExcel; +import org.springblade.desk.jobtransfer.pojo.vo.CertificateTypeVO; +import org.springblade.scheduling.scheduling.service.ICertificateTypeService; +import org.springblade.scheduling.scheduling.wrapper.CertificateTypeWrapper; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; + +/** + * 证书类型 控制器 + * + * @author qyl + * @since 2026-01-08 + */ +@RestController +@AllArgsConstructor +@RequestMapping("/certificateType") +@Tag(name = "证书类型维护", description = "证书类型维护接口") +public class CertificateTypeController extends BladeController { + + private final ICertificateTypeService certificateTypeService; + + /** + * 证书类型 详情 + */ + @GetMapping("/detail") + @ApiOperationSupport(order = 1) + @Operation(summary = "详情", description = "传入certificateType") + public R detail(CertificateTypeEntity certificateType) { + CertificateTypeEntity detail = certificateTypeService.getOne(Condition.getQueryWrapper(certificateType)); + return R.data(CertificateTypeWrapper.build().entityVO(detail)); + } + + /** + * 证书类型 自定义分页 + */ + @GetMapping("/page") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入certificateType") + public R> page(CertificateTypeVO certificateType, Query query) { + IPage pages = certificateTypeService.selectCertificateTypePage(Condition.getPage(query), certificateType); + return R.data(pages); + } + + /** + * 证书类型 新增 + */ + @PostMapping("/save") + @ApiOperationSupport(order = 4) + @Operation(summary = "新增", description = "传入certificateType") + public R save(@Valid @RequestBody CertificateTypeEntity certificateType) { + return R.status(certificateTypeService.save(certificateType)); + } + + /** + * 证书类型 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 5) + @Operation(summary = "修改", description = "传入certificateType") + public R update(@Valid @RequestBody CertificateTypeEntity certificateType) { + return R.status(certificateTypeService.updateById(certificateType)); + } + + /** + * 证书类型 新增或修改 + */ + @PostMapping("/submit") + @ApiOperationSupport(order = 6) + @Operation(summary = "新增或修改", description = "传入certificateType") + public R submit(@Valid @RequestBody CertificateTypeEntity certificateType) { + return R.status(certificateTypeService.saveOrUpdate(certificateType)); + } + + /** + * 证书类型 删除 + */ + @PostMapping("/remove") + @ApiOperationSupport(order = 7) + @Operation(summary = "逻辑删除", description = "传入ids") + public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) { + return R.status(certificateTypeService.deleteLogic(Func.toLongList(ids))); + } + + + /** + * 导出数据 + */ + @GetMapping("/export-certificateType") + @ApiOperationSupport(order = 9) + @Operation(summary = "导出数据", description = "传入certificateType") + public void exportCertificateType(@Parameter(hidden = true) @RequestParam Map certificateType, BladeUser bladeUser, HttpServletResponse response) { + QueryWrapper queryWrapper = Condition.getQueryWrapper(certificateType, CertificateTypeEntity.class); + //if (!AuthUtil.isAdministrator()) { + // queryWrapper.lambda().eq(CertificateType::getTenantId, bladeUser.getTenantId()); + //} + //queryWrapper.lambda().eq(CertificateTypeEntity::getIsDeleted, BladeConstant.DB_NOT_DELETED); + List list = certificateTypeService.exportCertificateType(queryWrapper); + ExcelUtil.export(response, "证书类型数据" + DateUtil.time(), "证书类型数据表", list, CertificateTypeExcel.class); + } + + /** + * 质量等级表 分页 + */ + @GetMapping("/selectList") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入QualityGrade") + public R> selectGradeList() { + List list = certificateTypeService.list(); + return R.data(list); + } + +} diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/controller/QualityGradeController.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/controller/QualityGradeController.java index c121b502..310287fc 100644 --- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/controller/QualityGradeController.java +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/controller/QualityGradeController.java @@ -220,4 +220,15 @@ public class QualityGradeController extends BladeController { ExcelUtil.export(response, "质量等级表数据" + DateUtil.time(), "质量等级表数据表", list, QualityGradeExcel.class); } + /** + * 质量等级表 分页 + */ + @GetMapping("/selectList") + @ApiOperationSupport(order = 2) + @Operation(summary = "分页", description = "传入QualityGrade") + public R> selectGradeList() { + List list = qualityGradeService.list(); + return R.data(list); + } + } diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/controller/WorkOrderController.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/controller/WorkOrderController.java index 5f022d9b..0fb68fcd 100644 --- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/controller/WorkOrderController.java +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/controller/WorkOrderController.java @@ -287,7 +287,7 @@ public class WorkOrderController extends BladeController { } /** - * 资质执行分析 自定义分页 + * 订单执行分析 自定义分页 */ @GetMapping("/selectOrderExecuteDetailPage") @ApiOperationSupport(order = 3) @@ -297,4 +297,26 @@ public class WorkOrderController extends BladeController { return R.data(pages); } + /** + * 工序执行分析 自定义分页 + */ + @GetMapping("/selectProcessExecutePage") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入WorkOrder") + public R> selectProcessExecutePage(WorkPlanVO workPlan, Query query) { + IPage pages = workOrderService.selectProcessExecutePage(Condition.getPage(query), workPlan); + return R.data(pages); + } + + /** + * 工序执行分析明细 自定义分页 + */ + @GetMapping("/selectProcessExecuteDetailPage") + @ApiOperationSupport(order = 3) + @Operation(summary = "分页", description = "传入WorkOrder") + public R> selectProcessExecuteDetailPage(WorkPlanVO workPlan, Query query) { + IPage pages = workOrderService.selectProcessExecuteDetailPage(Condition.getPage(query), workPlan); + return R.data(pages); + } + } diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/CertificateTypeMapper.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/CertificateTypeMapper.java new file mode 100644 index 00000000..912c2c1b --- /dev/null +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/CertificateTypeMapper.java @@ -0,0 +1,39 @@ +package org.springblade.scheduling.scheduling.mapper; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.apache.ibatis.annotations.Param; +import org.springblade.desk.jobtransfer.pojo.entity.CertificateTypeEntity; +import org.springblade.desk.jobtransfer.pojo.excel.CertificateTypeExcel; +import org.springblade.desk.jobtransfer.pojo.vo.CertificateTypeVO; + +import java.util.List; + +/** + * 证书类型 Mapper 接口 + * + * @author qyl + * @since 2026-01-08 + */ +public interface CertificateTypeMapper extends BaseMapper { + + /** + * 自定义分页 + * + * @param page 分页参数 + * @param certificateType 查询参数 + * @return List + */ + List selectCertificateTypePage(IPage page, CertificateTypeVO certificateType); + + + /** + * 获取导出数据 + * + * @param queryWrapper 查询条件 + * @return List + */ + List exportCertificateType(@Param("ew") Wrapper queryWrapper); + +} diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/CertificateTypeMapper.xml b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/CertificateTypeMapper.xml new file mode 100644 index 00000000..8432019f --- /dev/null +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/CertificateTypeMapper.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/WorkOrderMapper.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/WorkOrderMapper.java index 1926cd65..b2dce072 100644 --- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/WorkOrderMapper.java +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/WorkOrderMapper.java @@ -89,4 +89,9 @@ public interface WorkOrderMapper extends BaseMapper { List selectOrderExecuteDetailPage(IPage page, WorkPlanVO workPlan); + List selectProcessExecutePage(IPage page, WorkPlanVO workPlan); + + List selectProcessExecuteDetailPage(IPage page, WorkPlanVO workPlan); + + } diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/WorkOrderMapper.xml b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/WorkOrderMapper.xml index b5e42fe3..5098abf6 100644 --- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/WorkOrderMapper.xml +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/WorkOrderMapper.xml @@ -395,7 +395,7 @@ sum( CASE WHEN a.FACT_END_TIME a.PLAN_END_TIME - #{interval} / 1440 THEN 1 ELSE 0 END ) AS earlyFinishCount, sum( CASE WHEN a.FACT_END_TIME BETWEEN a.PLAN_END_TIME - #{interval} / 1440 AND a.PLAN_END_TIME + #{interval} / 1440 THEN 1 ELSE 0 END ) AS onTimeFinishCount, sum( CASE WHEN a.FACT_END_TIME ]]> a.PLAN_END_TIME + #{interval} / 1440 THEN 1 ELSE 0 END ) AS delayFinishCount, - count( 1 ) AS totalOrderCount + count( 1 ) AS totalCount FROM MES_WORK_ORDER a LEFT JOIN MES_YIELD_ORDER b ON a.yo_id = b.id @@ -496,4 +496,149 @@ + + + + diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/ICertificateTypeService.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/ICertificateTypeService.java new file mode 100644 index 00000000..736de04f --- /dev/null +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/ICertificateTypeService.java @@ -0,0 +1,37 @@ +package org.springblade.scheduling.scheduling.service; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseService; +import org.springblade.desk.jobtransfer.pojo.entity.CertificateTypeEntity; +import org.springblade.desk.jobtransfer.pojo.excel.CertificateTypeExcel; +import org.springblade.desk.jobtransfer.pojo.vo.CertificateTypeVO; + +import java.util.List; + +/** + * 证书类型 服务类 + * + * @author qyl + * @since 2026-01-08 + */ +public interface ICertificateTypeService extends BaseService { + /** + * 自定义分页 + * + * @param page 分页参数 + * @param certificateType 查询参数 + * @return IPage + */ + IPage selectCertificateTypePage(IPage page, CertificateTypeVO certificateType); + + + /** + * 导出数据 + * + * @param queryWrapper 查询条件 + * @return List + */ + List exportCertificateType(Wrapper queryWrapper); + +} diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/IWorkOrderService.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/IWorkOrderService.java index 4eef3a0d..8a4b6ea4 100644 --- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/IWorkOrderService.java +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/IWorkOrderService.java @@ -113,4 +113,9 @@ public interface IWorkOrderService extends BaseService { List selectCenterExecuteList(WorkPlanVO workPlan); IPage selectOrderExecuteDetailPage(IPage page, WorkPlanVO workPlan); + + IPage selectProcessExecutePage(IPage page, WorkPlanVO workPlan); + + IPage selectProcessExecuteDetailPage(IPage page, WorkPlanVO workPlan); + } diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/CertificateTypeServiceImpl.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/CertificateTypeServiceImpl.java new file mode 100644 index 00000000..4f4a1cbf --- /dev/null +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/CertificateTypeServiceImpl.java @@ -0,0 +1,39 @@ +package org.springblade.scheduling.scheduling.service.impl; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.desk.jobtransfer.pojo.entity.CertificateTypeEntity; +import org.springblade.desk.jobtransfer.pojo.excel.CertificateTypeExcel; +import org.springblade.desk.jobtransfer.pojo.vo.CertificateTypeVO; +import org.springblade.scheduling.scheduling.mapper.CertificateTypeMapper; +import org.springblade.scheduling.scheduling.service.ICertificateTypeService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 证书类型 服务实现类 + * + * @author qyl + * @since 2026-01-08 + */ +@Service +public class CertificateTypeServiceImpl extends BaseServiceImpl implements ICertificateTypeService { + + @Override + public IPage selectCertificateTypePage(IPage page, CertificateTypeVO certificateType) { + return page.setRecords(baseMapper.selectCertificateTypePage(page, certificateType)); + } + + + @Override + public List exportCertificateType(Wrapper queryWrapper) { + List certificateTypeList = baseMapper.exportCertificateType(queryWrapper); + //certificateTypeList.forEach(certificateType -> { + // certificateType.setTypeName(DictCache.getValue(DictEnum.YES_NO, CertificateType.getType())); + //}); + return certificateTypeList; + } + +} diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java index 50b6f1eb..40792205 100644 --- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java @@ -1472,15 +1472,18 @@ public class WorkOrderServiceImpl extends BaseServiceImpl selectCenterExecuteList(WorkPlanVO workPlan) { + if(workPlan.getInterval() == null){ + workPlan.setInterval(0); + } List list = baseMapper.selectCenterExecuteList(workPlan); if (CollectionUtils.isNotEmpty(list)) { for (WorkPlanVO vo : list) { - vo.setEarlyStartCountRate(vo.getEarlyStartCount() == 0 ? "0" : Double.parseDouble(String.format("%.2f", (double) vo.getEarlyStartCount() / vo.getTotalOrderCount())) * 100 + "%"); - vo.setOnTimeStartCountRate(vo.getOnTimeStartCount() == 0 ? "0" : Double.parseDouble(String.format("%.2f", (double) vo.getOnTimeStartCount() / vo.getTotalOrderCount())) * 100 + "%"); - vo.setDelayStartCountRate(vo.getDelayStartCount() == 0 ? "0" : Double.parseDouble(String.format("%.2f", (double) vo.getDelayStartCount() / vo.getTotalOrderCount())) * 100 + "%"); - vo.setEarlyFinishCountRate(vo.getEarlyFinishCount() == 0 ? "0" : Double.parseDouble(String.format("%.2f", (double) vo.getEarlyFinishCount() / vo.getTotalOrderCount())) * 100 + "%"); - vo.setOnTimeFinishCountRate(vo.getOnTimeFinishCount() == 0 ? "0" : Double.parseDouble(String.format("%.2f", (double) vo.getOnTimeFinishCount() / vo.getTotalOrderCount())) * 100 + "%"); - vo.setDelayFinishCountRate(vo.getDelayFinishCount() == 0 ? "0" : Double.parseDouble(String.format("%.2f", (double) vo.getDelayFinishCount() / vo.getTotalOrderCount())) * 100 + "%"); + vo.setEarlyStartCountRate(vo.getEarlyStartCount() == 0 ? "0" : Double.parseDouble(String.format("%.2f", (double) vo.getEarlyStartCount() / vo.getTotalCount())) * 100 + "%"); + vo.setOnTimeStartCountRate(vo.getOnTimeStartCount() == 0 ? "0" : Double.parseDouble(String.format("%.2f", (double) vo.getOnTimeStartCount() / vo.getTotalCount())) * 100 + "%"); + vo.setDelayStartCountRate(vo.getDelayStartCount() == 0 ? "0" : Double.parseDouble(String.format("%.2f", (double) vo.getDelayStartCount() / vo.getTotalCount())) * 100 + "%"); + vo.setEarlyFinishCountRate(vo.getEarlyFinishCount() == 0 ? "0" : Double.parseDouble(String.format("%.2f", (double) vo.getEarlyFinishCount() / vo.getTotalCount())) * 100 + "%"); + vo.setOnTimeFinishCountRate(vo.getOnTimeFinishCount() == 0 ? "0" : Double.parseDouble(String.format("%.2f", (double) vo.getOnTimeFinishCount() / vo.getTotalCount())) * 100 + "%"); + vo.setDelayFinishCountRate(vo.getDelayFinishCount() == 0 ? "0" : Double.parseDouble(String.format("%.2f", (double) vo.getDelayFinishCount() / vo.getTotalCount())) * 100 + "%"); } } return list; @@ -1488,6 +1491,9 @@ public class WorkOrderServiceImpl extends BaseServiceImpl selectOrderExecuteDetailPage(IPage page, WorkPlanVO workPlan) { + if(workPlan.getInterval() == null){ + workPlan.setInterval(0); + } if (StringUtils.isNotEmpty(workPlan.getStartTime())) { workPlan.setStartTime(workPlan.getStartTime() + " 00:00:00"); } @@ -1498,5 +1504,46 @@ public class WorkOrderServiceImpl extends BaseServiceImpl selectProcessExecutePage(IPage page, WorkPlanVO workPlan) { + if(workPlan.getInterval() == null){ + workPlan.setInterval(0); + } + if (StringUtils.isNotEmpty(workPlan.getStartTime())) { + workPlan.setStartTime(workPlan.getStartTime() + " 00:00:00"); + } + if (StringUtils.isNotEmpty(workPlan.getEndTime())) { + workPlan.setEndTime(workPlan.getEndTime() + " 23:59:59"); + } + List list = baseMapper.selectProcessExecutePage(page, workPlan); + if (CollectionUtils.isNotEmpty(list)) { + for (WorkPlanVO vo : list) { + vo.setEarlyStartCountRate(vo.getEarlyStartCount() == 0 ? "0" : Double.parseDouble(String.format("%.2f", (double) vo.getEarlyStartCount() / vo.getTotalCount())) * 100 + "%"); + vo.setOnTimeStartCountRate(vo.getOnTimeStartCount() == 0 ? "0" : Double.parseDouble(String.format("%.2f", (double) vo.getOnTimeStartCount() / vo.getTotalCount())) * 100 + "%"); + vo.setDelayStartCountRate(vo.getDelayStartCount() == 0 ? "0" : Double.parseDouble(String.format("%.2f", (double) vo.getDelayStartCount() / vo.getTotalCount())) * 100 + "%"); + vo.setEarlyFinishCountRate(vo.getEarlyFinishCount() == 0 ? "0" : Double.parseDouble(String.format("%.2f", (double) vo.getEarlyFinishCount() / vo.getTotalCount())) * 100 + "%"); + vo.setOnTimeFinishCountRate(vo.getOnTimeFinishCount() == 0 ? "0" : Double.parseDouble(String.format("%.2f", (double) vo.getOnTimeFinishCount() / vo.getTotalCount())) * 100 + "%"); + vo.setDelayFinishCountRate(vo.getDelayFinishCount() == 0 ? "0" : Double.parseDouble(String.format("%.2f", (double) vo.getDelayFinishCount() / vo.getTotalCount())) * 100 + "%"); + } + } + return page.setRecords(list); + } + + @Override + public IPage selectProcessExecuteDetailPage(IPage page, WorkPlanVO workPlan) { + if(workPlan.getInterval() == null){ + workPlan.setInterval(0); + } + if (StringUtils.isNotEmpty(workPlan.getStartTime())) { + workPlan.setStartTime(workPlan.getStartTime() + " 00:00:00"); + } + if (StringUtils.isNotEmpty(workPlan.getEndTime())) { + workPlan.setEndTime(workPlan.getEndTime() + " 23:59:59"); + } + List list = baseMapper.selectProcessExecuteDetailPage(page, workPlan); + return page.setRecords(list); + } + + } diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkPlanServiceImpl.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkPlanServiceImpl.java index 09d0122f..1d42cc5b 100644 --- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkPlanServiceImpl.java +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkPlanServiceImpl.java @@ -26,11 +26,15 @@ package org.springblade.scheduling.scheduling.service.impl; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; import org.apache.commons.lang3.ObjectUtils; import org.springblade.core.tool.utils.CollectionUtil; +import org.springblade.scheduling.pojo.entity.WorkOrderEntity; import org.springblade.scheduling.pojo.entity.WorkPlanEntity; import org.springblade.scheduling.scheduling.excel.WorkPlanExcel; +import org.springblade.scheduling.scheduling.mapper.WorkOrderMapper; import org.springblade.scheduling.scheduling.mapper.WorkPlanMapper; +import org.springblade.scheduling.scheduling.service.ICraftAbilityService; import org.springblade.scheduling.scheduling.service.IWorkPlanService; import org.springblade.scheduling.scheduling.vo.WorkPlanVO; import org.springframework.stereotype.Service; @@ -51,8 +55,11 @@ import java.util.List; * @since 2025-11-28 */ @Service +@RequiredArgsConstructor public class WorkPlanServiceImpl extends BaseServiceImpl implements IWorkPlanService { + private final WorkOrderMapper workOrderMapper; + @Override public IPage selectWorkPlanPage(IPage page, WorkPlanVO workPlan) { return page.setRecords(baseMapper.selectWorkPlanPage(page, workPlan)); @@ -83,11 +90,24 @@ public class WorkPlanServiceImpl extends BaseServiceImpl allPlanList = baseMapper.selectList(Wrappers.lambdaQuery().eq(WorkPlanEntity::getWoId,workPlan.getWoId()).orderByAsc(WorkPlanEntity::getOrders)); + //获取车间订单 + WorkOrderEntity workOrder = workOrderMapper.selectById(workPlan.getWoId()); + if(workOrder.getFactStartTime() == null && allPlanList.get(0).getFactStartTime() != null){ + workOrder.setFactStartTime(allPlanList.get(0).getFactStartTime()); + } + if(workOrder.getFactEndTime() == null && allPlanList.get(allPlanList.size()-1).getFactEndTime()!=null){ + workOrder.setFactEndTime(allPlanList.get(allPlanList.size()-1).getFactEndTime()); + } + workOrderMapper.updateById(workOrder); } } diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/vo/WorkPlanVO.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/vo/WorkPlanVO.java index 79e9bbfb..3caa6c1c 100644 --- a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/vo/WorkPlanVO.java +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/vo/WorkPlanVO.java @@ -43,6 +43,11 @@ public class WorkPlanVO extends WorkPlanEntity { @Serial private static final long serialVersionUID = 1L; + /** + * 零件号 + */ + private String partCode; + private String partName; private String batchNo; @@ -81,7 +86,7 @@ public class WorkPlanVO extends WorkPlanEntity { private String earlyFinishCountRate; private String onTimeFinishCountRate; private String delayFinishCountRate; - private Integer totalOrderCount; + private Integer totalCount; private Integer interval; private String startType; private String endType; diff --git a/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/wrapper/CertificateTypeWrapper.java b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/wrapper/CertificateTypeWrapper.java new file mode 100644 index 00000000..77d985a4 --- /dev/null +++ b/blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/wrapper/CertificateTypeWrapper.java @@ -0,0 +1,35 @@ +package org.springblade.scheduling.scheduling.wrapper; + +import org.springblade.core.mp.support.BaseEntityWrapper; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.desk.jobtransfer.pojo.entity.CertificateTypeEntity; +import org.springblade.desk.jobtransfer.pojo.vo.CertificateTypeVO; + +import java.util.Objects; + +/** + * 证书类型 包装类,返回视图层所需的字段 + * + * @author qyl + * @since 2026-01-08 + */ +public class CertificateTypeWrapper extends BaseEntityWrapper { + + public static CertificateTypeWrapper build() { + return new CertificateTypeWrapper(); + } + + @Override + public CertificateTypeVO entityVO(CertificateTypeEntity certificateType) { + CertificateTypeVO certificateTypeVO = Objects.requireNonNull(BeanUtil.copyProperties(certificateType, CertificateTypeVO.class)); + + //User createUser = UserCache.getUser(certificateType.getCreateUser()); + //User updateUser = UserCache.getUser(certificateType.getUpdateUser()); + //certificateTypeVO.setCreateUserName(createUser.getName()); + //certificateTypeVO.setUpdateUserName(updateUser.getName()); + + return certificateTypeVO; + } + + +} From 4fbb5653532c9fb79378ed14ea9cdd42cdc96b6d Mon Sep 17 00:00:00 2001 From: ShiJiuZhou <15315423958@163.com> Date: Fri, 27 Feb 2026 14:53:10 +0800 Subject: [PATCH 5/9] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E6=97=B6=E6=97=A5=E5=BF=97=E5=AD=98=E5=82=A8=EF=BC=8C=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E6=9F=A5=E8=AF=A2=E7=99=BB=E9=99=86=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/BladeAuthorizationHandler.java | 39 ++++++++++++++++- .../core/log/controller/LogApiController.java | 15 ++++++- .../core/log/pojo/dto/UserLoginStatsDTO.java | 39 +++++++++++++++++ .../core/log/service/ILogApiService.java | 10 +++++ .../log/service/impl/LogApiServiceImpl.java | 42 +++++++++++++++++++ 5 files changed, 142 insertions(+), 3 deletions(-) create mode 100644 blade-ops/blade-log/src/main/java/org/springblade/core/log/pojo/dto/UserLoginStatsDTO.java diff --git a/blade-auth/src/main/java/org/springblade/auth/handler/BladeAuthorizationHandler.java b/blade-auth/src/main/java/org/springblade/auth/handler/BladeAuthorizationHandler.java index 33d7f27e..939d2fc8 100644 --- a/blade-auth/src/main/java/org/springblade/auth/handler/BladeAuthorizationHandler.java +++ b/blade-auth/src/main/java/org/springblade/auth/handler/BladeAuthorizationHandler.java @@ -25,10 +25,13 @@ */ package org.springblade.auth.handler; +import jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletRequest; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.common.constant.TenantConstant; import org.springblade.core.launch.props.BladeProperties; +import org.springblade.core.log.logger.BladeLogger; import org.springblade.core.oauth2.exception.ExceptionCode; import org.springblade.core.oauth2.handler.AbstractAuthorizationHandler; import org.springblade.core.oauth2.props.OAuth2Properties; @@ -42,6 +45,10 @@ import org.springblade.core.tool.utils.DesUtil; import org.springblade.core.tool.utils.SM2Util; import org.springblade.system.cache.SysCache; import org.springblade.system.pojo.entity.Tenant; +import org.springframework.data.redis.core.HashOperations; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; import java.util.Date; import java.util.List; @@ -59,6 +66,8 @@ public class BladeAuthorizationHandler extends AbstractAuthorizationHandler { private final BladeTenantProperties tenantProperties; private final OAuth2Properties oAuth2Properties; private final BladeLockHandler lockHandler; + @Resource + private RedisTemplate redisTemplate; /** * 自定义弱密码列表 @@ -134,10 +143,36 @@ public class BladeAuthorizationHandler extends AbstractAuthorizationHandler { public void authSuccessful(OAuth2User user, OAuth2Request request) { // 处理认证成功,清空错误次数 lockHandler.handleAuthSuccess(user.getTenantId(), user.getAccount()); - + // 更新 Redis 登录统计 + updateUserLoginStats(user); log.info("用户:{},认证成功", user.getAccount()); } - + /** + * 更新用户登录统计信息到 Redis + */ + private void updateUserLoginStats(OAuth2User user) { + // 获取用户ID + String userId = user.getUserId(); + // 获取用户名 + String username = user.getName(); + String key = "user:login:" + userId; + // 获取登录IP + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest(); + String loginIp = request.getRemoteAddr(); + // 获取部门ID(假设 user 对象提供 getDeptId 方法) + String deptId = user.getDeptId(); + // 获取 Redis 操作对象 + HashOperations hashOps = redisTemplate.opsForHash(); + // 1. 更新用户名(可选,若用户名可能变更) + hashOps.put(key, "username", username); + // 2. 存储登录IP + hashOps.put(key, "loginIp", loginIp); + // 3. 存储部门ID + hashOps.put(key, "deptId", deptId); + // 4. 更新最后一次登录时间 + long lastLoginTime = System.currentTimeMillis(); + hashOps.put(key, "lastLoginTime", lastLoginTime); + } /** * 认证失败回调 * diff --git a/blade-ops/blade-log/src/main/java/org/springblade/core/log/controller/LogApiController.java b/blade-ops/blade-log/src/main/java/org/springblade/core/log/controller/LogApiController.java index 5ba1d79f..0e09ccb6 100644 --- a/blade-ops/blade-log/src/main/java/org/springblade/core/log/controller/LogApiController.java +++ b/blade-ops/blade-log/src/main/java/org/springblade/core/log/controller/LogApiController.java @@ -30,6 +30,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import io.swagger.v3.oas.annotations.Parameter; import lombok.AllArgsConstructor; import org.springblade.core.log.model.LogApi; +import org.springblade.core.log.pojo.dto.UserLoginStatsDTO; import org.springblade.core.log.pojo.vo.LogApiVO; import org.springblade.core.log.service.ILogApiService; import org.springblade.core.log.wrapper.LogApiWrapper; @@ -38,12 +39,13 @@ import org.springblade.core.mp.support.Query; import org.springblade.core.secure.annotation.IsAdmin; import org.springblade.core.tenant.annotation.NonDS; import org.springblade.core.tool.api.R; +import org.springframework.data.redis.core.HashOperations; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import java.util.Map; +import java.util.*; /** * 控制器 @@ -77,4 +79,15 @@ public class LogApiController { return R.data(LogApiWrapper.build().pageVO(pages)); } + @IsAdmin + @GetMapping("/listUserLoginStatus") + public R> getUserLoginStats( + @RequestParam(required = false) String username, + @RequestParam(required = false) String deptId + ) { + // 获取所有 user:login:* 键 + List result = logService.getUserLoginStats(username, deptId); + return R.data(result); + } + } diff --git a/blade-ops/blade-log/src/main/java/org/springblade/core/log/pojo/dto/UserLoginStatsDTO.java b/blade-ops/blade-log/src/main/java/org/springblade/core/log/pojo/dto/UserLoginStatsDTO.java new file mode 100644 index 00000000..279eab47 --- /dev/null +++ b/blade-ops/blade-log/src/main/java/org/springblade/core/log/pojo/dto/UserLoginStatsDTO.java @@ -0,0 +1,39 @@ +package org.springblade.core.log.pojo.dto; + +import lombok.AllArgsConstructor; +import lombok.Data; + +/** + * @author 石玖洲 + * @Description + * @create 2026-02-27 14:15 + */ +@Data +@AllArgsConstructor +public class UserLoginStatsDTO { + + /** + * 用户ID + */ + private String userId; + + /** + * 用户名 + */ + private String username; + + /** + * 登录IP + */ + private String loginIp; + + /** + * 部门ID + */ + private String deptId; + + /** + * 最后一次登录时间 + */ + private Long lastLoginTime; +} diff --git a/blade-ops/blade-log/src/main/java/org/springblade/core/log/service/ILogApiService.java b/blade-ops/blade-log/src/main/java/org/springblade/core/log/service/ILogApiService.java index 08cf39a8..95d79b4c 100644 --- a/blade-ops/blade-log/src/main/java/org/springblade/core/log/service/ILogApiService.java +++ b/blade-ops/blade-log/src/main/java/org/springblade/core/log/service/ILogApiService.java @@ -27,6 +27,9 @@ package org.springblade.core.log.service; import com.baomidou.mybatisplus.extension.service.IService; import org.springblade.core.log.model.LogApi; +import org.springblade.core.log.pojo.dto.UserLoginStatsDTO; + +import java.util.List; /** * 服务类 @@ -35,4 +38,11 @@ import org.springblade.core.log.model.LogApi; */ public interface ILogApiService extends IService { + /** + * 获取用户登录状态 + * @param username 用户名 + * @param deptId 部门ID + * @return 用户登录状态列表 + */ + List getUserLoginStats(String username, String deptId); } diff --git a/blade-ops/blade-log/src/main/java/org/springblade/core/log/service/impl/LogApiServiceImpl.java b/blade-ops/blade-log/src/main/java/org/springblade/core/log/service/impl/LogApiServiceImpl.java index c3c0de68..407f230e 100644 --- a/blade-ops/blade-log/src/main/java/org/springblade/core/log/service/impl/LogApiServiceImpl.java +++ b/blade-ops/blade-log/src/main/java/org/springblade/core/log/service/impl/LogApiServiceImpl.java @@ -26,11 +26,19 @@ package org.springblade.core.log.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import jakarta.annotation.Resource; +import org.springblade.core.log.controller.LogApiController; import org.springblade.core.log.mapper.LogApiMapper; import org.springblade.core.log.model.LogApi; +import org.springblade.core.log.pojo.dto.UserLoginStatsDTO; import org.springblade.core.log.service.ILogApiService; +import org.springblade.core.tool.api.R; +import org.springframework.data.redis.core.HashOperations; +import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; +import java.util.*; + /** * 服务实现类 * @@ -39,5 +47,39 @@ import org.springframework.stereotype.Service; @Service public class LogApiServiceImpl extends ServiceImpl implements ILogApiService { + @Resource + private RedisTemplate redisTemplate; + @Override + public List getUserLoginStats(String username, String deptId) { + Set keys = redisTemplate.keys("user:login:*"); + if (keys == null || keys.isEmpty()) { + new ArrayList<>(); + } + // 获取用户登录信息(带筛选) + List result = new ArrayList<>(); + for (String key : Objects.requireNonNull(keys)) { + HashOperations hashOps = redisTemplate.opsForHash(); + String userId = key.replace("user:login:", ""); + String currentUsername = (String) hashOps.get(key, "username"); + String currentDeptId = (String) hashOps.get(key, "deptId"); + // 过滤条件:根据 username 和 deptId 筛选 + boolean matchUsername = username == null || currentUsername != null && currentUsername.contains(username); + boolean matchDept = deptId == null || currentDeptId != null && currentDeptId.equals(deptId); + if (matchUsername && matchDept) { + String loginIp = (String) hashOps.get(key, "loginIp"); + Long lastLoginTime = (Long) hashOps.get(key, "lastLoginTime"); + if (currentUsername != null && loginIp != null && lastLoginTime != null) { + result.add(new UserLoginStatsDTO( + userId, + currentUsername, + loginIp, + currentDeptId, + lastLoginTime + )); + } + } + } + return result; + } } From b25c776b8ed0ef7e458f7cb47bf8d5f619205c32 Mon Sep 17 00:00:00 2001 From: liuqingkun Date: Fri, 27 Feb 2026 16:24:52 +0800 Subject: [PATCH 6/9] =?UTF-8?q?erp=E6=9F=A5=E8=AF=A2=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../springblade/erpdata/feign/IErpMesRbPkpqryClient.java | 5 +++-- .../erpdata/feign/IErpMesRbPkpqryClientFallback.java | 3 ++- .../desk/order/controller/YieldPlanController.java | 2 +- .../org/springblade/erpdata/feign/ErpMesRbPkpqryClient.java | 6 ++++-- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbPkpqryClient.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbPkpqryClient.java index 0abe71ed..642fd875 100644 --- a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbPkpqryClient.java +++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbPkpqryClient.java @@ -2,6 +2,7 @@ package org.springblade.erpdata.feign; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.launch.constant.AppConstant; +import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springblade.erpdata.pojo.dto.MesRbPkpqryDTO; import org.springframework.cloud.openfeign.FeignClient; @@ -24,7 +25,7 @@ public interface IErpMesRbPkpqryClient { /** * 查询配置结果 * - * @param page 分页参数 + * @param query 分页参数 * @param pkno 配套单号 * @param prtmdept 主制部门 * @param subpkdateStart 配套开始时间 @@ -32,5 +33,5 @@ public interface IErpMesRbPkpqryClient { * @return */ @GetMapping(SELECT_PAGE) - R> selectPage(IPage page, String pkno, String prtmdept, String subpkdateStart, String subpkdateEnd); + R> selectPage(Query query, String pkno, String prtmdept, String subpkdateStart, String subpkdateEnd); } diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbPkpqryClientFallback.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbPkpqryClientFallback.java index 50ad2890..614319c1 100644 --- a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbPkpqryClientFallback.java +++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbPkpqryClientFallback.java @@ -2,6 +2,7 @@ package org.springblade.erpdata.feign; import com.baomidou.mybatisplus.core.metadata.IPage; +import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springblade.erpdata.pojo.dto.MesRbPkpqryDTO; @@ -13,7 +14,7 @@ import org.springblade.erpdata.pojo.dto.MesRbPkpqryDTO; public class IErpMesRbPkpqryClientFallback implements IErpMesRbPkpqryClient { @Override - public R> selectPage(IPage page, String pkno, String prtmdept, String subpkdateStart, String subpkdateEnd) { + public R> selectPage(Query query, String pkno, String prtmdept, String subpkdateStart, String subpkdateEnd) { return R.fail("获取数据失败"); } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/controller/YieldPlanController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/controller/YieldPlanController.java index ecce6874..cf84e535 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/controller/YieldPlanController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/controller/YieldPlanController.java @@ -192,7 +192,7 @@ public class YieldPlanController extends BladeController { @Parameter(description = "配套开始时间", required = false) @RequestParam String subpkdateStart, @Parameter(description = "配套结束时间", required = false) @RequestParam String subpkdateEnd, Query query) { - R> result = mesRbPkpqryClient.selectPage(Condition.getPage(query), pkno, prtmdept, subpkdateStart, subpkdateEnd); + R> result = mesRbPkpqryClient.selectPage(query, pkno, prtmdept, subpkdateStart, subpkdateEnd); return result; } } diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpMesRbPkpqryClient.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpMesRbPkpqryClient.java index 0cf6c197..1c17d674 100644 --- a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpMesRbPkpqryClient.java +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpMesRbPkpqryClient.java @@ -4,6 +4,8 @@ package org.springblade.erpdata.feign; import com.baomidou.mybatisplus.core.metadata.IPage; import io.swagger.v3.oas.annotations.Hidden; import lombok.AllArgsConstructor; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; import org.springblade.core.tenant.annotation.NonDS; import org.springblade.core.tool.api.R; import org.springblade.erpdata.pojo.dto.MesRbPkpqryDTO; @@ -27,7 +29,7 @@ public class ErpMesRbPkpqryClient implements IErpMesRbPkpqryClient { @GetMapping(SELECT_PAGE) @Override - public R> selectPage(IPage page, String pkno, String prtmdept, String subpkdateStart, String subpkdateEnd) { - return R.data(mesRbPkpqryService.page(page, pkno, prtmdept, subpkdateStart, subpkdateEnd)); + public R> selectPage(Query query, String pkno, String prtmdept, String subpkdateStart, String subpkdateEnd) { + return R.data(mesRbPkpqryService.page(Condition.getPage(query), pkno, prtmdept, subpkdateStart, subpkdateEnd)); } } From 3e93ec77dce96dd515f346f48e3c15c6a2a8c397 Mon Sep 17 00:00:00 2001 From: liuqingkun Date: Fri, 27 Feb 2026 16:30:00 +0800 Subject: [PATCH 7/9] =?UTF-8?q?feigin=E6=8E=A5=E5=8F=A3=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../springblade/erpdata/feign/IErpMesRbPkpqryClient.java | 6 +++--- .../erpdata/feign/IErpMesRbPkpqryClientFallback.java | 3 +-- .../desk/order/controller/YieldPlanController.java | 2 +- .../org/springblade/erpdata/feign/ErpMesRbPkpqryClient.java | 5 ++++- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbPkpqryClient.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbPkpqryClient.java index 642fd875..03efb930 100644 --- a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbPkpqryClient.java +++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbPkpqryClient.java @@ -2,7 +2,6 @@ package org.springblade.erpdata.feign; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.core.launch.constant.AppConstant; -import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springblade.erpdata.pojo.dto.MesRbPkpqryDTO; import org.springframework.cloud.openfeign.FeignClient; @@ -25,7 +24,8 @@ public interface IErpMesRbPkpqryClient { /** * 查询配置结果 * - * @param query 分页参数 + * @param current 分页参数 + * @param size 分页参数 * @param pkno 配套单号 * @param prtmdept 主制部门 * @param subpkdateStart 配套开始时间 @@ -33,5 +33,5 @@ public interface IErpMesRbPkpqryClient { * @return */ @GetMapping(SELECT_PAGE) - R> selectPage(Query query, String pkno, String prtmdept, String subpkdateStart, String subpkdateEnd); + R> selectPage(Integer current, Integer size, String pkno, String prtmdept, String subpkdateStart, String subpkdateEnd); } diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbPkpqryClientFallback.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbPkpqryClientFallback.java index 614319c1..ef37d763 100644 --- a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbPkpqryClientFallback.java +++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbPkpqryClientFallback.java @@ -2,7 +2,6 @@ package org.springblade.erpdata.feign; import com.baomidou.mybatisplus.core.metadata.IPage; -import org.springblade.core.mp.support.Query; import org.springblade.core.tool.api.R; import org.springblade.erpdata.pojo.dto.MesRbPkpqryDTO; @@ -14,7 +13,7 @@ import org.springblade.erpdata.pojo.dto.MesRbPkpqryDTO; public class IErpMesRbPkpqryClientFallback implements IErpMesRbPkpqryClient { @Override - public R> selectPage(Query query, String pkno, String prtmdept, String subpkdateStart, String subpkdateEnd) { + public R> selectPage(Integer current, Integer size, String pkno, String prtmdept, String subpkdateStart, String subpkdateEnd) { return R.fail("获取数据失败"); } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/controller/YieldPlanController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/controller/YieldPlanController.java index cf84e535..ff9f0b2e 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/order/controller/YieldPlanController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/order/controller/YieldPlanController.java @@ -192,7 +192,7 @@ public class YieldPlanController extends BladeController { @Parameter(description = "配套开始时间", required = false) @RequestParam String subpkdateStart, @Parameter(description = "配套结束时间", required = false) @RequestParam String subpkdateEnd, Query query) { - R> result = mesRbPkpqryClient.selectPage(query, pkno, prtmdept, subpkdateStart, subpkdateEnd); + R> result = mesRbPkpqryClient.selectPage(query.getCurrent(), query.getSize(), pkno, prtmdept, subpkdateStart, subpkdateEnd); return result; } } diff --git a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpMesRbPkpqryClient.java b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpMesRbPkpqryClient.java index 1c17d674..223b7828 100644 --- a/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpMesRbPkpqryClient.java +++ b/blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpMesRbPkpqryClient.java @@ -29,7 +29,10 @@ public class ErpMesRbPkpqryClient implements IErpMesRbPkpqryClient { @GetMapping(SELECT_PAGE) @Override - public R> selectPage(Query query, String pkno, String prtmdept, String subpkdateStart, String subpkdateEnd) { + public R> selectPage(Integer current, Integer size, String pkno, String prtmdept, String subpkdateStart, String subpkdateEnd) { + Query query = new Query(); + query.setCurrent(current); + query.setSize(size); return R.data(mesRbPkpqryService.page(Condition.getPage(query), pkno, prtmdept, subpkdateStart, subpkdateEnd)); } } From 28d96374ae38302444099203be11dc2147b4fa54 Mon Sep 17 00:00:00 2001 From: liuqingkun Date: Fri, 27 Feb 2026 16:43:32 +0800 Subject: [PATCH 8/9] =?UTF-8?q?feigin=E6=8E=A5=E5=8F=A3=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../springblade/erpdata/feign/IErpMesRbPkpqryClient.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbPkpqryClient.java b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbPkpqryClient.java index 03efb930..611a154e 100644 --- a/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbPkpqryClient.java +++ b/blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpMesRbPkpqryClient.java @@ -6,6 +6,7 @@ import org.springblade.core.tool.api.R; import org.springblade.erpdata.pojo.dto.MesRbPkpqryDTO; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; /** * Feign接口类 @@ -33,5 +34,10 @@ public interface IErpMesRbPkpqryClient { * @return */ @GetMapping(SELECT_PAGE) - R> selectPage(Integer current, Integer size, String pkno, String prtmdept, String subpkdateStart, String subpkdateEnd); + R> selectPage(@RequestParam(value = "current", required = false, defaultValue = "1") Integer current, + @RequestParam(value = "size", required = false, defaultValue = "10") Integer size, + @RequestParam(value = "pkno", required = false) String pkno, + @RequestParam(value = "prtmdept", required = false) String prtmdept, + @RequestParam(value = "subpkdateStart", required = false) String subpkdateStart, + @RequestParam(value = "subpkdateEnd", required = false) String subpkdateEnd); } From 26d2bee4f58927578d69be18c8936567a99a1b1c Mon Sep 17 00:00:00 2001 From: ShiJiuZhou <15315423958@163.com> Date: Fri, 27 Feb 2026 17:18:21 +0800 Subject: [PATCH 9/9] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E6=AC=A1=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../auth/handler/BladeAuthorizationHandler.java | 8 ++++++++ .../springblade/core/log/pojo/dto/UserLoginStatsDTO.java | 5 +++++ .../core/log/service/impl/LogApiServiceImpl.java | 4 +++- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/blade-auth/src/main/java/org/springblade/auth/handler/BladeAuthorizationHandler.java b/blade-auth/src/main/java/org/springblade/auth/handler/BladeAuthorizationHandler.java index 939d2fc8..c48d9a0a 100644 --- a/blade-auth/src/main/java/org/springblade/auth/handler/BladeAuthorizationHandler.java +++ b/blade-auth/src/main/java/org/springblade/auth/handler/BladeAuthorizationHandler.java @@ -172,6 +172,14 @@ public class BladeAuthorizationHandler extends AbstractAuthorizationHandler { // 4. 更新最后一次登录时间 long lastLoginTime = System.currentTimeMillis(); hashOps.put(key, "lastLoginTime", lastLoginTime); + + // 新增:登录次数递增 + Object countObj = hashOps.get(key, "loginCount"); + long loginCount = 1; + if (countObj != null) { + loginCount = (Long) countObj + 1; + } + hashOps.put(key, "loginCount", loginCount); } /** * 认证失败回调 diff --git a/blade-ops/blade-log/src/main/java/org/springblade/core/log/pojo/dto/UserLoginStatsDTO.java b/blade-ops/blade-log/src/main/java/org/springblade/core/log/pojo/dto/UserLoginStatsDTO.java index 279eab47..9f28a8ea 100644 --- a/blade-ops/blade-log/src/main/java/org/springblade/core/log/pojo/dto/UserLoginStatsDTO.java +++ b/blade-ops/blade-log/src/main/java/org/springblade/core/log/pojo/dto/UserLoginStatsDTO.java @@ -36,4 +36,9 @@ public class UserLoginStatsDTO { * 最后一次登录时间 */ private Long lastLoginTime; + + /** + * 登录次数 + */ + private Long loginCount; } diff --git a/blade-ops/blade-log/src/main/java/org/springblade/core/log/service/impl/LogApiServiceImpl.java b/blade-ops/blade-log/src/main/java/org/springblade/core/log/service/impl/LogApiServiceImpl.java index 407f230e..1fb6cdbe 100644 --- a/blade-ops/blade-log/src/main/java/org/springblade/core/log/service/impl/LogApiServiceImpl.java +++ b/blade-ops/blade-log/src/main/java/org/springblade/core/log/service/impl/LogApiServiceImpl.java @@ -63,6 +63,7 @@ public class LogApiServiceImpl extends ServiceImpl impleme String userId = key.replace("user:login:", ""); String currentUsername = (String) hashOps.get(key, "username"); String currentDeptId = (String) hashOps.get(key, "deptId"); + Long loginCount = (Long) hashOps.get(key, "loginCount"); // 过滤条件:根据 username 和 deptId 筛选 boolean matchUsername = username == null || currentUsername != null && currentUsername.contains(username); boolean matchDept = deptId == null || currentDeptId != null && currentDeptId.equals(deptId); @@ -75,7 +76,8 @@ public class LogApiServiceImpl extends ServiceImpl impleme currentUsername, loginIp, currentDeptId, - lastLoginTime + lastLoginTime, + loginCount )); } }