质量管理代码生成管理器

pull/451/head
starrysky 2019-11-12 14:17:37 +08:00
parent 43c144aeec
commit 884e1289e5
16 changed files with 672 additions and 0 deletions

View File

@ -0,0 +1,52 @@
package me.zhengjie.modules.wms.qualityCheckSheet.domain;
import lombok.Data;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import javax.persistence.*;
import java.sql.Timestamp;
import java.io.Serializable;
/**
* @author huangxingxing
* @date 2019-11-12
*/
@Entity
@Data
@Table(name="quality_check_sheet")
public class QualityCheckSheet implements Serializable {
// 主键
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
@Column(name = "create_time")
private Timestamp createTime;
@Column(name = "update_time")
private Timestamp updateTime;
@Column(name = "status")
private Integer status;
// 制单人
@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;
public void copy(QualityCheckSheet source){
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
}
}

View File

@ -0,0 +1,65 @@
package me.zhengjie.modules.wms.qualityCheckSheet.domain;
import lombok.Data;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import javax.persistence.*;
import java.sql.Timestamp;
import java.io.Serializable;
/**
* @author huangxingxing
* @date 2019-11-12
*/
@Entity
@Data
@Table(name="quality_check_sheet_product")
public class QualityCheckSheetProduct implements Serializable {
// 主键
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
@Column(name = "create_time")
private Timestamp createTime;
@Column(name = "update_time")
private Timestamp updateTime;
@Column(name = "status")
private Integer status;
// 所属质量检验单
@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;
public void copy(QualityCheckSheetProduct source){
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
}
}

View File

@ -0,0 +1,12 @@
package me.zhengjie.modules.wms.qualityCheckSheet.repository;
import me.zhengjie.modules.wms.qualityCheckSheet.domain.QualityCheckSheetProduct;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
* @author huangxingxing
* @date 2019-11-12
*/
public interface QualityCheckSheetProductRepository extends JpaRepository<QualityCheckSheetProduct, Long>, JpaSpecificationExecutor {
}

View File

@ -0,0 +1,12 @@
package me.zhengjie.modules.wms.qualityCheckSheet.repository;
import me.zhengjie.modules.wms.qualityCheckSheet.domain.QualityCheckSheet;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
* @author huangxingxing
* @date 2019-11-12
*/
public interface QualityCheckSheetRepository extends JpaRepository<QualityCheckSheet, Long>, JpaSpecificationExecutor {
}

View File

@ -0,0 +1,61 @@
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.service.QualityCheckSheetService;
import me.zhengjie.modules.wms.qualityCheckSheet.service.dto.QualityCheckSheetQueryCriteria;
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 = "QualityCheckSheet管理")
@RestController
@RequestMapping("api")
public class QualityCheckSheetController {
@Autowired
private QualityCheckSheetService qualityCheckSheetService;
@Log("查询QualityCheckSheet")
@ApiOperation(value = "查询QualityCheckSheet")
@GetMapping(value = "/qualityCheckSheet")
@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")
@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);
}
@Log("修改QualityCheckSheet")
@ApiOperation(value = "修改QualityCheckSheet")
@PutMapping(value = "/qualityCheckSheet")
@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")
@DeleteMapping(value = "/qualityCheckSheet/{id}")
@PreAuthorize("hasAnyRole('ADMIN','QUALITYCHECKSHEET_ALL','QUALITYCHECKSHEET_DELETE')")
public ResponseEntity delete(@PathVariable Long id){
qualityCheckSheetService.delete(id);
return new ResponseEntity(HttpStatus.OK);
}
}

View File

@ -0,0 +1,61 @@
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);
}
}

View File

@ -0,0 +1,64 @@
package me.zhengjie.modules.wms.qualityCheckSheet.service;
import me.zhengjie.modules.wms.qualityCheckSheet.domain.QualityCheckSheetProduct;
import me.zhengjie.modules.wms.qualityCheckSheet.service.dto.QualityCheckSheetProductDTO;
import me.zhengjie.modules.wms.qualityCheckSheet.service.dto.QualityCheckSheetProductQueryCriteria;
//import org.springframework.cache.annotation.CacheConfig;
//import org.springframework.cache.annotation.CacheEvict;
//import org.springframework.cache.annotation.Cacheable;
import org.springframework.data.domain.Pageable;
/**
* @author huangxingxing
* @date 2019-11-12
*/
//@CacheConfig(cacheNames = "qualityCheckSheetProduct")
public interface QualityCheckSheetProductService {
/**
* queryAll
* @param criteria
* @param pageable
* @return
*/
//@Cacheable(keyGenerator = "keyGenerator")
Object queryAll(QualityCheckSheetProductQueryCriteria criteria, Pageable pageable);
/**
* queryAll
* @param criteria
* @return
*/
//@Cacheable(keyGenerator = "keyGenerator")
public Object queryAll(QualityCheckSheetProductQueryCriteria criteria);
/**
* findById
* @param id
* @return
*/
//@Cacheable(key = "#p0")
QualityCheckSheetProductDTO findById(Long id);
/**
* create
* @param resources
* @return
*/
//@CacheEvict(allEntries = true)
QualityCheckSheetProductDTO create(QualityCheckSheetProduct resources);
/**
* update
* @param resources
*/
//@CacheEvict(allEntries = true)
void update(QualityCheckSheetProduct resources);
/**
* delete
* @param id
*/
//@CacheEvict(allEntries = true)
void delete(Long id);
}

View File

@ -0,0 +1,64 @@
package me.zhengjie.modules.wms.qualityCheckSheet.service;
import me.zhengjie.modules.wms.qualityCheckSheet.domain.QualityCheckSheet;
import me.zhengjie.modules.wms.qualityCheckSheet.service.dto.QualityCheckSheetDTO;
import me.zhengjie.modules.wms.qualityCheckSheet.service.dto.QualityCheckSheetQueryCriteria;
//import org.springframework.cache.annotation.CacheConfig;
//import org.springframework.cache.annotation.CacheEvict;
//import org.springframework.cache.annotation.Cacheable;
import org.springframework.data.domain.Pageable;
/**
* @author huangxingxing
* @date 2019-11-12
*/
//@CacheConfig(cacheNames = "qualityCheckSheet")
public interface QualityCheckSheetService {
/**
* queryAll
* @param criteria
* @param pageable
* @return
*/
//@Cacheable(keyGenerator = "keyGenerator")
Object queryAll(QualityCheckSheetQueryCriteria criteria, Pageable pageable);
/**
* queryAll
* @param criteria
* @return
*/
//@Cacheable(keyGenerator = "keyGenerator")
public Object queryAll(QualityCheckSheetQueryCriteria criteria);
/**
* findById
* @param id
* @return
*/
//@Cacheable(key = "#p0")
QualityCheckSheetDTO findById(Long id);
/**
* create
* @param resources
* @return
*/
//@CacheEvict(allEntries = true)
QualityCheckSheetDTO create(QualityCheckSheet resources);
/**
* update
* @param resources
*/
//@CacheEvict(allEntries = true)
void update(QualityCheckSheet resources);
/**
* delete
* @param id
*/
//@CacheEvict(allEntries = true)
void delete(Long id);
}

View File

@ -0,0 +1,34 @@
package me.zhengjie.modules.wms.qualityCheckSheet.service.dto;
import lombok.Data;
import java.sql.Timestamp;
import java.io.Serializable;
/**
* @author huangxingxing
* @date 2019-11-12
*/
@Data
public class QualityCheckSheetDTO implements Serializable {
// 主键
private Long id;
private Timestamp createTime;
private Timestamp updateTime;
private Integer status;
// 制单人
private Long makePeopleId;
// 制单人姓名
private String makePeopleName;
// 质量检验单单据编号
private String qualityCheekSheetCode;
private String remark;
}

View File

@ -0,0 +1,43 @@
package me.zhengjie.modules.wms.qualityCheckSheet.service.dto;
import lombok.Data;
import java.sql.Timestamp;
import java.io.Serializable;
/**
* @author huangxingxing
* @date 2019-11-12
*/
@Data
public class QualityCheckSheetProductDTO implements Serializable {
// 主键
private Long id;
private Timestamp createTime;
private Timestamp updateTime;
private Integer status;
// 所属质量检验单
private Long qualityCheckSheetId;
private String productCode;
private Long productId;
private String productName;
private String remark;
// 产品个数
private Integer productNumber;
// 合格个数
private Integer qualifiedNumber;
// 报废数量
private Integer scrapNumber;
}

View File

@ -0,0 +1,13 @@
package me.zhengjie.modules.wms.qualityCheckSheet.service.dto;
import lombok.Data;
import java.sql.Timestamp;
import me.zhengjie.annotation.Query;
/**
* @author huangxingxing
* @date 2019-11-12
*/
@Data
public class QualityCheckSheetProductQueryCriteria{
}

View File

@ -0,0 +1,13 @@
package me.zhengjie.modules.wms.qualityCheckSheet.service.dto;
import lombok.Data;
import java.sql.Timestamp;
import me.zhengjie.annotation.Query;
/**
* @author huangxingxing
* @date 2019-11-12
*/
@Data
public class QualityCheckSheetQueryCriteria{
}

View File

@ -0,0 +1,73 @@
package me.zhengjie.modules.wms.qualityCheckSheet.service.impl;
import me.zhengjie.modules.wms.qualityCheckSheet.domain.QualityCheckSheetProduct;
import me.zhengjie.utils.ValidationUtil;
import me.zhengjie.modules.wms.qualityCheckSheet.repository.QualityCheckSheetProductRepository;
import me.zhengjie.modules.wms.qualityCheckSheet.service.QualityCheckSheetProductService;
import me.zhengjie.modules.wms.qualityCheckSheet.service.dto.QualityCheckSheetProductDTO;
import me.zhengjie.modules.wms.qualityCheckSheet.service.dto.QualityCheckSheetProductQueryCriteria;
import me.zhengjie.modules.wms.qualityCheckSheet.service.mapper.QualityCheckSheetProductMapper;
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.Optional;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import me.zhengjie.utils.PageUtil;
import me.zhengjie.utils.QueryHelp;
/**
* @author huangxingxing
* @date 2019-11-12
*/
@Service
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
public class QualityCheckSheetProductServiceImpl implements QualityCheckSheetProductService {
@Autowired
private QualityCheckSheetProductRepository qualityCheckSheetProductRepository;
@Autowired
private QualityCheckSheetProductMapper qualityCheckSheetProductMapper;
@Override
public Object queryAll(QualityCheckSheetProductQueryCriteria criteria, Pageable pageable){
Page<QualityCheckSheetProduct> page = qualityCheckSheetProductRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable);
return PageUtil.toPage(page.map(qualityCheckSheetProductMapper::toDto));
}
@Override
public Object queryAll(QualityCheckSheetProductQueryCriteria criteria){
return qualityCheckSheetProductMapper.toDto(qualityCheckSheetProductRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder)));
}
@Override
public QualityCheckSheetProductDTO findById(Long id) {
Optional<QualityCheckSheetProduct> qualityCheckSheetProduct = qualityCheckSheetProductRepository.findById(id);
ValidationUtil.isNull(qualityCheckSheetProduct,"QualityCheckSheetProduct","id",id);
return qualityCheckSheetProductMapper.toDto(qualityCheckSheetProduct.get());
}
@Override
@Transactional(rollbackFor = Exception.class)
public QualityCheckSheetProductDTO create(QualityCheckSheetProduct resources) {
return qualityCheckSheetProductMapper.toDto(qualityCheckSheetProductRepository.save(resources));
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(QualityCheckSheetProduct resources) {
Optional<QualityCheckSheetProduct> optionalQualityCheckSheetProduct = qualityCheckSheetProductRepository.findById(resources.getId());
ValidationUtil.isNull( optionalQualityCheckSheetProduct,"QualityCheckSheetProduct","id",resources.getId());
QualityCheckSheetProduct qualityCheckSheetProduct = optionalQualityCheckSheetProduct.get();
qualityCheckSheetProduct.copy(resources);
qualityCheckSheetProductRepository.save(qualityCheckSheetProduct);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(Long id) {
qualityCheckSheetProductRepository.deleteById(id);
}
}

View File

@ -0,0 +1,73 @@
package me.zhengjie.modules.wms.qualityCheckSheet.service.impl;
import me.zhengjie.modules.wms.qualityCheckSheet.domain.QualityCheckSheet;
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.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
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;
/**
* @author huangxingxing
* @date 2019-11-12
*/
@Service
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
public class QualityCheckSheetServiceImpl implements QualityCheckSheetService {
@Autowired
private QualityCheckSheetRepository qualityCheckSheetRepository;
@Autowired
private QualityCheckSheetMapper qualityCheckSheetMapper;
@Override
public Object queryAll(QualityCheckSheetQueryCriteria criteria, Pageable pageable){
Page<QualityCheckSheet> page = qualityCheckSheetRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder),pageable);
return PageUtil.toPage(page.map(qualityCheckSheetMapper::toDto));
}
@Override
public Object queryAll(QualityCheckSheetQueryCriteria criteria){
return qualityCheckSheetMapper.toDto(qualityCheckSheetRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root,criteria,criteriaBuilder)));
}
@Override
public QualityCheckSheetDTO findById(Long id) {
Optional<QualityCheckSheet> qualityCheckSheet = qualityCheckSheetRepository.findById(id);
ValidationUtil.isNull(qualityCheckSheet,"QualityCheckSheet","id",id);
return qualityCheckSheetMapper.toDto(qualityCheckSheet.get());
}
@Override
@Transactional(rollbackFor = Exception.class)
public QualityCheckSheetDTO create(QualityCheckSheet resources) {
return qualityCheckSheetMapper.toDto(qualityCheckSheetRepository.save(resources));
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(QualityCheckSheet resources) {
Optional<QualityCheckSheet> optionalQualityCheckSheet = qualityCheckSheetRepository.findById(resources.getId());
ValidationUtil.isNull( optionalQualityCheckSheet,"QualityCheckSheet","id",resources.getId());
QualityCheckSheet qualityCheckSheet = optionalQualityCheckSheet.get();
qualityCheckSheet.copy(resources);
qualityCheckSheetRepository.save(qualityCheckSheet);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(Long id) {
qualityCheckSheetRepository.deleteById(id);
}
}

View File

@ -0,0 +1,16 @@
package me.zhengjie.modules.wms.qualityCheckSheet.service.mapper;
import me.zhengjie.mapper.EntityMapper;
import me.zhengjie.modules.wms.qualityCheckSheet.domain.QualityCheckSheet;
import me.zhengjie.modules.wms.qualityCheckSheet.service.dto.QualityCheckSheetDTO;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
/**
* @author huangxingxing
* @date 2019-11-12
*/
@Mapper(componentModel = "spring",uses = {},unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface QualityCheckSheetMapper extends EntityMapper<QualityCheckSheetDTO, QualityCheckSheet> {
}

View File

@ -0,0 +1,16 @@
package me.zhengjie.modules.wms.qualityCheckSheet.service.mapper;
import me.zhengjie.mapper.EntityMapper;
import me.zhengjie.modules.wms.qualityCheckSheet.domain.QualityCheckSheetProduct;
import me.zhengjie.modules.wms.qualityCheckSheet.service.dto.QualityCheckSheetProductDTO;
import org.mapstruct.Mapper;
import org.mapstruct.ReportingPolicy;
/**
* @author huangxingxing
* @date 2019-11-12
*/
@Mapper(componentModel = "spring",uses = {},unmappedTargetPolicy = ReportingPolicy.IGNORE)
public interface QualityCheckSheetProductMapper extends EntityMapper<QualityCheckSheetProductDTO, QualityCheckSheetProduct> {
}