|
@@ -1,5 +1,6 @@
|
|
|
package com.jeeplus.test.cw.workClientInfo.service;
|
|
|
|
|
|
+import cn.hutool.core.collection.CollectionUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
@@ -7,16 +8,27 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.google.common.collect.Lists;
|
|
|
import com.jeeplus.core.query.QueryWrapperGenerator;
|
|
|
+import com.jeeplus.sys.utils.StringUtils;
|
|
|
import com.jeeplus.test.cw.workClientInfo.domain.CwWorkClientBase;
|
|
|
+import com.jeeplus.test.cw.workClientInfo.domain.CwWorkClientBilling;
|
|
|
+import com.jeeplus.test.cw.workClientInfo.domain.CwWorkClientContact;
|
|
|
+import com.jeeplus.test.cw.workClientInfo.domain.CwWorkClientType;
|
|
|
import com.jeeplus.test.cw.workClientInfo.mapper.*;
|
|
|
import com.jeeplus.test.cw.workClientInfo.service.dto.CwWorkClientBaseDTO;
|
|
|
+import com.jeeplus.test.cw.workClientInfo.service.dto.CwWorkClientBillingDTO;
|
|
|
+import com.jeeplus.test.cw.workClientInfo.service.dto.CwWorkClientContactDTO;
|
|
|
import com.jeeplus.test.cw.workClientInfo.service.mapstruct.CwWorkClientBaseWrapper;
|
|
|
+import com.jeeplus.test.cw.workClientInfo.service.mapstruct.CwWorkClientBillingWrapper;
|
|
|
+import com.jeeplus.test.cw.workClientInfo.service.mapstruct.CwWorkClientContactWrapper;
|
|
|
+import com.jeeplus.test.cw.workClientInfo.service.mapstruct.CwWorkClientTypeWrapper;
|
|
|
import com.jeeplus.test.oss.service.OssService;
|
|
|
import org.springframework.http.ResponseEntity;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
+import java.util.List;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
@Service
|
|
|
@Transactional
|
|
@@ -25,11 +37,11 @@ public class CwWorkClientService extends ServiceImpl<CwWorkClientBaseMapper, CwW
|
|
|
@Resource
|
|
|
private CwWorkClientBaseMapper cwWorkClientBaseMapper;
|
|
|
@Resource
|
|
|
- private CwWorkClientBillingMapper cwWorkClientBillingMapper;
|
|
|
+ private CwWorkClientBillingService cwWorkClientBillingService;
|
|
|
@Resource
|
|
|
- private CwWorkClientContactMapper cwWorkClientContactMapper;
|
|
|
+ private CwWorkClientContactService cwWorkClientContactService;
|
|
|
@Resource
|
|
|
- private CwWorkClientTypeMapper cwWorkClientTypeMapper;
|
|
|
+ private CwWorkClientTypeService cwWorkClientTypeService;
|
|
|
@Resource
|
|
|
private CwManageLevelTypeService cwManageLevelTypeService;
|
|
|
@Resource
|
|
@@ -56,8 +68,55 @@ public class CwWorkClientService extends ServiceImpl<CwWorkClientBaseMapper, CwW
|
|
|
CwWorkClientBase cwWorkClientBase = CwWorkClientBaseWrapper.INSTANCE.toEntity(cwWorkClientBaseDTO);
|
|
|
this.saveOrUpdate(cwWorkClientBase);
|
|
|
if (ObjectUtil.isNotEmpty(cwWorkClientBaseDTO)) {
|
|
|
- //附件
|
|
|
+ // 附件
|
|
|
ossService.saveOrUpdateFileList(cwWorkClientBaseDTO.getWorkAttachmentDtoList(),cwWorkClientBase.getId(),"cw_work_client");
|
|
|
+ // 客户类型
|
|
|
+ if (ObjectUtil.isNotEmpty(cwWorkClientBaseDTO.getCwWorkClientTypeDTO())){
|
|
|
+ CwWorkClientType cwWorkClientType = CwWorkClientTypeWrapper.INSTANCE.toEntity(cwWorkClientBaseDTO.getCwWorkClientTypeDTO());
|
|
|
+ cwWorkClientTypeService.saveOrUpdate(cwWorkClientType);
|
|
|
+ }
|
|
|
+ // 开票信息
|
|
|
+ if (ObjectUtil.isNotEmpty(cwWorkClientBaseDTO.getCwWorkClientBillingDTOList())){
|
|
|
+ List<String> ids = cwWorkClientBaseDTO.getCwWorkClientBillingDTOList().stream().filter(item -> {
|
|
|
+ if (StringUtils.isNotBlank(item.getId())) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }).distinct().map(CwWorkClientBillingDTO::getId).collect(Collectors.toList());
|
|
|
+ if (CollectionUtil.isNotEmpty(ids)){
|
|
|
+ cwWorkClientBillingService.remove(new QueryWrapper<CwWorkClientBilling>().lambda()
|
|
|
+ .eq(CwWorkClientBilling::getClientId,cwWorkClientBase.getId()).notIn(CwWorkClientBilling::getId,ids));
|
|
|
+ } else {
|
|
|
+ cwWorkClientBillingService.remove(new QueryWrapper<CwWorkClientBilling>().lambda().eq(CwWorkClientBilling::getClientId,cwWorkClientBase.getId()));
|
|
|
+ }
|
|
|
+ cwWorkClientBaseDTO.getCwWorkClientBillingDTOList().stream().forEach(item->{
|
|
|
+ CwWorkClientBilling cwWorkClientBilling = CwWorkClientBillingWrapper.INSTANCE.toEntity(item);
|
|
|
+ cwWorkClientBillingService.saveOrUpdate(cwWorkClientBilling);
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ cwWorkClientBillingService.remove(new QueryWrapper<CwWorkClientBilling>().lambda().eq(CwWorkClientBilling::getClientId,cwWorkClientBase.getId()));
|
|
|
+ }
|
|
|
+ // 联系人信息
|
|
|
+ if (ObjectUtil.isNotEmpty(cwWorkClientBaseDTO.getCwWorkClientContactDTOList())){
|
|
|
+ List<String> ids = cwWorkClientBaseDTO.getCwWorkClientContactDTOList().stream().filter(item -> {
|
|
|
+ if (StringUtils.isNotBlank(item.getId())) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }).distinct().map(CwWorkClientContactDTO::getId).collect(Collectors.toList());
|
|
|
+ if (CollectionUtil.isNotEmpty(ids)){
|
|
|
+ cwWorkClientContactService.remove(new QueryWrapper<CwWorkClientContact>().lambda()
|
|
|
+ .eq(CwWorkClientContact::getClientId,cwWorkClientBase.getId()).notIn(CwWorkClientContact::getId,ids));
|
|
|
+ } else {
|
|
|
+ cwWorkClientContactService.remove(new QueryWrapper<CwWorkClientContact>().lambda().eq(CwWorkClientContact::getClientId,cwWorkClientBase.getId()));
|
|
|
+ }
|
|
|
+ cwWorkClientBaseDTO.getCwWorkClientContactDTOList().stream().forEach(item->{
|
|
|
+ CwWorkClientContact cwWorkClientContact = CwWorkClientContactWrapper.INSTANCE.toEntity(item);
|
|
|
+ cwWorkClientContactService.saveOrUpdate(cwWorkClientContact);
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ cwWorkClientContactService.remove(new QueryWrapper<CwWorkClientContact>().lambda().eq(CwWorkClientContact::getClientId,cwWorkClientBase.getId()));
|
|
|
+ }
|
|
|
}
|
|
|
return cwWorkClientBase.getId();
|
|
|
}
|