From c5ad1fff7a28d495b520936d25738e511bb3144a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=B1=E6=98=8A=E5=A4=A9?= <15984976+n2319_0@user.noreply.gitee.com> Date: Fri, 10 Jul 2026 13:05:36 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=99=20cost=5Fitem=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E4=BA=86=20production=5Fline=5Fid=E5=AD=97=E6=AE=B5=EF=BC=8C?= =?UTF-8?q?=E5=B9=B6=E5=8A=A0=E4=BA=86=E7=B4=A2=E5=BC=95=E3=80=82=20?= =?UTF-8?q?=E5=90=8E=E7=AB=AF=20CRUD=20=E8=A1=A5=E9=BD=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/klp/cost/domain/CostItem.java | 2 + .../cost/domain/WmsProductionLineSimple.java | 16 ++++++++ .../com/klp/cost/domain/bo/CostItemBo.java | 2 + .../com/klp/cost/domain/vo/CostItemVo.java | 5 +++ .../service/impl/CostItemServiceImpl.java | 39 ++++++++++++++++++- .../resources/mapper/cost/CostItemMapper.xml | 1 + klp-ui/src/views/cost/item.vue | 27 +++++++++++++ ..._20260710_cost_item_production_line_id.sql | 5 +++ 8 files changed, 95 insertions(+), 2 deletions(-) create mode 100644 klp-cost/src/main/java/com/klp/cost/domain/WmsProductionLineSimple.java create mode 100644 script/sql/mysql/update/update_20260710_cost_item_production_line_id.sql diff --git a/klp-cost/src/main/java/com/klp/cost/domain/CostItem.java b/klp-cost/src/main/java/com/klp/cost/domain/CostItem.java index fcbc32c0f..73c6541ec 100644 --- a/klp-cost/src/main/java/com/klp/cost/domain/CostItem.java +++ b/klp-cost/src/main/java/com/klp/cost/domain/CostItem.java @@ -48,6 +48,8 @@ public class CostItem extends BaseEntity { * 查询条件(JSON格式) */ private String queryCondition; + + private Long productionLineId; /** * 删除标识 0=正常 2=删除 */ diff --git a/klp-cost/src/main/java/com/klp/cost/domain/WmsProductionLineSimple.java b/klp-cost/src/main/java/com/klp/cost/domain/WmsProductionLineSimple.java new file mode 100644 index 000000000..1be2c80ff --- /dev/null +++ b/klp-cost/src/main/java/com/klp/cost/domain/WmsProductionLineSimple.java @@ -0,0 +1,16 @@ +package com.klp.cost.domain; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +@Data +@TableName("wms_production_line") +public class WmsProductionLineSimple { + + @TableId(value = "line_id") + private Long lineId; + + private String lineName; +} + diff --git a/klp-cost/src/main/java/com/klp/cost/domain/bo/CostItemBo.java b/klp-cost/src/main/java/com/klp/cost/domain/bo/CostItemBo.java index 25d1cf3b2..866dc5df4 100644 --- a/klp-cost/src/main/java/com/klp/cost/domain/bo/CostItemBo.java +++ b/klp-cost/src/main/java/com/klp/cost/domain/bo/CostItemBo.java @@ -52,5 +52,7 @@ public class CostItemBo extends BaseEntity { */ private String queryCondition; + private Long productionLineId; + } diff --git a/klp-cost/src/main/java/com/klp/cost/domain/vo/CostItemVo.java b/klp-cost/src/main/java/com/klp/cost/domain/vo/CostItemVo.java index d7aa837ed..9d2dd322b 100644 --- a/klp-cost/src/main/java/com/klp/cost/domain/vo/CostItemVo.java +++ b/klp-cost/src/main/java/com/klp/cost/domain/vo/CostItemVo.java @@ -61,5 +61,10 @@ public class CostItemVo { @ExcelProperty(value = "查询条件(JSON格式)") private String queryCondition; + @ExcelProperty(value = "产线ID") + private Long productionLineId; + + @ExcelProperty(value = "产线") + private String productionLineName; } diff --git a/klp-cost/src/main/java/com/klp/cost/service/impl/CostItemServiceImpl.java b/klp-cost/src/main/java/com/klp/cost/service/impl/CostItemServiceImpl.java index ff2bb8d42..e462a6089 100644 --- a/klp-cost/src/main/java/com/klp/cost/service/impl/CostItemServiceImpl.java +++ b/klp-cost/src/main/java/com/klp/cost/service/impl/CostItemServiceImpl.java @@ -1,23 +1,28 @@ package com.klp.cost.service.impl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; import com.klp.common.core.page.TableDataInfo; import com.klp.common.core.domain.PageQuery; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.toolkit.Db; import com.klp.common.utils.StringUtils; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import com.klp.cost.domain.bo.CostItemBo; import com.klp.cost.domain.vo.CostItemVo; import com.klp.cost.domain.CostItem; +import com.klp.cost.domain.WmsProductionLineSimple; import com.klp.cost.mapper.CostItemMapper; import com.klp.cost.service.ICostItemService; import java.util.List; import java.util.Map; import java.util.Collection; +import java.util.Objects; +import java.util.stream.Collectors; /** * 成本项目配置Service业务层处理 @@ -36,7 +41,11 @@ public class CostItemServiceImpl implements ICostItemService { */ @Override public CostItemVo queryById(Long itemId){ - return baseMapper.selectVoById(itemId); + CostItemVo vo = baseMapper.selectVoById(itemId); + if (vo != null) { + fillProductionLineName(CollUtil.newArrayList(vo)); + } + return vo; } /** @@ -46,6 +55,7 @@ public class CostItemServiceImpl implements ICostItemService { public TableDataInfo queryPageList(CostItemBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + fillProductionLineName(result.getRecords()); return TableDataInfo.build(result); } @@ -55,7 +65,9 @@ public class CostItemServiceImpl implements ICostItemService { @Override public List queryList(CostItemBo bo) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); + List list = baseMapper.selectVoList(lqw); + fillProductionLineName(list); + return list; } private LambdaQueryWrapper buildQueryWrapper(CostItemBo bo) { @@ -66,9 +78,32 @@ public class CostItemServiceImpl implements ICostItemService { lqw.eq(StringUtils.isNotBlank(bo.getCategory()), CostItem::getCategory, bo.getCategory()); lqw.eq(StringUtils.isNotBlank(bo.getUnit()), CostItem::getUnit, bo.getUnit()); lqw.eq(StringUtils.isNotBlank(bo.getQueryCondition()), CostItem::getQueryCondition, bo.getQueryCondition()); + lqw.eq(bo.getProductionLineId() != null, CostItem::getProductionLineId, bo.getProductionLineId()); return lqw; } + private void fillProductionLineName(List voList) { + if (CollUtil.isEmpty(voList)) { + return; + } + List lineIds = voList.stream() + .map(CostItemVo::getProductionLineId) + .filter(Objects::nonNull) + .distinct() + .collect(Collectors.toList()); + if (CollUtil.isEmpty(lineIds)) { + return; + } + Map lineNameMap = Db.lambdaQuery(WmsProductionLineSimple.class) + .in(WmsProductionLineSimple::getLineId, lineIds) + .select(WmsProductionLineSimple::getLineId, WmsProductionLineSimple::getLineName) + .list() + .stream() + .collect(Collectors.toMap(WmsProductionLineSimple::getLineId, WmsProductionLineSimple::getLineName, (a, b) -> a)); + + voList.forEach(v -> v.setProductionLineName(lineNameMap.get(v.getProductionLineId()))); + } + /** * 新增成本项目配置 */ diff --git a/klp-cost/src/main/resources/mapper/cost/CostItemMapper.xml b/klp-cost/src/main/resources/mapper/cost/CostItemMapper.xml index c2b63d286..a3d8070e7 100644 --- a/klp-cost/src/main/resources/mapper/cost/CostItemMapper.xml +++ b/klp-cost/src/main/resources/mapper/cost/CostItemMapper.xml @@ -12,6 +12,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + diff --git a/klp-ui/src/views/cost/item.vue b/klp-ui/src/views/cost/item.vue index aacacbad1..275123cf6 100644 --- a/klp-ui/src/views/cost/item.vue +++ b/klp-ui/src/views/cost/item.vue @@ -42,6 +42,17 @@ @keyup.enter.native="handleQuery" /> + + + + + + @@ -157,6 +169,11 @@ + + + + + @@ -174,6 +191,7 @@