diff --git a/src/main/java/cn/lihongjie/coal/warehouseGoodsUnit/controller/WarehouseGoodsUnitController.java b/src/main/java/cn/lihongjie/coal/warehouseGoodsUnit/controller/WarehouseGoodsUnitController.java index 6697c21d..b91212f6 100644 --- a/src/main/java/cn/lihongjie/coal/warehouseGoodsUnit/controller/WarehouseGoodsUnitController.java +++ b/src/main/java/cn/lihongjie/coal/warehouseGoodsUnit/controller/WarehouseGoodsUnitController.java @@ -4,6 +4,7 @@ import cn.lihongjie.coal.annotation.OrgScope; import cn.lihongjie.coal.annotation.SysLog; import cn.lihongjie.coal.base.dto.CommonQuery; import cn.lihongjie.coal.base.dto.IdRequest; +import cn.lihongjie.coal.warehouseGoodsUnit.dto.BatchAddRequest; import cn.lihongjie.coal.warehouseGoodsUnit.dto.CreateWarehouseGoodsUnitDto; import cn.lihongjie.coal.warehouseGoodsUnit.dto.UpdateWarehouseGoodsUnitDto; import cn.lihongjie.coal.warehouseGoodsUnit.dto.WarehouseGoodsUnitDto; @@ -51,4 +52,11 @@ public class WarehouseGoodsUnitController { public Page list(@RequestBody CommonQuery request) { return this.service.list(request); } + + + @PostMapping("/batchAdd") + public Boolean batchAdd(@RequestBody BatchAddRequest request) { + this.service.batchAdd(request); + return true; + } } diff --git a/src/main/java/cn/lihongjie/coal/warehouseGoodsUnit/dto/BatchAddRequest.java b/src/main/java/cn/lihongjie/coal/warehouseGoodsUnit/dto/BatchAddRequest.java new file mode 100644 index 00000000..945310e7 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouseGoodsUnit/dto/BatchAddRequest.java @@ -0,0 +1,11 @@ +package cn.lihongjie.coal.warehouseGoodsUnit.dto; + +import lombok.Data; + +import java.util.*; + +@Data +public class BatchAddRequest { + + private List names; +} diff --git a/src/main/java/cn/lihongjie/coal/warehouseGoodsUnit/service/WarehouseGoodsUnitService.java b/src/main/java/cn/lihongjie/coal/warehouseGoodsUnit/service/WarehouseGoodsUnitService.java index eb16ce9b..cd9706f3 100644 --- a/src/main/java/cn/lihongjie/coal/warehouseGoodsUnit/service/WarehouseGoodsUnitService.java +++ b/src/main/java/cn/lihongjie/coal/warehouseGoodsUnit/service/WarehouseGoodsUnitService.java @@ -2,7 +2,9 @@ package cn.lihongjie.coal.warehouseGoodsUnit.service; import cn.lihongjie.coal.base.dto.CommonQuery; import cn.lihongjie.coal.base.dto.IdRequest; +import cn.lihongjie.coal.base.mapper.CommonMapper; import cn.lihongjie.coal.base.service.BaseService; +import cn.lihongjie.coal.warehouseGoodsUnit.dto.BatchAddRequest; import cn.lihongjie.coal.warehouseGoodsUnit.dto.CreateWarehouseGoodsUnitDto; import cn.lihongjie.coal.warehouseGoodsUnit.dto.UpdateWarehouseGoodsUnitDto; import cn.lihongjie.coal.warehouseGoodsUnit.dto.WarehouseGoodsUnitDto; @@ -10,8 +12,13 @@ import cn.lihongjie.coal.warehouseGoodsUnit.entity.WarehouseGoodsUnitEntity; import cn.lihongjie.coal.warehouseGoodsUnit.mapper.WarehouseGoodsUnitMapper; import cn.lihongjie.coal.warehouseGoodsUnit.repository.WarehouseGoodsUnitRepository; +import jakarta.persistence.EntityManager; +import jakarta.persistence.PersistenceContext; + import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.convert.ConversionService; import org.springframework.data.domain.Page; @@ -22,12 +29,14 @@ import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Set; +import java.util.stream.Collectors; @Service @Slf4j @Transactional public class WarehouseGoodsUnitService extends BaseService { + @PersistenceContext EntityManager em; @Autowired private WarehouseGoodsUnitRepository repository; @Autowired private WarehouseGoodsUnitMapper mapper; @@ -71,7 +80,34 @@ public class WarehouseGoodsUnitService return page.map(this.mapper::toDto); } + @Autowired private CommonMapper commonMapper; + public void batchAdd(BatchAddRequest request) { + + if (CollectionUtils.isNotEmpty(request.getNames())) { + + Set set = + request.getNames().stream() + .distinct() + .map(StringUtils::trim) + .collect(Collectors.toSet()); + + List exists = + em.createQuery( + "select distinct name from WarehouseGoodsUnitEntity", + String.class) + .getResultList(); + set.removeAll(exists); + if (CollectionUtils.isNotEmpty(set)) { + set.forEach( + name -> { + WarehouseGoodsUnitEntity entity = new WarehouseGoodsUnitEntity(); + entity.setName(name); + this.repository.save(entity); + }); + } + } + } public void init(String orgId) { @@ -81,10 +117,10 @@ public class WarehouseGoodsUnitService return; } - Set units = Set.of( - "吨", "千克", "克", "升", "毫升", "个", "件", "台", "套", "箱", "包", "袋", "桶", "瓶", "罐", "卷", - "支", "根", "条", "片", "块", "颗", "粒", "对", "双", "只", "张", "本", "盒"); - + Set units = + Set.of( + "吨", "千克", "克", "升", "毫升", "个", "件", "台", "套", "箱", "包", "袋", "桶", "瓶", "罐", + "卷", "支", "根", "条", "片", "块", "颗", "粒", "对", "双", "只", "张", "本", "盒"); for (String unit : units) { WarehouseGoodsUnitEntity entity = new WarehouseGoodsUnitEntity();