From 898ac8f71b4d8cbae2ab3b7611ac427993acc53a Mon Sep 17 00:00:00 2001 From: starrysky <838252223@qq.com> Date: Sat, 17 Aug 2019 12:14:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=A2=E6=88=B7=E8=AE=A2=E5=8D=95=E5=BD=95?= =?UTF-8?q?=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dto/CustomerInfoQueryCriteria.java | 2 + .../OutSourceCompanyInfoQueryCriteria.java | 6 ++ .../service/impl/CustomerInfoServiceImpl.java | 8 +- .../impl/OutSourceCompanyInfoServiceImpl.java | 29 +++++++ .../order/domain/CustomerOrderProduct.java | 7 ++ .../CustomerOrderProductRepository.java | 4 + .../repository/CustomerOrderRepository.java | 14 +++- .../request/CreateCustomerOrderRequest.java | 82 +++++++++++++++++++ .../request/CustomerOrderProductRequest.java | 47 +++++++++++ .../order/rest/CustomerOrderController.java | 26 ++++-- .../rest/CustomerOrderProductController.java | 10 +-- .../order/service/CustomerOrderService.java | 5 +- .../order/service/dto/CustomerOrderDTO.java | 17 +++- .../service/dto/CustomerOrderProductDTO.java | 25 +++--- .../impl/CustomerOrderServiceImpl.java | 53 +++++++++++- 15 files changed, 300 insertions(+), 35 deletions(-) create mode 100644 eladmin-system/src/main/java/me/zhengjie/modules/wms/order/request/CreateCustomerOrderRequest.java create mode 100644 eladmin-system/src/main/java/me/zhengjie/modules/wms/order/request/CustomerOrderProductRequest.java diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/dto/CustomerInfoQueryCriteria.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/dto/CustomerInfoQueryCriteria.java index d55c9392..3608fdfc 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/dto/CustomerInfoQueryCriteria.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/dto/CustomerInfoQueryCriteria.java @@ -13,4 +13,6 @@ public class CustomerInfoQueryCriteria { private String customerName; + private String customerCode; + } \ No newline at end of file diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/dto/OutSourceCompanyInfoQueryCriteria.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/dto/OutSourceCompanyInfoQueryCriteria.java index dc198f19..a94d04f4 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/dto/OutSourceCompanyInfoQueryCriteria.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/dto/OutSourceCompanyInfoQueryCriteria.java @@ -10,4 +10,10 @@ import me.zhengjie.annotation.Query; */ @Data public class OutSourceCompanyInfoQueryCriteria { + + // 委外公司名称 + private String outSourceCompanyName; + + // 委外公司编号 + private String outSourceCompanyCode; } \ No newline at end of file diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/impl/CustomerInfoServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/impl/CustomerInfoServiceImpl.java index ae0f3e52..8969f67d 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/impl/CustomerInfoServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/impl/CustomerInfoServiceImpl.java @@ -56,7 +56,7 @@ public class CustomerInfoServiceImpl implements CustomerInfoService { //客户名称 String customerName = criteria.getCustomerName(); if (!StringUtils.isEmpty(customerName)) { - Predicate namePredicate = criteriaBuilder.like(root.get("name"), "%" + customerName + "%"); + Predicate namePredicate = criteriaBuilder.like(root.get("customerName"), "%" + customerName + "%"); targetPredicateList.add(namePredicate); } @@ -64,6 +64,12 @@ public class CustomerInfoServiceImpl implements CustomerInfoService { Predicate statusPredicate = criteriaBuilder.equal(root.get("status"), 1); targetPredicateList.add(statusPredicate); + String customerCode = criteria.getCustomerCode(); + if(!StringUtils.isEmpty(customerCode)){ + Predicate customerCodePredicate = criteriaBuilder.like(root.get("customerCode"), "%" + customerName + "%"); + targetPredicateList.add(customerCodePredicate); + } + if(CollectionUtils.isEmpty(targetPredicateList)){ return null; }else{ diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/impl/OutSourceCompanyInfoServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/impl/OutSourceCompanyInfoServiceImpl.java index fb04a457..f0ae132f 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/impl/OutSourceCompanyInfoServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/bd/service/impl/OutSourceCompanyInfoServiceImpl.java @@ -23,6 +23,7 @@ import org.springframework.data.domain.Pageable; import me.zhengjie.utils.PageUtil; import me.zhengjie.utils.QueryHelp; import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; @@ -54,6 +55,20 @@ public class OutSourceCompanyInfoServiceImpl implements OutSourceCompanyInfoServ Predicate statusPredicate = criteriaBuilder.equal(root.get("status"), 1); targetPredicateList.add(statusPredicate); + //委外公司名称 + String outSourceCompanyName = criteria.getOutSourceCompanyName(); + if (!StringUtils.isEmpty(outSourceCompanyName)) { + Predicate outSourceCompanyNamePredicate = criteriaBuilder.like(root.get("outSourceCompanyName"), "%" + outSourceCompanyName + "%"); + targetPredicateList.add(outSourceCompanyNamePredicate); + } + + //委外公司名称 + String outSourceCompanyCode = criteria.getOutSourceCompanyCode(); + if (!StringUtils.isEmpty(outSourceCompanyName)) { + Predicate outSourceCompanyCodePredicate = criteriaBuilder.like(root.get("outSourceCompanyCode"), "%" + outSourceCompanyCode + "%"); + targetPredicateList.add(outSourceCompanyCodePredicate); + } + if(CollectionUtils.isEmpty(targetPredicateList)){ return null; }else{ @@ -76,6 +91,20 @@ public class OutSourceCompanyInfoServiceImpl implements OutSourceCompanyInfoServ Predicate statusPredicate = criteriaBuilder.equal(root.get("status"), 1); targetPredicateList.add(statusPredicate); + //委外公司名称 + String outSourceCompanyName = criteria.getOutSourceCompanyName(); + if (!StringUtils.isEmpty(outSourceCompanyName)) { + Predicate outSourceCompanyNamePredicate = criteriaBuilder.like(root.get("outSourceCompanyName"), "%" + outSourceCompanyName + "%"); + targetPredicateList.add(outSourceCompanyNamePredicate); + } + + //委外公司名称 + String outSourceCompanyCode = criteria.getOutSourceCompanyCode(); + if (!StringUtils.isEmpty(outSourceCompanyName)) { + Predicate outSourceCompanyCodePredicate = criteriaBuilder.like(root.get("outSourceCompanyCode"), "%" + outSourceCompanyCode + "%"); + targetPredicateList.add(outSourceCompanyCodePredicate); + } + if(CollectionUtils.isEmpty(targetPredicateList)){ return null; }else{ diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/order/domain/CustomerOrderProduct.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/order/domain/CustomerOrderProduct.java index 25ed17df..01458952 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/order/domain/CustomerOrderProduct.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/order/domain/CustomerOrderProduct.java @@ -60,6 +60,13 @@ public class CustomerOrderProduct implements Serializable { @Column(name = "update_time") private Timestamp updateTime; + // 状态 + private Boolean status; + + // 产品编号 + @Column(name = "product_code") + private String productCode; + public void copy(CustomerOrderProduct source){ BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true)); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/order/repository/CustomerOrderProductRepository.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/order/repository/CustomerOrderProductRepository.java index 6b8a68b7..1549f0d5 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/order/repository/CustomerOrderProductRepository.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/order/repository/CustomerOrderProductRepository.java @@ -4,9 +4,13 @@ import me.zhengjie.modules.wms.order.domain.CustomerOrderProduct; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; +import java.util.List; + /** * @author jie * @date 2019-08-03 */ public interface CustomerOrderProductRepository extends JpaRepository, JpaSpecificationExecutor { + + List findByCustomerOrderIdAndStatusTrue(Long customerId); } \ No newline at end of file diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/order/repository/CustomerOrderRepository.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/order/repository/CustomerOrderRepository.java index 2fa02889..d8f499d4 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/order/repository/CustomerOrderRepository.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/order/repository/CustomerOrderRepository.java @@ -14,9 +14,19 @@ public interface CustomerOrderRepository extends JpaRepository customerOrderProductList; + + + public void copy(CustomerOrder source){ + BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true)); + } +} diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/order/request/CustomerOrderProductRequest.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/order/request/CustomerOrderProductRequest.java new file mode 100644 index 00000000..e34abe9c --- /dev/null +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/order/request/CustomerOrderProductRequest.java @@ -0,0 +1,47 @@ +package me.zhengjie.modules.wms.order.request; + +import lombok.Data; + +import java.io.Serializable; +import java.sql.Timestamp; + +/** + * @author 黄星星 + * @date 2019-08-17 + */ +@Data +public class CustomerOrderProductRequest implements Serializable { + + // 产品主键 + private Long productId; + + // 产品名称 + private Long productName; + + // 规格 + private String specifications; + + // 产品单价 + private Long unitPrice; + + // 产品总价 + private Long totalPrice; + + // 产品数量 + private Long productNumber; + + // 备注 + private String remark; + + // 创建时间 + private Timestamp createTime; + + // 更新时间 + private Timestamp updateTime; + + // 状态 + private Boolean status; + + // 产品编号 + private String productCode; +} diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/order/rest/CustomerOrderController.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/order/rest/CustomerOrderController.java index b4976d2e..0e05afa6 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/order/rest/CustomerOrderController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/order/rest/CustomerOrderController.java @@ -2,6 +2,7 @@ package me.zhengjie.modules.wms.order.rest; import me.zhengjie.aop.log.Log; import me.zhengjie.modules.wms.order.domain.CustomerOrder; +import me.zhengjie.modules.wms.order.request.CreateCustomerOrderRequest; import me.zhengjie.modules.wms.order.service.CustomerOrderService; import me.zhengjie.modules.wms.order.service.dto.CustomerOrderQueryCriteria; import org.springframework.beans.factory.annotation.Autowired; @@ -13,11 +14,14 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import io.swagger.annotations.*; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + /** * @author jie * @date 2019-08-03 */ -@Api(tags = "SCustomerOrder管理") +@Api(tags = "客户订单管理") @RestController @RequestMapping("api") public class CustomerOrderController { @@ -27,9 +31,9 @@ public class CustomerOrderController { @Log("分页查询客户订单列表") @ApiOperation(value = "分页查询客户订单列表") - @GetMapping(value = "/customerOrders") + @GetMapping(value = "/queryCustomerOrderPage") @PreAuthorize("hasAnyRole('ADMIN','SCUSTOMERORDER_ALL','SCUSTOMERORDER_SELECT')") - public ResponseEntity getCustomerOrders(CustomerOrderQueryCriteria criteria, Pageable pageable){ + public ResponseEntity queryCustomerOrderPage(CustomerOrderQueryCriteria criteria, Pageable pageable){ return new ResponseEntity(customerOrderService.queryAll(criteria,pageable),HttpStatus.OK); } @@ -37,11 +41,11 @@ public class CustomerOrderController { @ApiOperation(value = "新增客户订单") @PostMapping(value = "/customerOrder") @PreAuthorize("hasAnyRole('ADMIN','SCUSTOMERORDER_ALL','SCUSTOMERORDER_CREATE')") - public ResponseEntity create(@RequestBody CustomerOrder resources){ - return new ResponseEntity(customerOrderService.create(resources),HttpStatus.CREATED); + public ResponseEntity create(@RequestBody CreateCustomerOrderRequest createCustomerOrderRequest){ + return new ResponseEntity(customerOrderService.create(createCustomerOrderRequest),HttpStatus.CREATED); } - @Log("修改SCustomerOrder") + @Log("修改客户订单") @ApiOperation(value = "修改SCustomerOrder") @PutMapping(value = "/customerOrder") @PreAuthorize("hasAnyRole('ADMIN','SCUSTOMERORDER_ALL','SCUSTOMERORDER_EDIT')") @@ -50,7 +54,7 @@ public class CustomerOrderController { return new ResponseEntity(HttpStatus.NO_CONTENT); } - @Log("删除SCustomerOrder") + @Log("删除客户订单") @ApiOperation(value = "删除SCustomerOrder") @DeleteMapping(value = "/customerOrder/{id}") @PreAuthorize("hasAnyRole('ADMIN','SCUSTOMERORDER_ALL','SCUSTOMERORDER_DELETE')") @@ -58,4 +62,12 @@ public class CustomerOrderController { customerOrderService.delete(id); return new ResponseEntity(HttpStatus.OK); } + + @Log("初始化客户订单编号") + @GetMapping(value = "/initCustomerOrderCode") + public ResponseEntity initCustomerOrderCode(){ + DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS");//设置日期格式 + String supplierCode = "DD"+ LocalDateTime.now().format(fmt); + return new ResponseEntity(supplierCode,HttpStatus.OK); + } } \ No newline at end of file diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/order/rest/CustomerOrderProductController.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/order/rest/CustomerOrderProductController.java index b0304362..7dc9ef01 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/order/rest/CustomerOrderProductController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/order/rest/CustomerOrderProductController.java @@ -17,7 +17,7 @@ import io.swagger.annotations.*; * @author jie * @date 2019-08-03 */ -@Api(tags = "SCustomerOrderProduct管理") +@Api(tags = "客户订单管理") @RestController @RequestMapping("api") public class CustomerOrderProductController { @@ -25,11 +25,11 @@ public class CustomerOrderProductController { @Autowired private CustomerOrderProductService customerOrderProductService; - @Log("查询SCustomerOrderProduct") - @ApiOperation(value = "查询SCustomerOrderProduct") - @GetMapping(value = "/sCustomerOrderProduct") + @Log("分页查询客户订单产品列表") + @ApiOperation(value = "分页查询客户订单产品列表") + @GetMapping(value = "/queryCustomerOrderProductPage") @PreAuthorize("hasAnyRole('ADMIN','SCUSTOMERORDERPRODUCT_ALL','SCUSTOMERORDERPRODUCT_SELECT')") - public ResponseEntity getSCustomerOrderProducts(CustomerOrderProductQueryCriteria criteria, Pageable pageable){ + public ResponseEntity queryCustomerOrderProductPage(CustomerOrderProductQueryCriteria criteria, Pageable pageable){ return new ResponseEntity(customerOrderProductService.queryAll(criteria,pageable),HttpStatus.OK); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/order/service/CustomerOrderService.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/order/service/CustomerOrderService.java index 9f0f16de..66f599bc 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/order/service/CustomerOrderService.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/order/service/CustomerOrderService.java @@ -4,6 +4,7 @@ package me.zhengjie.modules.wms.order.service; //import org.springframework.cache.annotation.CacheEvict; //import org.springframework.cache.annotation.Cacheable; import me.zhengjie.modules.wms.order.domain.CustomerOrder; +import me.zhengjie.modules.wms.order.request.CreateCustomerOrderRequest; import me.zhengjie.modules.wms.order.service.dto.CustomerOrderDTO; import me.zhengjie.modules.wms.order.service.dto.CustomerOrderQueryCriteria; import org.springframework.data.domain.Pageable; @@ -42,11 +43,11 @@ public interface CustomerOrderService { /** * create - * @param resources + * @param createCustomerOrderRequest * @return */ //@CacheEvict(allEntries = true) - CustomerOrderDTO create(CustomerOrder resources); + CustomerOrderDTO create(CreateCustomerOrderRequest createCustomerOrderRequest); /** * update diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/order/service/dto/CustomerOrderDTO.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/order/service/dto/CustomerOrderDTO.java index 61dd0941..ad61cfd6 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/order/service/dto/CustomerOrderDTO.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/order/service/dto/CustomerOrderDTO.java @@ -1,9 +1,12 @@ package me.zhengjie.modules.wms.order.service.dto; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.bean.copier.CopyOptions; import lombok.Data; -import java.sql.Timestamp; -import java.io.Serializable; +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.List; /** * @author jie @@ -70,4 +73,14 @@ public class CustomerOrderDTO implements Serializable { // 总数量 private Long totalNumber; + + // 状态 + private Boolean status; + + // 订单产品 + private List customerOrderProductList; + + public void copy(CustomerOrderDTO source){ + BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true)); + } } \ No newline at end of file diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/order/service/dto/CustomerOrderProductDTO.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/order/service/dto/CustomerOrderProductDTO.java index 55e5f65e..a19a8d86 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/order/service/dto/CustomerOrderProductDTO.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/order/service/dto/CustomerOrderProductDTO.java @@ -1,21 +1,14 @@ + package me.zhengjie.modules.wms.order.service.dto; -import lombok.Data; import java.sql.Timestamp; -import java.io.Serializable; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; - /** -* @author jie -* @date 2019-08-03 -*/ -@Data -public class CustomerOrderProductDTO implements Serializable { + * @author 黄星星 + * @date 2019-08-17 + */ +public class CustomerOrderProductDTO { - // 处理精度丢失问题 - @JsonSerialize(using= ToStringSerializer.class) private Long id; // 所属客户订单 @@ -47,4 +40,10 @@ public class CustomerOrderProductDTO implements Serializable { // 更新时间 private Timestamp updateTime; -} \ No newline at end of file + + // 状态 + private Boolean status; + + // 产品编号 + private String productCode; +} diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/order/service/impl/CustomerOrderServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/order/service/impl/CustomerOrderServiceImpl.java index 21592d6f..973cd611 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/order/service/impl/CustomerOrderServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/order/service/impl/CustomerOrderServiceImpl.java @@ -1,21 +1,33 @@ package me.zhengjie.modules.wms.order.service.impl; +import me.zhengjie.exception.BadRequestException; import me.zhengjie.modules.wms.order.domain.CustomerOrder; +import me.zhengjie.modules.wms.order.domain.CustomerOrderProduct; +import me.zhengjie.modules.wms.order.repository.CustomerOrderProductRepository; import me.zhengjie.modules.wms.order.repository.CustomerOrderRepository; +import me.zhengjie.modules.wms.order.request.CreateCustomerOrderRequest; +import me.zhengjie.modules.wms.order.request.CustomerOrderProductRequest; import me.zhengjie.modules.wms.order.service.CustomerOrderService; import me.zhengjie.modules.wms.order.service.dto.CustomerOrderDTO; +import me.zhengjie.modules.wms.order.service.dto.CustomerOrderProductDTO; import me.zhengjie.modules.wms.order.service.dto.CustomerOrderQueryCriteria; import me.zhengjie.modules.wms.order.service.mapper.CustomerOrderMapper; +import me.zhengjie.modules.wms.order.service.mapper.CustomerOrderProductMapper; import me.zhengjie.utils.ValidationUtil; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.List; import java.util.Optional; 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.CollectionUtils; /** * @author jie @@ -28,9 +40,15 @@ public class CustomerOrderServiceImpl implements CustomerOrderService { @Autowired private CustomerOrderRepository customerOrderRepository; + @Autowired + private CustomerOrderProductRepository customerOrderProductRepository; + @Autowired private CustomerOrderMapper customerOrderMapper; + @Autowired + private CustomerOrderProductMapper customerOrderProductMapper; + @Override public Object queryAll(CustomerOrderQueryCriteria criteria, Pageable pageable){ Page page = customerOrderRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable); @@ -51,9 +69,38 @@ public class CustomerOrderServiceImpl implements CustomerOrderService { @Override @Transactional(rollbackFor = Exception.class) - public CustomerOrderDTO create(CustomerOrder resources) { - resources.setStatus(true); - return customerOrderMapper.toDto(customerOrderRepository.save(resources)); + public CustomerOrderDTO create(CreateCustomerOrderRequest createCustomerOrderRequest) { + CustomerOrder customerOrder = new CustomerOrder(); + BeanUtils.copyProperties(createCustomerOrderRequest, customerOrder); + customerOrder.setStatus(true); + //插入客户订单 + customerOrderRepository.save(customerOrder); + customerOrder= customerOrderRepository.findByCustomerOrderCodeAndStatusTrue(createCustomerOrderRequest.getCustomerOrderCode()); + + //插入客户订单对应的产品信息 + List customerOrderProductRequestList = createCustomerOrderRequest.getCustomerOrderProductList(); + if(CollectionUtils.isEmpty(customerOrderProductRequestList)){ + throw new BadRequestException("订单产品不能为空!"); + } + + List customerOrderProductList = new ArrayList<>(); + for(CustomerOrderProductRequest customerOrderProductRequest : customerOrderProductRequestList){ + CustomerOrderProduct customerOrderProduct = new CustomerOrderProduct(); + BeanUtils.copyProperties(customerOrderProductRequest, customerOrderProduct); + customerOrderProduct.setCustomerOrderId(customerOrder.getId()); + customerOrderProduct.setStatus(true); + } + + customerOrderProductRepository.saveAll(customerOrderProductList); + + + CustomerOrderDTO customerOrderDTO = customerOrderMapper.toDto(customerOrder); + List byCustomerOrderIdAndStatusTrue = customerOrderProductRepository.findByCustomerOrderIdAndStatusTrue(customerOrder.getId()); + List customerOrderProductDTOList = customerOrderProductMapper.toDto(byCustomerOrderIdAndStatusTrue); + customerOrderDTO.setCustomerOrderProductList(customerOrderProductDTOList); + + + return customerOrderDTO; } @Override