diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/outSourceProductSheet/repository/OutSourceProcessSheetProductRepository.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/outSourceProductSheet/repository/OutSourceProcessSheetProductRepository.java index 0a6eeb63..ebe2c1eb 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/outSourceProductSheet/repository/OutSourceProcessSheetProductRepository.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/outSourceProductSheet/repository/OutSourceProcessSheetProductRepository.java @@ -24,6 +24,6 @@ public interface OutSourceProcessSheetProductRepository extends JpaRepository queryByOutSourceProcessSheetIdAndStatusTrue(Long outSourceProcessSheetId); @Modifying - @Query(value = "delete s_out_source_process_sheet_product where product_code = ?1 and out_source_process_sheet_id = ?2", nativeQuery = true) + @Query(value = "delete from s_out_source_process_sheet_product where product_code = ?1 and out_source_process_sheet_id = ?2", nativeQuery = true) void deleteByProductCodeAndOutSourceProcessSheetId(String productCode, Long outSourceProcessSheetId); } \ No newline at end of file diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/cons/AuditStatus.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/cons/AuditStatus.java new file mode 100644 index 00000000..06f6f987 --- /dev/null +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/cons/AuditStatus.java @@ -0,0 +1,46 @@ +package me.zhengjie.modules.wms.purchase.cons; + +/** + * @author 黄星星 + * @date 2019-10-07 + */ +public enum AuditStatus { + AUDIT_STATUS_PASS("pass", "同意"), + AUDIT_STATUS_REJECT("reject", "拒绝"), + AUDIT_STATUS_NO_AUDIT("no_audit", "未审核"), + ; + private String code; + private String name; + + AuditStatus(String code, String name) { + this.code = code; + this.name = name; + } + + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public static String getName(String code) { + AuditStatus[] auditStatuseEnums = values(); + for (AuditStatus auditStatus : auditStatuseEnums) { + if (auditStatus.getCode().equals(code)) { + return auditStatus.getName(); + } + } + return null; + } +} \ No newline at end of file diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/domain/ConsumablesPurchaseOrder.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/domain/ConsumablesPurchaseOrder.java index 9ba0b687..c3208e4a 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/domain/ConsumablesPurchaseOrder.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/domain/ConsumablesPurchaseOrder.java @@ -3,6 +3,8 @@ package me.zhengjie.modules.wms.purchase.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; @@ -23,9 +25,11 @@ public class ConsumablesPurchaseOrder implements Serializable { private Long id; @Column(name = "create_time") + @CreationTimestamp private Timestamp createTime; @Column(name = "update_time") + @CreationTimestamp private Timestamp updateTime; // 采购人主键 @@ -42,7 +46,7 @@ public class ConsumablesPurchaseOrder implements Serializable { // 审核状态 @Column(name = "audit_status") - private Integer auditStatus; + private String auditStatus; @Column(name = "audit_user_id") private Long auditUserId; diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/domain/ProductPurchaseOrder.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/domain/ProductPurchaseOrder.java index ac853094..18c837fa 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/domain/ProductPurchaseOrder.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/domain/ProductPurchaseOrder.java @@ -46,7 +46,7 @@ public class ProductPurchaseOrder implements Serializable { // 审核状态 @Column(name = "audit_status") - private Integer auditStatus; + private String auditStatus; @Column(name = "audit_user_id") private Long auditUserId; diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/repository/ConsumablesPurchaseOrderProductRepository.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/repository/ConsumablesPurchaseOrderProductRepository.java index 8f75d57b..78c1663d 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/repository/ConsumablesPurchaseOrderProductRepository.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/repository/ConsumablesPurchaseOrderProductRepository.java @@ -24,6 +24,6 @@ public interface ConsumablesPurchaseOrderProductRepository extends JpaRepository List queryByConsumablesPurchaseOrderIdAndStatusTrue(Long consumablesPurchaseOrderId); @Modifying - @Query(value = "delete product_purchase_order_product where consumables_code = ?1 and consumables_purchase_order_id = ?2", nativeQuery = true) + @Query(value = "delete from product_purchase_order_product where consumables_code = ?1 and consumables_purchase_order_id = ?2", nativeQuery = true) void deleteByProductCodeAndConsumablesPurchaseOrderId(String consumablesCode, Long consumablesPurchaseOrderId); } \ No newline at end of file diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/repository/ProductPurchaseOrderProductRepository.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/repository/ProductPurchaseOrderProductRepository.java index cdadb823..fe210b50 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/repository/ProductPurchaseOrderProductRepository.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/repository/ProductPurchaseOrderProductRepository.java @@ -24,6 +24,6 @@ public interface ProductPurchaseOrderProductRepository extends JpaRepository queryByProductPurchaseOrderIdAndStatusTrue(Long productPurchaseOrderId); @Modifying - @Query(value = "delete product_purchase_order_product where product_code = ?1 and product_purchase_order_id = ?2", nativeQuery = true) + @Query(value = "delete from product_purchase_order_product where product_code = ?1 and product_purchase_order_id = ?2", nativeQuery = true) void deleteByProductCodeAndProductPurchaseOrderId(String productCode, Long productPurchaseOrderId); } \ No newline at end of file diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/request/AuditConsumablesPurchaseOrderRequest.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/request/AuditConsumablesPurchaseOrderRequest.java index da3f96bb..808b0d1d 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/request/AuditConsumablesPurchaseOrderRequest.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/request/AuditConsumablesPurchaseOrderRequest.java @@ -23,4 +23,6 @@ public class AuditConsumablesPurchaseOrderRequest { // 审核人姓名 private String auditUserName; + private String auditStatus; + } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/request/AuditProductPurchaseOrderRequest.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/request/AuditProductPurchaseOrderRequest.java index df6de220..ba8bd23b 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/request/AuditProductPurchaseOrderRequest.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/request/AuditProductPurchaseOrderRequest.java @@ -23,4 +23,6 @@ public class AuditProductPurchaseOrderRequest { // 审核人姓名 private String auditUserName; + private String auditStatus; + } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/request/CreateConsumablesPurchaseOrderRequest.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/request/CreateConsumablesPurchaseOrderRequest.java new file mode 100644 index 00000000..3f003389 --- /dev/null +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/request/CreateConsumablesPurchaseOrderRequest.java @@ -0,0 +1,34 @@ +package me.zhengjie.modules.wms.purchase.request; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.bean.copier.CopyOptions; +import lombok.Data; + +import javax.persistence.*; +import java.io.Serializable; +import java.sql.Timestamp; +import java.util.Date; +import java.util.List; + +/** +* @author jie +* @date 2019-10-06 +*/ +@Data +public class CreateConsumablesPurchaseOrderRequest implements Serializable { + + // 采购人主键 + private Long purchaseUserId; + + // 采购人姓名 + private String purchaseUserName; + + // 耗材采购单单据编号 + private String consumablesPurchaseOrderCode; + + private List consumablesPurchaseOrderProductList; + + public void copy(CreateConsumablesPurchaseOrderRequest 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/purchase/request/UpdateConsumablesPurchaseOrderRequest.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/request/UpdateConsumablesPurchaseOrderRequest.java new file mode 100644 index 00000000..68ddb44f --- /dev/null +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/request/UpdateConsumablesPurchaseOrderRequest.java @@ -0,0 +1,19 @@ +package me.zhengjie.modules.wms.purchase.request; + +import lombok.Data; +import me.zhengjie.modules.wms.purchase.service.dto.ConsumablesPurchaseOrderProductDTO; + +import java.io.Serializable; +import java.util.List; + +/** + * 更新耗材采购单 + * @author 黄星星 + * @date 2019-10-07 + */ +@Data +public class UpdateConsumablesPurchaseOrderRequest implements Serializable { + private Long id; + + private List consumablesPurchaseOrderProductList; +} diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/request/UpdateProductPurchaseOrderRequest.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/request/UpdateProductPurchaseOrderRequest.java new file mode 100644 index 00000000..ee2054e1 --- /dev/null +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/request/UpdateProductPurchaseOrderRequest.java @@ -0,0 +1,20 @@ +package me.zhengjie.modules.wms.purchase.request; + +import lombok.Data; +import me.zhengjie.modules.wms.purchase.service.dto.ConsumablesPurchaseOrderProductDTO; +import me.zhengjie.modules.wms.purchase.service.dto.ProductPurchaseOrderProductDTO; + +import java.io.Serializable; +import java.util.List; + +/** + * 更新产品采购单 + * @author 黄星星 + * @date 2019-10-07 + */ +@Data +public class UpdateProductPurchaseOrderRequest implements Serializable { + private Long id; + + private List productPurchaseOrderProductList; +} diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/rest/ConsumablesPurchaseOrderController.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/rest/ConsumablesPurchaseOrderController.java index 6c621bdd..84f8a076 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/rest/ConsumablesPurchaseOrderController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/rest/ConsumablesPurchaseOrderController.java @@ -5,6 +5,7 @@ import me.zhengjie.modules.wms.purchase.domain.ConsumablesPurchaseOrder; import me.zhengjie.modules.wms.purchase.request.AuditConsumablesPurchaseOrderRequest; import me.zhengjie.modules.wms.purchase.request.AuditProductPurchaseOrderRequest; import me.zhengjie.modules.wms.purchase.request.CreateConsumablesPurchaseOrderRequest; +import me.zhengjie.modules.wms.purchase.request.UpdateConsumablesPurchaseOrderRequest; import me.zhengjie.modules.wms.purchase.service.ConsumablesPurchaseOrderService; import me.zhengjie.modules.wms.purchase.service.dto.ConsumablesPurchaseOrderQueryCriteria; import org.springframework.beans.factory.annotation.Autowired; @@ -60,8 +61,8 @@ public class ConsumablesPurchaseOrderController { @ApiOperation(value = "修改耗材采购单") @PutMapping(value = "/consumablesPurchaseOrder") @PreAuthorize("hasAnyRole('ADMIN','CONSUMABLESPURCHASEORDER_ALL','CONSUMABLESPURCHASEORDER_EDIT')") - public ResponseEntity update(@Validated @RequestBody ConsumablesPurchaseOrder resources){ - consumablesPurchaseOrderService.update(resources); + public ResponseEntity update(@Validated @RequestBody UpdateConsumablesPurchaseOrderRequest updateConsumablesPurchaseOrderRequest){ + consumablesPurchaseOrderService.update(updateConsumablesPurchaseOrderRequest); return new ResponseEntity(HttpStatus.NO_CONTENT); } @@ -90,4 +91,11 @@ public class ConsumablesPurchaseOrderController { String supplierCode = "CP"+ LocalDateTime.now().format(fmt); return new ResponseEntity(supplierCode,HttpStatus.OK); } + + @Log("查看耗材采购详情") + @ApiOperation(value = "查看产品采购详情") + @GetMapping(value = "/consumablesPurchaseOrder/{id}") + public ResponseEntity getOutSourceInspectionCertificate(@PathVariable Long id){ + return new ResponseEntity(consumablesPurchaseOrderService.findById(id), HttpStatus.OK); + } } \ No newline at end of file diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/rest/ProductPurchaseOrderController.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/rest/ProductPurchaseOrderController.java index ba01522d..b5ae34f2 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/rest/ProductPurchaseOrderController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/rest/ProductPurchaseOrderController.java @@ -4,6 +4,7 @@ import me.zhengjie.aop.log.Log; import me.zhengjie.modules.wms.purchase.domain.ProductPurchaseOrder; import me.zhengjie.modules.wms.purchase.request.AuditProductPurchaseOrderRequest; import me.zhengjie.modules.wms.purchase.request.CreateProductPurchaseOrderRequest; +import me.zhengjie.modules.wms.purchase.request.UpdateProductPurchaseOrderRequest; import me.zhengjie.modules.wms.purchase.service.ProductPurchaseOrderService; import me.zhengjie.modules.wms.purchase.service.dto.ProductPurchaseOrderQueryCriteria; import org.springframework.beans.factory.annotation.Autowired; @@ -51,8 +52,8 @@ public class ProductPurchaseOrderController { @ApiOperation(value = "修改产品采购") @PutMapping(value = "/productPurchaseOrder") @PreAuthorize("hasAnyRole('ADMIN','PRODUCTPURCHASEORDER_ALL','PRODUCTPURCHASEORDER_EDIT')") - public ResponseEntity update(@Validated @RequestBody ProductPurchaseOrder resources){ - productPurchaseOrderService.update(resources); + public ResponseEntity update(@Validated @RequestBody UpdateProductPurchaseOrderRequest updateProductPurchaseOrderRequest){ + productPurchaseOrderService.update(updateProductPurchaseOrderRequest); return new ResponseEntity(HttpStatus.NO_CONTENT); } diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/service/ConsumablesPurchaseOrderService.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/service/ConsumablesPurchaseOrderService.java index 302069f8..a6bbd5cf 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/service/ConsumablesPurchaseOrderService.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/service/ConsumablesPurchaseOrderService.java @@ -3,6 +3,7 @@ package me.zhengjie.modules.wms.purchase.service; import me.zhengjie.modules.wms.purchase.domain.ConsumablesPurchaseOrder; import me.zhengjie.modules.wms.purchase.request.AuditConsumablesPurchaseOrderRequest; import me.zhengjie.modules.wms.purchase.request.CreateConsumablesPurchaseOrderRequest; +import me.zhengjie.modules.wms.purchase.request.UpdateConsumablesPurchaseOrderRequest; import me.zhengjie.modules.wms.purchase.service.dto.ConsumablesPurchaseOrderDTO; import me.zhengjie.modules.wms.purchase.service.dto.ConsumablesPurchaseOrderQueryCriteria; //import org.springframework.cache.annotation.CacheConfig; @@ -52,10 +53,10 @@ public interface ConsumablesPurchaseOrderService { /** * update - * @param resources + * @param updateConsumablesPurchaseOrderRequest */ //@CacheEvict(allEntries = true) - void update(ConsumablesPurchaseOrder resources); + void update(UpdateConsumablesPurchaseOrderRequest updateConsumablesPurchaseOrderRequest); /** * delete diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/service/ProductPurchaseOrderService.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/service/ProductPurchaseOrderService.java index fb41032c..bdcfe4a5 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/service/ProductPurchaseOrderService.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/service/ProductPurchaseOrderService.java @@ -3,6 +3,7 @@ package me.zhengjie.modules.wms.purchase.service; import me.zhengjie.modules.wms.purchase.domain.ProductPurchaseOrder; import me.zhengjie.modules.wms.purchase.request.AuditProductPurchaseOrderRequest; import me.zhengjie.modules.wms.purchase.request.CreateProductPurchaseOrderRequest; +import me.zhengjie.modules.wms.purchase.request.UpdateProductPurchaseOrderRequest; import me.zhengjie.modules.wms.purchase.service.dto.ProductPurchaseOrderDTO; import me.zhengjie.modules.wms.purchase.service.dto.ProductPurchaseOrderQueryCriteria; //import org.springframework.cache.annotation.CacheConfig; @@ -52,10 +53,10 @@ public interface ProductPurchaseOrderService { /** * update - * @param resources + * @param updateProductPurchaseOrderRequest */ //@CacheEvict(allEntries = true) - void update(ProductPurchaseOrder resources); + void update(UpdateProductPurchaseOrderRequest updateProductPurchaseOrderRequest); /** * delete diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/service/dto/ConsumablesPurchaseOrderDTO.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/service/dto/ConsumablesPurchaseOrderDTO.java index c94138d8..ac8824e9 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/service/dto/ConsumablesPurchaseOrderDTO.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/service/dto/ConsumablesPurchaseOrderDTO.java @@ -18,6 +18,8 @@ public class ConsumablesPurchaseOrderDTO implements Serializable { private Timestamp createTime; + private String createTimeStr; + private Timestamp updateTime; // 采购人主键 @@ -30,7 +32,9 @@ public class ConsumablesPurchaseOrderDTO implements Serializable { private Boolean status; // 审核状态 - private Integer auditStatus; + private String auditStatus; + + private String auditStatusName; private Long auditUserId; diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/service/dto/ProductPurchaseOrderDTO.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/service/dto/ProductPurchaseOrderDTO.java index c0ad6933..0ae96e43 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/service/dto/ProductPurchaseOrderDTO.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/service/dto/ProductPurchaseOrderDTO.java @@ -18,6 +18,8 @@ public class ProductPurchaseOrderDTO implements Serializable { private Timestamp createTime; + private String createTimeStr; + private Timestamp updateTime; // 采购人主键 @@ -30,7 +32,9 @@ public class ProductPurchaseOrderDTO implements Serializable { private Boolean status; // 审核状态 - private Integer auditStatus; + private String auditStatus; + + private String auditStatusName; private Long auditUserId; diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/service/impl/ConsumablesPurchaseOrderServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/service/impl/ConsumablesPurchaseOrderServiceImpl.java index a208eac3..348ca279 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/service/impl/ConsumablesPurchaseOrderServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/service/impl/ConsumablesPurchaseOrderServiceImpl.java @@ -1,6 +1,11 @@ package me.zhengjie.modules.wms.purchase.service.impl; import me.zhengjie.exception.BadRequestException; +import me.zhengjie.modules.wms.outSourceProductSheet.domain.OutSourceProcessSheet; +import me.zhengjie.modules.wms.outSourceProductSheet.domain.OutSourceProcessSheetProduct; +import me.zhengjie.modules.wms.outSourceProductSheet.service.dto.OutSourceProcessSheetDTO; +import me.zhengjie.modules.wms.outSourceProductSheet.service.dto.OutSourceProcessSheetProductDTO; +import me.zhengjie.modules.wms.purchase.cons.AuditStatus; import me.zhengjie.modules.wms.purchase.domain.ConsumablesPurchaseOrder; import me.zhengjie.modules.wms.purchase.domain.ConsumablesPurchaseOrderProduct; import me.zhengjie.modules.wms.purchase.domain.ProductPurchaseOrder; @@ -20,11 +25,12 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; -import java.security.Timestamp; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Optional; +import java.sql.Timestamp; +import java.text.SimpleDateFormat; +import java.util.*; +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; @@ -78,7 +84,23 @@ public class ConsumablesPurchaseOrderServiceImpl implements ConsumablesPurchaseO }; Page page = consumablesPurchaseOrderRepository.findAll(specification, pageable); - return PageUtil.toPage(page.map(consumablesPurchaseOrderMapper::toDto)); + + Page consumablesPurchaseOrderDTOPage = page.map(consumablesPurchaseOrderMapper::toDto); + if(null != consumablesPurchaseOrderDTOPage){ + List consumablesPurchaseOrderDTOList = consumablesPurchaseOrderDTOPage.getContent(); + if(!CollectionUtils.isEmpty(consumablesPurchaseOrderDTOList)){ + for(ConsumablesPurchaseOrderDTO consumablesPurchaseOrderDTO : consumablesPurchaseOrderDTOList){ + String auditStatusName = AuditStatus.getName(consumablesPurchaseOrderDTO.getAuditStatus()); + consumablesPurchaseOrderDTO.setAuditStatusName(auditStatusName); + + Timestamp createTime = consumablesPurchaseOrderDTO.getCreateTime(); + consumablesPurchaseOrderDTO.setCreateTimeStr(new SimpleDateFormat("yyyy-MM-dd").format(createTime)); + } + } + } + + Map map = PageUtil.toPage(consumablesPurchaseOrderDTOPage); + return map; } @Override @@ -107,9 +129,18 @@ public class ConsumablesPurchaseOrderServiceImpl implements ConsumablesPurchaseO @Override public ConsumablesPurchaseOrderDTO findById(Long id) { - Optional consumablesPurchaseOrder = consumablesPurchaseOrderRepository.findById(id); - ValidationUtil.isNull(consumablesPurchaseOrder,"ConsumablesPurchaseOrder","id",id); - return consumablesPurchaseOrderMapper.toDto(consumablesPurchaseOrder.get()); + Optional consumablesPurchaseOrderOptional = consumablesPurchaseOrderRepository.findById(id); + ConsumablesPurchaseOrder consumablesPurchaseOrder = consumablesPurchaseOrderOptional.get(); + ConsumablesPurchaseOrderDTO consumablesPurchaseOrderDTO = consumablesPurchaseOrderMapper.toDto(consumablesPurchaseOrder); + consumablesPurchaseOrderDTO.setAuditStatusName(AuditStatus.getName(consumablesPurchaseOrder.getAuditStatus())); + + + List consumablesPurchaseOrderProductList = consumablesPurchaseOrderProductRepository.queryByConsumablesPurchaseOrderIdAndStatusTrue(id); + if(!CollectionUtils.isEmpty(consumablesPurchaseOrderProductList)){ + List consumablesPurchaseOrderProductDTOList = consumablesPurchaseOrderProductMapper.toDto(consumablesPurchaseOrderProductList); + consumablesPurchaseOrderDTO.setConsumablesPurchaseOrderProductList(consumablesPurchaseOrderProductDTOList); + } + return consumablesPurchaseOrderDTO; } @Override @@ -125,6 +156,7 @@ public class ConsumablesPurchaseOrderServiceImpl implements ConsumablesPurchaseO consumablesPurchaseOrder.setStatus(true); // 新增耗材采购单 + consumablesPurchaseOrder.setAuditStatus(AuditStatus.AUDIT_STATUS_NO_AUDIT.getCode()); consumablesPurchaseOrderRepository.save(consumablesPurchaseOrder); consumablesPurchaseOrder = consumablesPurchaseOrderRepository.findByConsumablesPurchaseOrderCode(consumablesPurchaseOrder.getConsumablesPurchaseOrderCode()); @@ -162,12 +194,60 @@ public class ConsumablesPurchaseOrderServiceImpl implements ConsumablesPurchaseO @Override @Transactional(rollbackFor = Exception.class) - public void update(ConsumablesPurchaseOrder resources) { - Optional optionalConsumablesPurchaseOrder = consumablesPurchaseOrderRepository.findById(resources.getId()); - ValidationUtil.isNull( optionalConsumablesPurchaseOrder,"ConsumablesPurchaseOrder","id",resources.getId()); - ConsumablesPurchaseOrder consumablesPurchaseOrder = optionalConsumablesPurchaseOrder.get(); - consumablesPurchaseOrder.copy(resources); - consumablesPurchaseOrderRepository.save(consumablesPurchaseOrder); + public void update(UpdateConsumablesPurchaseOrderRequest updateConsumablesPurchaseOrderRequest) { + Long consumablesPurchaseOrderId = updateConsumablesPurchaseOrderRequest.getId(); + Optional consumablesPurchaseOrderOptional = consumablesPurchaseOrderRepository.findById(consumablesPurchaseOrderId); + ConsumablesPurchaseOrder consumablesPurchaseOrder = consumablesPurchaseOrderOptional.get(); + + // 修改产品信息之前,查询该订单中原来的产品信息,key为产品code + List consumablesPurchaseOrderProductListBeforeUpdate = consumablesPurchaseOrderProductRepository.queryByConsumablesPurchaseOrderIdAndStatusTrue(consumablesPurchaseOrder.getId()); + Map consumablesPurchaseOrderProductMapBefore = consumablesPurchaseOrderProductListBeforeUpdate.stream().collect(Collectors.toMap(ConsumablesPurchaseOrderProduct::getConsumablesCode, Function.identity())); + + List consumablesPurchaseOrderProductRequestList = updateConsumablesPurchaseOrderRequest.getConsumablesPurchaseOrderProductList(); + if(CollectionUtils.isEmpty(consumablesPurchaseOrderProductRequestList)){ + throw new BadRequestException("耗材采购单产品不能为空!"); + } + + Map invoiceProductMapAfter = consumablesPurchaseOrderProductRequestList.stream().collect(Collectors.toMap(ConsumablesPurchaseOrderProductDTO::getConsumablesCode, Function.identity())); + + //需要将订单中原来订单对应的产品删除了的数据 + List deleteTargetList = new ArrayList<>(); + //比较量个map中,key不一样的数据 + for(Map.Entry entry:consumablesPurchaseOrderProductMapBefore.entrySet()){ + String consumablesCode = entry.getKey(); + //修改后的map记录对应的key在原来中是否存在 + ConsumablesPurchaseOrderProductDTO consumablesPurchaseOrderProductDTOTemp = invoiceProductMapAfter.get(consumablesCode); + if(null == consumablesPurchaseOrderProductDTOTemp){ + deleteTargetList.add(entry.getKey()); + } + + } + + + List consumablesPurchaseOrderProductList = new ArrayList<>(); + for(ConsumablesPurchaseOrderProductDTO consumablesPurchaseOrderProductDTO : consumablesPurchaseOrderProductRequestList){ + ConsumablesPurchaseOrderProduct consumablesPurchaseOrderProduct = new ConsumablesPurchaseOrderProduct(); + BeanUtils.copyProperties(consumablesPurchaseOrderProductDTO, consumablesPurchaseOrderProduct); + consumablesPurchaseOrderProduct.setConsumablesPurchaseOrderId(consumablesPurchaseOrder.getId()); + consumablesPurchaseOrderProduct.setStatus(true); + + if(!(!CollectionUtils.isEmpty(deleteTargetList) && deleteTargetList.contains(consumablesPurchaseOrderProductDTO.getId()))){ + consumablesPurchaseOrderProductList.add(consumablesPurchaseOrderProduct); + } + } + consumablesPurchaseOrderProductRepository.saveAll(consumablesPurchaseOrderProductList); + + /** + * 场景描述: + * 1.刚开始新增了 a b c三种产品 + * 2.修改的时候删除了 a c两种产品 + * 3.所以需要查修改前数据库中有的产品,再比较修改传过来的产品数据,如果修改后的在原来里面没有,需要将原来里面对应的删除 + */ + if(!CollectionUtils.isEmpty(deleteTargetList)){ + for(String prductCode : deleteTargetList){ + consumablesPurchaseOrderProductRepository.deleteByProductCodeAndConsumablesPurchaseOrderId(prductCode, consumablesPurchaseOrder.getId()); + } + } } @@ -182,6 +262,7 @@ public class ConsumablesPurchaseOrderServiceImpl implements ConsumablesPurchaseO Long auditUserId = auditConsumablesPurchaseOrderRequest.getAuditUserId(); String auditUserName = auditConsumablesPurchaseOrderRequest.getAuditUserName(); String auditOpinion = auditConsumablesPurchaseOrderRequest.getAuditOpinion(); + String auditStatus = auditConsumablesPurchaseOrderRequest.getAuditStatus(); Optional optionalProductPurchaseOrder = consumablesPurchaseOrderRepository.findById(id); @@ -192,6 +273,7 @@ public class ConsumablesPurchaseOrderServiceImpl implements ConsumablesPurchaseO consumablesPurchaseOrder.setAuditOpinion(auditOpinion); Date date = new Date(); consumablesPurchaseOrder.setAuditTime(date); + consumablesPurchaseOrder.setAuditStatus(auditStatus); consumablesPurchaseOrderRepository.save(consumablesPurchaseOrder); diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/service/impl/ProductPurchaseOrderServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/service/impl/ProductPurchaseOrderServiceImpl.java index cbe1e806..e1099fa5 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/service/impl/ProductPurchaseOrderServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/purchase/service/impl/ProductPurchaseOrderServiceImpl.java @@ -1,18 +1,16 @@ package me.zhengjie.modules.wms.purchase.service.impl; import me.zhengjie.exception.BadRequestException; -import me.zhengjie.modules.wms.bd.domain.MeasureUnit; -import me.zhengjie.modules.wms.outSourceProductSheet.domain.OutSourceProcessSheet; -import me.zhengjie.modules.wms.outSourceProductSheet.domain.OutSourceProcessSheetProduct; -import me.zhengjie.modules.wms.outSourceProductSheet.request.OutSourceProcessSheetProductRequest; -import me.zhengjie.modules.wms.outSourceProductSheet.service.dto.OutSourceProcessSheetDTO; -import me.zhengjie.modules.wms.outSourceProductSheet.service.dto.OutSourceProcessSheetProductDTO; +import me.zhengjie.modules.wms.purchase.cons.AuditStatus; +import me.zhengjie.modules.wms.purchase.domain.ConsumablesPurchaseOrder; import me.zhengjie.modules.wms.purchase.domain.ProductPurchaseOrder; import me.zhengjie.modules.wms.purchase.domain.ProductPurchaseOrderProduct; import me.zhengjie.modules.wms.purchase.repository.ProductPurchaseOrderProductRepository; import me.zhengjie.modules.wms.purchase.request.AuditProductPurchaseOrderRequest; import me.zhengjie.modules.wms.purchase.request.CreateProductPurchaseOrderRequest; import me.zhengjie.modules.wms.purchase.request.ProductPurchaseOrderProductRequest; +import me.zhengjie.modules.wms.purchase.request.UpdateProductPurchaseOrderRequest; +import me.zhengjie.modules.wms.purchase.service.dto.ConsumablesPurchaseOrderDTO; import me.zhengjie.modules.wms.purchase.service.dto.ProductPurchaseOrderProductDTO; import me.zhengjie.modules.wms.purchase.service.mapper.ProductPurchaseOrderProductMapper; import me.zhengjie.utils.ValidationUtil; @@ -28,10 +26,12 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Optional; +import java.sql.Timestamp; +import java.text.SimpleDateFormat; +import java.util.*; +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; @@ -85,7 +85,23 @@ public class ProductPurchaseOrderServiceImpl implements ProductPurchaseOrderServ }; Page page = productPurchaseOrderRepository.findAll(specification, pageable); - return PageUtil.toPage(page.map(productPurchaseOrderMapper::toDto)); + + Page productPurchaseOrderDTOPage = page.map(productPurchaseOrderMapper::toDto); + if(null != productPurchaseOrderDTOPage){ + List productPurchaseOrderDTOList = productPurchaseOrderDTOPage.getContent(); + if(!CollectionUtils.isEmpty(productPurchaseOrderDTOList)){ + for(ProductPurchaseOrderDTO productPurchaseOrderDTO : productPurchaseOrderDTOList){ + String auditStatusName = AuditStatus.getName(productPurchaseOrderDTO.getAuditStatus()); + productPurchaseOrderDTO.setAuditStatusName(auditStatusName); + + Timestamp createTime = productPurchaseOrderDTO.getCreateTime(); + productPurchaseOrderDTO.setCreateTimeStr(new SimpleDateFormat("yyyy-MM-dd").format(createTime)); + } + } + } + + Map map = PageUtil.toPage(productPurchaseOrderDTOPage); + return map; } @Override @@ -178,12 +194,61 @@ public class ProductPurchaseOrderServiceImpl implements ProductPurchaseOrderServ @Override @Transactional(rollbackFor = Exception.class) - public void update(ProductPurchaseOrder resources) { - Optional optionalProductPurchaseOrder = productPurchaseOrderRepository.findById(resources.getId()); - ValidationUtil.isNull( optionalProductPurchaseOrder,"ProductPurchaseOrder","id",resources.getId()); - ProductPurchaseOrder productPurchaseOrder = optionalProductPurchaseOrder.get(); - productPurchaseOrder.copy(resources); - productPurchaseOrderRepository.save(productPurchaseOrder); + public void update(UpdateProductPurchaseOrderRequest updateProductPurchaseOrderRequest) { + Long productPurchaseOrderId = updateProductPurchaseOrderRequest.getId(); + Optional productPurchaseOrderOptional = productPurchaseOrderRepository.findById(productPurchaseOrderId); + ProductPurchaseOrder productPurchaseOrder = productPurchaseOrderOptional.get(); + + // 修改产品信息之前,查询该采购中原来的产品信息 + List productPurchaseOrderProductListBeforeUpdate = productPurchaseOrderProductRepository.queryByProductPurchaseOrderIdAndStatusTrue(productPurchaseOrder.getId()); + // 将修改前产品采购单中的产品放到map中,key为产品code + Map productPurchaseOrderProductMapBefore = productPurchaseOrderProductListBeforeUpdate.stream().collect(Collectors.toMap(ProductPurchaseOrderProduct::getProductCode, Function.identity())); + + List productPurchaseOrderProductRequestList = updateProductPurchaseOrderRequest.getProductPurchaseOrderProductList(); + if(CollectionUtils.isEmpty(productPurchaseOrderProductRequestList)){ + throw new BadRequestException("产品采购单产品不能为空!"); + } + + Map productPurchaseOrderProductMapAfter = productPurchaseOrderProductRequestList.stream().collect(Collectors.toMap(ProductPurchaseOrderProductDTO::getProductCode, Function.identity())); + + //需要将订单中原来订单对应的产品删除了的数据 + List deleteTargetList = new ArrayList<>(); + //比较量个map中,key不一样的数据 + for(Map.Entry entry:productPurchaseOrderProductMapBefore.entrySet()){ + String consumablesCode = entry.getKey(); + //修改后的map记录对应的key在原来中是否存在 + ProductPurchaseOrderProductDTO productPurchaseOrderProductDTOTemp = productPurchaseOrderProductMapAfter.get(consumablesCode); + if(null == productPurchaseOrderProductDTOTemp){ + deleteTargetList.add(entry.getKey()); + } + + } + + + List productPurchaseOrderProductList = new ArrayList<>(); + for(ProductPurchaseOrderProductDTO productPurchaseOrderProductDTO : productPurchaseOrderProductRequestList){ + ProductPurchaseOrderProduct productPurchaseOrderProduct = new ProductPurchaseOrderProduct(); + BeanUtils.copyProperties(productPurchaseOrderProductDTO, productPurchaseOrderProduct); + productPurchaseOrderProduct.setProductPurchaseOrderId(productPurchaseOrder.getId()); + productPurchaseOrderProduct.setStatus(true); + + if(!(!CollectionUtils.isEmpty(deleteTargetList) && deleteTargetList.contains(productPurchaseOrderProductDTO.getId()))){ + productPurchaseOrderProductList.add(productPurchaseOrderProduct); + } + } + productPurchaseOrderProductRepository.saveAll(productPurchaseOrderProductList); + + /** + * 场景描述: + * 1.刚开始新增了 a b c三种产品 + * 2.修改的时候删除了 a c两种产品 + * 3.所以需要查修改前数据库中有的产品,再比较修改传过来的产品数据,如果修改后的在原来里面没有,需要将原来里面对应的删除 + */ + if(!CollectionUtils.isEmpty(deleteTargetList)){ + for(String prductCode : deleteTargetList){ + productPurchaseOrderProductRepository.deleteByProductCodeAndProductPurchaseOrderId(prductCode, productPurchaseOrder.getId()); + } + } } @Override @@ -203,6 +268,7 @@ public class ProductPurchaseOrderServiceImpl implements ProductPurchaseOrderServ Long auditUserId = auditProductPurchaseOrderRequest.getAuditUserId(); String auditUserName = auditProductPurchaseOrderRequest.getAuditUserName(); String auditOpinion = auditProductPurchaseOrderRequest.getAuditOpinion(); + String auditStatus = auditProductPurchaseOrderRequest.getAuditStatus(); Optional optionalProductPurchaseOrder = productPurchaseOrderRepository.findById(id); @@ -213,6 +279,7 @@ public class ProductPurchaseOrderServiceImpl implements ProductPurchaseOrderServ productPurchaseOrder.setAuditOpinion(auditOpinion); Date auditDate = new Date(); productPurchaseOrder.setAuditTime(auditDate); + productPurchaseOrder.setAuditStatus(auditStatus); productPurchaseOrderRepository.save(productPurchaseOrder); diff --git a/eladmin-system/src/main/resources/config/application.yml b/eladmin-system/src/main/resources/config/application.yml index a52de8aa..33e004d7 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: prod + active: dev jackson: time-zone: GMT+8 data: