diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsCompanyInfoService.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsCompanyInfoService.java index 7b06481..1de6450 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsCompanyInfoService.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsCompanyInfoService.java @@ -84,6 +84,8 @@ public interface IPsCompanyInfoService { */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + Boolean deleteWithValidByIds2(Collection ids, Boolean isValid); + /** * 根据合同编码查询服务公司信息 */ diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCompanyInfoServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCompanyInfoServiceImpl.java index 204217e..e32493e 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCompanyInfoServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCompanyInfoServiceImpl.java @@ -1,38 +1,38 @@ package com.pusong.business.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.pusong.business.domain.PsCompanyInfo; import com.pusong.business.domain.PsContractCompany; import com.pusong.business.domain.PsContractInfo; -import com.pusong.business.domain.PsContractPay; +import com.pusong.business.domain.bo.PsCompanyInfoBo; import com.pusong.business.domain.bo.PsCompanyQueryBo; import com.pusong.business.domain.bo.PsContractBusinessBo; +import com.pusong.business.domain.vo.PsCompanyInfoVo; import com.pusong.business.enums.ApproverTypeEnum; -import com.pusong.business.enums.PayStatusEnum; +import com.pusong.business.mapper.PsCompanyInfoMapper; import com.pusong.business.mapper.PsContractCompanyMapper; import com.pusong.business.mapper.PsContractInfoMapper; +import com.pusong.business.service.IPsCompanyInfoService; import com.pusong.business.service.approver.ApproverContainer; import com.pusong.business.service.approver.ApproverService; import com.pusong.common.core.exception.ServiceException; import com.pusong.common.core.utils.MapstructUtils; import com.pusong.common.core.utils.StringUtils; -import com.pusong.common.mybatis.core.page.TableDataInfo; import com.pusong.common.mybatis.core.page.PageQuery; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.pusong.common.mybatis.core.page.TableDataInfo; import jakarta.annotation.Resource; import lombok.RequiredArgsConstructor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; -import com.pusong.business.domain.bo.PsCompanyInfoBo; -import com.pusong.business.domain.vo.PsCompanyInfoVo; -import com.pusong.business.domain.PsCompanyInfo; -import com.pusong.business.mapper.PsCompanyInfoMapper; -import com.pusong.business.service.IPsCompanyInfoService; import java.util.ArrayList; -import java.util.List; import java.util.Collection; +import java.util.List; /** * 公司信息Service业务层处理 @@ -44,6 +44,8 @@ import java.util.Collection; @Service public class PsCompanyInfoServiceImpl implements IPsCompanyInfoService { + Logger logger = LoggerFactory.getLogger(PsCompanyInfoServiceImpl.class); + private final PsCompanyInfoMapper baseMapper; private final PsContractCompanyMapper contractCompanyMapper; private final PsContractInfoMapper contractInfoMapper; @@ -247,9 +249,28 @@ public class PsCompanyInfoServiceImpl implements IPsCompanyInfoService { */ @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if (ids.isEmpty()){ + return false; + } if(isValid){ List list = contractInfoMapper.selectList(Wrappers.lambdaQuery().in(PsContractInfo::getCompanyId, ids).eq(PsContractInfo::getDelFlag, "0")); - if(CollectionUtils.isNotEmpty(list)){throw new ServiceException("删除公司失败,已有合同使用");} + if(CollectionUtils.isNotEmpty(list)){ + logger.error("", "删除公司失败,已有合同使用"); + throw new ServiceException("删除公司失败,已有合同使用"); + } + } + return baseMapper.deleteBatchIds(ids) > 0; + } + @Override + public Boolean deleteWithValidByIds2(Collection ids, Boolean isValid) { + if (ids.isEmpty()){ + return false; + } + if(isValid){ + List list = contractInfoMapper.selectList(Wrappers.lambdaQuery().in(PsContractInfo::getCompanyId, ids).eq(PsContractInfo::getDelFlag, "0")); + if(CollectionUtils.isNotEmpty(list)){ + logger.error("", "删除公司失败,已有合同使用"); + } } return baseMapper.deleteBatchIds(ids) > 0; } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractInfoServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractInfoServiceImpl.java index 0a86428..90a07b2 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractInfoServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractInfoServiceImpl.java @@ -2,14 +2,15 @@ package com.pusong.business.service.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.pusong.business.domain.*; import com.pusong.business.domain.bo.*; import com.pusong.business.domain.vo.*; import com.pusong.business.enums.*; -import com.pusong.business.enums.TaskStatusEnum.*; +import com.pusong.business.enums.TaskStatusEnum.AppointStatusEnum; import com.pusong.business.mapper.*; import com.pusong.business.service.*; import com.pusong.business.service.approver.ApproverContainer; @@ -17,16 +18,13 @@ import com.pusong.business.service.approver.ApproverService; import com.pusong.common.core.constant.UserConstants; import com.pusong.common.core.domain.model.LoginUser; import com.pusong.common.core.exception.ServiceException; -import com.pusong.common.core.service.DictService; import com.pusong.common.core.utils.DateUtils; import com.pusong.common.core.utils.MapstructUtils; import com.pusong.common.core.utils.StringUtils; import com.pusong.common.doc.util.NumBerTool; import com.pusong.common.doc.util.PdfGenerator; -import com.pusong.common.mybatis.core.page.TableDataInfo; import com.pusong.common.mybatis.core.page.PageQuery; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.pusong.common.mybatis.core.page.TableDataInfo; import com.pusong.common.satoken.utils.LoginHelper; import com.pusong.system.domain.SysDictData; import com.pusong.system.domain.vo.SysOssVo; @@ -625,9 +623,7 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { map.put("user", user); map.put("contract", add); map.put("business", detailBos); - map.put("serviceCompany", bo.getServiceCompanyInfoList()); - map.put("main", JSON.parseObject(main.getRemark()));// 合同主体信息 map.put("company", bo.getCompanyInfoBo()); map.put("customer",customer); diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCustomInfoServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCustomInfoServiceImpl.java index 54a5583..3702f77 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCustomInfoServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsCustomInfoServiceImpl.java @@ -1,11 +1,11 @@ package com.pusong.business.service.impl; -import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.Wrapper; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.pusong.business.domain.*; import com.pusong.business.domain.bo.*; import com.pusong.business.domain.vo.*; @@ -16,22 +16,19 @@ import com.pusong.business.enums.CustomerStatusEnum; import com.pusong.business.mapper.*; import com.pusong.business.service.IPsApproverRecordService; import com.pusong.business.service.IPsCompanyInfoService; +import com.pusong.business.service.IPsCustomInfoService; import com.pusong.business.service.approver.ApproverContainer; import com.pusong.business.service.approver.ApproverService; import com.pusong.common.core.exception.ServiceException; import com.pusong.common.core.utils.DateUtils; import com.pusong.common.core.utils.MapstructUtils; import com.pusong.common.core.utils.StringUtils; -import com.pusong.common.mybatis.core.page.TableDataInfo; import com.pusong.common.mybatis.core.page.PageQuery; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.pusong.common.mybatis.core.page.TableDataInfo; import com.pusong.common.satoken.utils.LoginHelper; import jakarta.annotation.Resource; import lombok.RequiredArgsConstructor; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.pusong.business.service.IPsCustomInfoService; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; @@ -285,7 +282,30 @@ public class PsCustomInfoServiceImpl implements IPsCustomInfoService { //修改公司信息 if(CollectionUtils.isNotEmpty(bo.getCompanyInfoBos())){ bo.getCompanyInfoBos().forEach(item->{item.setCustomId(bo.getId());item.setCompanyType("1");}); - companyInfoService.saveBatchBo(bo.getCompanyInfoBos()); + + PsCompanyInfoBo q = new PsCompanyInfoBo(); + q.setCustomId(bo.getId()); + +// List existsCompany = companyInfoService.queryList(q); +// Map existsCompanyMap = existsCompany.stream() +// .collect(Collectors.toMap(PsCompanyInfoVo::getCompanyName, Function.identity())); + + List removeIds = new ArrayList<>(); + Map updateCompanyMap = new HashMap<>(); + for (PsCompanyInfoBo companyInfoBo : bo.getCompanyInfoBos()) { + PsCompanyInfoBo lastCompanyInfoBo = updateCompanyMap.get(companyInfoBo.getCompanyName()); + if (lastCompanyInfoBo != null && lastCompanyInfoBo.getId() != null){ + if (companyInfoBo.getId() != null){ + removeIds.add(companyInfoBo.getId()); + } + continue; + } + updateCompanyMap.put(companyInfoBo.getCompanyName(), companyInfoBo); + } + companyInfoService.deleteWithValidByIds2(removeIds, true); + + + companyInfoService.saveBatchBo(new ArrayList<>(updateCompanyMap.values())); } if(CollectionUtils.isNotEmpty(bo.getCompanyIds())){ companyInfoService.deleteWithValidByIds(bo.getCompanyIds(),true); @@ -318,10 +338,12 @@ public class PsCustomInfoServiceImpl implements IPsCustomInfoService { case 1://移入公海 psCustomInfo.setCustomStatus(CustomerStatusEnum.PUBLIC.getCode()); //拼装历史的所属客户经理 - if(StringUtils.isBlank(psCustomInfo.getHistoryCustomManager())){ - psCustomInfo.setHistoryCustomManager(psCustomInfo.getCustomManager()+""); - }else { - psCustomInfo.setHistoryCustomManager(psCustomInfo.getHistoryCustomManager()+","+psCustomInfo.getCustomManager()); + if (psCustomInfo.getCustomManager() != null){ + if(StringUtils.isBlank(psCustomInfo.getHistoryCustomManager())){ + psCustomInfo.setHistoryCustomManager(psCustomInfo.getCustomManager()+""); + }else { + psCustomInfo.setHistoryCustomManager(psCustomInfo.getHistoryCustomManager() + "," + psCustomInfo.getCustomManager()); + } } wq.set(PsCustomInfo::getCustomManager,null); psCustomInfo.setCustomManager(null); diff --git a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsApproverRecordMapper.xml b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsApproverRecordMapper.xml index 031fd3a..39cec5c 100644 --- a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsApproverRecordMapper.xml +++ b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsApproverRecordMapper.xml @@ -6,6 +6,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + diff --git a/pusong-modules/pusong-system/src/main/java/com/pusong/system/service/impl/SysUserServiceImpl.java b/pusong-modules/pusong-system/src/main/java/com/pusong/system/service/impl/SysUserServiceImpl.java index 237abe1..3334af3 100644 --- a/pusong-modules/pusong-system/src/main/java/com/pusong/system/service/impl/SysUserServiceImpl.java +++ b/pusong-modules/pusong-system/src/main/java/com/pusong/system/service/impl/SysUserServiceImpl.java @@ -615,6 +615,9 @@ public class SysUserServiceImpl implements ISysUserService, UserService { public String selectNicknameByIds(String userIds) { List list = new ArrayList<>(); for (Long id : StringUtils.splitTo(userIds, Convert::toLong)) { + if (id == null){ + continue; + } String nickname = SpringUtils.getAopProxy(this).selectNicknameById(id); if (StringUtils.isNotBlank(nickname)) { list.add(nickname);