新增委外加工单

pull/451/head
starrysky 2019-08-17 16:52:50 +08:00
parent 41cf77b584
commit 5025e613df
11 changed files with 181 additions and 83 deletions

View File

@ -23,7 +23,7 @@ public class OutSourceProcessSheet implements Serializable {
// 状态
@Column(name = "status")
private Integer status;
private Boolean status;
// 创建时间
@Column(name = "create_time")

View File

@ -24,7 +24,7 @@ public class OutSourceProcessSheetProduct implements Serializable {
// 状态
@Column(name = "status")
private Integer status;
private Boolean status;
// 创建时间
@Column(name = "create_time")

View File

@ -3,10 +3,21 @@ package me.zhengjie.modules.wms.outSourceProductSheet.repository;
import me.zhengjie.modules.wms.outSourceProductSheet.domain.OutSourceProcessSheetProduct;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import java.util.List;
/**
* @author jie
* @date 2019-08-17
*/
public interface OutSourceProcessSheetProductRepository extends JpaRepository<OutSourceProcessSheetProduct, Long>, JpaSpecificationExecutor {
/**
* true
* @param outSourceProcessSheetId
* @return
*/
@Query(value ="select * from s_out_source_process_sheet_product where out_source_process_sheet_id = ?1 and status =1", nativeQuery = true)
List<OutSourceProcessSheetProduct> queryByOutSourceProcessSheetIdAndStatusTrue(Long outSourceProcessSheetId);
}

View File

@ -3,10 +3,19 @@ package me.zhengjie.modules.wms.outSourceProductSheet.repository;
import me.zhengjie.modules.wms.outSourceProductSheet.domain.OutSourceProcessSheet;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
/**
* @author jie
* @date 2019-08-17
*/
public interface OutSourceProcessSheetRepository extends JpaRepository<OutSourceProcessSheet, Long>, JpaSpecificationExecutor {
/**
*
* @param outSourceProcessSheetCode
* @return
*/
@Query(value ="select * from s_out_source_process_sheet where out_source_process_sheet_code = ?1 and status = 1", nativeQuery = true)
OutSourceProcessSheet findByOutSourceProcessSheetCode(String outSourceProcessSheetCode);
}

View File

@ -0,0 +1,34 @@
package me.zhengjie.modules.wms.outSourceProductSheet.request;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @author
* @date 2019-08-17
*/
@Data
public class CreateOutSourceProcessSheetRequest implements Serializable {
// 委外加工公司名称
private String outSourceCompanyName;
// 委外加工公司编号
private String outSourceCompanyCode;
// 委外负责人id
private Integer outSourceAdminId;
// 委外负责人姓名
private String outSourceAdminName;
// 联系方式
private String contactWay;
// 委外加工单单据编号
private String outSourceProcessSheetCode;
// 委外加工产品
private List<OutSourceProcessSheetProductRequest> outSourceProcessSheetProductList;
}

View File

@ -0,0 +1,42 @@
package me.zhengjie.modules.wms.outSourceProductSheet.request;
import lombok.Data;
import java.io.Serializable;
/**
* @author
* @date 2019-08-17
*/
@Data
public class OutSourceProcessSheetProductRequest implements Serializable {
// 所属委外加工单
private Long outSourceProcessSheetId;
// 产品主键
private Long productId;
// 产品名称
private String productName;
// 产品编号
private String productCode;
// 所属订单
private Long customerOrderId;
// 委外产品数量
private Integer productNumber;
// 交付日期
private String deliverDate;
// 备注
private String remark;
// 制单人主键
private Long makePeopleId;
// 制单人姓名
private String makePeopleName;
}

View File

@ -2,6 +2,7 @@ package me.zhengjie.modules.wms.outSourceProductSheet.rest;
import me.zhengjie.aop.log.Log;
import me.zhengjie.modules.wms.outSourceProductSheet.domain.OutSourceProcessSheet;
import me.zhengjie.modules.wms.outSourceProductSheet.request.CreateOutSourceProcessSheetRequest;
import me.zhengjie.modules.wms.outSourceProductSheet.service.OutSourceProcessSheetService;
import me.zhengjie.modules.wms.outSourceProductSheet.service.dto.OutSourceProcessSheetQueryCriteria;
import org.springframework.beans.factory.annotation.Autowired;
@ -17,7 +18,7 @@ import io.swagger.annotations.*;
* @author jie
* @date 2019-08-17
*/
@Api(tags = "SOutSourceProcessSheet管理")
@Api(tags = "委外加工管理")
@RestController
@RequestMapping("api")
public class OutSourceProcessSheetController {
@ -25,34 +26,34 @@ public class OutSourceProcessSheetController {
@Autowired
private OutSourceProcessSheetService outSourceProcessSheetService;
@Log("查询SOutSourceProcessSheet")
@ApiOperation(value = "查询SOutSourceProcessSheet")
@GetMapping(value = "/sOutSourceProcessSheet")
@Log("分页查询委外加工单")
@ApiOperation(value = "分页查询委外加工单")
@GetMapping(value = "/queryOutSourceProcessSheetPage")
@PreAuthorize("hasAnyRole('ADMIN','SOUTSOURCEPROCESSSHEET_ALL','SOUTSOURCEPROCESSSHEET_SELECT')")
public ResponseEntity getSOutSourceProcessSheets(OutSourceProcessSheetQueryCriteria criteria, Pageable pageable){
public ResponseEntity queryOutSourceProcessSheetPage(OutSourceProcessSheetQueryCriteria criteria, Pageable pageable){
return new ResponseEntity(outSourceProcessSheetService.queryAll(criteria,pageable),HttpStatus.OK);
}
@Log("新增SOutSourceProcessSheet")
@ApiOperation(value = "新增SOutSourceProcessSheet")
@PostMapping(value = "/sOutSourceProcessSheet")
@Log("新增委外加工单")
@ApiOperation(value = "新增委外加工单")
@PostMapping(value = "/outSourceProcessSheet")
@PreAuthorize("hasAnyRole('ADMIN','SOUTSOURCEPROCESSSHEET_ALL','SOUTSOURCEPROCESSSHEET_CREATE')")
public ResponseEntity create(@Validated @RequestBody OutSourceProcessSheet resources){
return new ResponseEntity(outSourceProcessSheetService.create(resources),HttpStatus.CREATED);
public ResponseEntity create(@RequestBody CreateOutSourceProcessSheetRequest createOutSourceProcessSheetRequest){
return new ResponseEntity(outSourceProcessSheetService.create(createOutSourceProcessSheetRequest),HttpStatus.CREATED);
}
@Log("修改SOutSourceProcessSheet")
@ApiOperation(value = "修改SOutSourceProcessSheet")
@PutMapping(value = "/sOutSourceProcessSheet")
@Log("修改委外加工单")
@ApiOperation(value = "修改委外加工单")
@PutMapping(value = "/outSourceProcessSheet")
@PreAuthorize("hasAnyRole('ADMIN','SOUTSOURCEPROCESSSHEET_ALL','SOUTSOURCEPROCESSSHEET_EDIT')")
public ResponseEntity update(@Validated @RequestBody OutSourceProcessSheet resources){
outSourceProcessSheetService.update(resources);
return new ResponseEntity(HttpStatus.NO_CONTENT);
}
@Log("删除SOutSourceProcessSheet")
@ApiOperation(value = "删除SOutSourceProcessSheet")
@DeleteMapping(value = "/sOutSourceProcessSheet/{id}")
@Log("删除委外加工单")
@ApiOperation(value = "删除委外加工单")
@DeleteMapping(value = "/outSourceProcessSheet/{id}")
@PreAuthorize("hasAnyRole('ADMIN','SOUTSOURCEPROCESSSHEET_ALL','SOUTSOURCEPROCESSSHEET_DELETE')")
public ResponseEntity delete(@PathVariable Long id){
outSourceProcessSheetService.delete(id);

View File

@ -1,61 +0,0 @@
package me.zhengjie.modules.wms.outSourceProductSheet.rest;
import me.zhengjie.aop.log.Log;
import me.zhengjie.modules.wms.outSourceProductSheet.domain.OutSourceProcessSheetProduct;
import me.zhengjie.modules.wms.outSourceProductSheet.service.OutSourceProcessSheetProductService;
import me.zhengjie.modules.wms.outSourceProductSheet.service.dto.OutSourceProcessSheetProductQueryCriteria;
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-17
*/
@Api(tags = "SOutSourceProcessSheetProduct管理")
@RestController
@RequestMapping("api")
public class OutSourceProcessSheetProductController {
@Autowired
private OutSourceProcessSheetProductService outSourceProcessSheetProductService;
@Log("查询SOutSourceProcessSheetProduct")
@ApiOperation(value = "查询SOutSourceProcessSheetProduct")
@GetMapping(value = "/sOutSourceProcessSheetProduct")
@PreAuthorize("hasAnyRole('ADMIN','SOUTSOURCEPROCESSSHEETPRODUCT_ALL','SOUTSOURCEPROCESSSHEETPRODUCT_SELECT')")
public ResponseEntity getSOutSourceProcessSheetProducts(OutSourceProcessSheetProductQueryCriteria criteria, Pageable pageable){
return new ResponseEntity(outSourceProcessSheetProductService.queryAll(criteria,pageable),HttpStatus.OK);
}
@Log("新增SOutSourceProcessSheetProduct")
@ApiOperation(value = "新增SOutSourceProcessSheetProduct")
@PostMapping(value = "/sOutSourceProcessSheetProduct")
@PreAuthorize("hasAnyRole('ADMIN','SOUTSOURCEPROCESSSHEETPRODUCT_ALL','SOUTSOURCEPROCESSSHEETPRODUCT_CREATE')")
public ResponseEntity create(@Validated @RequestBody OutSourceProcessSheetProduct resources){
return new ResponseEntity(outSourceProcessSheetProductService.create(resources),HttpStatus.CREATED);
}
@Log("修改SOutSourceProcessSheetProduct")
@ApiOperation(value = "修改SOutSourceProcessSheetProduct")
@PutMapping(value = "/sOutSourceProcessSheetProduct")
@PreAuthorize("hasAnyRole('ADMIN','SOUTSOURCEPROCESSSHEETPRODUCT_ALL','SOUTSOURCEPROCESSSHEETPRODUCT_EDIT')")
public ResponseEntity update(@Validated @RequestBody OutSourceProcessSheetProduct resources){
outSourceProcessSheetProductService.update(resources);
return new ResponseEntity(HttpStatus.NO_CONTENT);
}
@Log("删除SOutSourceProcessSheetProduct")
@ApiOperation(value = "删除SOutSourceProcessSheetProduct")
@DeleteMapping(value = "/sOutSourceProcessSheetProduct/{id}")
@PreAuthorize("hasAnyRole('ADMIN','SOUTSOURCEPROCESSSHEETPRODUCT_ALL','SOUTSOURCEPROCESSSHEETPRODUCT_DELETE')")
public ResponseEntity delete(@PathVariable Long id){
outSourceProcessSheetProductService.delete(id);
return new ResponseEntity(HttpStatus.OK);
}
}

View File

@ -1,6 +1,7 @@
package me.zhengjie.modules.wms.outSourceProductSheet.service;
import me.zhengjie.modules.wms.outSourceProductSheet.domain.OutSourceProcessSheet;
import me.zhengjie.modules.wms.outSourceProductSheet.request.CreateOutSourceProcessSheetRequest;
import me.zhengjie.modules.wms.outSourceProductSheet.service.dto.OutSourceProcessSheetDTO;
import me.zhengjie.modules.wms.outSourceProductSheet.service.dto.OutSourceProcessSheetQueryCriteria;
//import org.springframework.cache.annotation.CacheConfig;
@ -42,11 +43,11 @@ public interface OutSourceProcessSheetService {
/**
* create
* @param resources
* @param createOutSourceProcessSheetRequest
* @return
*/
//@CacheEvict(allEntries = true)
OutSourceProcessSheetDTO create(OutSourceProcessSheet resources);
OutSourceProcessSheetDTO create(CreateOutSourceProcessSheetRequest createOutSourceProcessSheetRequest);
/**
* update

View File

@ -3,6 +3,7 @@ package me.zhengjie.modules.wms.outSourceProductSheet.service.dto;
import lombok.Data;
import java.sql.Timestamp;
import java.io.Serializable;
import java.util.List;
/**
@ -40,4 +41,7 @@ public class OutSourceProcessSheetDTO implements Serializable {
// 委外加工单单据编号
private String outSourceProcessSheetCode;
// 委外加工单产品信息
private List<OutSourceProcessSheetProductDTO> outSourceProcessSheetProductList;
}

View File

@ -1,21 +1,33 @@
package me.zhengjie.modules.wms.outSourceProductSheet.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.repository.OutSourceProcessSheetProductRepository;
import me.zhengjie.modules.wms.outSourceProductSheet.request.CreateOutSourceProcessSheetRequest;
import me.zhengjie.modules.wms.outSourceProductSheet.request.OutSourceProcessSheetProductRequest;
import me.zhengjie.modules.wms.outSourceProductSheet.service.dto.OutSourceProcessSheetProductDTO;
import me.zhengjie.utils.ValidationUtil;
import me.zhengjie.modules.wms.outSourceProductSheet.repository.OutSourceProcessSheetRepository;
import me.zhengjie.modules.wms.outSourceProductSheet.service.OutSourceProcessSheetService;
import me.zhengjie.modules.wms.outSourceProductSheet.service.dto.OutSourceProcessSheetDTO;
import me.zhengjie.modules.wms.outSourceProductSheet.service.dto.OutSourceProcessSheetQueryCriteria;
import me.zhengjie.modules.wms.outSourceProductSheet.service.mapper.OutSourceProcessSheetMapper;
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 jie
@ -28,6 +40,9 @@ public class OutSourceProcessSheetServiceImpl implements OutSourceProcessSheetSe
@Autowired
private OutSourceProcessSheetRepository outSourceProcessSheetRepository;
@Autowired
private OutSourceProcessSheetProductRepository outSourceProcessSheetProductRepository;
@Autowired
private OutSourceProcessSheetMapper outSourceProcessSheetMapper;
@ -51,8 +66,50 @@ public class OutSourceProcessSheetServiceImpl implements OutSourceProcessSheetSe
@Override
@Transactional(rollbackFor = Exception.class)
public OutSourceProcessSheetDTO create(OutSourceProcessSheet resources) {
return outSourceProcessSheetMapper.toDto(outSourceProcessSheetRepository.save(resources));
public OutSourceProcessSheetDTO create(CreateOutSourceProcessSheetRequest createOutSourceProcessSheetRequest) {
OutSourceProcessSheet outSourceProcessSheet = new OutSourceProcessSheet();
BeanUtils.copyProperties(createOutSourceProcessSheetRequest, outSourceProcessSheet);
String outSourceProcessSheetCode = outSourceProcessSheet.getOutSourceProcessSheetCode();
if(!StringUtils.hasLength(outSourceProcessSheetCode)){
throw new BadRequestException("委外加工单单据编号不能为空!");
}
outSourceProcessSheet.setStatus(true);
// 新增委外加工单
outSourceProcessSheetRepository.save(outSourceProcessSheet);
outSourceProcessSheet = outSourceProcessSheetRepository.findByOutSourceProcessSheetCode(outSourceProcessSheetCode);
// 新增委外加工单产品信息
List<OutSourceProcessSheetProductRequest> outSourceProcessSheetProductRequestList = createOutSourceProcessSheetRequest.getOutSourceProcessSheetProductList();
if(CollectionUtils.isEmpty(outSourceProcessSheetProductRequestList)){
throw new BadRequestException("委外加工单产品信息不能为空!");
}
for(OutSourceProcessSheetProductRequest outSourceProcessSheetProductRequest : outSourceProcessSheetProductRequestList){
OutSourceProcessSheetProduct outSourceProcessSheetProduct = new OutSourceProcessSheetProduct();
BeanUtils.copyProperties(outSourceProcessSheetProductRequest, outSourceProcessSheetProduct);
outSourceProcessSheetProduct.setStatus(true);
outSourceProcessSheetProduct.setOutSourceProcessSheetId(outSourceProcessSheet.getId());
outSourceProcessSheetProductRepository.save(outSourceProcessSheetProduct);
}
OutSourceProcessSheetDTO outSourceProcessSheetDTO = outSourceProcessSheetMapper.toDto(outSourceProcessSheet);
List<OutSourceProcessSheetProduct> outSourceProcessSheetProductList = outSourceProcessSheetProductRepository.queryByOutSourceProcessSheetIdAndStatusTrue(outSourceProcessSheet.getId());
if(!CollectionUtils.isEmpty(outSourceProcessSheetProductList)){
List<OutSourceProcessSheetProductDTO> outSourceProcessSheetProductDTOList = new ArrayList<>();
for(OutSourceProcessSheetProduct outSourceProcessSheetProduct : outSourceProcessSheetProductList){
OutSourceProcessSheetProductDTO outSourceProcessSheetProductDTO = new OutSourceProcessSheetProductDTO();
BeanUtils.copyProperties(outSourceProcessSheetProduct, outSourceProcessSheetProductDTO);
outSourceProcessSheetProductDTOList.add(outSourceProcessSheetProductDTO);
}
outSourceProcessSheetDTO.setOutSourceProcessSheetProductList(outSourceProcessSheetProductDTOList);
}
return outSourceProcessSheetDTO;
}
@Override