修改质量检验单

pull/451/head
starrysky 2019-11-12 15:03:59 +08:00
parent e46ca830bf
commit 3a57a8f157
4 changed files with 107 additions and 9 deletions

View File

@ -0,0 +1,38 @@
package me.zhengjie.modules.wms.qualityCheckSheet.request;
import lombok.Data;
import me.zhengjie.modules.wms.outSourceProductSheet.service.dto.OutSourceProcessSheetProductDTO;
import me.zhengjie.modules.wms.qualityCheckSheet.service.dto.QualityCheckSheetProductDTO;
import javax.persistence.Column;
import java.io.Serializable;
import java.util.List;
/**
* @author
* @date 2019-11-12
*/
@Data
public class UpdateQualityCheckSheetRequest implements Serializable {
// 质量检验单主键
private Long id;
// 制单人
@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<QualityCheckSheetProductDTO> qualityCheckSheetProductList;
}

View File

@ -3,6 +3,7 @@ package me.zhengjie.modules.wms.qualityCheckSheet.rest;
import me.zhengjie.aop.log.Log; import me.zhengjie.aop.log.Log;
import me.zhengjie.modules.wms.qualityCheckSheet.domain.QualityCheckSheet; import me.zhengjie.modules.wms.qualityCheckSheet.domain.QualityCheckSheet;
import me.zhengjie.modules.wms.qualityCheckSheet.request.CreateQualityCheckSheetRequest; import me.zhengjie.modules.wms.qualityCheckSheet.request.CreateQualityCheckSheetRequest;
import me.zhengjie.modules.wms.qualityCheckSheet.request.UpdateQualityCheckSheetRequest;
import me.zhengjie.modules.wms.qualityCheckSheet.service.QualityCheckSheetService; import me.zhengjie.modules.wms.qualityCheckSheet.service.QualityCheckSheetService;
import me.zhengjie.modules.wms.qualityCheckSheet.service.dto.QualityCheckSheetQueryCriteria; import me.zhengjie.modules.wms.qualityCheckSheet.service.dto.QualityCheckSheetQueryCriteria;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -49,8 +50,8 @@ public class QualityCheckSheetController {
@ApiOperation(value = "修改质量检验单") @ApiOperation(value = "修改质量检验单")
@PutMapping(value = "/qualityCheckSheet") @PutMapping(value = "/qualityCheckSheet")
// @PreAuthorize("hasAnyRole('ADMIN','QUALITYCHECKSHEET_ALL','QUALITYCHECKSHEET_EDIT')") // @PreAuthorize("hasAnyRole('ADMIN','QUALITYCHECKSHEET_ALL','QUALITYCHECKSHEET_EDIT')")
public ResponseEntity update(@Validated @RequestBody QualityCheckSheet resources){ public ResponseEntity update(@Validated @RequestBody UpdateQualityCheckSheetRequest updateQualityCheckSheetRequest){
qualityCheckSheetService.update(resources); qualityCheckSheetService.update(updateQualityCheckSheetRequest);
return new ResponseEntity(HttpStatus.NO_CONTENT); return new ResponseEntity(HttpStatus.NO_CONTENT);
} }

View File

@ -2,6 +2,7 @@ package me.zhengjie.modules.wms.qualityCheckSheet.service;
import me.zhengjie.modules.wms.qualityCheckSheet.domain.QualityCheckSheet; import me.zhengjie.modules.wms.qualityCheckSheet.domain.QualityCheckSheet;
import me.zhengjie.modules.wms.qualityCheckSheet.request.CreateQualityCheckSheetRequest; import me.zhengjie.modules.wms.qualityCheckSheet.request.CreateQualityCheckSheetRequest;
import me.zhengjie.modules.wms.qualityCheckSheet.request.UpdateQualityCheckSheetRequest;
import me.zhengjie.modules.wms.qualityCheckSheet.service.dto.QualityCheckSheetDTO; 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.dto.QualityCheckSheetQueryCriteria;
//import org.springframework.cache.annotation.CacheConfig; //import org.springframework.cache.annotation.CacheConfig;
@ -51,10 +52,10 @@ public interface QualityCheckSheetService {
/** /**
* update * update
* @param resources * @param updateQualityCheckSheetRequest
*/ */
//@CacheEvict(allEntries = true) //@CacheEvict(allEntries = true)
void update(QualityCheckSheet resources); void update(UpdateQualityCheckSheetRequest updateQualityCheckSheetRequest);
/** /**
* delete * delete

View File

@ -11,6 +11,7 @@ import me.zhengjie.modules.wms.qualityCheckSheet.domain.QualityCheckSheetProduct
import me.zhengjie.modules.wms.qualityCheckSheet.repository.QualityCheckSheetProductRepository; import me.zhengjie.modules.wms.qualityCheckSheet.repository.QualityCheckSheetProductRepository;
import me.zhengjie.modules.wms.qualityCheckSheet.request.CreateQualityCheckSheetRequest; import me.zhengjie.modules.wms.qualityCheckSheet.request.CreateQualityCheckSheetRequest;
import me.zhengjie.modules.wms.qualityCheckSheet.request.QualityCheckSheetProductRequest; import me.zhengjie.modules.wms.qualityCheckSheet.request.QualityCheckSheetProductRequest;
import me.zhengjie.modules.wms.qualityCheckSheet.request.UpdateQualityCheckSheetRequest;
import me.zhengjie.modules.wms.qualityCheckSheet.service.dto.QualityCheckSheetProductDTO; import me.zhengjie.modules.wms.qualityCheckSheet.service.dto.QualityCheckSheetProductDTO;
import me.zhengjie.modules.wms.qualityCheckSheet.service.mapper.QualityCheckSheetProductMapper; import me.zhengjie.modules.wms.qualityCheckSheet.service.mapper.QualityCheckSheetProductMapper;
import me.zhengjie.utils.ValidationUtil; import me.zhengjie.utils.ValidationUtil;
@ -27,7 +28,11 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Optional; import java.util.Optional;
import java.util.function.Function;
import java.util.stream.Collectors;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import me.zhengjie.utils.PageUtil; import me.zhengjie.utils.PageUtil;
@ -123,12 +128,65 @@ public class QualityCheckSheetServiceImpl implements QualityCheckSheetService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void update(QualityCheckSheet resources) { public void update(UpdateQualityCheckSheetRequest updateQualityCheckSheetRequest) {
Optional<QualityCheckSheet> optionalQualityCheckSheet = qualityCheckSheetRepository.findById(resources.getId()); Long qualityCheckSheetId = updateQualityCheckSheetRequest.getId();
ValidationUtil.isNull( optionalQualityCheckSheet,"QualityCheckSheet","id",resources.getId()); Optional<QualityCheckSheet> qualityCheckSheetOptional = qualityCheckSheetRepository.findById(qualityCheckSheetId);
QualityCheckSheet qualityCheckSheet = optionalQualityCheckSheet.get(); QualityCheckSheet qualityCheckSheet = qualityCheckSheetOptional.get();
qualityCheckSheet.copy(resources); BeanUtils.copyProperties(updateQualityCheckSheetRequest, qualityCheckSheet);
qualityCheckSheet.setStatus(true);
qualityCheckSheetRepository.save(qualityCheckSheet); qualityCheckSheetRepository.save(qualityCheckSheet);
// 修改产品信息之前查询该订单中原来的产品信息key为产品code
List<QualityCheckSheetProduct> qualityCheckSheetProductListBeforeUpdate = qualityCheckSheetProductRepository.queryByQualityCheckSheetIdAndStatusTrue(qualityCheckSheet.getId());
Map<String, QualityCheckSheetProduct> qualityCheckSheetProductMapBefore = qualityCheckSheetProductListBeforeUpdate.stream().collect(Collectors.toMap(QualityCheckSheetProduct::getProductCode, Function.identity()));
List<QualityCheckSheetProductDTO> qualityCheckSheetProducRequestList = updateQualityCheckSheetRequest.getQualityCheckSheetProductList();
if(CollectionUtils.isEmpty(qualityCheckSheetProducRequestList)){
throw new BadRequestException("质量检验单产品信息不能为空!");
}
Map<String, QualityCheckSheetProductDTO> qualityCheckSheetProductMapAfter = qualityCheckSheetProducRequestList.stream().collect(Collectors.toMap(QualityCheckSheetProductDTO::getProductCode, Function.identity()));
//需要将订单中原来订单对应的产品删除了的数据
List<String> deleteTargetList = new ArrayList<>();
//比较量个map中key不一样的数据
for(Map.Entry<String, QualityCheckSheetProduct> entry:qualityCheckSheetProductMapBefore.entrySet()){
String productCode = entry.getKey();
//修改后的map记录对应的key在原来中是否存在
QualityCheckSheetProductDTO qualityCheckSheetProductDTOTemp = qualityCheckSheetProductMapAfter.get(productCode);
if(null == qualityCheckSheetProductDTOTemp){
deleteTargetList.add(entry.getKey());
}
}
List<QualityCheckSheetProduct> qualityCheckSheetProductList = new ArrayList<>();
for(QualityCheckSheetProductDTO qualityCheckSheetProductDTO : qualityCheckSheetProducRequestList){
QualityCheckSheetProduct qualityCheckSheetProduct = new QualityCheckSheetProduct();
BeanUtils.copyProperties(qualityCheckSheetProductDTO, qualityCheckSheetProduct);
qualityCheckSheetProduct.setQualityCheckSheetId(qualityCheckSheet.getId());
qualityCheckSheetProduct.setStatus(true);
if(!(!CollectionUtils.isEmpty(deleteTargetList) && deleteTargetList.contains(qualityCheckSheetProductDTO.getId()))){
qualityCheckSheetProductList.add(qualityCheckSheetProduct);
}
}
qualityCheckSheetProductRepository.saveAll(qualityCheckSheetProductList);
/**
* :
* 1. a b c
* 2. a c
* 3.
*/
if(!CollectionUtils.isEmpty(deleteTargetList)){
for(String prductCode : deleteTargetList){
qualityCheckSheetProductRepository.deleteByProductCodeAndQualityCheckSheetId(prductCode, qualityCheckSheet.getId());
}
}
} }
@Override @Override