委外公司

pull/451/head
starrysky 2019-08-24 14:01:27 +08:00
parent 153c7d8a82
commit 4c198b9f18
6 changed files with 182 additions and 18 deletions

View File

@ -34,7 +34,6 @@ public class CreateOutSourceCompanyInfoRequest implements Serializable {
// 委外公司联系人[{“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){

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.OutSourceCompanyInfo;
import org.hibernate.annotations.CreationTimestamp;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import java.io.Serializable;
import java.sql.Timestamp;
import java.util.List;
/**
* @author
* @date 2019-08-24
*/
@Data
public class UpdateOutSourceCompanyInfoRequest implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
// 委外公司名称
private String outSourceCompanyName;
// 期初预收款
private Long initialPreMoney;
// 委外公司编号
private String outSourceCompanyCode;
// 创建时间
private Timestamp createTime;
// 更新时间
private Timestamp updateTime;
// 备注
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;
private Boolean status;
public void copy(OutSourceCompanyInfo 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.OutSourceCompanyInfo;
import me.zhengjie.modules.wms.bd.request.CreateOutSourceCompanyInfoRequest;
import me.zhengjie.modules.wms.bd.request.UpdateOutSourceCompanyInfoRequest;
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;
@ -15,6 +16,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 +31,16 @@ public class OutSourceCompanyInfoController {
@Autowired
private OutSourceCompanyInfoService outSourceCompanyInfoService;
@Log("初始化委外公司编号")
@ApiOperation(value = "初始化委外公司编号")
@GetMapping(value = "/initOutSourceCompanyCode")
@PreAuthorize("hasAnyRole('ADMIN','BDSUPPLIERINFO_ALL','BDSUPPLIERINFO_SELECT')")
public ResponseEntity initOutSourceCompanyCode(){
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyyMMddHHmmssSSS");//设置日期格式
String supplierCode = "WW"+ LocalDateTime.now().format(fmt);
return new ResponseEntity(supplierCode,HttpStatus.OK);
}
@Log("分页查询委外公司资料列表")
@ApiOperation(value = "分页查询委外公司资料列表")
@GetMapping(value = "/queryOutSourceCompanyInfoPage")
@ -67,8 +81,8 @@ public class OutSourceCompanyInfoController {
@ApiOperation(value = "修改委外公司资料")
@PutMapping(value = "/outSourceCompanyInfo")
@PreAuthorize("hasAnyRole('ADMIN','BDOUTSOURCECOMPANYINFO_ALL','BDOUTSOURCECOMPANYINFO_EDIT')")
public ResponseEntity update(@Validated @RequestBody OutSourceCompanyInfo resources){
outSourceCompanyInfoService.update(resources);
public ResponseEntity update(@RequestBody UpdateOutSourceCompanyInfoRequest updateOutSourceCompanyInfoRequest){
outSourceCompanyInfoService.update(updateOutSourceCompanyInfoRequest);
return new ResponseEntity(HttpStatus.NO_CONTENT);
}

View File

@ -2,7 +2,9 @@ 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.request.UpdateOutSourceCompanyInfoRequest;
import me.zhengjie.modules.wms.bd.service.dto.OutSourceCompanyInfoDTO;
import me.zhengjie.modules.wms.bd.service.dto.OutSourceCompanyInfoDetailDTO;
import me.zhengjie.modules.wms.bd.service.dto.OutSourceCompanyInfoQueryCriteria;
//import org.springframework.cache.annotation.CacheConfig;
//import org.springframework.cache.annotation.CacheEvict;
@ -39,7 +41,7 @@ public interface OutSourceCompanyInfoService {
* @return
*/
//@Cacheable(key = "#p0")
OutSourceCompanyInfoDTO findById(Long id);
OutSourceCompanyInfoDetailDTO findById(Long id);
/**
* create
@ -47,14 +49,14 @@ public interface OutSourceCompanyInfoService {
* @return
*/
//@CacheEvict(allEntries = true)
OutSourceCompanyInfoDTO create(CreateOutSourceCompanyInfoRequest createOutSourceCompanyInfoRequest);
OutSourceCompanyInfoDetailDTO create(CreateOutSourceCompanyInfoRequest createOutSourceCompanyInfoRequest);
/**
* update
* @param resources
* @param updateOutSourceCompanyInfoRequest
*/
//@CacheEvict(allEntries = true)
void update(OutSourceCompanyInfo resources);
void update(UpdateOutSourceCompanyInfoRequest updateOutSourceCompanyInfoRequest);
/**
* delete

View File

@ -32,6 +32,14 @@ public class OutSourceCompanyInfoDTO implements Serializable {
// 备注
private String remark;
// 首要联系人姓名
private String firstContactName;
// 首要联系人手机
private String firstContactMobile;
// 首要联系人地址
private String firstContactAddress;
private Boolean status;
}

View File

@ -1,6 +1,7 @@
package me.zhengjie.modules.wms.bd.service.impl;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import me.zhengjie.exception.BadRequestException;
import me.zhengjie.modules.wms.bd.domain.CustomerInfo;
import me.zhengjie.modules.wms.bd.domain.OutSourceCompanyInfo;
@ -18,7 +19,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;
@ -80,7 +84,32 @@ public class OutSourceCompanyInfoServiceImpl implements OutSourceCompanyInfoServ
}
};
Page<OutSourceCompanyInfo> page = outSourceCompanyInfoRepository.findAll(specification, pageable);
return PageUtil.toPage(page.map(outSourceCompanyInfoMapper::toDto));
Page<OutSourceCompanyInfoDTO> outSourceCompanyInfoDTOPage = page.map(outSourceCompanyInfoMapper::toDto);
if(null != outSourceCompanyInfoDTOPage){
List<OutSourceCompanyInfoDTO> outSourceCompanyInfoDTOList = outSourceCompanyInfoDTOPage.getContent();
if(!CollectionUtils.isEmpty(outSourceCompanyInfoDTOList)){
for(OutSourceCompanyInfoDTO outSourceCompanyInfoDTO : outSourceCompanyInfoDTOList){
Long outSourceCompanyInfoDTOId = outSourceCompanyInfoDTO.getId();
Optional<OutSourceCompanyInfo> outSourceCompanyInfoOptional = outSourceCompanyInfoRepository.findById(outSourceCompanyInfoDTOId);
if(null != outSourceCompanyInfoOptional){
OutSourceCompanyInfo outSourceCompanyInfo = outSourceCompanyInfoOptional.get();
if(null != outSourceCompanyInfo){
String outSourceCompanyJsonStr = outSourceCompanyInfo.getOutSourceCompanyContact();
List<OutSourceCompanyContact> outSourceCompanyContactList = new Gson().fromJson(outSourceCompanyJsonStr,new TypeToken<ArrayList<CustomerContact>>() {}.getType());
if(!CollectionUtils.isEmpty(outSourceCompanyContactList)){
for(OutSourceCompanyContact outSourceCompanyContact : outSourceCompanyContactList){
if(outSourceCompanyContact.getFirstTag() == 1){
outSourceCompanyInfoDTO.setFirstContactMobile(outSourceCompanyContact.getMobile());
outSourceCompanyInfoDTO.setFirstContactName(outSourceCompanyContact.getName());
}
}
}
}
}
}
}
}
return PageUtil.toPage(outSourceCompanyInfoDTOPage);
}
@Override
@ -119,15 +148,33 @@ public class OutSourceCompanyInfoServiceImpl implements OutSourceCompanyInfoServ
}
@Override
public OutSourceCompanyInfoDTO findById(Long id) {
Optional<OutSourceCompanyInfo> bdOutSourceCompanyInfo = outSourceCompanyInfoRepository.findById(id);
ValidationUtil.isNull(bdOutSourceCompanyInfo,"OutSourceCompanyInfo","id",id);
return outSourceCompanyInfoMapper.toDto(bdOutSourceCompanyInfo.get());
public OutSourceCompanyInfoDetailDTO findById(Long id) {
OutSourceCompanyInfoDetailDTO outSourceCompanyInfoDetailDTO = new OutSourceCompanyInfoDetailDTO();
Optional<OutSourceCompanyInfo> outSourceCompanyInfoOptional = outSourceCompanyInfoRepository.findById(id);
OutSourceCompanyInfo outSourceCompanyInfo = outSourceCompanyInfoOptional.get();
OutSourceCompanyInfoDTO outSourceCompanyInfoDTO = outSourceCompanyInfoMapper.toDto(outSourceCompanyInfo);
if(null != outSourceCompanyInfoDTO){
BeanUtils.copyProperties( outSourceCompanyInfoDTO, outSourceCompanyInfoDetailDTO);
String outSourceCompanyAddressJsonStr = outSourceCompanyInfo.getOutSourceCompanyAddress();
if(StringUtils.hasLength(outSourceCompanyAddressJsonStr)){
List<OutSourceCompanyAddress> outSourceCompanyAddressList = new Gson().fromJson(outSourceCompanyAddressJsonStr,new TypeToken<ArrayList<OutSourceCompanyAddress>>() {}.getType());
outSourceCompanyInfoDetailDTO.setOutSourceCompanyAddress(outSourceCompanyAddressList);
}
String outSourceCompanyContactJsonStr = outSourceCompanyInfo.getOutSourceCompanyContact();
if(StringUtils.hasLength(outSourceCompanyContactJsonStr)){
List<OutSourceCompanyContact> outSourceCompanyContactList = new Gson().fromJson(outSourceCompanyContactJsonStr,new TypeToken<ArrayList<OutSourceCompanyContact>>() {}.getType());
outSourceCompanyInfoDetailDTO.setOutSourceCompanyContact(outSourceCompanyContactList);
}
}
return outSourceCompanyInfoDetailDTO;
}
@Override
@Transactional(rollbackFor = Exception.class)
public OutSourceCompanyInfoDTO create(CreateOutSourceCompanyInfoRequest createOutSourceCompanyInfoRequest) {
public OutSourceCompanyInfoDetailDTO create(CreateOutSourceCompanyInfoRequest createOutSourceCompanyInfoRequest) {
OutSourceCompanyInfoDetailDTO outSourceCompanyInfoDetailDTO = new OutSourceCompanyInfoDetailDTO();
OutSourceCompanyInfo outSourceCompanyInfo = new OutSourceCompanyInfo();
@ -154,11 +201,48 @@ public class OutSourceCompanyInfoServiceImpl implements OutSourceCompanyInfoServ
@Override
@Transactional(rollbackFor = Exception.class)
public void update(OutSourceCompanyInfo resources) {
Optional<OutSourceCompanyInfo> optionalBdOutSourceCompanyInfo = outSourceCompanyInfoRepository.findById(resources.getId());
ValidationUtil.isNull( optionalBdOutSourceCompanyInfo,"BdOutSourceCompanyInfo","id",resources.getId());
OutSourceCompanyInfo outSourceCompanyInfo = optionalBdOutSourceCompanyInfo.get();
outSourceCompanyInfo.copy(resources);
public void update(UpdateOutSourceCompanyInfoRequest updateOutSourceCompanyInfoRequest) {
Long outSourceCompanyInfoId = updateOutSourceCompanyInfoRequest.getId();
if(null == outSourceCompanyInfoId){
throw new BadRequestException("委外公司主键不能为空!");
}
// 委外公司资料-客户联系地址修改目标
List<OutSourceCompanyAddress> outSourceCompanyInfoAddressListUpdateTarget = updateOutSourceCompanyInfoRequest.getOutSourceCompanyAddress();
// 委外公司资料-供应商联系方式修改目标
List<OutSourceCompanyContact> outSourceCompanyInfoContactListUpdateTarget = updateOutSourceCompanyInfoRequest.getOutSourceCompanyContact();
OutSourceCompanyInfo outSourceCompanyInfo = outSourceCompanyInfoRepository.findByIdAndStatusTrue(outSourceCompanyInfoId);
if(null == outSourceCompanyInfo){
throw new BadRequestException("委外公司不存在");
}
Timestamp createTime = outSourceCompanyInfo.getCreateTime();
// 将需要修改的值复制到数据库对象中
BeanUtils.copyProperties(updateOutSourceCompanyInfoRequest, outSourceCompanyInfo);
// 判断提前获取的供应商联系地址和联系方式是否是空
if(CollectionUtils.isEmpty(outSourceCompanyInfoAddressListUpdateTarget)){
outSourceCompanyInfo.setOutSourceCompanyAddress(null);
}else{
String supplierAddressStr = new Gson().toJson(outSourceCompanyInfoAddressListUpdateTarget);
outSourceCompanyInfo.setOutSourceCompanyAddress(supplierAddressStr);
}
if(CollectionUtils.isEmpty(outSourceCompanyInfoContactListUpdateTarget)){
outSourceCompanyInfo.setOutSourceCompanyContact(null);
}else{
String supplierContactStr = new Gson().toJson(outSourceCompanyInfoContactListUpdateTarget);
outSourceCompanyInfo.setOutSourceCompanyContact(supplierContactStr);
}
outSourceCompanyInfo.setCreateTime(createTime);
outSourceCompanyInfo.setStatus(true);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
outSourceCompanyInfo.setUpdateTime(Timestamp.valueOf(sdf.format(new Date())));
// 修改委外资料
outSourceCompanyInfoRepository.save(outSourceCompanyInfo);
}