From e46ca830bf0c632e5c09a087608ee3f85479b981 Mon Sep 17 00:00:00 2001 From: starrysky <838252223@qq.com> Date: Tue, 12 Nov 2019 14:55:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=B4=A8=E9=87=8F=E6=A3=80?= =?UTF-8?q?=E9=AA=8C=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/QualityCheckSheet.java | 6 +- .../domain/QualityCheckSheetProduct.java | 6 +- .../QualityCheckSheetProductRepository.java | 17 +++++ .../QualityCheckSheetRepository.java | 10 +++ .../CreateQualityCheckSheetRequest.java | 32 +++++++++ .../QualityCheckSheetProductRequest.java | 42 +++++++++++ .../rest/QualityCheckSheetController.java | 42 +++++++---- .../QualityCheckSheetProductController.java | 61 ---------------- .../service/QualityCheckSheetService.java | 5 +- .../service/dto/QualityCheckSheetDTO.java | 8 ++- .../dto/QualityCheckSheetProductDTO.java | 2 +- .../impl/QualityCheckSheetServiceImpl.java | 70 ++++++++++++++++++- 12 files changed, 218 insertions(+), 83 deletions(-) create mode 100644 eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/request/CreateQualityCheckSheetRequest.java create mode 100644 eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/request/QualityCheckSheetProductRequest.java delete mode 100644 eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/rest/QualityCheckSheetProductController.java diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/domain/QualityCheckSheet.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/domain/QualityCheckSheet.java index 095d3626..dcead3fb 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/domain/QualityCheckSheet.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/domain/QualityCheckSheet.java @@ -3,6 +3,8 @@ package me.zhengjie.modules.wms.qualityCheckSheet.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,13 +25,15 @@ public class QualityCheckSheet implements Serializable { private Long id; @Column(name = "create_time") + @CreationTimestamp private Timestamp createTime; @Column(name = "update_time") + @CreationTimestamp private Timestamp updateTime; @Column(name = "status") - private Integer status; + private Boolean status; // 制单人 @Column(name = "make_people_id") diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/domain/QualityCheckSheetProduct.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/domain/QualityCheckSheetProduct.java index 7cfb63c2..e58cb9bd 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/domain/QualityCheckSheetProduct.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/domain/QualityCheckSheetProduct.java @@ -3,6 +3,8 @@ package me.zhengjie.modules.wms.qualityCheckSheet.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,13 +25,15 @@ public class QualityCheckSheetProduct implements Serializable { private Long id; @Column(name = "create_time") + @CreationTimestamp private Timestamp createTime; @Column(name = "update_time") + @CreationTimestamp private Timestamp updateTime; @Column(name = "status") - private Integer status; + private Boolean status; // 所属质量检验单 @Column(name = "quality_check_sheet_id") diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/repository/QualityCheckSheetProductRepository.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/repository/QualityCheckSheetProductRepository.java index e220b084..aff0e39e 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/repository/QualityCheckSheetProductRepository.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/repository/QualityCheckSheetProductRepository.java @@ -1,12 +1,29 @@ package me.zhengjie.modules.wms.qualityCheckSheet.repository; +import me.zhengjie.modules.wms.outSourceProductSheet.domain.OutSourceProcessSheetProduct; import me.zhengjie.modules.wms.qualityCheckSheet.domain.QualityCheckSheetProduct; 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; /** * @author huangxingxing * @date 2019-11-12 */ public interface QualityCheckSheetProductRepository extends JpaRepository, JpaSpecificationExecutor { + + /** + * 查询指定质量检验单下所有的产品信息(状态为true) + * @param qualityCheckSheetId + * @return + */ + @Query(value ="select * from quality_check_sheet_product where quality_check_sheet_id = ?1 and status =1", nativeQuery = true) + List queryByQualityCheckSheetIdAndStatusTrue(Long qualityCheckSheetId); + + @Modifying + @Query(value = "delete from quality_check_sheet_product where product_code = ?1 and quality_check_sheet_id = ?2", nativeQuery = true) + void deleteByProductCodeAndQualityCheckSheetId(String productCode, Long qualityCheckSheetId); } \ No newline at end of file diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/repository/QualityCheckSheetRepository.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/repository/QualityCheckSheetRepository.java index dea2aea2..a2390362 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/repository/QualityCheckSheetRepository.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/repository/QualityCheckSheetRepository.java @@ -1,12 +1,22 @@ package me.zhengjie.modules.wms.qualityCheckSheet.repository; +import me.zhengjie.modules.wms.outSourceProductSheet.domain.OutSourceProcessSheet; import me.zhengjie.modules.wms.qualityCheckSheet.domain.QualityCheckSheet; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; +import org.springframework.data.jpa.repository.Query; /** * @author huangxingxing * @date 2019-11-12 */ public interface QualityCheckSheetRepository extends JpaRepository, JpaSpecificationExecutor { + + /** + * 根据质量检验单单据编号查看质量检验单信息 + * @param qualityCheekSheetCode + * @return + */ + @Query(value ="select * from quality_check_sheet where quality_cheek_sheet_code = ?1 and status = 1", nativeQuery = true) + QualityCheckSheet findByQualityCheekSheetCode(String qualityCheekSheetCode); } \ No newline at end of file diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/request/CreateQualityCheckSheetRequest.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/request/CreateQualityCheckSheetRequest.java new file mode 100644 index 00000000..cc5f2054 --- /dev/null +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/request/CreateQualityCheckSheetRequest.java @@ -0,0 +1,32 @@ +package me.zhengjie.modules.wms.qualityCheckSheet.request; + +import lombok.Data; + +import javax.persistence.Column; +import java.io.Serializable; +import java.util.List; + +/** + * @author 黄星星 + * @date 2019-11-12 + */ +@Data +public class CreateQualityCheckSheetRequest implements Serializable { + // 制单人 + @Column(name = "make_people_id") + private Long makePeopleId; + + // 制单人姓名 + @Column(name = "make_people_name") + private String makePeopleName; + + // 质量检验单单据编号 + @Column(name = "quality_cheek_sheet_code") + private String qualityCheekSheetCode; + + @Column(name = "remark") + private String remark; + + // 委外加工产品 + private List qualityCheckSheetProductList; +} diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/request/QualityCheckSheetProductRequest.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/request/QualityCheckSheetProductRequest.java new file mode 100644 index 00000000..094eb005 --- /dev/null +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/request/QualityCheckSheetProductRequest.java @@ -0,0 +1,42 @@ +package me.zhengjie.modules.wms.qualityCheckSheet.request; + +import lombok.Data; + +import javax.persistence.Column; +import java.io.Serializable; + +/** + * @author 黄星星 + * @date 2019-11-12 + */ +@Data +public class QualityCheckSheetProductRequest implements Serializable { + + // 所属质量检验单 + @Column(name = "quality_check_sheet_id") + private Long qualityCheckSheetId; + + @Column(name = "product_code") + private String productCode; + + @Column(name = "product_id") + private Long productId; + + @Column(name = "product_name") + private String productName; + + @Column(name = "remark") + private String remark; + + // 产品个数 + @Column(name = "product_number") + private Integer productNumber; + + // 合格个数 + @Column(name = "qualified_number") + private Integer qualifiedNumber; + + // 报废数量 + @Column(name = "scrap_number") + private Integer scrapNumber; +} diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/rest/QualityCheckSheetController.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/rest/QualityCheckSheetController.java index 52695a38..7601e91d 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/rest/QualityCheckSheetController.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/rest/QualityCheckSheetController.java @@ -2,6 +2,7 @@ package me.zhengjie.modules.wms.qualityCheckSheet.rest; import me.zhengjie.aop.log.Log; import me.zhengjie.modules.wms.qualityCheckSheet.domain.QualityCheckSheet; +import me.zhengjie.modules.wms.qualityCheckSheet.request.CreateQualityCheckSheetRequest; import me.zhengjie.modules.wms.qualityCheckSheet.service.QualityCheckSheetService; import me.zhengjie.modules.wms.qualityCheckSheet.service.dto.QualityCheckSheetQueryCriteria; 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 huangxingxing * @date 2019-11-12 */ -@Api(tags = "QualityCheckSheet管理") +@Api(tags = "质量检验单管理") @RestController @RequestMapping("api") public class QualityCheckSheetController { @@ -25,37 +29,47 @@ public class QualityCheckSheetController { @Autowired private QualityCheckSheetService qualityCheckSheetService; - @Log("查询QualityCheckSheet") + @Log("分页查询质量管理检验单") @ApiOperation(value = "查询QualityCheckSheet") @GetMapping(value = "/qualityCheckSheet") - @PreAuthorize("hasAnyRole('ADMIN','QUALITYCHECKSHEET_ALL','QUALITYCHECKSHEET_SELECT')") +// @PreAuthorize("hasAnyRole('ADMIN','QUALITYCHECKSHEET_ALL','QUALITYCHECKSHEET_SELECT')") public ResponseEntity getQualityCheckSheets(QualityCheckSheetQueryCriteria criteria, Pageable pageable){ return new ResponseEntity(qualityCheckSheetService.queryAll(criteria,pageable),HttpStatus.OK); } - @Log("新增QualityCheckSheet") - @ApiOperation(value = "新增QualityCheckSheet") + @Log("新增质量检验单") + @ApiOperation(value = "新增质量检验单") @PostMapping(value = "/qualityCheckSheet") - @PreAuthorize("hasAnyRole('ADMIN','QUALITYCHECKSHEET_ALL','QUALITYCHECKSHEET_CREATE')") - public ResponseEntity create(@Validated @RequestBody QualityCheckSheet resources){ - return new ResponseEntity(qualityCheckSheetService.create(resources),HttpStatus.CREATED); +// @PreAuthorize("hasAnyRole('ADMIN','QUALITYCHECKSHEET_ALL','QUALITYCHECKSHEET_CREATE')") + public ResponseEntity create(@Validated @RequestBody CreateQualityCheckSheetRequest createQualityCheckSheetRequest){ + return new ResponseEntity(qualityCheckSheetService.create(createQualityCheckSheetRequest),HttpStatus.CREATED); } - @Log("修改QualityCheckSheet") - @ApiOperation(value = "修改QualityCheckSheet") + @Log("修改质量检验单") + @ApiOperation(value = "修改质量检验单") @PutMapping(value = "/qualityCheckSheet") - @PreAuthorize("hasAnyRole('ADMIN','QUALITYCHECKSHEET_ALL','QUALITYCHECKSHEET_EDIT')") +// @PreAuthorize("hasAnyRole('ADMIN','QUALITYCHECKSHEET_ALL','QUALITYCHECKSHEET_EDIT')") public ResponseEntity update(@Validated @RequestBody QualityCheckSheet resources){ qualityCheckSheetService.update(resources); return new ResponseEntity(HttpStatus.NO_CONTENT); } - @Log("删除QualityCheckSheet") - @ApiOperation(value = "删除QualityCheckSheet") + @Log("删除质量检验单") + @ApiOperation(value = "删除质量检验单") @DeleteMapping(value = "/qualityCheckSheet/{id}") - @PreAuthorize("hasAnyRole('ADMIN','QUALITYCHECKSHEET_ALL','QUALITYCHECKSHEET_DELETE')") +// @PreAuthorize("hasAnyRole('ADMIN','QUALITYCHECKSHEET_ALL','QUALITYCHECKSHEET_DELETE')") public ResponseEntity delete(@PathVariable Long id){ qualityCheckSheetService.delete(id); return new ResponseEntity(HttpStatus.OK); } + + + @Log("初始化质量检验单单据编号") + @ApiOperation(value = "初始化质量检验单单据编号") + @GetMapping(value = "/initQualityCheckSheetCode") + public ResponseEntity initQualityCheckSheetCode(){ + DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS");//设置日期格式 + String supplierCode = "QCS"+ 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/qualityCheckSheet/rest/QualityCheckSheetProductController.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/rest/QualityCheckSheetProductController.java deleted file mode 100644 index 85ec83bf..00000000 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/rest/QualityCheckSheetProductController.java +++ /dev/null @@ -1,61 +0,0 @@ -package me.zhengjie.modules.wms.qualityCheckSheet.rest; - -import me.zhengjie.aop.log.Log; -import me.zhengjie.modules.wms.qualityCheckSheet.domain.QualityCheckSheetProduct; -import me.zhengjie.modules.wms.qualityCheckSheet.service.QualityCheckSheetProductService; -import me.zhengjie.modules.wms.qualityCheckSheet.service.dto.QualityCheckSheetProductQueryCriteria; -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 huangxingxing -* @date 2019-11-12 -*/ -@Api(tags = "QualityCheckSheetProduct管理") -@RestController -@RequestMapping("api") -public class QualityCheckSheetProductController { - - @Autowired - private QualityCheckSheetProductService qualityCheckSheetProductService; - - @Log("查询QualityCheckSheetProduct") - @ApiOperation(value = "查询QualityCheckSheetProduct") - @GetMapping(value = "/qualityCheckSheetProduct") - @PreAuthorize("hasAnyRole('ADMIN','QUALITYCHECKSHEETPRODUCT_ALL','QUALITYCHECKSHEETPRODUCT_SELECT')") - public ResponseEntity getQualityCheckSheetProducts(QualityCheckSheetProductQueryCriteria criteria, Pageable pageable){ - return new ResponseEntity(qualityCheckSheetProductService.queryAll(criteria,pageable),HttpStatus.OK); - } - - @Log("新增QualityCheckSheetProduct") - @ApiOperation(value = "新增QualityCheckSheetProduct") - @PostMapping(value = "/qualityCheckSheetProduct") - @PreAuthorize("hasAnyRole('ADMIN','QUALITYCHECKSHEETPRODUCT_ALL','QUALITYCHECKSHEETPRODUCT_CREATE')") - public ResponseEntity create(@Validated @RequestBody QualityCheckSheetProduct resources){ - return new ResponseEntity(qualityCheckSheetProductService.create(resources),HttpStatus.CREATED); - } - - @Log("修改QualityCheckSheetProduct") - @ApiOperation(value = "修改QualityCheckSheetProduct") - @PutMapping(value = "/qualityCheckSheetProduct") - @PreAuthorize("hasAnyRole('ADMIN','QUALITYCHECKSHEETPRODUCT_ALL','QUALITYCHECKSHEETPRODUCT_EDIT')") - public ResponseEntity update(@Validated @RequestBody QualityCheckSheetProduct resources){ - qualityCheckSheetProductService.update(resources); - return new ResponseEntity(HttpStatus.NO_CONTENT); - } - - @Log("删除QualityCheckSheetProduct") - @ApiOperation(value = "删除QualityCheckSheetProduct") - @DeleteMapping(value = "/qualityCheckSheetProduct/{id}") - @PreAuthorize("hasAnyRole('ADMIN','QUALITYCHECKSHEETPRODUCT_ALL','QUALITYCHECKSHEETPRODUCT_DELETE')") - public ResponseEntity delete(@PathVariable Long id){ - qualityCheckSheetProductService.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/qualityCheckSheet/service/QualityCheckSheetService.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/service/QualityCheckSheetService.java index 376f2348..4af0bb1b 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/service/QualityCheckSheetService.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/service/QualityCheckSheetService.java @@ -1,6 +1,7 @@ package me.zhengjie.modules.wms.qualityCheckSheet.service; import me.zhengjie.modules.wms.qualityCheckSheet.domain.QualityCheckSheet; +import me.zhengjie.modules.wms.qualityCheckSheet.request.CreateQualityCheckSheetRequest; import me.zhengjie.modules.wms.qualityCheckSheet.service.dto.QualityCheckSheetDTO; import me.zhengjie.modules.wms.qualityCheckSheet.service.dto.QualityCheckSheetQueryCriteria; //import org.springframework.cache.annotation.CacheConfig; @@ -42,11 +43,11 @@ public interface QualityCheckSheetService { /** * create - * @param resources + * @param createQualityCheckSheetRequest * @return */ //@CacheEvict(allEntries = true) - QualityCheckSheetDTO create(QualityCheckSheet resources); + QualityCheckSheetDTO create(CreateQualityCheckSheetRequest createQualityCheckSheetRequest); /** * update diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/service/dto/QualityCheckSheetDTO.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/service/dto/QualityCheckSheetDTO.java index d54b7efd..ca465bdc 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/service/dto/QualityCheckSheetDTO.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/service/dto/QualityCheckSheetDTO.java @@ -1,8 +1,11 @@ package me.zhengjie.modules.wms.qualityCheckSheet.service.dto; import lombok.Data; +import me.zhengjie.modules.wms.outSourceProductSheet.service.dto.OutSourceProcessSheetProductDTO; + import java.sql.Timestamp; import java.io.Serializable; +import java.util.List; /** @@ -19,7 +22,7 @@ public class QualityCheckSheetDTO implements Serializable { private Timestamp updateTime; - private Integer status; + private Boolean status; // 制单人 private Long makePeopleId; @@ -31,4 +34,7 @@ public class QualityCheckSheetDTO implements Serializable { private String qualityCheekSheetCode; private String remark; + + // 委外加工单产品信息 + private List qualityCheckSheetProductList; } \ No newline at end of file diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/service/dto/QualityCheckSheetProductDTO.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/service/dto/QualityCheckSheetProductDTO.java index a081007e..b01802a9 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/service/dto/QualityCheckSheetProductDTO.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/service/dto/QualityCheckSheetProductDTO.java @@ -19,7 +19,7 @@ public class QualityCheckSheetProductDTO implements Serializable { private Timestamp updateTime; - private Integer status; + private Boolean status; // 所属质量检验单 private Long qualityCheckSheetId; diff --git a/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/service/impl/QualityCheckSheetServiceImpl.java b/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/service/impl/QualityCheckSheetServiceImpl.java index 093494ea..5f6bc436 100644 --- a/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/service/impl/QualityCheckSheetServiceImpl.java +++ b/eladmin-system/src/main/java/me/zhengjie/modules/wms/qualityCheckSheet/service/impl/QualityCheckSheetServiceImpl.java @@ -1,21 +1,39 @@ package me.zhengjie.modules.wms.qualityCheckSheet.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.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.qualityCheckSheet.domain.QualityCheckSheet; +import me.zhengjie.modules.wms.qualityCheckSheet.domain.QualityCheckSheetProduct; +import me.zhengjie.modules.wms.qualityCheckSheet.repository.QualityCheckSheetProductRepository; +import me.zhengjie.modules.wms.qualityCheckSheet.request.CreateQualityCheckSheetRequest; +import me.zhengjie.modules.wms.qualityCheckSheet.request.QualityCheckSheetProductRequest; +import me.zhengjie.modules.wms.qualityCheckSheet.service.dto.QualityCheckSheetProductDTO; +import me.zhengjie.modules.wms.qualityCheckSheet.service.mapper.QualityCheckSheetProductMapper; import me.zhengjie.utils.ValidationUtil; import me.zhengjie.modules.wms.qualityCheckSheet.repository.QualityCheckSheetRepository; import me.zhengjie.modules.wms.qualityCheckSheet.service.QualityCheckSheetService; import me.zhengjie.modules.wms.qualityCheckSheet.service.dto.QualityCheckSheetDTO; import me.zhengjie.modules.wms.qualityCheckSheet.service.dto.QualityCheckSheetQueryCriteria; import me.zhengjie.modules.wms.qualityCheckSheet.service.mapper.QualityCheckSheetMapper; +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; +import org.springframework.util.StringUtils; /** * @author huangxingxing @@ -31,6 +49,12 @@ public class QualityCheckSheetServiceImpl implements QualityCheckSheetService { @Autowired private QualityCheckSheetMapper qualityCheckSheetMapper; + @Autowired + private QualityCheckSheetProductRepository qualityCheckSheetProductRepository; + + @Autowired + private QualityCheckSheetProductMapper qualityCheckSheetProductMapper; + @Override public Object queryAll(QualityCheckSheetQueryCriteria criteria, Pageable pageable){ Page page = qualityCheckSheetRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable); @@ -51,8 +75,50 @@ public class QualityCheckSheetServiceImpl implements QualityCheckSheetService { @Override @Transactional(rollbackFor = Exception.class) - public QualityCheckSheetDTO create(QualityCheckSheet resources) { - return qualityCheckSheetMapper.toDto(qualityCheckSheetRepository.save(resources)); + public QualityCheckSheetDTO create(CreateQualityCheckSheetRequest createQualityCheckSheetRequest) { + QualityCheckSheet qualityCheckSheet = new QualityCheckSheet(); + BeanUtils.copyProperties(createQualityCheckSheetRequest, qualityCheckSheet); + + String qualityCheekSheetCode = createQualityCheckSheetRequest.getQualityCheekSheetCode(); + if(!StringUtils.hasLength(qualityCheekSheetCode)){ + throw new BadRequestException("质量检验单单据编号不能为空!"); + } + + qualityCheckSheet.setStatus(true); + // 新增质量检验单 + qualityCheckSheetRepository.save(qualityCheckSheet); + + qualityCheckSheet = qualityCheckSheetRepository.findByQualityCheekSheetCode(qualityCheekSheetCode); + + // 新增质量检验单产品信息 + List qualityCheckSheetProductRequestList = createQualityCheckSheetRequest.getQualityCheckSheetProductList(); + if(CollectionUtils.isEmpty(qualityCheckSheetProductRequestList)){ + throw new BadRequestException("质量检验单产品信息不能为空!"); + } + + for(QualityCheckSheetProductRequest qualityCheckSheetProductRequest : qualityCheckSheetProductRequestList){ + QualityCheckSheetProduct qualityCheckSheetProduct = new QualityCheckSheetProduct(); + BeanUtils.copyProperties(qualityCheckSheetProductRequest, qualityCheckSheetProduct); + qualityCheckSheetProduct.setStatus(true); + qualityCheckSheetProduct.setQualityCheckSheetId(qualityCheckSheet.getId()); + qualityCheckSheetProductRepository.save(qualityCheckSheetProduct); + } + + + QualityCheckSheetDTO qualityCheckSheetDTO = qualityCheckSheetMapper.toDto(qualityCheckSheet); + + List qualityCheckSheetProductList = qualityCheckSheetProductRepository.queryByQualityCheckSheetIdAndStatusTrue(qualityCheckSheet.getId()); + if(!CollectionUtils.isEmpty(qualityCheckSheetProductList)){ + List qualityCheckSheetProductDTOList = new ArrayList<>(); + for(QualityCheckSheetProduct qualityCheckSheetProduct : qualityCheckSheetProductList){ + QualityCheckSheetProductDTO qualityCheckSheetProductDTO = new QualityCheckSheetProductDTO(); + BeanUtils.copyProperties(qualityCheckSheetProduct, qualityCheckSheetProductDTO); + qualityCheckSheetProductDTOList.add(qualityCheckSheetProductDTO); + } + qualityCheckSheetDTO.setQualityCheckSheetProductList(qualityCheckSheetProductDTOList); + } + + return qualityCheckSheetDTO; } @Override