修改供应商资料

pull/451/head
starrysky 2019-08-19 16:08:26 +08:00
parent 0bf76d58d3
commit 79c1bd01fc
4 changed files with 120 additions and 11 deletions

View File

@ -0,0 +1,57 @@
package me.zhengjie.modules.wms.bd.request;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import lombok.Data;
import me.zhengjie.modules.wms.bd.domain.SupplierInfo;
import java.io.Serializable;
import java.sql.Timestamp;
import java.util.List;
/**
* @author
* @date 2019-08-18
*/
@Data
public class UpdateSupplierInfoRequest implements Serializable {
private Long id;
// 供应商名称
private String supplierName;
// 期初预收款
private Long initialPreMoney;
// 供应商编号
private String supplierCode;
// 创建时间
private Timestamp createTime;
// 更新时间
private Timestamp updateTime;
// 备注
private String remark;
// 供应商地址地址数组[{“province”:””,”city”:””,”area”:””,”address_detail”:””,”sort”:””}]
private List<SupplierAddress> supplierAddress;
// 供应商联系人[{“sort”:””,”name”:””,”mobile”:””,”phone”:””,”email”:””,”qq”:””,”weixin”:””,”firstTag”:””}]firstTag 0:非首要联系人 1:首要联系人
private List<SupplierContact> supplierContact;
private Boolean status;
// 供应商类别主键
private Long supplierCategoryId;
// 供应商类别名称
private String supplierCategoryName;
public void copy(SupplierInfo source){
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
}
}

View File

@ -3,6 +3,7 @@ package me.zhengjie.modules.wms.bd.rest;
import me.zhengjie.aop.log.Log;
import me.zhengjie.modules.wms.bd.domain.SupplierInfo;
import me.zhengjie.modules.wms.bd.request.CreateSupplierInfoRequest;
import me.zhengjie.modules.wms.bd.request.UpdateSupplierInfoRequest;
import me.zhengjie.modules.wms.bd.service.SupplierInfoService;
import me.zhengjie.modules.wms.bd.service.dto.SupplierInfoQueryCriteria;
import org.springframework.beans.factory.annotation.Autowired;
@ -48,7 +49,6 @@ public class SupplierInfoController {
return new ResponseEntity(supplierCode,HttpStatus.OK);
}
@Log("查询供应商资料列表")
@ApiOperation(value = "查询供应商资料列表")
@GetMapping(value = "/querySupplierInfoList")
@ -75,10 +75,10 @@ public class SupplierInfoController {
@Log("修改供应商资料")
@ApiOperation(value = "修改供应商资料")
@PutMapping(value = "/supplierInfo")
@PostMapping(value = "/updateSupplierInfo")
@PreAuthorize("hasAnyRole('ADMIN','BDSUPPLIERINFO_ALL','BDSUPPLIERINFO_EDIT')")
public ResponseEntity update(@Validated @RequestBody SupplierInfo resources){
supplierInfoService.update(resources);
public ResponseEntity updateSupplierInfo(@RequestBody UpdateSupplierInfoRequest updateSupplierInfoRequest){
supplierInfoService.updateSupplierInfo(updateSupplierInfoRequest);
return new ResponseEntity(HttpStatus.NO_CONTENT);
}

View File

@ -2,6 +2,7 @@ package me.zhengjie.modules.wms.bd.service;
import me.zhengjie.modules.wms.bd.domain.SupplierInfo;
import me.zhengjie.modules.wms.bd.request.CreateSupplierInfoRequest;
import me.zhengjie.modules.wms.bd.request.UpdateSupplierInfoRequest;
import me.zhengjie.modules.wms.bd.service.dto.SupplierInfoDTO;
import me.zhengjie.modules.wms.bd.service.dto.SupplierInfoDetailDTO;
import me.zhengjie.modules.wms.bd.service.dto.SupplierInfoQueryCriteria;
@ -52,10 +53,10 @@ public interface SupplierInfoService {
/**
* update
* @param resources
* @param updateSupplierInfoRequest
*/
//@CacheEvict(allEntries = true)
void update(SupplierInfo resources);
void updateSupplierInfo(UpdateSupplierInfoRequest updateSupplierInfoRequest);
/**
* delete

View File

@ -10,6 +10,7 @@ import me.zhengjie.modules.wms.bd.repository.SupplierCategoryRepository;
import me.zhengjie.modules.wms.bd.request.CreateSupplierInfoRequest;
import me.zhengjie.modules.wms.bd.request.SupplierAddress;
import me.zhengjie.modules.wms.bd.request.SupplierContact;
import me.zhengjie.modules.wms.bd.request.UpdateSupplierInfoRequest;
import me.zhengjie.modules.wms.bd.service.dto.SupplierInfoDetailDTO;
import me.zhengjie.modules.wms.bd.service.mapper.SupplierCategoryMapper;
import me.zhengjie.utils.ValidationUtil;
@ -25,7 +26,10 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Optional;
import org.springframework.data.domain.Page;
@ -189,13 +193,60 @@ public class SupplierInfoServiceImpl implements SupplierInfoService {
return supplierInfoDetailDTO;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(SupplierInfo resources) {
Optional<SupplierInfo> optionalBdSupplierInfo = supplierInfoRepository.findById(resources.getId());
ValidationUtil.isNull( optionalBdSupplierInfo,"BdSupplierInfo","id",resources.getId());
SupplierInfo supplierInfo = optionalBdSupplierInfo.get();
supplierInfo.copy(resources);
public void updateSupplierInfo(UpdateSupplierInfoRequest updateSupplierInfoRequest) {
Long supplierInfoId = updateSupplierInfoRequest.getId();
if(null == supplierInfoId){
throw new BadRequestException("供应商主键不能为空!");
}
Long supplierCategoryId = updateSupplierInfoRequest.getSupplierCategoryId();
if(null == supplierCategoryId){
throw new BadRequestException("供应商类别不存在!");
}
Optional<SupplierCategory> supplierCategoryOptional = supplierCategoryRepository.findById(supplierCategoryId);
SupplierCategory supplierCategory = supplierCategoryOptional.get();
// 供应商资料-供应商给你联系地址修改目标
List<SupplierAddress> supplierAddressListUpdateTarget = updateSupplierInfoRequest.getSupplierAddress();
// 供应商资料-供应商联系方式修改目标
List<SupplierContact> supplierContactListUpdateTarget = updateSupplierInfoRequest.getSupplierContact();
SupplierInfo supplierInfo = supplierInfoRepository.findByIdAndStatusTrue(supplierInfoId);
if(null == supplierInfo){
throw new BadRequestException("供应商不存在");
}
Timestamp createTime = supplierInfo.getCreateTime();
// 将需要修改的值复制到数据库对象中
BeanUtils.copyProperties(updateSupplierInfoRequest, supplierInfo);
// 判断提前获取的供应商联系地址和联系方式是否是空
if(CollectionUtils.isEmpty(supplierAddressListUpdateTarget)){
supplierInfo.setSupplierAddress(null);
}else{
String supplierAddressStr = new Gson().toJson(supplierAddressListUpdateTarget);
supplierInfo.setSupplierAddress(supplierAddressStr);
}
if(CollectionUtils.isEmpty(supplierContactListUpdateTarget)){
supplierInfo.setSupplierContact(null);
}else{
String supplierContactStr = new Gson().toJson(supplierContactListUpdateTarget);
supplierInfo.setSupplierContact(supplierContactStr);
}
supplierInfo.setCreateTime(createTime);
supplierInfo.setStatus(true);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
supplierInfo.setUpdateTime(Timestamp.valueOf(sdf.format(new Date())));
supplierInfo.setSupplierCategoryName(supplierCategory.getName());
// 修改供应商资料
supplierInfoRepository.save(supplierInfo);
}