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.jero.meeting.entity.PayMeeting;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
/** /**
* @Description: 会议管理 * @Description: 会议管理
* @Author: jero-boot * @Author: jero-boot
@@ -21,4 +23,6 @@ public interface PayMeetingMapper extends BaseMapper<PayMeeting> {
@Param("now") String now); @Param("now") String now);
IPage<PayMeeting> internelPage(Page<PayMeeting> page, @Param(Constants.WRAPPER) QueryWrapper<PayMeeting> queryWrapper); 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, IPage<PayMeetingSituation> pageListContract(Page<PayMeetingSituation> page,
@Param(Constants.WRAPPER) QueryWrapper<PayMeetingSituation> queryWrapper); @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 left join pay_meeting_situation pms on pm.id = pms.meeting_id
${ew.customSqlSegment} ${ew.customSqlSegment}
</select> </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> </mapper>
@@ -155,8 +155,17 @@
<select id="pageListContract" resultMap="PayMeetingSituationResultMap"> <select id="pageListContract" resultMap="PayMeetingSituationResultMap">
select distinct pms.* select distinct pms.*
from pay_meeting_situation pms from pay_meeting_situation pms
left join pay_meeting pm on pms.meeting_id = pm.id 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_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} ${ew.customSqlSegment}
</select> </select>
</mapper> </mapper>
@@ -577,16 +577,27 @@ public class PayMeetingServiceImpl extends ServiceImpl<PayMeetingMapper, PayMeet
} }
if (StringUtils.isNotBlank(permission)) { if (StringUtils.isNotBlank(permission)) {
if (!Objects.equals(permission,"standardMeeting:search") && !rolePermissionService.getRolePermission(permission)) { if (!Objects.equals(permission,"standardMeeting:search") && !rolePermissionService.getRolePermission(permission)) {
if (!meetingType.equals(MeetingCommon.INTERNATIONAL_MEETING_INT)) { if (meetingType.equals(MeetingCommon.WORKING_GROUP_MEETING_INT)) {
queryWrapper.eq("director_id", sysUser.getId()); queryWrapper.and(
pageList = page(page, queryWrapper); a -> a.eq("pwg.principal_id_a", sysUser.getId())
}else { .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( queryWrapper.and(
a -> a.eq("director_id", sysUser.getId()) a -> a.eq("director_id", sysUser.getId())
.or() .or()
.eq("dock_id", sysUser.getId()) .eq("dock_id", sysUser.getId())
); );
pageList = baseMapper.internelPage(page,queryWrapper); pageList = baseMapper.internelPage(page,queryWrapper);
}else {
queryWrapper.eq("director_id", sysUser.getId());
pageList = page(page, queryWrapper);
} }
}else { }else {
pageList = page(page, queryWrapper); pageList = page(page, queryWrapper);
@@ -726,18 +726,33 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
@Override @Override
public IPage<PayMeetingSituation> pageListContract(Page<PayMeetingSituation> page, QueryWrapper<PayMeetingSituation> queryWrapper,Integer meetingType) { public IPage<PayMeetingSituation> pageListContract(Page<PayMeetingSituation> page, QueryWrapper<PayMeetingSituation> queryWrapper,Integer meetingType) {
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String userId = loginUser.getId();
queryWrapper.eq("pm.meeting_type",meetingType);
if (!rolePermissionService.getRolePermission("committeeMeetingSituation:search")) { 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)){ if (meetingType.equals(MeetingCommon.INTERNATIONAL_MEETING_INT)){
queryWrapper.and( queryWrapper.and(
a -> a.eq("pms.dock_id",loginUser.getId()) a -> a.eq("pms.dock_id", userId)
.or() .or()
.eq("pm.director_id",loginUser.getId()) .eq("pm.director_id", userId)
); );
return baseMapper.pageListContract(page,queryWrapper);
}else { }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); return baseMapper.pageListContract(page,queryWrapper);
} }