bug
This commit is contained in:
parent
822cf45ccd
commit
29b43bf087
@ -6,6 +6,7 @@ import com.pusong.business.domain.PsCompanyInfo;
|
|||||||
import com.pusong.common.translation.annotation.Translation;
|
import com.pusong.common.translation.annotation.Translation;
|
||||||
import com.pusong.common.translation.constant.TransConstant;
|
import com.pusong.common.translation.constant.TransConstant;
|
||||||
import com.pusong.system.domain.SysUser;
|
import com.pusong.system.domain.SysUser;
|
||||||
|
import com.pusong.system.domain.vo.SysUserVo;
|
||||||
import io.github.linpeilie.annotations.AutoMapper;
|
import io.github.linpeilie.annotations.AutoMapper;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
@ -183,7 +184,7 @@ public class PsCompanyInfoVo implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 跟进人员
|
* 跟进人员
|
||||||
*/
|
*/
|
||||||
private List<SysUser> followUsers;
|
private List<SysUserVo> followUsers;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 客户姓名
|
* 客户姓名
|
||||||
|
@ -9,6 +9,8 @@ import com.pusong.business.domain.vo.PsCompanyInfoVo;
|
|||||||
import com.pusong.common.mybatis.annotation.DataColumn;
|
import com.pusong.common.mybatis.annotation.DataColumn;
|
||||||
import com.pusong.common.mybatis.annotation.DataPermission;
|
import com.pusong.common.mybatis.annotation.DataPermission;
|
||||||
import com.pusong.common.mybatis.core.mapper.BaseMapperPlus;
|
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 org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -33,5 +35,5 @@ public interface PsCompanyInfoMapper extends BaseMapperPlus<PsCompanyInfo, PsCom
|
|||||||
|
|
||||||
List<PsCompanyInfoVo> selectVoCustomManager(@Param(Constants.WRAPPER) Wrapper<PsCompanyInfo> queryWrapper, @Param("contractCode")String contractCode);
|
List<PsCompanyInfoVo> selectVoCustomManager(@Param(Constants.WRAPPER) Wrapper<PsCompanyInfo> queryWrapper, @Param("contractCode")String contractCode);
|
||||||
|
|
||||||
|
List<SysUserVo> selectFollowUser(@Param(Constants.WRAPPER) Wrapper<PsCompanyInfo> queryWrapper);
|
||||||
}
|
}
|
||||||
|
@ -49,7 +49,7 @@ public interface IPsApproverRecordService {
|
|||||||
* @param from 0通用审批 1财务审批代账 2总裁审批代账
|
* @param from 0通用审批 1财务审批代账 2总裁审批代账
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
String approver(String operate, String [] id,String desc, int from);
|
String[] approver(String operate, String [] id,String desc, int from);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据条件查询最后一条审批失败的原因
|
* 根据条件查询最后一条审批失败的原因
|
||||||
|
@ -127,7 +127,7 @@ public interface IPsContractInfoService {
|
|||||||
* 合同完成
|
* 合同完成
|
||||||
* @param contractCode 合同编码
|
* @param contractCode 合同编码
|
||||||
*/
|
*/
|
||||||
String finish(String contractCode);
|
String finish(String... contractCodes);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -50,7 +50,6 @@ public class RolbackApproverServiceImpl extends ApproverAbstractServiceImpl {
|
|||||||
|
|
||||||
PsContractInfoVo src = contractInfoService.queryContractByCode(psApproverRecord.getContractCode());
|
PsContractInfoVo src = contractInfoService.queryContractByCode(psApproverRecord.getContractCode());
|
||||||
noticeService.sendNotice(SysNoticeBo.getPdfRolbackInstance(src.getCustomManager(), src.getPsCustomInfoVo().getCustomName()));
|
noticeService.sendNotice(SysNoticeBo.getPdfRolbackInstance(src.getCustomManager(), src.getPsCustomInfoVo().getCustomName()));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -94,7 +94,8 @@ public class PsApproverRecordServiceImpl implements IPsApproverRecordService {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@Transactional
|
@Transactional
|
||||||
public String approver(String operate, String[] ids, String desc, int from){
|
public String[] approver(String operate, String[] ids, String desc, int from){
|
||||||
|
List<String> contractCodeList = new ArrayList<>();
|
||||||
for (String idStr : ids) {
|
for (String idStr : ids) {
|
||||||
Long id = Long.valueOf(idStr);
|
Long id = Long.valueOf(idStr);
|
||||||
PsApproverRecord info = baseMapper.selectById(id);
|
PsApproverRecord info = baseMapper.selectById(id);
|
||||||
@ -124,14 +125,15 @@ public class PsApproverRecordServiceImpl implements IPsApproverRecordService {
|
|||||||
info.setApproverDate(new Date());
|
info.setApproverDate(new Date());
|
||||||
|
|
||||||
baseMapper.updateById(info);
|
baseMapper.updateById(info);
|
||||||
|
contractCodeList.add(info.getContractCode());
|
||||||
}
|
}
|
||||||
// if(StringUtils.equals(info.getBusinessType(), ApproverTypeEnum.PAY.getCode())||
|
// if(StringUtils.equals(info.getBusinessType(), ApproverTypeEnum.PAY.getCode())||
|
||||||
// StringUtils.equals(info.getBusinessType(),ApproverTypeEnum.ROLBACK.getCode())||
|
// StringUtils.equals(info.getBusinessType(),ApproverTypeEnum.ROLBACK.getCode())||
|
||||||
// StringUtils.equals(info.getBusinessType(),ApproverTypeEnum.TASKFINISH.getCode())){
|
// StringUtils.equals(info.getBusinessType(),ApproverTypeEnum.TASKFINISH.getCode())){
|
||||||
//
|
//
|
||||||
// }
|
// }
|
||||||
// return ids;
|
return contractCodeList.toArray(new String[contractCodeList.size()]);
|
||||||
return null;
|
// return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -24,6 +24,9 @@ import com.pusong.common.core.utils.MapstructUtils;
|
|||||||
import com.pusong.common.core.utils.StringUtils;
|
import com.pusong.common.core.utils.StringUtils;
|
||||||
import com.pusong.common.mybatis.core.page.PageQuery;
|
import com.pusong.common.mybatis.core.page.PageQuery;
|
||||||
import com.pusong.common.mybatis.core.page.TableDataInfo;
|
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 jakarta.annotation.Resource;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
@ -31,6 +34,7 @@ import org.slf4j.LoggerFactory;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.function.Function;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -57,6 +61,8 @@ public class PsCompanyInfoServiceImpl implements IPsCompanyInfoService {
|
|||||||
@Resource
|
@Resource
|
||||||
private PsApproverRecordMapper recordMapper;
|
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.getCustomMobile() != null,"cus.custom_mobile",bo.getCustomMobile());
|
||||||
lqw.like(bo.getCompanyName() != null,"com.company_name",bo.getCompanyName());
|
lqw.like(bo.getCompanyName() != null,"com.company_name",bo.getCompanyName());
|
||||||
lqw.eq(bo.getServiceStatus() != null,"com.service_status",bo.getServiceStatus());
|
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 ");
|
StringBuilder sql = new StringBuilder("select 1 from ps_contract_business cb where cb.company_id = com.id ");
|
||||||
if (bo.getType() == 2){ //非托管
|
if (bo.getType() == 2){ //非托管
|
||||||
@ -157,7 +165,17 @@ public class PsCompanyInfoServiceImpl implements IPsCompanyInfoService {
|
|||||||
queryParam.in("cc.company_id", companyIds);
|
queryParam.in("cc.company_id", companyIds);
|
||||||
List<PsContractBusinessVo> psContractBusinessVos = contractBusinessMapper.selectTuoGuanBusinessList(queryParam);
|
List<PsContractBusinessVo> psContractBusinessVos = contractBusinessMapper.selectTuoGuanBusinessList(queryParam);
|
||||||
Map<Long, List<PsContractBusinessVo>> contractBusinessVoMap = psContractBusinessVos.stream().collect(Collectors.groupingBy(PsContractBusinessVo::getCompanyId, Collectors.toList()));
|
Map<Long, List<PsContractBusinessVo>> contractBusinessVoMap = psContractBusinessVos.stream().collect(Collectors.groupingBy(PsContractBusinessVo::getCompanyId, Collectors.toList()));
|
||||||
|
|
||||||
|
QueryWrapper<PsCompanyInfo> query = Wrappers.query();
|
||||||
|
query.in("cf.company_id", companyIds);
|
||||||
|
List<SysUserVo> sysUsers = baseMapper.selectFollowUser(query);
|
||||||
|
Map<Long, List<SysUserVo>> userMap = new HashMap<>();
|
||||||
|
for (SysUserVo sysUser : sysUsers) {
|
||||||
|
List<SysUserVo> list = userMap.computeIfAbsent(sysUser.getCompanyId(), aLong -> new ArrayList<>());
|
||||||
|
list.add(sysUser);
|
||||||
|
}
|
||||||
for (PsCompanyInfoVo record : result.getRecords()) {
|
for (PsCompanyInfoVo record : result.getRecords()) {
|
||||||
|
record.setFollowUsers(userMap.get(record.getId()));
|
||||||
record.setBusinessVoList(contractBusinessVoMap.get(record.getId()));
|
record.setBusinessVoList(contractBusinessVoMap.get(record.getId()));
|
||||||
if (record.getBusinessVoList() == null){
|
if (record.getBusinessVoList() == null){
|
||||||
continue;
|
continue;
|
||||||
|
@ -791,18 +791,23 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
|||||||
* 1. 回款全部完成
|
* 1. 回款全部完成
|
||||||
* 2. 任务全部完成
|
* 2. 任务全部完成
|
||||||
* 3. 回传合同:根据【回传合同的条件】进行判断,必须回传合同的,需回传合同后审批通过,才能算完成。
|
* 3. 回传合同:根据【回传合同的条件】进行判断,必须回传合同的,需回传合同后审批通过,才能算完成。
|
||||||
* @param contractCode 合同编码
|
* @param contractCodes 合同编码
|
||||||
*/
|
*/
|
||||||
@Transactional
|
@Transactional
|
||||||
public String finish(String contractCode) {
|
public String finish(String... contractCodes) {
|
||||||
|
for (String contractCode : contractCodes) {
|
||||||
if (StringUtils.isBlank(contractCode)) {
|
if (StringUtils.isBlank(contractCode)) {
|
||||||
return "contractCode 参数错误";
|
// return "contractCode 参数错误";
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
Long num = taskMainMapper.selectCount(Wrappers.<PsTaskMain>lambdaQuery()
|
Long num = taskMainMapper.selectCount(Wrappers.<PsTaskMain>lambdaQuery()
|
||||||
.eq(PsTaskMain::getContractCode, contractCode)
|
.eq(PsTaskMain::getContractCode, contractCode)
|
||||||
.ne(PsTaskMain::getTaskType, TaskTypeEnum.INVOICE.getCode())
|
.ne(PsTaskMain::getTaskType, TaskTypeEnum.INVOICE.getCode())
|
||||||
.notIn(PsTaskMain::getTaskStatus, TaskStatusEnum.returnFinish()));
|
.notIn(PsTaskMain::getTaskStatus, TaskStatusEnum.returnFinish()));
|
||||||
PsContractInfoVo info = this.queryContractByCode(contractCode);
|
PsContractInfoVo info = this.queryContractByCode(contractCode);
|
||||||
|
if (info == null){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
//任务已完成 合同已回传 回款已结束
|
//任务已完成 合同已回传 回款已结束
|
||||||
boolean rollbackFlag = true;
|
boolean rollbackFlag = true;
|
||||||
|
|
||||||
@ -838,20 +843,24 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!rollbackFlag){
|
if (!rollbackFlag){
|
||||||
return "未回传合同";
|
// return "未回传合同";
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(num > 0){
|
if(num > 0){
|
||||||
return "还有未完任务";
|
// return "还有未完任务";
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
if (info.getResidualMoney().compareTo(BigDecimal.ZERO) > 0){
|
if (info.getResidualMoney().compareTo(BigDecimal.ZERO) > 0){
|
||||||
return "还有未回款";
|
// return "还有未回款";
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
PsContractInfo psContractInfo = new PsContractInfo();
|
PsContractInfo psContractInfo = new PsContractInfo();
|
||||||
psContractInfo.setContractCode(contractCode);
|
psContractInfo.setContractCode(contractCode);
|
||||||
psContractInfo.setContractStatus(ContractStatusEnum.SUCCESS.getCode());
|
psContractInfo.setContractStatus(ContractStatusEnum.SUCCESS.getCode());
|
||||||
psContractInfo.setFinishDate(new Date());
|
psContractInfo.setFinishDate(new Date());
|
||||||
this.updateByCode(psContractInfo);
|
this.updateByCode(psContractInfo);
|
||||||
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -916,7 +925,7 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService {
|
|||||||
serviceScheduleVo.setApprove(CollectionUtils.isNotEmpty(appro)?appro.get(0).getUpdateBy():null);
|
serviceScheduleVo.setApprove(CollectionUtils.isNotEmpty(appro)?appro.get(0).getUpdateBy():null);
|
||||||
}
|
}
|
||||||
//是否已完成(1是 0否)
|
//是否已完成(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;
|
return serviceScheduleVo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -78,8 +78,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
cus.custom_name,
|
cus.custom_name,
|
||||||
cus.custom_mobile,
|
cus.custom_mobile,
|
||||||
cusi.custom_name custom_introducer,
|
cusi.custom_name custom_introducer,
|
||||||
usr.user_id fu_user_id,
|
|
||||||
usr.nick_name fu_nick_name,
|
|
||||||
app1.id app_id,
|
app1.id app_id,
|
||||||
app1.apply_desc app_apply_desc,
|
app1.apply_desc app_apply_desc,
|
||||||
app1.approver_status app_approver_status,
|
app1.approver_status app_approver_status,
|
||||||
@ -87,8 +86,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
from ps_company_info com
|
from ps_company_info com
|
||||||
left join ps_custom_info cus on com.custom_id = cus.id
|
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_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 (
|
left join (
|
||||||
SELECT business_id, max(apply_date) max_apply_date
|
SELECT business_id, max(apply_date) max_apply_date
|
||||||
FROM ps_approver_record
|
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
|
left join ps_contract_business_detail det on det.business_id = bus.id
|
||||||
${ew.getCustomSqlSegment}
|
${ew.getCustomSqlSegment}
|
||||||
</select>
|
</select>
|
||||||
|
<select id="selectFollowUser" resultType="com.pusong.system.domain.vo.SysUserVo">
|
||||||
|
select u.*,cf.company_id from ps_company_follow cf
|
||||||
|
inner join sys_user u on u.user_id = cf.user_id
|
||||||
|
${ew.getCustomSqlSegment}
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
@ -108,7 +108,6 @@ public class SysUser extends TenantEntity {
|
|||||||
*/
|
*/
|
||||||
private String openid;
|
private String openid;
|
||||||
|
|
||||||
|
|
||||||
public SysUser(Long userId) {
|
public SysUser(Long userId) {
|
||||||
this.userId = userId;
|
this.userId = userId;
|
||||||
}
|
}
|
||||||
|
@ -145,5 +145,9 @@ public class SysUserVo implements Serializable {
|
|||||||
* 1时需要后台开通 2需要手机号授权登录,
|
* 1时需要后台开通 2需要手机号授权登录,
|
||||||
*/
|
*/
|
||||||
private Integer code;
|
private Integer code;
|
||||||
|
/**
|
||||||
|
* 公司id
|
||||||
|
*/
|
||||||
|
private Long companyId;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user