新增委外公司资料

pull/451/head
starrysky 2019-08-24 13:46:10 +08:00
parent dccf6e9908
commit 153c7d8a82
15 changed files with 211 additions and 44 deletions

View File

@ -32,7 +32,7 @@ public class CreateCustomerInfoRequest implements Serializable {
private String remark;
// 客户地址地址数组[{“province”:””,”city”:””,”area”:””,”address_detail”:””,”sort”:””}]
private List<CustomerAddress> supplierAddress;
private List<CustomerAddress> customerAddress;
// 客户联系人[{“sort”:””,”name”:””,”mobile”:””,”phone”:””,”email”:””,”qq”:””,”weixin”:””,”firstTag”:””}]firstTag 0:非首要联系人 1:首要联系人
private List<CustomerContact> customerContact;

View File

@ -0,0 +1,43 @@
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.OutSourceCompanyInfo;
import java.io.Serializable;
import java.util.List;
/**
* @author
* @date 2019-08-24
*/
@Data
public class CreateOutSourceCompanyInfoRequest implements Serializable {
// 委外公司名称
private String outSourceCompanyName;
// 期初预收款
private Long initialPreMoney;
// 委外公司编号
private String outSourceCompanyCode;
// 备注
private String remark;
// 委外公司地址数组[{“province”:””,”city”:””,”area”:””,”address_detail”:””,”sort”:””}]
private List<OutSourceCompanyAddress> outSourceCompanyAddress;
// 委外公司联系人[{“sort”:””,”name”:””,”mobile”:””,”phone”:””,”email”:””,”qq”:””,”weixin”:””,”firstTag”:””}]firstTag 0:非首要联系人 1:首要联系人
private List<OutSourceCompanyContact> outSourceCompanyContact;
// @Column(name = "status")
private Boolean status;
public void copy(OutSourceCompanyInfo source){
BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
}
}

View File

@ -0,0 +1,22 @@
package me.zhengjie.modules.wms.bd.request;
import lombok.Data;
import java.io.Serializable;
/**
* @author
* @date 2019-08-18
*/
@Data
public class OutSourceCompanyAddress implements Serializable {
private String province;
private String city;
private String area;
private String addressDetail;
private Integer sort;
}

View File

@ -0,0 +1,31 @@
package me.zhengjie.modules.wms.bd.request;
import lombok.Data;
import java.io.Serializable;
/**
* @author
* [{sort:,name:,mobile:,phone:,email:,qq:,weixin:,firstTag:}]firstTag 0: 1:
* @date 2019-08-18
*/
@Data
public class OutSourceCompanyContact implements Serializable {
private Integer sort;
private String name;
private String mobile;
private String phone;
private String email;
private String qq;
private String weixin;
private Integer firstTag;
}

View File

@ -15,6 +15,9 @@ 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 jie
* @date 2019-08-03
@ -27,6 +30,16 @@ public class CustomerInfoController {
@Autowired
private CustomerInfoService customerInfoService;
@Log("初始化客户编号")
@ApiOperation(value = "初始化客户编号")
@GetMapping(value = "/initCustomerCode")
@PreAuthorize("hasAnyRole('ADMIN','BDSUPPLIERINFO_ALL','BDSUPPLIERINFO_SELECT')")
public ResponseEntity initCustomerCode(){
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS");//设置日期格式
String supplierCode = "KH"+ LocalDateTime.now().format(fmt);
return new ResponseEntity(supplierCode,HttpStatus.OK);
}
@Log("分页查询客户信息")
@ApiOperation(value = "分页查询客户信息")
@GetMapping(value = "/queryCustomerInfoPage")

View File

@ -2,6 +2,7 @@ package me.zhengjie.modules.wms.bd.rest;
import me.zhengjie.aop.log.Log;
import me.zhengjie.modules.wms.bd.domain.OutSourceCompanyInfo;
import me.zhengjie.modules.wms.bd.request.CreateOutSourceCompanyInfoRequest;
import me.zhengjie.modules.wms.bd.service.OutSourceCompanyInfoService;
import me.zhengjie.modules.wms.bd.service.dto.OutSourceCompanyInfoDTO;
import me.zhengjie.modules.wms.bd.service.dto.OutSourceCompanyInfoQueryCriteria;
@ -28,18 +29,18 @@ public class OutSourceCompanyInfoController {
@Log("分页查询委外公司资料列表")
@ApiOperation(value = "分页查询委外公司资料列表")
@GetMapping(value = "/outSourceCompanyInfos")
@GetMapping(value = "/queryOutSourceCompanyInfoPage")
@PreAuthorize("hasAnyRole('ADMIN','BDOUTSOURCECOMPANYINFO_ALL','BDOUTSOURCECOMPANYINFO_SELECT')")
public ResponseEntity getOutSourceCompanyInfos(OutSourceCompanyInfoQueryCriteria criteria, Pageable pageable){
public ResponseEntity queryOutSourceCompanyInfoPage(OutSourceCompanyInfoQueryCriteria criteria, Pageable pageable){
return new ResponseEntity(outSourceCompanyInfoService.queryAll(criteria,pageable),HttpStatus.OK);
}
@Log("查询委外公司资料列表")
@ApiOperation(value = "分页查询委外公司资料列表")
@GetMapping(value = "/getOutSourceCompanyInfoList")
@GetMapping(value = "/queryOutSourceCompanyInfoList")
@PreAuthorize("hasAnyRole('ADMIN','BDOUTSOURCECOMPANYINFO_ALL','BDOUTSOURCECOMPANYINFO_SELECT')")
public ResponseEntity getOutSourceCompanyInfoList(OutSourceCompanyInfoQueryCriteria criteria){
public ResponseEntity queryOutSourceCompanyInfoList(OutSourceCompanyInfoQueryCriteria criteria){
return new ResponseEntity(outSourceCompanyInfoService.queryAll(criteria),HttpStatus.OK);
}
@ -58,8 +59,8 @@ public class OutSourceCompanyInfoController {
@ApiOperation(value = "新增委外公司资料")
@PostMapping(value = "/outSourceCompanyInfo")
@PreAuthorize("hasAnyRole('ADMIN','BDOUTSOURCECOMPANYINFO_ALL','BDOUTSOURCECOMPANYINFO_CREATE')")
public ResponseEntity create(@Validated @RequestBody OutSourceCompanyInfo resources){
return new ResponseEntity(outSourceCompanyInfoService.create(resources),HttpStatus.CREATED);
public ResponseEntity create(@RequestBody CreateOutSourceCompanyInfoRequest createOutSourceCompanyInfoRequest){
return new ResponseEntity(outSourceCompanyInfoService.create(createOutSourceCompanyInfoRequest),HttpStatus.CREATED);
}
@Log("修改委外公司资料")

View File

@ -49,7 +49,7 @@ public interface CustomerInfoService {
* @return
*/
//@CacheEvict(allEntries = true)
CustomerInfoDTO create(CreateCustomerInfoRequest createCustomerInfoRequest);
CustomerInfoDetailDTO create(CreateCustomerInfoRequest createCustomerInfoRequest);
/**
* update

View File

@ -1,6 +1,7 @@
package me.zhengjie.modules.wms.bd.service;
import me.zhengjie.modules.wms.bd.domain.OutSourceCompanyInfo;
import me.zhengjie.modules.wms.bd.request.CreateOutSourceCompanyInfoRequest;
import me.zhengjie.modules.wms.bd.service.dto.OutSourceCompanyInfoDTO;
import me.zhengjie.modules.wms.bd.service.dto.OutSourceCompanyInfoQueryCriteria;
//import org.springframework.cache.annotation.CacheConfig;
@ -42,11 +43,11 @@ public interface OutSourceCompanyInfoService {
/**
* create
* @param resources
* @param createOutSourceCompanyInfoRequest
* @return
*/
//@CacheEvict(allEntries = true)
OutSourceCompanyInfoDTO create(OutSourceCompanyInfo resources);
OutSourceCompanyInfoDTO create(CreateOutSourceCompanyInfoRequest createOutSourceCompanyInfoRequest);
/**
* update

View File

@ -1,14 +1,9 @@
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;
//import org.springframework.cache.annotation.CacheConfig;
//import org.springframework.cache.annotation.CacheEvict;
//import org.springframework.cache.annotation.Cacheable;
import org.springframework.data.domain.Pageable;
/**
@ -49,7 +44,7 @@ public interface SupplierInfoService {
* @return
*/
//@CacheEvict(allEntries = true)
SupplierInfoDTO create(CreateSupplierInfoRequest createSupplierInfoRequest);
SupplierInfoDetailDTO create(CreateSupplierInfoRequest createSupplierInfoRequest);
/**
* update

View File

@ -35,4 +35,13 @@ public class CustomerInfoDTO implements Serializable {
// 状态
private Boolean status;
// 首要联系人姓名
private String firstContactName;
// 首要联系人手机
private String firstContactMobile;
// 首要联系人地址
private String firstContactAddress;
}

View File

@ -32,11 +32,6 @@ public class OutSourceCompanyInfoDTO implements Serializable {
// 备注
private String remark;
// 委外公司地址数组[{“province”:””,”city”:””,”area”:””,”address_detail”:””,”sort”:””}]
private String outSourceCompanyAddress;
// 委外公司联系人[{“sort”:””,”name”:””,”mobile”:””,”phone”:””,”email”:””,”qq”:””,”weixin”:””,”firstTag”:””}]firstTag 0:非首要联系人 1:首要联系人
private String outSourceCompanyContact;
private Boolean status;
}

View File

@ -0,0 +1,23 @@
package me.zhengjie.modules.wms.bd.service.dto;
import lombok.Data;
import me.zhengjie.modules.wms.bd.request.CustomerContact;
import me.zhengjie.modules.wms.bd.request.OutSourceCompanyAddress;
import me.zhengjie.modules.wms.bd.request.OutSourceCompanyContact;
import java.io.Serializable;
import java.util.List;
/**
* @author
* @date 2019-08-24
*/
@Data
public class OutSourceCompanyInfoDetailDTO extends OutSourceCompanyInfoDTO implements Serializable {
// 客户地址地址数组[{“province”:””,”city”:””,”area”:””,”address_detail”:””,”sort”:””}]
private List<OutSourceCompanyAddress> outSourceCompanyAddress;
// 客户联系人[{“sort”:””,”name”:””,”mobile”:””,”phone”:””,”email”:””,”qq”:””,”weixin”:””,”firstTag”:””}]firstTag 0:非首要联系人 1:首要联系人
private List<OutSourceCompanyContact> outSourceCompanyContact;
}

View File

@ -61,23 +61,9 @@ public class CustomerInfoServiceImpl implements CustomerInfoService {
List<Predicate> targetPredicateList = new ArrayList<>();
//客户名称
String customerName = criteria.getCustomerName();
if (!StringUtils.isEmpty(customerName)) {
Predicate namePredicate = criteriaBuilder.like(root.get("customerName"), "%" + customerName + "%");
targetPredicateList.add(namePredicate);
}
//状态
Predicate statusPredicate = criteriaBuilder.equal(root.get("status"), 1);
targetPredicateList.add(statusPredicate);
String customerCode = criteria.getCustomerCode();
if(!StringUtils.isEmpty(customerCode)){
Predicate customerCodePredicate = criteriaBuilder.like(root.get("customerCode"), "%" + customerName + "%");
targetPredicateList.add(customerCodePredicate);
}
if(CollectionUtils.isEmpty(targetPredicateList)){
return null;
}else{
@ -86,7 +72,32 @@ public class CustomerInfoServiceImpl implements CustomerInfoService {
}
};
Page<CustomerInfo> page = customerInfoRepository.findAll(specification, pageable);
return PageUtil.toPage(page.map(customerInfoMapper::toDto));
Page<CustomerInfoDTO> customerInfoDTOPage = page.map(customerInfoMapper::toDto);
if(null != customerInfoDTOPage){
List<CustomerInfoDTO> customerInfoDtoList = customerInfoDTOPage.getContent();
if(!CollectionUtils.isEmpty(customerInfoDtoList)){
for(CustomerInfoDTO customerInfoDTO : customerInfoDtoList){
Long customerInfoDTOId = customerInfoDTO.getId();
Optional<CustomerInfo> customerInfoOptional = customerInfoRepository.findById(customerInfoDTOId);
if(null != customerInfoOptional){
CustomerInfo customerInfo = customerInfoOptional.get();
if(null != customerInfo){
String customerContactJsonStr = customerInfo.getCustomerContact();
List<CustomerContact> customerContactList = new Gson().fromJson(customerContactJsonStr,new TypeToken<ArrayList<CustomerContact>>() {}.getType());
if(!CollectionUtils.isEmpty(customerContactList)){
for(CustomerContact customerContact : customerContactList){
if(customerContact.getFirstTag() == 1){
customerInfoDTO.setFirstContactMobile(customerContact.getMobile());
customerInfoDTO.setFirstContactName(customerContact.getName());
}
}
}
}
}
}
}
}
return PageUtil.toPage(customerInfoDTOPage);
}
@Override
@ -138,13 +149,13 @@ public class CustomerInfoServiceImpl implements CustomerInfoService {
@Override
@Transactional(rollbackFor = Exception.class)
public CustomerInfoDTO create(CreateCustomerInfoRequest createCustomerInfoRequest) {
public CustomerInfoDetailDTO create(CreateCustomerInfoRequest createCustomerInfoRequest) {
CustomerInfoDetailDTO customerInfoDetailDTO = new CustomerInfoDetailDTO();
CustomerInfo customerInfo = new CustomerInfo();
BeanUtils.copyProperties(createCustomerInfoRequest, customerInfo);
customerInfo.setStatus(true);
List<CustomerAddress> customerAddressList = createCustomerInfoRequest.getSupplierAddress();
List<CustomerAddress> customerAddressList = createCustomerInfoRequest.getCustomerAddress();
if(!CollectionUtils.isEmpty(customerAddressList)){
String customerAddressStr = new Gson().toJson(customerAddressList);
customerInfo.setCustomerAddress(customerAddressStr);

View File

@ -1,14 +1,17 @@
package me.zhengjie.modules.wms.bd.service.impl;
import com.google.gson.Gson;
import me.zhengjie.exception.BadRequestException;
import me.zhengjie.modules.wms.bd.domain.CustomerInfo;
import me.zhengjie.modules.wms.bd.domain.OutSourceCompanyInfo;
import me.zhengjie.modules.wms.bd.domain.SupplierInfo;
import me.zhengjie.modules.wms.bd.request.*;
import me.zhengjie.modules.wms.bd.service.dto.*;
import me.zhengjie.utils.ValidationUtil;
import me.zhengjie.modules.wms.bd.repository.OutSourceCompanyInfoRepository;
import me.zhengjie.modules.wms.bd.service.OutSourceCompanyInfoService;
import me.zhengjie.modules.wms.bd.service.dto.OutSourceCompanyInfoDTO;
import me.zhengjie.modules.wms.bd.service.dto.OutSourceCompanyInfoQueryCriteria;
import me.zhengjie.modules.wms.bd.service.mapper.OutSourceCompanyInfoMapper;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.jpa.domain.Specification;
import org.springframework.stereotype.Service;
@ -124,9 +127,29 @@ public class OutSourceCompanyInfoServiceImpl implements OutSourceCompanyInfoServ
@Override
@Transactional(rollbackFor = Exception.class)
public OutSourceCompanyInfoDTO create(OutSourceCompanyInfo resources) {
resources.setStatus(true);
return outSourceCompanyInfoMapper.toDto(outSourceCompanyInfoRepository.save(resources));
public OutSourceCompanyInfoDTO create(CreateOutSourceCompanyInfoRequest createOutSourceCompanyInfoRequest) {
OutSourceCompanyInfoDetailDTO outSourceCompanyInfoDetailDTO = new OutSourceCompanyInfoDetailDTO();
OutSourceCompanyInfo outSourceCompanyInfo = new OutSourceCompanyInfo();
BeanUtils.copyProperties(createOutSourceCompanyInfoRequest, outSourceCompanyInfo);
outSourceCompanyInfo.setStatus(true);
List<OutSourceCompanyAddress> outSourceCompanyAddressList = createOutSourceCompanyInfoRequest.getOutSourceCompanyAddress();
if(!CollectionUtils.isEmpty(outSourceCompanyAddressList)){
String outSourceCompanyAddressStr = new Gson().toJson(outSourceCompanyAddressList);
outSourceCompanyInfo.setOutSourceCompanyAddress(outSourceCompanyAddressStr);
outSourceCompanyInfoDetailDTO.setOutSourceCompanyAddress(outSourceCompanyAddressList);
}
List<OutSourceCompanyContact> outSourceCompanyContactList = createOutSourceCompanyInfoRequest.getOutSourceCompanyContact();
if(!CollectionUtils.isEmpty(outSourceCompanyContactList)){
String outSourceCompanyContactStr = new Gson().toJson(outSourceCompanyContactList);
outSourceCompanyInfo.setOutSourceCompanyContact(outSourceCompanyContactStr);
outSourceCompanyInfoDetailDTO.setOutSourceCompanyContact(outSourceCompanyContactList);
}
outSourceCompanyInfo = outSourceCompanyInfoRepository.save(outSourceCompanyInfo);
OutSourceCompanyInfoDTO outSourceCompanyInfoDTO = outSourceCompanyInfoMapper.toDto(outSourceCompanyInfo);
BeanUtils.copyProperties(outSourceCompanyInfoDTO, outSourceCompanyInfoDetailDTO);
return outSourceCompanyInfoDetailDTO;
}
@Override

View File

@ -159,7 +159,7 @@ public class SupplierInfoServiceImpl implements SupplierInfoService {
@Override
@Transactional(rollbackFor = Exception.class)
public SupplierInfoDTO create(CreateSupplierInfoRequest createSupplierInfoRequest) {
public SupplierInfoDetailDTO create(CreateSupplierInfoRequest createSupplierInfoRequest) {
Long supplierCategoryId = createSupplierInfoRequest.getSupplierCategoryId();
if(null == supplierCategoryId){
throw new BadRequestException("供应商类别不存在!");