fix bug 41816 工作组项目--会议维护--工作组项目负责人应该可以看到全部的会议

This commit is contained in:
lijiarao
2021-11-01 17:03:55 +08:00
parent e1d8e6896a
commit 9f2f28c268
6 changed files with 59 additions and 10 deletions
@@ -8,6 +8,8 @@ import org.apache.ibatis.annotations.Param;
import com.jero.meeting.entity.PayMeeting;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
/**
* @Description: 会议管理
* @Author: jero-boot
@@ -21,4 +23,6 @@ public interface PayMeetingMapper extends BaseMapper<PayMeeting> {
@Param("now") String now);
IPage<PayMeeting> internelPage(Page<PayMeeting> page, @Param(Constants.WRAPPER) QueryWrapper<PayMeeting> queryWrapper);
IPage<PayMeeting> workGroupPage(Page<PayMeeting> page, @Param(Constants.WRAPPER) QueryWrapper<PayMeeting> queryWrapper);
}
@@ -22,4 +22,6 @@ public interface PayMeetingSituationMapper extends BaseMapper<PayMeetingSituatio
IPage<PayMeetingSituation> pageListContract(Page<PayMeetingSituation> page,
@Param(Constants.WRAPPER) QueryWrapper<PayMeetingSituation> queryWrapper);
IPage<PayMeetingSituation> pageListContractWorkGroup(Page<PayMeetingSituation> page,
@Param(Constants.WRAPPER) QueryWrapper<PayMeetingSituation> queryWrapper);
}
@@ -92,4 +92,12 @@
left join pay_meeting_situation pms on pm.id = pms.meeting_id
${ew.customSqlSegment}
</select>
<select id="workGroupPage" resultMap="PayMeetingResultMap">
select distinct pm.*
from pay_meeting pm
left join pay_meeting_situation pms on pm.id = pms.meeting_id
left join pay_working_group pwg on pwg.id = pm.working_group_id
${ew.customSqlSegment}
</select>
</mapper>
@@ -155,8 +155,17 @@
<select id="pageListContract" resultMap="PayMeetingSituationResultMap">
select distinct pms.*
from pay_meeting_situation pms
left join pay_meeting pm on pms.meeting_id = pm.id
left JOIN pay_payment_record ppr ON ppr.project_id = pms.id
left join pay_meeting pm on pms.meeting_id = pm.id
left JOIN pay_payment_record ppr ON ppr.project_id = pms.id
${ew.customSqlSegment}
</select>
<select id="pageListContractWorkGroup" resultMap="PayMeetingSituationResultMap">
select distinct pms.*
from pay_meeting_situation pms
left join pay_meeting pm on pms.meeting_id = pm.id
left JOIN pay_payment_record ppr ON ppr.project_id = pms.id
left join pay_working_group pwg on pwg.id = pm.working_group_id
${ew.customSqlSegment}
</select>
</mapper>
@@ -577,16 +577,27 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
}
if (StringUtils.isNotBlank(permission)) {
if (!Objects.equals(permission,"standardMeeting:search") && !rolePermissionService.getRolePermission(permission)) {
if (!meetingType.equals(MeetingCommon.INTERNATIONAL_MEETING_INT)) {
queryWrapper.eq("director_id", sysUser.getId());
pageList = page(page, queryWrapper);
}else {
if (meetingType.equals(MeetingCommon.WORKING_GROUP_MEETING_INT)) {
queryWrapper.and(
a -> a.eq("pwg.principal_id_a", sysUser.getId())
.or()
.eq("pwg.principal_id_b", sysUser.getId())
.or()
.eq("dock_id", sysUser.getId())
.or()
.eq("pm.director_id", sysUser.getId())
);
pageList = baseMapper.workGroupPage(page,queryWrapper);
}else if (meetingType.equals(MeetingCommon.INTERNATIONAL_MEETING_INT)){
queryWrapper.and(
a -> a.eq("director_id", sysUser.getId())
.or()
.eq("dock_id", sysUser.getId())
);
pageList = baseMapper.internelPage(page,queryWrapper);
}else {
queryWrapper.eq("director_id", sysUser.getId());
pageList = page(page, queryWrapper);
}
}else {
pageList = page(page, queryWrapper);
@@ -726,18 +726,33 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
@Override
public IPage<PayMeetingSituation> pageListContract(Page<PayMeetingSituation> page, QueryWrapper<PayMeetingSituation> queryWrapper,Integer meetingType) {
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String userId = loginUser.getId();
queryWrapper.eq("pm.meeting_type",meetingType);
if (!rolePermissionService.getRolePermission("committeeMeetingSituation:search")) {
if (meetingType.equals(MeetingCommon.WORKING_GROUP_MEETING_INT)){
queryWrapper.and(
a -> a.eq("pms.dock_id", userId)
.or()
.eq("pm.director_id", userId)
.or()
.eq("pwg.principal_id_a", userId)
.or()
.eq("pwg.principal_id_b", userId)
);
return baseMapper.pageListContractWorkGroup(page,queryWrapper);
}
if (meetingType.equals(MeetingCommon.INTERNATIONAL_MEETING_INT)){
queryWrapper.and(
a -> a.eq("pms.dock_id",loginUser.getId())
a -> a.eq("pms.dock_id", userId)
.or()
.eq("pm.director_id",loginUser.getId())
.eq("pm.director_id", userId)
);
return baseMapper.pageListContract(page,queryWrapper);
}else {
queryWrapper.eq("pm.director_id", loginUser.getId());
queryWrapper.eq("pm.director_id", userId);
return baseMapper.pageListContract(page,queryWrapper);
}
}
queryWrapper.eq("pm.meeting_type",meetingType);
return baseMapper.pageListContract(page,queryWrapper);
}