From e07d04e1ba782353d8644597478c5fda4c4f63d9 Mon Sep 17 00:00:00 2001 From: starrysky <838252223@qq.com> Date: Sun, 28 Jul 2019 09:59:26 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=89=A9=E6=96=99=E8=B5=84?= =?UTF-8?q?=E6=96=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/wms/bd/domain/MaterialInfo.java | 14 +++++-- .../MaterialCategoryRepository.java | 6 +++ .../bd/repository/MaterialInfoRepository.java | 2 +- .../bd/repository/MeasureUnitRepository.java | 6 +++ .../wms/bd/service/MaterialInfoService.java | 4 +- .../wms/bd/service/dto/ProductInfoDTO.java | 18 ++------- .../service/impl/MaterialInfoServiceImpl.java | 39 +++++++++++++++++-- 7 files changed, 66 insertions(+), 23 deletions(-) diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/domain/MaterialInfo.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/domain/MaterialInfo.java index d90124d7..d257860a 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/domain/MaterialInfo.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/domain/MaterialInfo.java @@ -3,6 +3,8 @@ package me.zhengjie.modules.wms.bd.domain; import lombok.Data; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.copier.CopyOptions; +import org.hibernate.annotations.CreationTimestamp; + import javax.persistence.*; import java.sql.Timestamp; import java.io.Serializable; @@ -20,11 +22,11 @@ public class MaterialInfo implements Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id") - private Integer id; + private long id; // 所属物料分类主键 @Column(name = "material_category_id",nullable = false) - private Integer materialCategoryId; + private long materialCategoryId; // 物料分类名称 @Column(name = "material_category_name",nullable = false) @@ -34,13 +36,17 @@ public class MaterialInfo implements Serializable { @Column(name = "name") private String name; + // 物料编码 + @Column(name = "material_code") + private String materialCode; + // 物料规格 @Column(name = "specifications") private String specifications; // 所属计量单位主键 @Column(name = "measure_unit_id") - private Integer measureUnitId; + private Long measureUnitId; // 所属计量单位名称 @Column(name = "measure_unit_name") @@ -65,10 +71,12 @@ public class MaterialInfo implements Serializable { // 创建时间 @Column(name = "create_time") + @CreationTimestamp private Timestamp createTime; // 更新时间 @Column(name = "update_time") + @CreationTimestamp private Timestamp updateTime; public void copy(MaterialInfo source){ diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/repository/MaterialCategoryRepository.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/repository/MaterialCategoryRepository.java index 88233e94..ffe9ad3d 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/repository/MaterialCategoryRepository.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/repository/MaterialCategoryRepository.java @@ -10,4 +10,10 @@ import org.springframework.data.jpa.repository.JpaSpecificationExecutor; */ public interface MaterialCategoryRepository extends JpaRepository, JpaSpecificationExecutor { + /** + * 查询存在的物料资料 + * @param id + * @return + */ + MaterialCategory findByIdAndStatusTrue(long id); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/repository/MaterialInfoRepository.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/repository/MaterialInfoRepository.java index a91cb2ae..fa22fffe 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/repository/MaterialInfoRepository.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/repository/MaterialInfoRepository.java @@ -8,5 +8,5 @@ import org.springframework.data.jpa.repository.JpaSpecificationExecutor; * @author 黄星星 * @date 2019-07-27 */ -public interface MaterialInfoRepository extends JpaRepository, JpaSpecificationExecutor { +public interface MaterialInfoRepository extends JpaRepository, JpaSpecificationExecutor { } \ No newline at end of file diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/repository/MeasureUnitRepository.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/repository/MeasureUnitRepository.java index c07edc27..15d0b94b 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/repository/MeasureUnitRepository.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/repository/MeasureUnitRepository.java @@ -10,4 +10,10 @@ import org.springframework.data.jpa.repository.JpaSpecificationExecutor; */ public interface MeasureUnitRepository extends JpaRepository, JpaSpecificationExecutor { + /** + * 根据主键查询状态正常的计量单位 + * @param id + * @return + */ + MeasureUnit findByIdAndStatusTrue(long id); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/MaterialInfoService.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/MaterialInfoService.java index 3e0475d3..21e6b005 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/MaterialInfoService.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/MaterialInfoService.java @@ -38,7 +38,7 @@ public interface MaterialInfoService { * @return */ //@Cacheable(key = "#p0") - MaterialInfoDTO findById(Integer id); + MaterialInfoDTO findById(Long id); /** * create @@ -60,5 +60,5 @@ public interface MaterialInfoService { * @param id */ //@CacheEvict(allEntries = true) - void delete(Integer id); + void delete(long id); } \ No newline at end of file diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/dto/ProductInfoDTO.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/dto/ProductInfoDTO.java index 40386fde..a07fdef5 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/dto/ProductInfoDTO.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/dto/ProductInfoDTO.java @@ -43,20 +43,10 @@ public class ProductInfoDTO implements Serializable { private String productInventoryWarning; // 产品期初设置 -[ { - “sort”:””, - ”ware_house_code”:””, - ”ware_house_name”:””, - ”ware_house_type_code”:””, - “ ware_house_type_name”:””, - “material_code”:””, - “material_name”:””, - “specifications”:””, - “unit_price”:””, - “total_price”:””, - ”minimum_inventory”:””, - ”highest_inventory”:”” -}] +// [{“sort”:””,”ware_house_code”:””,”ware_house_name”:””,”ware_house_type_code”:””,“ ware_house_type_name”:””, +// “material_code”:””,“material_name”:””,“specifications”:””,“unit_price”:””, +// “total_price”:””,”minimum_inventory”:””,”highest_inventory”:”” +// }] private String productInitialSetup; // 创建时间 diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/impl/MaterialInfoServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/impl/MaterialInfoServiceImpl.java index 70dd589f..93df4efb 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/impl/MaterialInfoServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/impl/MaterialInfoServiceImpl.java @@ -1,6 +1,11 @@ package me.zhengjie.modules.wms.bd.service.impl; +import me.zhengjie.exception.BadRequestException; +import me.zhengjie.modules.wms.bd.domain.MaterialCategory; import me.zhengjie.modules.wms.bd.domain.MaterialInfo; +import me.zhengjie.modules.wms.bd.domain.MeasureUnit; +import me.zhengjie.modules.wms.bd.repository.MaterialCategoryRepository; +import me.zhengjie.modules.wms.bd.repository.MeasureUnitRepository; import me.zhengjie.utils.ValidationUtil; import me.zhengjie.modules.wms.bd.repository.MaterialInfoRepository; import me.zhengjie.modules.wms.bd.service.MaterialInfoService; @@ -16,6 +21,7 @@ import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import me.zhengjie.utils.PageUtil; import me.zhengjie.utils.QueryHelp; +import org.springframework.util.StringUtils; /** * @author 黄星星 @@ -31,6 +37,12 @@ public class MaterialInfoServiceImpl implements MaterialInfoService { @Autowired private MaterialInfoMapper materialInfoMapper; + @Autowired + private MaterialCategoryRepository materialCategoryRepository; + + @Autowired + private MeasureUnitRepository measureUnitRepository; + @Override public Object queryAll(MaterialInfoQueryCriteria criteria, Pageable pageable){ Page page = materialInfoRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable); @@ -43,7 +55,7 @@ public class MaterialInfoServiceImpl implements MaterialInfoService { } @Override - public MaterialInfoDTO findById(Integer id) { + public MaterialInfoDTO findById(Long id) { Optional bdMaterialInfo = materialInfoRepository.findById(id); ValidationUtil.isNull(bdMaterialInfo,"BdMaterialInfo","id",id); return materialInfoMapper.toDto(bdMaterialInfo.get()); @@ -52,6 +64,27 @@ public class MaterialInfoServiceImpl implements MaterialInfoService { @Override @Transactional(rollbackFor = Exception.class) public MaterialInfoDTO create(MaterialInfo resources) { + Long materialCategoryId = resources.getMaterialCategoryId(); + String materialCategoryName = resources.getMaterialCategoryName(); + if(null == materialCategoryId || StringUtils.isEmpty(materialCategoryName)){ + throw new BadRequestException("物料类别不能为空!"); + } + + MaterialCategory materialCategory = materialCategoryRepository.findByIdAndStatusTrue(materialCategoryId); + if(null == materialCategory){ + throw new BadRequestException("物料类别不存在!"); + } + + Long measureUnitId = resources.getMeasureUnitId(); + String measureUnitName = resources.getMeasureUnitName(); + if(null == measureUnitId || StringUtils.isEmpty(measureUnitName)){ + throw new BadRequestException("计量单位不能为空!"); + } + + MeasureUnit measureUnit = measureUnitRepository.findByIdAndStatusTrue(measureUnitId); + if(null == measureUnit){ + throw new BadRequestException("计量单位不存在!"); + } return materialInfoMapper.toDto(materialInfoRepository.save(resources)); } @@ -59,7 +92,7 @@ public class MaterialInfoServiceImpl implements MaterialInfoService { @Transactional(rollbackFor = Exception.class) public void update(MaterialInfo resources) { Optional optionalBdMaterialInfo = materialInfoRepository.findById(resources.getId()); - ValidationUtil.isNull( optionalBdMaterialInfo,"BdMaterialInfo","id",resources.getId()); + ValidationUtil.isNull( optionalBdMaterialInfo,"MaterialInfo","id",resources.getId()); MaterialInfo materialInfo = optionalBdMaterialInfo.get(); materialInfo.copy(resources); materialInfoRepository.save(materialInfo); @@ -67,7 +100,7 @@ public class MaterialInfoServiceImpl implements MaterialInfoService { @Override @Transactional(rollbackFor = Exception.class) - public void delete(Integer id) { + public void delete(long id) { materialInfoRepository.deleteById(id); } } \ No newline at end of file