From 3b78ebb4c55e0db4272affa064c89f0436136505 Mon Sep 17 00:00:00 2001 From: starrysky <838252223@qq.com> Date: Thu, 29 Aug 2019 16:34:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E8=B4=A7=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/CustomerOrderProduct.java | 2 +- .../repository/CustomerOrderRepository.java | 2 +- .../request/CustomerOrderProductRequest.java | 2 +- .../service/dto/CustomerOrderProductDTO.java | 2 +- .../impl/CustomerOrderServiceImpl.java | 38 +++++++++-- .../modules/wms/invoice/domain/Invoice.java | 2 +- .../wms/invoice/domain/InvoiceProduct.java | 2 +- .../repository/InvoiceProductRepository.java | 16 +++++ .../invoice/repository/InvoiceRepository.java | 6 ++ .../invoice/request/UpdateInvoiceRequest.java | 54 +++++++++++++++ .../wms/invoice/rest/InvoiceController.java | 16 ++++- .../rest/InvoiceProductController.java | 61 ----------------- .../wms/invoice/service/InvoiceService.java | 5 +- .../wms/invoice/service/dto/InvoiceDTO.java | 2 +- .../service/dto/InvoiceProductDTO.java | 2 +- .../service/impl/InvoiceServiceImpl.java | 67 +++++++++++++++++-- .../main/resources/config/application-dev.yml | 4 +- .../resources/config/application-prod.yml | 4 +- .../src/main/resources/config/application.yml | 2 +- 19 files changed, 198 insertions(+), 91 deletions(-) create mode 100644 eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/request/UpdateInvoiceRequest.java delete mode 100644 eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/rest/InvoiceProductController.java diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/customerOrder/domain/CustomerOrderProduct.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/customerOrder/domain/CustomerOrderProduct.java index 015014eb..4a6788b8 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/customerOrder/domain/CustomerOrderProduct.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/customerOrder/domain/CustomerOrderProduct.java @@ -30,7 +30,7 @@ public class CustomerOrderProduct implements Serializable { // 产品名称 @Column(name = "product_name") - private Long productName; + private String productName; // 规格 @Column(name = "specifications") diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/customerOrder/repository/CustomerOrderRepository.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/customerOrder/repository/CustomerOrderRepository.java index 212d767b..9da9558e 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/customerOrder/repository/CustomerOrderRepository.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/customerOrder/repository/CustomerOrderRepository.java @@ -27,6 +27,6 @@ public interface CustomerOrderRepository extends JpaRepository page = customerOrderRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable); @@ -84,19 +93,34 @@ public class CustomerOrderServiceImpl implements CustomerOrderService { @Override @Transactional(rollbackFor = Exception.class) 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("订单产品不能为空!"); } + CustomerOrder customerOrder = new CustomerOrder(); + BeanUtils.copyProperties(createCustomerOrderRequest, customerOrder); + customerOrder.setStatus(true); + + + Long customerId = createCustomerOrderRequest.getCustomerId(); + if(null == customerId){ + throw new BadRequestException("客户不能为空!"); + } + + Optional customerInfoOptional = customerInfoRepository.findById(customerId); + if(null == customerInfoOptional || null == customerInfoOptional.get()){ + throw new BadRequestException("客户不存在!"); + } + CustomerInfo customerInfo = customerInfoOptional.get(); + + customerOrder.setCustomerName(customerInfo.getCustomerName()); + + //插入客户订单 + customerOrderRepository.save(customerOrder); + customerOrder= customerOrderRepository.findByCustomerOrderCodeAndStatusTrue(createCustomerOrderRequest.getCustomerOrderCode()); + List customerOrderProductList = new ArrayList<>(); for(CustomerOrderProductRequest customerOrderProductRequest : customerOrderProductRequestList){ CustomerOrderProduct customerOrderProduct = new CustomerOrderProduct(); diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/domain/Invoice.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/domain/Invoice.java index ff46f4b7..6dd9e3f4 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/domain/Invoice.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/domain/Invoice.java @@ -57,7 +57,7 @@ public class Invoice implements Serializable { // 状态 @Column(name = "status") - private Integer status; + private Boolean status; // 备注 @Column(name = "remark") diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/domain/InvoiceProduct.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/domain/InvoiceProduct.java index 0affeb80..f809feb0 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/domain/InvoiceProduct.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/domain/InvoiceProduct.java @@ -31,7 +31,7 @@ public class InvoiceProduct implements Serializable { // 状态 @Column(name = "status") - private Integer status; + private Boolean status; // 产品主键 @Column(name = "product_id",nullable = false) diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/repository/InvoiceProductRepository.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/repository/InvoiceProductRepository.java index 13834a74..4dfe9ddc 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/repository/InvoiceProductRepository.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/repository/InvoiceProductRepository.java @@ -3,6 +3,8 @@ package me.zhengjie.modules.wms.invoice.repository; import me.zhengjie.modules.wms.invoice.domain.InvoiceProduct; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; import java.util.List; @@ -13,4 +15,18 @@ import java.util.List; public interface InvoiceProductRepository extends JpaRepository, JpaSpecificationExecutor { List findByInvoiceIdAndStatusTrue(Long invoiceId); + + @Modifying + @Query(value = "update s_invoice_product set status = 0 where invoice_id = ?1", nativeQuery = true) + void deleteInvoiceProduct(long invoiceId); + + /** + * 根据产品code以及客户订单id删除发货单中对应的产品信息 + * @param productCode + * @param invoiceId + */ + @Modifying + @Query(value = "delete s_invoice_product where product_code = ?1 and invoice_id = ?2", nativeQuery = true) + void deleteByProductCodeAndInvoiceId(String productCode, Long invoiceId); + } \ No newline at end of file diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/repository/InvoiceRepository.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/repository/InvoiceRepository.java index 6987eaf4..74cd4025 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/repository/InvoiceRepository.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/repository/InvoiceRepository.java @@ -3,6 +3,8 @@ package me.zhengjie.modules.wms.invoice.repository; import me.zhengjie.modules.wms.invoice.domain.Invoice; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; /** * @author jie @@ -11,4 +13,8 @@ import org.springframework.data.jpa.repository.JpaSpecificationExecutor; public interface InvoiceRepository extends JpaRepository, JpaSpecificationExecutor { Invoice findBySaleInvoiceCode(String saleInvoiceCode); + + @Modifying + @Query(value = "update s_invoice set status = 0 where id = ?1", nativeQuery = true) + void deleteInvoice(long invoiceId); } \ No newline at end of file diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/request/UpdateInvoiceRequest.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/request/UpdateInvoiceRequest.java new file mode 100644 index 00000000..397fbfec --- /dev/null +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/request/UpdateInvoiceRequest.java @@ -0,0 +1,54 @@ +package me.zhengjie.modules.wms.invoice.request; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.bean.copier.CopyOptions; +import lombok.Data; +import me.zhengjie.modules.wms.invoice.domain.Invoice; +import me.zhengjie.modules.wms.invoice.domain.InvoiceProduct; +import me.zhengjie.modules.wms.invoice.service.dto.InvoiceProductDTO; + +import java.io.Serializable; +import java.util.List; + +/** + * @author 黄星星 + * @date 2019-08-27 + */ +@Data +public class UpdateInvoiceRequest implements Serializable { + // 主键 + private Long id; + + // 客户订单编号 + private String customerOrderCode; + + // 收货地址 + private String deliveryAddress; + + // 收货人 + private String consignee; + + // 联系方式 + private String contactWay; + + // 发票号 + private String invoiceNumber; + + // 物流公司 + private String logisticsCompany; + + // 销售发货单号 + private String saleInvoiceCode; + + // 备注 + private String remark; + + // 客户ID + private Long customerId; + + private List invoiceProductList; + + public void copy(Invoice source){ + BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true)); + } +} diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/rest/InvoiceController.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/rest/InvoiceController.java index 622a592c..1c9b1ccb 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/rest/InvoiceController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/rest/InvoiceController.java @@ -3,6 +3,7 @@ package me.zhengjie.modules.wms.invoice.rest; import me.zhengjie.aop.log.Log; import me.zhengjie.modules.wms.invoice.domain.Invoice; import me.zhengjie.modules.wms.invoice.request.CreateInvoiceRequest; +import me.zhengjie.modules.wms.invoice.request.UpdateInvoiceRequest; import me.zhengjie.modules.wms.invoice.service.InvoiceService; import me.zhengjie.modules.wms.invoice.service.dto.InvoiceQueryCriteria; import org.springframework.beans.factory.annotation.Autowired; @@ -14,6 +15,9 @@ 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-27 @@ -55,8 +59,8 @@ public class InvoiceController { @ApiOperation(value = "修改销售发货单") @PutMapping(value = "/invoice") @PreAuthorize("hasAnyRole('ADMIN','SINVOICE_ALL','SINVOICE_EDIT')") - public ResponseEntity update(@Validated @RequestBody Invoice resources){ - invoiceService.update(resources); + public ResponseEntity update(@RequestBody UpdateInvoiceRequest updateInvoiceRequest){ + invoiceService.update(updateInvoiceRequest); return new ResponseEntity(HttpStatus.NO_CONTENT); } @@ -68,4 +72,12 @@ public class InvoiceController { invoiceService.delete(id); return new ResponseEntity(HttpStatus.OK); } + + @Log("初始化发货单编号") + @GetMapping(value = "/initInvoiceCode") + public ResponseEntity initInvoiceCode(){ + DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS");//设置日期格式 + String supplierCode = "INVOICE"+ 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/invoice/rest/InvoiceProductController.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/rest/InvoiceProductController.java deleted file mode 100644 index 07bef4c5..00000000 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/rest/InvoiceProductController.java +++ /dev/null @@ -1,61 +0,0 @@ -package me.zhengjie.modules.wms.invoice.rest; - -import me.zhengjie.aop.log.Log; -import me.zhengjie.modules.wms.invoice.domain.InvoiceProduct; -import me.zhengjie.modules.wms.invoice.service.InvoiceProductService; -import me.zhengjie.modules.wms.invoice.service.dto.InvoiceProductQueryCriteria; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.Pageable; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; -import io.swagger.annotations.*; - -/** -* @author jie -* @date 2019-08-27 -*/ -@Api(tags = "SInvoiceProduct管理") -@RestController -@RequestMapping("api") -public class InvoiceProductController { - - @Autowired - private InvoiceProductService invoiceProductService; - - @Log("查询SInvoiceProduct") - @ApiOperation(value = "查询SInvoiceProduct") - @GetMapping(value = "/sInvoiceProduct") - @PreAuthorize("hasAnyRole('ADMIN','SINVOICEPRODUCT_ALL','SINVOICEPRODUCT_SELECT')") - public ResponseEntity getSInvoiceProducts(InvoiceProductQueryCriteria criteria, Pageable pageable){ - return new ResponseEntity(invoiceProductService.queryAll(criteria,pageable),HttpStatus.OK); - } - - @Log("新增SInvoiceProduct") - @ApiOperation(value = "新增SInvoiceProduct") - @PostMapping(value = "/sInvoiceProduct") - @PreAuthorize("hasAnyRole('ADMIN','SINVOICEPRODUCT_ALL','SINVOICEPRODUCT_CREATE')") - public ResponseEntity create(@Validated @RequestBody InvoiceProduct resources){ - return new ResponseEntity(invoiceProductService.create(resources),HttpStatus.CREATED); - } - - @Log("修改SInvoiceProduct") - @ApiOperation(value = "修改SInvoiceProduct") - @PutMapping(value = "/sInvoiceProduct") - @PreAuthorize("hasAnyRole('ADMIN','SINVOICEPRODUCT_ALL','SINVOICEPRODUCT_EDIT')") - public ResponseEntity update(@Validated @RequestBody InvoiceProduct resources){ - invoiceProductService.update(resources); - return new ResponseEntity(HttpStatus.NO_CONTENT); - } - - @Log("删除SInvoiceProduct") - @ApiOperation(value = "删除SInvoiceProduct") - @DeleteMapping(value = "/sInvoiceProduct/{id}") - @PreAuthorize("hasAnyRole('ADMIN','SINVOICEPRODUCT_ALL','SINVOICEPRODUCT_DELETE')") - public ResponseEntity delete(@PathVariable Long id){ - invoiceProductService.delete(id); - return new ResponseEntity(HttpStatus.OK); - } -} \ No newline at end of file diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/service/InvoiceService.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/service/InvoiceService.java index 797025da..8df0db29 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/service/InvoiceService.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/service/InvoiceService.java @@ -2,6 +2,7 @@ package me.zhengjie.modules.wms.invoice.service; import me.zhengjie.modules.wms.invoice.domain.Invoice; import me.zhengjie.modules.wms.invoice.request.CreateInvoiceRequest; +import me.zhengjie.modules.wms.invoice.request.UpdateInvoiceRequest; import me.zhengjie.modules.wms.invoice.service.dto.InvoiceDTO; import me.zhengjie.modules.wms.invoice.service.dto.InvoiceDetailDTO; import me.zhengjie.modules.wms.invoice.service.dto.InvoiceQueryCriteria; @@ -52,10 +53,10 @@ public interface InvoiceService { /** * update - * @param resources + * @param updateInvoiceRequest */ //@CacheEvict(allEntries = true) - void update(Invoice resources); + void update(UpdateInvoiceRequest updateInvoiceRequest); /** * delete diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/service/dto/InvoiceDTO.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/service/dto/InvoiceDTO.java index 5d41c78d..2d0cc265 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/service/dto/InvoiceDTO.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/service/dto/InvoiceDTO.java @@ -39,7 +39,7 @@ public class InvoiceDTO implements Serializable { private String saleInvoiceCode; // 状态 - private Integer status; + private Boolean status; // 备注 private String remark; diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/service/dto/InvoiceProductDTO.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/service/dto/InvoiceProductDTO.java index f5b457bd..22b11225 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/service/dto/InvoiceProductDTO.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/service/dto/InvoiceProductDTO.java @@ -21,7 +21,7 @@ public class InvoiceProductDTO implements Serializable { private Timestamp updateStatus; // 状态 - private Integer status; + private Boolean status; // 产品主键 private Long productId; diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/service/impl/InvoiceServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/service/impl/InvoiceServiceImpl.java index 27e3d292..cda3119e 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/service/impl/InvoiceServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/invoice/service/impl/InvoiceServiceImpl.java @@ -3,10 +3,14 @@ package me.zhengjie.modules.wms.invoice.service.impl; import me.zhengjie.exception.BadRequestException; import me.zhengjie.modules.wms.bd.domain.CustomerInfo; import me.zhengjie.modules.wms.bd.repository.CustomerInfoRepository; +import me.zhengjie.modules.wms.customerOrder.domain.CustomerOrder; +import me.zhengjie.modules.wms.customerOrder.domain.CustomerOrderProduct; +import me.zhengjie.modules.wms.customerOrder.service.dto.CustomerOrderProductDTO; import me.zhengjie.modules.wms.invoice.domain.Invoice; import me.zhengjie.modules.wms.invoice.domain.InvoiceProduct; import me.zhengjie.modules.wms.invoice.repository.InvoiceProductRepository; import me.zhengjie.modules.wms.invoice.request.CreateInvoiceRequest; +import me.zhengjie.modules.wms.invoice.request.UpdateInvoiceRequest; import me.zhengjie.modules.wms.invoice.service.dto.InvoiceDetailDTO; import me.zhengjie.modules.wms.invoice.service.dto.InvoiceProductDTO; import me.zhengjie.modules.wms.invoice.service.mapper.InvoiceProductMapper; @@ -22,8 +26,13 @@ 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.Map; import java.util.Optional; +import java.util.function.Function; +import java.util.stream.Collectors; + import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import me.zhengjie.utils.PageUtil; @@ -141,17 +150,63 @@ public class InvoiceServiceImpl implements InvoiceService { @Override @Transactional(rollbackFor = Exception.class) - public void update(Invoice resources) { - Optional optionalSInvoice = invoiceRepository.findById(resources.getId()); - ValidationUtil.isNull( optionalSInvoice,"SInvoice","id",resources.getId()); - Invoice invoice = optionalSInvoice.get(); - invoice.copy(resources); + public void update(UpdateInvoiceRequest updateInvoiceRequest) { + Invoice invoice = new Invoice(); + BeanUtils.copyProperties(updateInvoiceRequest, invoice); + // 修改发货单概要信息 invoiceRepository.save(invoice); + + // 修改产品信息之前,查询该订单中原来的产品信息,key为产品code + List invoiceProductListBeforeUpdate = invoiceProductRepository.findByInvoiceIdAndStatusTrue(invoice.getId()); + Map invoiceProductMapBefore = invoiceProductListBeforeUpdate.stream().collect(Collectors.toMap(InvoiceProduct::getProductCode, Function.identity())); + + List invoiceProductRequestList = updateInvoiceRequest.getInvoiceProductList(); + if(CollectionUtils.isEmpty(invoiceProductRequestList)){ + throw new BadRequestException("发货单产品不能为空!"); + } + + Map invoiceProductMapAfter = invoiceProductRequestList.stream().collect(Collectors.toMap(InvoiceProductDTO::getProductCode, Function.identity())); + + //需要将订单中原来订单对应的产品删除了的数据 + List deleteTargetList = new ArrayList<>(); + //比较量个map中,key不一样的数据 + for(Map.Entry entry:invoiceProductMapBefore.entrySet()){ + String productCode = entry.getKey(); + //修改后的map记录对应的key在原来中是否存在 + InvoiceProductDTO invoiceProductDTOTemp = invoiceProductMapAfter.get(productCode); + if(null == invoiceProductDTOTemp){ + deleteTargetList.add(entry.getKey()); + } + + } + + + List invoiceProductList = new ArrayList<>(); + for(InvoiceProductDTO invoiceProductDTO : invoiceProductRequestList){ + InvoiceProduct invoiceProduct = new InvoiceProduct(); + BeanUtils.copyProperties(invoiceProductDTO, invoiceProduct); + invoiceProduct.setInvoiceId(invoice.getId()); + invoiceProduct.setStatus(true); + } + invoiceProductRepository.saveAll(invoiceProductList); + + /** + * 场景描述: + * 1.刚开始新增了 a b c三种产品 + * 2.修改的时候删除了 a c两种产品 + * 3.所以需要查修改前数据库中有的产品,再比较修改传过来的产品数据,如果修改后的在原来里面没有,需要将原来里面对应的删除 + */ + if(!CollectionUtils.isEmpty(deleteTargetList)){ + for(String prductCode : deleteTargetList){ + invoiceProductRepository.deleteByProductCodeAndInvoiceId(prductCode, invoice.getId()); + } + } } @Override @Transactional(rollbackFor = Exception.class) public void delete(Long id) { - invoiceRepository.deleteById(id); + invoiceRepository.deleteInvoice(id); + invoiceProductRepository.deleteInvoiceProduct(id); } } \ No newline at end of file diff --git a/eladmin-system/src/main/resources/config/application-dev.yml b/eladmin-system/src/main/resources/config/application-dev.yml index ae5858ce..64fa7dc6 100644 --- a/eladmin-system/src/main/resources/config/application-dev.yml +++ b/eladmin-system/src/main/resources/config/application-dev.yml @@ -4,8 +4,8 @@ spring: druid: type: com.alibaba.druid.pool.DruidDataSource driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy - url: jdbc:log4jdbc:mysql://rm-2ze4a3l502a15dg50qo.mysql.rds.aliyuncs.com:3306/eladmin?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false - username: tenjeu + url: jdbc:log4jdbc:mysql://47.103.159.227:3306/eladmin?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false + username: root password: starrysky622209Qwe! diff --git a/eladmin-system/src/main/resources/config/application-prod.yml b/eladmin-system/src/main/resources/config/application-prod.yml index 3cb15a0b..368b650d 100644 --- a/eladmin-system/src/main/resources/config/application-prod.yml +++ b/eladmin-system/src/main/resources/config/application-prod.yml @@ -4,8 +4,8 @@ spring: druid: type: com.alibaba.druid.pool.DruidDataSource driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy - url: jdbc:log4jdbc:mysql://rm-2ze4a3l502a15dg50qo.mysql.rds.aliyuncs.com:3306/eladmin?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false - username: tenjeu + url: jdbc:log4jdbc:mysql://47.103.159.227:3306/eladmin?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false + username: root password: starrysky622209Qwe! # 初始化配置 diff --git a/eladmin-system/src/main/resources/config/application.yml b/eladmin-system/src/main/resources/config/application.yml index 33e004d7..a52de8aa 100644 --- a/eladmin-system/src/main/resources/config/application.yml +++ b/eladmin-system/src/main/resources/config/application.yml @@ -3,7 +3,7 @@ server: spring: profiles: - active: dev + active: prod jackson: time-zone: GMT+8 data: