From 52ab50449d2715b726ed90687cb1abdadd76e3b9 Mon Sep 17 00:00:00 2001 From: starrysky <838252223@qq.com> Date: Mon, 26 Aug 2019 09:04:49 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=A2=E6=88=B7=E8=AE=A2=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bd/request/CreateMaterialInfoRequest.java | 4 +- .../bd/request/CreateProductInfoRequest.java | 4 +- .../bd/request/UpdateMaterialInfoRequest.java | 58 ++++++++++++ .../bd/request/UpdateProductInfoRequest.java | 4 +- .../wms/bd/rest/MaterialInfoController.java | 5 +- .../wms/bd/service/MaterialInfoService.java | 5 +- .../wms/bd/service/dto/MaterialInfoDTO.java | 10 +-- .../bd/service/dto/MaterialInfoDetailDTO.java | 6 +- .../service/impl/MaterialInfoServiceImpl.java | 88 ++++++++++++++++--- .../service/impl/ProductInfoServiceImpl.java | 8 +- .../rest/CustomerOrderController.java | 6 ++ .../impl/CustomerOrderServiceImpl.java | 11 ++- 12 files changed, 171 insertions(+), 38 deletions(-) create mode 100644 eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/request/UpdateMaterialInfoRequest.java diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/request/CreateMaterialInfoRequest.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/request/CreateMaterialInfoRequest.java index e4b16724..4c4bcce2 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/request/CreateMaterialInfoRequest.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/request/CreateMaterialInfoRequest.java @@ -36,10 +36,10 @@ public class CreateMaterialInfoRequest implements Serializable { private String measureUnitName; // 产品库存预警 - private List materialInventoryWarningList; + private List materialInventoryWarning; // 产品期初设置 - private List materialInitialSetupList; + private List materialInitialSetup; // 物料期初合计期初总价格 private Integer materialInitialSetupTotalPrice; diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/request/CreateProductInfoRequest.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/request/CreateProductInfoRequest.java index 7adab706..e76caece 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/request/CreateProductInfoRequest.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/request/CreateProductInfoRequest.java @@ -38,9 +38,9 @@ public class CreateProductInfoRequest implements Serializable { private Long unitPrice; // 产品库存预警 - private List productInventoryWarningList; + private List productInventoryWarning; // 产品期初设置 - private List productInitialSetupList; + private List productInitialSetup; } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/request/UpdateMaterialInfoRequest.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/request/UpdateMaterialInfoRequest.java new file mode 100644 index 00000000..5609c081 --- /dev/null +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/request/UpdateMaterialInfoRequest.java @@ -0,0 +1,58 @@ +package me.zhengjie.modules.wms.bd.request; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.bean.copier.CopyOptions; +import lombok.Data; +import me.zhengjie.modules.wms.bd.domain.MaterialInfo; + +import java.io.Serializable; +import java.util.List; + +/** + * @author 黄星星 + * @date 2019-08-24 + */ +@Data +public class UpdateMaterialInfoRequest implements Serializable { + + private Long id; + + // 所属物料分类主键 + private Long materialCategoryId; + + // 物料分类名称 + private String materialCategoryName; + + // 物料名称 + private String name; + + // 物料编码 + private String materialCode; + + // 物料规格 + private String specifications; + + // 所属计量单位主键 + private Long measureUnitId; + + // 所属计量单位名称 + private String measureUnitName; + + // 产品库存预警 + private List materialInventoryWarning; + + // 产品期初设置 + private List materialInitialSetup; + + // 物料期初合计期初总价格 + private Integer materialInitialSetupTotalPrice; + + // 物料期初合计总数量 + private String materialInitialSetupTotalNumber; + + private Boolean status; + + public void copy(MaterialInfo source){ + BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true)); + } +} diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/request/UpdateProductInfoRequest.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/request/UpdateProductInfoRequest.java index 93830afc..79518826 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/request/UpdateProductInfoRequest.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/request/UpdateProductInfoRequest.java @@ -40,9 +40,9 @@ public class UpdateProductInfoRequest implements Serializable { private Long unitPrice; // 产品库存预警 - private List productInventoryWarningList; + private List productInventoryWarning; // 产品期初设置 - private List productInitialSetupList; + private List productInitialSetup; } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/rest/MaterialInfoController.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/rest/MaterialInfoController.java index 9af25690..06a04e67 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/rest/MaterialInfoController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/rest/MaterialInfoController.java @@ -3,6 +3,7 @@ package me.zhengjie.modules.wms.bd.rest; import me.zhengjie.aop.log.Log; import me.zhengjie.modules.wms.bd.domain.MaterialInfo; import me.zhengjie.modules.wms.bd.request.CreateMaterialInfoRequest; +import me.zhengjie.modules.wms.bd.request.UpdateMaterialInfoRequest; import me.zhengjie.modules.wms.bd.service.MaterialInfoService; import me.zhengjie.modules.wms.bd.service.dto.MaterialInfoQueryCriteria; import org.springframework.beans.factory.annotation.Autowired; @@ -62,8 +63,8 @@ public class MaterialInfoController { @Log("修改物料资料") @ApiOperation(value = "修改物料资料") @PutMapping(value = "/materialInfo/update") - public ResponseEntity update(@Validated @RequestBody MaterialInfo resources){ - materialInfoService.update(resources); + public ResponseEntity update(@RequestBody UpdateMaterialInfoRequest updateMaterialInfoRequest){ + materialInfoService.update(updateMaterialInfoRequest); return new ResponseEntity(HttpStatus.NO_CONTENT); } 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 3b11ee45..644acd62 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 @@ -2,6 +2,7 @@ package me.zhengjie.modules.wms.bd.service; import me.zhengjie.modules.wms.bd.domain.MaterialInfo; import me.zhengjie.modules.wms.bd.request.CreateMaterialInfoRequest; +import me.zhengjie.modules.wms.bd.request.UpdateMaterialInfoRequest; import me.zhengjie.modules.wms.bd.service.dto.MaterialInfoDTO; import me.zhengjie.modules.wms.bd.service.dto.MaterialInfoDetailDTO; import me.zhengjie.modules.wms.bd.service.dto.MaterialInfoQueryCriteria; @@ -52,10 +53,10 @@ public interface MaterialInfoService { /** * update - * @param resources + * @param updateMaterialInfoRequest */ //@CacheEvict(allEntries = true) - void update(MaterialInfo resources); + void update(UpdateMaterialInfoRequest updateMaterialInfoRequest); /** * delete diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/dto/MaterialInfoDTO.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/dto/MaterialInfoDTO.java index f0fbd20e..536616c4 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/dto/MaterialInfoDTO.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/dto/MaterialInfoDTO.java @@ -24,6 +24,9 @@ public class MaterialInfoDTO implements Serializable { // 物料名称 private String name; + // 物料编码 + private String materialCode; + // 物料规格 private String specifications; @@ -33,14 +36,7 @@ public class MaterialInfoDTO implements Serializable { // 所属计量单位名称 private String measureUnitName; - // 产品库存预警[{“sort”:””,”ware_house_code”:””,”ware_house_name”:””,”minimum_inventory”:””,”highest_inventory”:””}] - private String materialInventoryWarning; - - // 产品期初设置[{“sort”:””,”ware_house_code”:””,”ware_house_name”:””,“initial_setup_numer”:””,“initial_setup_total_price”:””}] - private String materialInitialSetup; - // 物料期初合计期初总价格 - private Long materialInitialSetupTotalPrice; // 物料期初合计总数量 diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/dto/MaterialInfoDetailDTO.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/dto/MaterialInfoDetailDTO.java index 88a8af2c..cffe8291 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/dto/MaterialInfoDetailDTO.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/dto/MaterialInfoDetailDTO.java @@ -13,10 +13,10 @@ import java.util.List; * @date 2019-08-03 */ @Data -public class MaterialInfoDetailDTO extends ProductInfoDTO implements Serializable { +public class MaterialInfoDetailDTO extends MaterialInfoDTO implements Serializable { - private List materialInventoryWarningList; + private List materialInventoryWarning; - private List materialInitialSetupList; + private List materialInitialSetup; } \ No newline at end of file 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 df3c7d25..b7502b30 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 @@ -19,7 +19,10 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; +import java.sql.Timestamp; +import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.Optional; @@ -137,14 +140,14 @@ public class MaterialInfoServiceImpl implements MaterialInfoService { String productInventoryWarningStr = materialInfo.getMaterialInventoryWarning(); if(StringUtils.hasLength(productInventoryWarningStr)){ List materialInventoryWarningList = new Gson().fromJson(productInventoryWarningStr,new TypeToken>() {}.getType()); - materialInfoDetailDTO.setMaterialInventoryWarningList(materialInventoryWarningList); + materialInfoDetailDTO.setMaterialInventoryWarning(materialInventoryWarningList); } String materialInitialSetupStr = materialInfo.getMaterialInitialSetup(); if(StringUtils.hasLength(materialInitialSetupStr)){ List materialInitialSetupList = new Gson().fromJson(materialInitialSetupStr,new TypeToken>() {}.getType()); - materialInfoDetailDTO.setMaterialInitialSetupList(materialInitialSetupList); + materialInfoDetailDTO.setMaterialInitialSetup(materialInitialSetupList); } } return materialInfoDetailDTO; @@ -173,24 +176,22 @@ public class MaterialInfoServiceImpl implements MaterialInfoService { throw new BadRequestException("物料类别不存在!"); } - - MaterialInfoDetailDTO materialInfoDetailDTO = new MaterialInfoDetailDTO(); MaterialInfo materialInfo = new MaterialInfo(); BeanUtils.copyProperties(createMaterialInfoRequest, materialInfo); materialInfo.setStatus(true); - List materialInventoryWarningList = createMaterialInfoRequest.getMaterialInventoryWarningList(); + List materialInventoryWarningList = createMaterialInfoRequest.getMaterialInventoryWarning(); if(!CollectionUtils.isEmpty(materialInventoryWarningList)){ String materialInventoryWarningStr = new Gson().toJson(materialInventoryWarningList); materialInfo.setMaterialInventoryWarning(materialInventoryWarningStr); - materialInfoDetailDTO.setMaterialInventoryWarningList(materialInventoryWarningList); + materialInfoDetailDTO.setMaterialInventoryWarning(materialInventoryWarningList); } - List materialInitialSetupList = createMaterialInfoRequest.getMaterialInitialSetupList(); + List materialInitialSetupList = createMaterialInfoRequest.getMaterialInitialSetup(); if(!CollectionUtils.isEmpty(materialInitialSetupList)){ String materialInitialSetupStr = new Gson().toJson(materialInitialSetupList); materialInfo.setMaterialInitialSetup(materialInitialSetupStr); - materialInfoDetailDTO.setMaterialInitialSetupList(materialInitialSetupList); + materialInfoDetailDTO.setMaterialInitialSetup(materialInitialSetupList); } materialInfo.setMaterialCategoryName(materialCategory.getName()); @@ -204,11 +205,72 @@ public class MaterialInfoServiceImpl implements MaterialInfoService { @Override @Transactional(rollbackFor = Exception.class) - public void update(MaterialInfo resources) { - Optional optionalBdMaterialInfo = materialInfoRepository.findById(resources.getId()); - ValidationUtil.isNull(optionalBdMaterialInfo, "MaterialInfo", "id", resources.getId()); - MaterialInfo materialInfo = optionalBdMaterialInfo.get(); - materialInfo.copy(resources); + public void update(UpdateMaterialInfoRequest updateMaterialInfoRequest) { + Long materialInfoId = updateMaterialInfoRequest.getId(); + if(null == materialInfoId){ + throw new BadRequestException("物料主键不能为空!"); + } + + Long materialCategoryId = updateMaterialInfoRequest.getMaterialCategoryId(); + if(null == materialCategoryId){ + throw new BadRequestException("物料类别主键不能为空!"); + } + + Optional materialCategoryOptional = materialCategoryRepository.findById(materialCategoryId); + MaterialCategory materialCategory = materialCategoryOptional.get(); + if(null == materialCategory){ + throw new BadRequestException("物料类别不存在!"); + } + + Long measureUnitId = updateMaterialInfoRequest.getMeasureUnitId(); + if(null == measureUnitId){ + throw new BadRequestException("计量单位主键不能为空!"); + } + + Optional measureUnitOptional = measureUnitRepository.findById(measureUnitId); + MeasureUnit measureUnit = measureUnitOptional.get(); + if(null== measureUnit){ + throw new BadRequestException("计量单位不存在!"); + } + + // 物料资料-物料仓库预警修改目标 + List materialInventoryWarningTarget = updateMaterialInfoRequest.getMaterialInventoryWarning(); + // 物料资料-供应商联系方式修改目标 + List materialInitialSetupTarget = updateMaterialInfoRequest.getMaterialInitialSetup(); + + MaterialInfo materialInfo = materialInfoRepository.findByIdAndStatusTrue(materialInfoId); + + if(null == materialInfo){ + throw new BadRequestException("物料资料不存在"); + } + + Timestamp createTime = materialInfo.getCreateTime(); + + // 将需要修改的值复制到数据库对象中 + BeanUtils.copyProperties(updateMaterialInfoRequest, materialInfo); + + // 判断提前获取的供应商联系地址和联系方式是否是空 + if(CollectionUtils.isEmpty(materialInventoryWarningTarget)){ + materialInfo.setMaterialInventoryWarning(null); + }else{ + String materialInventoryWarningStr = new Gson().toJson(materialInventoryWarningTarget); + materialInfo.setMaterialInventoryWarning(materialInventoryWarningStr); + } + + if(CollectionUtils.isEmpty(materialInitialSetupTarget)){ + materialInfo.setMaterialInitialSetup(null); + }else{ + String materialInitialSetupStr = new Gson().toJson(materialInitialSetupTarget); + materialInfo.setMaterialInventoryWarning(materialInitialSetupStr); + } + + materialInfo.setCreateTime(createTime); + materialInfo.setStatus(true); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + materialInfo.setUpdateTime(Timestamp.valueOf(sdf.format(new Date()))); + materialInfo.setMaterialCategoryName(materialCategory.getName()); + materialInfo.setMeasureUnitName(materialCategory.getName()); + // 修改物料资料 materialInfoRepository.save(materialInfo); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/impl/ProductInfoServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/impl/ProductInfoServiceImpl.java index 96e46d99..7e64fea3 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/impl/ProductInfoServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/impl/ProductInfoServiceImpl.java @@ -157,13 +157,13 @@ public class ProductInfoServiceImpl implements ProductInfoService { ProductInfo productInfo = new ProductInfo(); BeanUtils.copyProperties(createProductInfoRequest, productInfo); productInfo.setStatus(true); - List productInventoryWarningList = createProductInfoRequest.getProductInventoryWarningList(); + List productInventoryWarningList = createProductInfoRequest.getProductInventoryWarning(); if(!CollectionUtils.isEmpty(productInventoryWarningList)){ String productInventoryWarningStr = new Gson().toJson(productInventoryWarningList); productInfo.setProductInventoryWarning(productInventoryWarningStr); productInfoDetailDTO.setProductInventoryWarningList(productInventoryWarningList); } - List productInitialSetupList = createProductInfoRequest.getProductInitialSetupList(); + List productInitialSetupList = createProductInfoRequest.getProductInitialSetup(); if(!CollectionUtils.isEmpty(productInitialSetupList)){ String productInitialSetupStr = new Gson().toJson(productInitialSetupList); productInfo.setProductInitialSetup(productInitialSetupStr); @@ -211,9 +211,9 @@ public class ProductInfoServiceImpl implements ProductInfoService { // 产品资料-仓库预警修改目标 - List productInventoryWarningListTarget = updateProductInfoRequest.getProductInventoryWarningList(); + List productInventoryWarningListTarget = updateProductInfoRequest.getProductInventoryWarning(); // 产品资料-期初设置修改目标 - List productInitialSetupListTarget = updateProductInfoRequest.getProductInitialSetupList(); + List productInitialSetupListTarget = updateProductInfoRequest.getProductInitialSetup(); ProductInfo productInfo = productInfoRepository.findByIdAndStatusTrue(productInfoId); diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/customerOrder/rest/CustomerOrderController.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/customerOrder/rest/CustomerOrderController.java index ea50fb9f..b21d8750 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/customerOrder/rest/CustomerOrderController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/customerOrder/rest/CustomerOrderController.java @@ -69,4 +69,10 @@ public class CustomerOrderController { String supplierCode = "DD"+ LocalDateTime.now().format(fmt); return new ResponseEntity(supplierCode,HttpStatus.OK); } + + @Log("查看客户订单详情") + @GetMapping(value = "/customerOrder/{id}") + public ResponseEntity getCustomerOrderInfo(@PathVariable Long id){ + return new ResponseEntity(customerOrderService.findById(id), HttpStatus.OK); + } } \ No newline at end of file diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/customerOrder/service/impl/CustomerOrderServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/customerOrder/service/impl/CustomerOrderServiceImpl.java index 2cd7ae03..ccd82143 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/customerOrder/service/impl/CustomerOrderServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/customerOrder/service/impl/CustomerOrderServiceImpl.java @@ -69,7 +69,16 @@ public class CustomerOrderServiceImpl implements CustomerOrderService { public CustomerOrderDTO findById(Long id) { Optional sCustomerOrder = customerOrderRepository.findById(id); ValidationUtil.isNull(sCustomerOrder,"SCustomerOrder","id",id); - return customerOrderMapper.toDto(sCustomerOrder.get()); + CustomerOrder customerOrder = sCustomerOrder.get(); + if(null == customerOrder){ + throw new BadRequestException("客户订单不存在!"); + } + CustomerOrderDTO customerOrderDTO = customerOrderMapper.toDto(customerOrder); + + List customerOrderProductList = customerOrderProductRepository.findByCustomerOrderIdAndStatusTrue(customerOrder.getId()); + List customerOrderProductDTOList = customerOrderProductMapper.toDto(customerOrderProductList); + customerOrderDTO.setCustomerOrderProductList(customerOrderProductDTOList); + return customerOrderDTO; } @Override