diff --git a/src/main/java/cn/lihongjie/coal/warehouse/controller/WarehouseController.java b/src/main/java/cn/lihongjie/coal/warehouse/controller/WarehouseController.java new file mode 100644 index 00000000..afbf0894 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouse/controller/WarehouseController.java @@ -0,0 +1,54 @@ +package cn.lihongjie.coal.warehouse.controller; + +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.warehouse.dto.CreateWarehouseDto; +import cn.lihongjie.coal.warehouse.dto.UpdateWarehouseDto; +import cn.lihongjie.coal.warehouse.dto.WarehouseDto; +import cn.lihongjie.coal.warehouse.service.WarehouseService; + +import lombok.extern.slf4j.Slf4j; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/warehouse") +@SysLog(module = "仓库管理") +@Slf4j +@OrgScope +public class WarehouseController { + @Autowired private WarehouseService service; + + @PostMapping("/create") + public WarehouseDto create(@RequestBody CreateWarehouseDto request) { + return this.service.create(request); + } + + @PostMapping("/update") + public WarehouseDto update(@RequestBody UpdateWarehouseDto request) { + return this.service.update(request); + } + + @PostMapping("/delete") + public Object delete(@RequestBody IdRequest request) { + this.service.delete(request); + return true; + } + + @PostMapping("/getById") + public WarehouseDto getById(@RequestBody IdRequest request) { + return this.service.getById(request.getId()); + } + + @PostMapping("/list") + public Page list(@RequestBody CommonQuery request) { + return this.service.list(request); + } +} diff --git a/src/main/java/cn/lihongjie/coal/warehouse/dto/CreateWarehouseDto.java b/src/main/java/cn/lihongjie/coal/warehouse/dto/CreateWarehouseDto.java new file mode 100644 index 00000000..c05f0cd2 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouse/dto/CreateWarehouseDto.java @@ -0,0 +1,16 @@ +package cn.lihongjie.coal.warehouse.dto; + +import cn.lihongjie.coal.base.dto.OrgCommonDto; + +import lombok.Data; + +@Data +public class CreateWarehouseDto extends OrgCommonDto { + + private String address; + + + private String contact; + + private String contactPhone; +} diff --git a/src/main/java/cn/lihongjie/coal/warehouse/dto/UpdateWarehouseDto.java b/src/main/java/cn/lihongjie/coal/warehouse/dto/UpdateWarehouseDto.java new file mode 100644 index 00000000..6f027248 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouse/dto/UpdateWarehouseDto.java @@ -0,0 +1,15 @@ +package cn.lihongjie.coal.warehouse.dto; + +import cn.lihongjie.coal.base.dto.OrgCommonDto; + +import lombok.Data; + +@Data +public class UpdateWarehouseDto extends OrgCommonDto { + private String address; + + + private String contact; + + private String contactPhone; +} diff --git a/src/main/java/cn/lihongjie/coal/warehouse/dto/WarehouseDto.java b/src/main/java/cn/lihongjie/coal/warehouse/dto/WarehouseDto.java new file mode 100644 index 00000000..887a06f6 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouse/dto/WarehouseDto.java @@ -0,0 +1,16 @@ +package cn.lihongjie.coal.warehouse.dto; + +import cn.lihongjie.coal.base.dto.OrgCommonDto; + +import lombok.Data; + +@Data +public class WarehouseDto extends OrgCommonDto { + + private String address; + + + private String contact; + + private String contactPhone; +} diff --git a/src/main/java/cn/lihongjie/coal/warehouse/entity/WarehouseEntity.java b/src/main/java/cn/lihongjie/coal/warehouse/entity/WarehouseEntity.java new file mode 100644 index 00000000..e885ebbb --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouse/entity/WarehouseEntity.java @@ -0,0 +1,22 @@ +package cn.lihongjie.coal.warehouse.entity; + +import cn.lihongjie.coal.base.entity.OrgCommonEntity; + +import jakarta.persistence.Entity; + +import lombok.Data; + +@Data +@Entity +public class WarehouseEntity extends OrgCommonEntity { + + + private String address; + + + private String contact; + + private String contactPhone; + + +} diff --git a/src/main/java/cn/lihongjie/coal/warehouse/mapper/WarehouseMapper.java b/src/main/java/cn/lihongjie/coal/warehouse/mapper/WarehouseMapper.java new file mode 100644 index 00000000..e185fcac --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouse/mapper/WarehouseMapper.java @@ -0,0 +1,19 @@ +package cn.lihongjie.coal.warehouse.mapper; + +import cn.lihongjie.coal.base.mapper.BaseMapper; +import cn.lihongjie.coal.base.mapper.CommonEntityMapper; +import cn.lihongjie.coal.base.mapper.CommonMapper; +import cn.lihongjie.coal.warehouse.dto.CreateWarehouseDto; +import cn.lihongjie.coal.warehouse.dto.UpdateWarehouseDto; +import cn.lihongjie.coal.warehouse.dto.WarehouseDto; +import cn.lihongjie.coal.warehouse.entity.WarehouseEntity; + +import org.mapstruct.Mapper; +import org.mapstruct.control.DeepClone; + +@Mapper( + componentModel = org.mapstruct.MappingConstants.ComponentModel.SPRING, + uses = {CommonMapper.class, CommonEntityMapper.class}, + mappingControl = DeepClone.class) +public interface WarehouseMapper + extends BaseMapper {} diff --git a/src/main/java/cn/lihongjie/coal/warehouse/repository/WarehouseRepository.java b/src/main/java/cn/lihongjie/coal/warehouse/repository/WarehouseRepository.java new file mode 100644 index 00000000..04401550 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouse/repository/WarehouseRepository.java @@ -0,0 +1,9 @@ +package cn.lihongjie.coal.warehouse.repository; + +import cn.lihongjie.coal.base.dao.BaseRepository; +import cn.lihongjie.coal.warehouse.entity.WarehouseEntity; + +import org.springframework.stereotype.Repository; + +@Repository +public interface WarehouseRepository extends BaseRepository {} diff --git a/src/main/java/cn/lihongjie/coal/warehouse/service/WarehouseService.java b/src/main/java/cn/lihongjie/coal/warehouse/service/WarehouseService.java new file mode 100644 index 00000000..707c0405 --- /dev/null +++ b/src/main/java/cn/lihongjie/coal/warehouse/service/WarehouseService.java @@ -0,0 +1,70 @@ +package cn.lihongjie.coal.warehouse.service; + +import cn.lihongjie.coal.base.dto.CommonQuery; +import cn.lihongjie.coal.base.dto.IdRequest; +import cn.lihongjie.coal.base.service.BaseService; +import cn.lihongjie.coal.warehouse.dto.CreateWarehouseDto; +import cn.lihongjie.coal.warehouse.dto.UpdateWarehouseDto; +import cn.lihongjie.coal.warehouse.dto.WarehouseDto; +import cn.lihongjie.coal.warehouse.entity.WarehouseEntity; +import cn.lihongjie.coal.warehouse.mapper.WarehouseMapper; +import cn.lihongjie.coal.warehouse.repository.WarehouseRepository; + +import lombok.extern.slf4j.Slf4j; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.convert.ConversionService; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Sort; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service +@Slf4j +@Transactional +public class WarehouseService extends BaseService { + @Autowired private WarehouseRepository repository; + + @Autowired private WarehouseMapper mapper; + + @Autowired private ConversionService conversionService; + + public WarehouseDto create(CreateWarehouseDto request) { + WarehouseEntity entity = mapper.toEntity(request); + + this.repository.save(entity); + return getById(entity.getId()); + } + + public WarehouseDto update(UpdateWarehouseDto request) { + WarehouseEntity entity = this.repository.get(request.getId()); + this.mapper.updateEntity(entity, request); + + this.repository.save(entity); + + return getById(entity.getId()); + } + + public void delete(IdRequest request) { + this.repository.deleteAllById(request.getIds()); + } + + public WarehouseDto getById(String id) { + WarehouseEntity entity = repository.get(id); + + return mapper.toDto(entity); + } + + public Page list(CommonQuery query) { + Page page = + repository.findAll( + query.specification(conversionService), + PageRequest.of( + query.getPageNo(), + query.getPageSize(), + Sort.by(query.getOrders()))); + + return page.map(this.mapper::toDto); + } +}