From 29b43bf08709e5ca613577e7a67843a783671955 Mon Sep 17 00:00:00 2001 From: mx <1289317512@qq.com> Date: Thu, 31 Oct 2024 14:42:15 +0800 Subject: [PATCH] bug --- .../business/domain/vo/PsCompanyInfoVo.java | 3 +- .../business/mapper/PsCompanyInfoMapper.java | 4 +- .../service/IPsApproverRecordService.java | 2 +- .../service/IPsContractInfoService.java | 2 +- .../impl/RolbackApproverServiceImpl.java | 1 - .../impl/PsApproverRecordServiceImpl.java | 8 +- .../impl/PsCompanyInfoServiceImpl.java | 20 +++- .../impl/PsContractInfoServiceImpl.java | 101 ++++++++++-------- .../mapper/business/PsCompanyInfoMapper.xml | 11 +- .../com/pusong/system/domain/SysUser.java | 1 - .../pusong/system/domain/vo/SysUserVo.java | 4 + 11 files changed, 96 insertions(+), 61 deletions(-) diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsCompanyInfoVo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsCompanyInfoVo.java index c21521e..d82b333 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsCompanyInfoVo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/vo/PsCompanyInfoVo.java @@ -6,6 +6,7 @@ import com.pusong.business.domain.PsCompanyInfo; import com.pusong.common.translation.annotation.Translation; import com.pusong.common.translation.constant.TransConstant; import com.pusong.system.domain.SysUser; +import com.pusong.system.domain.vo.SysUserVo; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; @@ -183,7 +184,7 @@ public class PsCompanyInfoVo implements Serializable { /** * 跟进人员 */ - private List followUsers; + private List followUsers; /** * 客户姓名 diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsCompanyInfoMapper.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsCompanyInfoMapper.java index 1321c2a..fe256c1 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsCompanyInfoMapper.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/mapper/PsCompanyInfoMapper.java @@ -9,6 +9,8 @@ import com.pusong.business.domain.vo.PsCompanyInfoVo; import com.pusong.common.mybatis.annotation.DataColumn; import com.pusong.common.mybatis.annotation.DataPermission; import com.pusong.common.mybatis.core.mapper.BaseMapperPlus; +import com.pusong.system.domain.SysUser; +import com.pusong.system.domain.vo.SysUserVo; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -33,5 +35,5 @@ public interface PsCompanyInfoMapper extends BaseMapperPlus selectVoCustomManager(@Param(Constants.WRAPPER) Wrapper queryWrapper, @Param("contractCode")String contractCode); - + List selectFollowUser(@Param(Constants.WRAPPER) Wrapper queryWrapper); } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsApproverRecordService.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsApproverRecordService.java index ebe69ae..0fb78b4 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsApproverRecordService.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsApproverRecordService.java @@ -49,7 +49,7 @@ public interface IPsApproverRecordService { * @param from 0通用审批 1财务审批代账 2总裁审批代账 * @return */ - String approver(String operate, String [] id,String desc, int from); + String[] approver(String operate, String [] id,String desc, int from); /** * 根据条件查询最后一条审批失败的原因 diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsContractInfoService.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsContractInfoService.java index afe2bb4..7442cab 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsContractInfoService.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsContractInfoService.java @@ -127,7 +127,7 @@ public interface IPsContractInfoService { * 合同完成 * @param contractCode 合同编码 */ - String finish(String contractCode); + String finish(String... contractCodes); /** diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/RolbackApproverServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/RolbackApproverServiceImpl.java index 39edf13..d7053be 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/RolbackApproverServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/RolbackApproverServiceImpl.java @@ -50,7 +50,6 @@ public class RolbackApproverServiceImpl extends ApproverAbstractServiceImpl { PsContractInfoVo src = contractInfoService.queryContractByCode(psApproverRecord.getContractCode()); noticeService.sendNotice(SysNoticeBo.getPdfRolbackInstance(src.getCustomManager(), src.getPsCustomInfoVo().getCustomName())); - } @Override diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsApproverRecordServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsApproverRecordServiceImpl.java index 5d3b385..92f74f0 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsApproverRecordServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsApproverRecordServiceImpl.java @@ -94,7 +94,8 @@ public class PsApproverRecordServiceImpl implements IPsApproverRecordService { * @return */ @Transactional - public String approver(String operate, String[] ids, String desc, int from){ + public String[] approver(String operate, String[] ids, String desc, int from){ + List contractCodeList = new ArrayList<>(); for (String idStr : ids) { Long id = Long.valueOf(idStr); PsApproverRecord info = baseMapper.selectById(id); @@ -124,14 +125,15 @@ public class PsApproverRecordServiceImpl implements IPsApproverRecordService { info.setApproverDate(new Date()); baseMapper.updateById(info); + contractCodeList.add(info.getContractCode()); } // if(StringUtils.equals(info.getBusinessType(), ApproverTypeEnum.PAY.getCode())|| // StringUtils.equals(info.getBusinessType(),ApproverTypeEnum.ROLBACK.getCode())|| // StringUtils.equals(info.getBusinessType(),ApproverTypeEnum.TASKFINISH.getCode())){ // // } -// return ids; - return null; + return contractCodeList.toArray(new String[contractCodeList.size()]); +// return null; } /** 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 cb8ceff..eca1493 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 @@ -24,6 +24,9 @@ import com.pusong.common.core.utils.MapstructUtils; import com.pusong.common.core.utils.StringUtils; import com.pusong.common.mybatis.core.page.PageQuery; import com.pusong.common.mybatis.core.page.TableDataInfo; +import com.pusong.system.domain.SysUser; +import com.pusong.system.domain.vo.SysUserVo; +import com.pusong.system.mapper.SysUserMapper; import jakarta.annotation.Resource; import lombok.RequiredArgsConstructor; import org.slf4j.Logger; @@ -31,6 +34,7 @@ import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; /** @@ -57,6 +61,8 @@ public class PsCompanyInfoServiceImpl implements IPsCompanyInfoService { @Resource private PsApproverRecordMapper recordMapper; + private SysUserMapper sysUserMapper; + /** * 查询公司信息 * @@ -136,7 +142,9 @@ public class PsCompanyInfoServiceImpl implements IPsCompanyInfoService { lqw.like(bo.getCustomMobile() != null,"cus.custom_mobile",bo.getCustomMobile()); lqw.like(bo.getCompanyName() != null,"com.company_name",bo.getCompanyName()); lqw.eq(bo.getServiceStatus() != null,"com.service_status",bo.getServiceStatus()); - lqw.exists(StringUtils.isNotBlank(bo.getUserName()),"select 1 from sys_user fsu where fsu.user_id = cf.user_id and fsu.nick_name like '%"+bo.getUserName()+"%'"); + lqw.exists(StringUtils.isNotBlank(bo.getUserName()),"select 1 from sys_user fsu LEFT JOIN ps_company_follow cf on com.id = cf.company_id where fsu.user_id = cf.user_id and fsu.nick_name like '%"+bo.getUserName()+"%'"); + lqw.exists("select 1 FROM ps_contract_company cc inner join ps_contract_pay pay on pay.contract_code = cc.contract_code where cc.company_id = com.id"); + StringBuilder sql = new StringBuilder("select 1 from ps_contract_business cb where cb.company_id = com.id "); if (bo.getType() == 2){ //非托管 @@ -157,7 +165,17 @@ public class PsCompanyInfoServiceImpl implements IPsCompanyInfoService { queryParam.in("cc.company_id", companyIds); List psContractBusinessVos = contractBusinessMapper.selectTuoGuanBusinessList(queryParam); Map> contractBusinessVoMap = psContractBusinessVos.stream().collect(Collectors.groupingBy(PsContractBusinessVo::getCompanyId, Collectors.toList())); + + QueryWrapper query = Wrappers.query(); + query.in("cf.company_id", companyIds); + List sysUsers = baseMapper.selectFollowUser(query); + Map> userMap = new HashMap<>(); + for (SysUserVo sysUser : sysUsers) { + List list = userMap.computeIfAbsent(sysUser.getCompanyId(), aLong -> new ArrayList<>()); + list.add(sysUser); + } for (PsCompanyInfoVo record : result.getRecords()) { + record.setFollowUsers(userMap.get(record.getId())); record.setBusinessVoList(contractBusinessVoMap.get(record.getId())); if (record.getBusinessVoList() == null){ continue; 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 3df5323..1d6e244 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 @@ -791,40 +791,30 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { * 1. 回款全部完成 * 2. 任务全部完成 * 3. 回传合同:根据【回传合同的条件】进行判断,必须回传合同的,需回传合同后审批通过,才能算完成。 - * @param contractCode 合同编码 + * @param contractCodes 合同编码 */ @Transactional - public String finish(String contractCode) { - if (StringUtils.isBlank(contractCode)) { - return "contractCode 参数错误"; - } - Long num = taskMainMapper.selectCount(Wrappers.lambdaQuery() - .eq(PsTaskMain::getContractCode, contractCode) - .ne(PsTaskMain::getTaskType, TaskTypeEnum.INVOICE.getCode()) - .notIn(PsTaskMain::getTaskStatus, TaskStatusEnum.returnFinish())); - PsContractInfoVo info = this.queryContractByCode(contractCode); - //任务已完成 合同已回传 回款已结束 - boolean rollbackFlag = true; + public String finish(String... contractCodes) { + for (String contractCode : contractCodes) { + if (StringUtils.isBlank(contractCode)) { +// return "contractCode 参数错误"; + continue; + } + Long num = taskMainMapper.selectCount(Wrappers.lambdaQuery() + .eq(PsTaskMain::getContractCode, contractCode) + .ne(PsTaskMain::getTaskType, TaskTypeEnum.INVOICE.getCode()) + .notIn(PsTaskMain::getTaskStatus, TaskStatusEnum.returnFinish())); + PsContractInfoVo info = this.queryContractByCode(contractCode); + if (info == null){ + continue; + } + //任务已完成 合同已回传 回款已结束 + boolean rollbackFlag = true; - if (!StringUtils.equals(info.getRollBackStatus(), CommonStatusEnum.SUCCESS.getCode())) { - if (!info.isTuoguanService()) {//非托管服务 - if (info.getContractAmount().doubleValue() >= 8000) { - //1. 合同金额 > = 8000元,必须回传合同,【电子签章】申请成功后才能回传合同 - rollbackFlag = false; - } else { - //合同金额< 8000元,无需回传合同,【电子签章】申请成功后,必须回传合同 - if (CommonStatusEnum.ING.getCode().equals(info.getSignStatus()) - || CommonStatusEnum.SUCCESS.getCode().equals(info.getSignStatus())) {//申请了电子章 - rollbackFlag = false; - } - } - }else{//托管服务 - if (info.getIsDue().equals("0")){//新签 - //不论合同金额大小,必须回传合同 - rollbackFlag = false; - } else{//续费 + if (!StringUtils.equals(info.getRollBackStatus(), CommonStatusEnum.SUCCESS.getCode())) { + if (!info.isTuoguanService()) {//非托管服务 if (info.getContractAmount().doubleValue() >= 8000) { - //1. 合合同金额 > = 8000元,必须回传合同,【电子签章】申请成功后才能回传合同 + //1. 合同金额 > = 8000元,必须回传合同,【电子签章】申请成功后才能回传合同 rollbackFlag = false; } else { //合同金额< 8000元,无需回传合同,【电子签章】申请成功后,必须回传合同 @@ -833,25 +823,44 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { rollbackFlag = false; } } + }else{//托管服务 + if (info.getIsDue().equals("0")){//新签 + //不论合同金额大小,必须回传合同 + rollbackFlag = false; + } else{//续费 + if (info.getContractAmount().doubleValue() >= 8000) { + //1. 合合同金额 > = 8000元,必须回传合同,【电子签章】申请成功后才能回传合同 + rollbackFlag = false; + } else { + //合同金额< 8000元,无需回传合同,【电子签章】申请成功后,必须回传合同 + if (CommonStatusEnum.ING.getCode().equals(info.getSignStatus()) + || CommonStatusEnum.SUCCESS.getCode().equals(info.getSignStatus())) {//申请了电子章 + rollbackFlag = false; + } + } + } + } - } - } - if (!rollbackFlag){ - return "未回传合同"; - } + if (!rollbackFlag){ +// return "未回传合同"; + continue; + } - if(num > 0){ - return "还有未完任务"; + if(num > 0){ +// return "还有未完任务"; + continue; + } + if (info.getResidualMoney().compareTo(BigDecimal.ZERO) > 0){ +// return "还有未回款"; + continue; + } + PsContractInfo psContractInfo = new PsContractInfo(); + psContractInfo.setContractCode(contractCode); + psContractInfo.setContractStatus(ContractStatusEnum.SUCCESS.getCode()); + psContractInfo.setFinishDate(new Date()); + this.updateByCode(psContractInfo); } - if (info.getResidualMoney().compareTo(BigDecimal.ZERO) > 0){ - return "还有未回款"; - } - PsContractInfo psContractInfo = new PsContractInfo(); - psContractInfo.setContractCode(contractCode); - psContractInfo.setContractStatus(ContractStatusEnum.SUCCESS.getCode()); - psContractInfo.setFinishDate(new Date()); - this.updateByCode(psContractInfo); return null; } @@ -916,7 +925,7 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { serviceScheduleVo.setApprove(CollectionUtils.isNotEmpty(appro)?appro.get(0).getUpdateBy():null); } //是否已完成(1是 0否) - serviceScheduleVo.setIsFinish(StringUtils.equals(ContractStatusEnum.SUCCESS.getCode(),contractInfo.getContractStatus())?1:0); + serviceScheduleVo.setIsFinish(StringUtils.equals(ContractStatusEnum.SUCCESS.getCode(), contractInfo.getContractStatus()) ? 1 : 0); return serviceScheduleVo; } diff --git a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsCompanyInfoMapper.xml b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsCompanyInfoMapper.xml index 567d62a..75fd992 100644 --- a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsCompanyInfoMapper.xml +++ b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsCompanyInfoMapper.xml @@ -78,8 +78,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" cus.custom_name, cus.custom_mobile, cusi.custom_name custom_introducer, - usr.user_id fu_user_id, - usr.nick_name fu_nick_name, + app1.id app_id, app1.apply_desc app_apply_desc, app1.approver_status app_approver_status, @@ -87,8 +86,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from ps_company_info com left join ps_custom_info cus on com.custom_id = cus.id left join ps_custom_info cusi on cus.custom_introducer = cusi.id - left join ps_company_follow cf on com.id = cf.company_id - left join sys_user usr on cf.user_id = usr.user_id left join ( SELECT business_id, max(apply_date) max_apply_date FROM ps_approver_record @@ -131,6 +128,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" left join ps_contract_business_detail det on det.business_id = bus.id ${ew.getCustomSqlSegment} - + diff --git a/pusong-modules/pusong-system/src/main/java/com/pusong/system/domain/SysUser.java b/pusong-modules/pusong-system/src/main/java/com/pusong/system/domain/SysUser.java index 1f91386..cf8a32d 100644 --- a/pusong-modules/pusong-system/src/main/java/com/pusong/system/domain/SysUser.java +++ b/pusong-modules/pusong-system/src/main/java/com/pusong/system/domain/SysUser.java @@ -108,7 +108,6 @@ public class SysUser extends TenantEntity { */ private String openid; - public SysUser(Long userId) { this.userId = userId; } diff --git a/pusong-modules/pusong-system/src/main/java/com/pusong/system/domain/vo/SysUserVo.java b/pusong-modules/pusong-system/src/main/java/com/pusong/system/domain/vo/SysUserVo.java index cdc5fa3..d0ce359 100644 --- a/pusong-modules/pusong-system/src/main/java/com/pusong/system/domain/vo/SysUserVo.java +++ b/pusong-modules/pusong-system/src/main/java/com/pusong/system/domain/vo/SysUserVo.java @@ -145,5 +145,9 @@ public class SysUserVo implements Serializable { * 1时需要后台开通 2需要手机号授权登录, */ private Integer code; + /** + * 公司id + */ + private Long companyId; }