From b2a985788778bf36629952fd261c22cfbad57ab3 Mon Sep 17 00:00:00 2001 From: HuangHuiKang Date: Mon, 8 Jun 2026 17:18:47 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=E6=A8=A1=E5=85=B7?= =?UTF-8?q?=E7=BB=84=E7=9B=B8=E5=85=B3=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dal/mysql/mold/MoldBrandMapper.java | 2 +- .../service/mold/MoldBrandServiceImpl.java | 34 ++++++++++--------- .../moldoperate/vo/MoldOperateSaveReqVO.java | 8 +++++ .../moldoperate/MoldOperateServiceImpl.java | 2 +- .../src/main/resources/application.yaml | 6 ++-- 5 files changed, 31 insertions(+), 21 deletions(-) diff --git a/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/dal/mysql/mold/MoldBrandMapper.java b/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/dal/mysql/mold/MoldBrandMapper.java index b9aeb1349..f77203d98 100644 --- a/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/dal/mysql/mold/MoldBrandMapper.java +++ b/yudao-module-common/yudao-module-common-biz/src/main/java/cn/iocoder/yudao/module/common/dal/mysql/mold/MoldBrandMapper.java @@ -23,7 +23,7 @@ public interface MoldBrandMapper extends BaseMapperX { default LambdaQueryWrapperX buildQueryWrapper(MoldBrandPageReqVO reqVO) { LambdaQueryWrapperX queryWrapper = new LambdaQueryWrapperX() - .eqIfPresent(MoldBrandDO::getCode, reqVO.getCode()) + .likeIfPresent(MoldBrandDO::getCode, reqVO.getCode()) .likeIfPresent(MoldBrandDO::getName, reqVO.getName()) .eqIfPresent(MoldBrandDO::getMoldType, reqVO.getMoldType()) .eqIfPresent(MoldBrandDO::getProductId, reqVO.getProductId()) diff --git a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldBrandServiceImpl.java b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldBrandServiceImpl.java index 3a03c70c4..1ee7ed9ad 100644 --- a/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldBrandServiceImpl.java +++ b/yudao-module-erp/yudao-module-erp-biz/src/main/java/cn/iocoder/yudao/module/erp/service/mold/MoldBrandServiceImpl.java @@ -203,7 +203,7 @@ public class MoldBrandServiceImpl implements MoldBrandService { if (CollUtil.isEmpty(respVOList)) { return; } - Map latestOperateMap = getLatestOperateMapByBrandIds( + Map latestOperateMap = getLatestOperateMapByMoldIds( convertSet(respVOList, MoldBrandRespVO::getId)); respVOList.forEach(item -> fillCurrentDeviceNameByLatestOperate(item, latestOperateMap.get(item.getId()))); } @@ -329,33 +329,35 @@ public class MoldBrandServiceImpl implements MoldBrandService { .collect(Collectors.groupingBy(MoldDO::getBrandId, Collectors.counting())); } - private Map getLatestOperateMapByBrandIds(Collection brandIds) { - if (CollUtil.isEmpty(brandIds)) { - return Collections.emptyMap(); - } - List moldList = moldMapper.selectList(new LambdaQueryWrapperX() - .in(MoldDO::getBrandId, brandIds) - .select(MoldDO::getId, MoldDO::getBrandId)); - if (CollUtil.isEmpty(moldList)) { + private Map getLatestOperateMapByMoldIds( + Collection moldIds) { + + if (CollUtil.isEmpty(moldIds)) { return Collections.emptyMap(); } - Map moldBrandMap = moldList.stream().collect(Collectors.toMap(MoldDO::getId, MoldDO::getBrandId)); - List operateList = moldOperateQueryMapper.selectByMoldIds(moldBrandMap.keySet()); + + // 1. 直接按 mold_id 查询操作记录(SQL 层已按时间倒序) + List operateList = + moldOperateQueryMapper.selectByMoldIds(moldIds); + if (CollUtil.isEmpty(operateList)) { return Collections.emptyMap(); } + + // 2. 按 mold_id 取最新一条 Map latestOperateMap = new HashMap<>(); for (MoldOperateSimpleDO operate : operateList) { for (Long moldId : parseMoldIds(operate.getMoldId())) { - Long brandId = moldBrandMap.get(moldId); - if (brandId != null) { - latestOperateMap.putIfAbsent(brandId, operate); + if (moldIds.contains(moldId)) { + latestOperateMap.putIfAbsent(moldId, operate); } } - if (latestOperateMap.size() >= brandIds.size()) { + if (latestOperateMap.size() >= moldIds.size()) { break; } } + + return latestOperateMap; } @@ -389,7 +391,7 @@ public class MoldBrandServiceImpl implements MoldBrandService { if (CollUtil.isEmpty(moldBrandList)) { return Collections.emptyList(); } - Map latestOperateMap = getLatestOperateMapByBrandIds(convertSet(moldBrandList, MoldBrandDO::getId)); + Map latestOperateMap = getLatestOperateMapByMoldIds(convertSet(moldBrandList, MoldBrandDO::getId)); return moldBrandList.stream() .filter(item -> matchDeviceName(latestOperateMap.get(item.getId()), reqVO.getDeviceName())) .collect(Collectors.toList()); diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldoperate/vo/MoldOperateSaveReqVO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldoperate/vo/MoldOperateSaveReqVO.java index 7a83a0e09..1c201b444 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldoperate/vo/MoldOperateSaveReqVO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/moldoperate/vo/MoldOperateSaveReqVO.java @@ -1,5 +1,10 @@ package cn.iocoder.yudao.module.mes.controller.admin.moldoperate.vo; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; @@ -38,6 +43,9 @@ public class MoldOperateSaveReqVO { private String lowerMoldId; @Schema(description = "操作时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonSerialize(using = LocalDateTimeSerializer.class) + @JsonDeserialize(using = LocalDateTimeDeserializer.class) private LocalDateTime operateTime; @Schema(description = "操作人id", example = "1") diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldoperate/MoldOperateServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldoperate/MoldOperateServiceImpl.java index ee144d82b..bcae9124c 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldoperate/MoldOperateServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/moldoperate/MoldOperateServiceImpl.java @@ -70,7 +70,7 @@ public class MoldOperateServiceImpl implements MoldOperateService { if (createReqVO.getOperateType() == 1){ moldDO.setStatus(MoldBrandStatusEnum.ON_MACHINE.getStatus()); }else { - moldDO.setStatus(MoldBrandStatusEnum.ON_MACHINE.getStatus()); + moldDO.setStatus(MoldBrandStatusEnum.STANDBY.getStatus()); } moldBrandMapper.updateById(moldDO); diff --git a/yudao-server/src/main/resources/application.yaml b/yudao-server/src/main/resources/application.yaml index fb3a8c322..33974fb04 100644 --- a/yudao-server/src/main/resources/application.yaml +++ b/yudao-server/src/main/resources/application.yaml @@ -40,15 +40,15 @@ server: springdoc: api-docs: - enabled: true + enabled: false path: /v3/api-docs swagger-ui: - enabled: true + enabled: false path: /swagger-ui default-flat-param-object: true # 参见 https://doc.xiaominfo.com/docs/faq/v4/knife4j-parameterobject-flat-param 文档 knife4j: - enable: true + enable: false setting: language: zh_cn