若依框架在导航菜单上增加待办任务数

因为有大量查询和统计,所以不再前端页面上做,尽量1次请求完成。集成SysMenuService接口的实现类SysMenuServiceImpl,重写selectMenuTreeByUserId()函数,将衍生类标记为主要@Primary。

package com.ruoyi.web.service.impl;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Service;

import com.ruoyi.common.core.domain.entity.SysMenu;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.ibs.contract.domain.IbsContract;
import com.ruoyi.ibs.contract.service.IIbsContractService;
import com.ruoyi.ibs.goods.domain.BizPurchasePlan;
import com.ruoyi.ibs.goods.service.IBizPurchasePlanService;
import com.ruoyi.ibs.meal.domain.BizMeal;
import com.ruoyi.ibs.meal.service.IBizMealService;
import com.ruoyi.ibs.meeting.domain.IbsMeeting;
import com.ruoyi.ibs.meeting.service.IIbsMeetingService;
import com.ruoyi.ibs.msg.domain.IbsMymsg;
import com.ruoyi.ibs.msg.service.IIbsMymsgService;
import com.ruoyi.ibs.news.domain.FicNewsInfo;
import com.ruoyi.ibs.news.service.IFicNewsInfoService;
import com.ruoyi.ibs.officialdoc.domain.IbsDocumentReceive;
import com.ruoyi.ibs.officialdoc.domain.IbsDocumentSend;
import com.ruoyi.ibs.officialdoc.service.IIbsDocumentReceiveService;
import com.ruoyi.ibs.officialdoc.service.IIbsDocumentSendService;
import com.ruoyi.ibs.repair.domain.BizRepairOrder;
import com.ruoyi.ibs.repair.service.IBizRepairOrderService;
import com.ruoyi.ibs.vehicle.domain.IbsVa;
import com.ruoyi.ibs.vehicle.service.IIbsVaService;
import com.ruoyi.system.mapper.SysMenuMapper;
import com.ruoyi.system.service.impl.SysMenuServiceImpl;

/**
*@author    created by Jerry
*@date  2022年9月21日---下午2:28:29
*@problem
*@answer
*@action
*/

@Service
@Primary
public class SysMenuServiceImplEx extends SysMenuServiceImpl{

    @Autowired
    private SysMenuMapper menuMapper;
    
    @Autowired
    private IIbsVaService ibsVaService;
    
    @Autowired
    private IIbsContractService ibsContractService;
    
    @Autowired
    private IIbsMeetingService ibsMeetingService;
    
    @Autowired
    private IIbsDocumentSendService ibsDocumentSendService;
    
    @Autowired
    private IIbsDocumentReceiveService ibsDocumentReceiveService;
    
    @Autowired
    private IIbsMymsgService ibsMymsgService;
    
    @Autowired
    private IFicNewsInfoService ficNewsInfoService;
    
    @Autowired
    private IBizMealService bizMealService;
    
    @Autowired
    private IBizPurchasePlanService bizPurchasePlanService;
    
    @Autowired
    private IBizRepairOrderService bizRepairOrderService;
    
    @Override
	public List<SysMenu> selectMenuTreeByUserId(Long userId) {
		List<SysMenu> menus = null;
        if (SecurityUtils.isAdmin(userId))
        {
            menus = menuMapper.selectMenuTreeAll();
        }
        else
        {
            menus = menuMapper.selectMenuTreeByUserId(userId);
        }
        selectTodoTask(userId,menus);
        return getChildPerms(menus, 0);
	}
	
	private void selectTodoTask(Long userId, List<SysMenu> menus){
		List<String> perms = menuMapper.selectMenuPermsByUserId(userId);
        Set<String> permsSet = new HashSet<>();
        for (String perm : perms)
        {
            if (StringUtils.isNotEmpty(perm))
            {
                permsSet.addAll(Arrays.asList(perm.trim().split(",")));
            }
        }
        for (Iterator iterator = menus.iterator(); iterator.hasNext();) {
			SysMenu sysMenu = (SysMenu) iterator.next();
			switch (sysMenu.getMenuName()) {
			case "车辆申请":
				/** 所有非草稿、未完结的申请单 */
				Boolean isme = true;
				IbsVa ibsVa = new IbsVa();
				for (Iterator iterator2 = permsSet.iterator(); iterator2.hasNext();) {
					String string = (String) iterator2.next();
					if(string.equals("vehicle:va:approve1")) {
						// 本部门的
						ibsVa.setVaAdid(SecurityUtils.getLoginUser().getUser().getDeptId().toString());
					}
					
					if(
							string.equals("vehicle:va:approve1") ||
							string.equals("vehicle:va:approve2") ||
							string.equals("vehicle:va:approve3") ||
							string.equals("vehicle:va:config") 
							) {
						isme = false;
					}
					
					
				}
				if(isme){
					// 查本人的
					ibsVa.setVaAuid(SecurityUtils.getLoginUser().getUser().getUserId().toString());
				}
				List<IbsVa> vaList = ibsVaService.selectIbsVaList(ibsVa);
				if(vaList.size() != 0)
				{
					sysMenu.setMenuName(sysMenu.getMenuName() + "--" + vaList.size());
				}
				break;
			case "部门负责人审核":
				/** 待部门负责人审核 */
				BizRepairOrder bizRepairOrder1 = new BizRepairOrder();
				bizRepairOrder1.setRepairOrder("0");
				List<BizRepairOrder> zoList1 = bizRepairOrderService.selectBizRepairOrderListWL(bizRepairOrder1);
				if(zoList1.size() != 0) {
					sysMenu.setMenuName(sysMenu.getMenuName() + "--" + zoList1.size());
				}
				break;
			case "维修部门负责人审核":
				/** 待维修部门负责人审核 */
				BizRepairOrder bizRepairOrder2 = new BizRepairOrder();
				bizRepairOrder2.setRepairOrder("2");
				List<BizRepairOrder> zoList2 = bizRepairOrderService.selectBizRepairOrderListWL(bizRepairOrder2);
				if(zoList2.size() != 0) {
					sysMenu.setMenuName(sysMenu.getMenuName() + "--" + zoList2.size());
				}
				break;
			case "院长审核":
				/** 待院长审核 */
				BizRepairOrder bizRepairOrder3 = new BizRepairOrder();
				bizRepairOrder3.setRepairOrder("4");
				List<BizRepairOrder> zoList3 = bizRepairOrderService.selectBizRepairOrderListWL(bizRepairOrder3);
				if(zoList3.size() != 0) {
					sysMenu.setMenuName(sysMenu.getMenuName() + "--" + zoList3.size());
				}
				break;
			case "设备维修部管理":
				/** 待设备维修部提交验收 */
				BizRepairOrder bizRepairOrder4 = new BizRepairOrder();
				bizRepairOrder4.setRepairOrder("10");
				List<BizRepairOrder> zoList4 = bizRepairOrderService.selectBizRepairOrderListWL(bizRepairOrder4);
				if(zoList4.size() != 0) {
					sysMenu.setMenuName(sysMenu.getMenuName() + "--" + zoList4.size());
				}
				break;
			case "申报部门验收":
				/** 待申报部门验收 */
				BizRepairOrder bizRepairOrder5 = new BizRepairOrder();
				bizRepairOrder5.setRepairOrder("50");
				List<BizRepairOrder> zoList5 = bizRepairOrderService.selectBizRepairOrderListWL(bizRepairOrder5);
				if(zoList5.size() != 0) {
					sysMenu.setMenuName(sysMenu.getMenuName() + "--" + zoList5.size());
				}
				break;
			case "综合保障部验收":
				/** 待综合保障部验收 */
				BizRepairOrder bizRepairOrder6 = new BizRepairOrder();
				bizRepairOrder6.setRepairOrder("20");
				List<BizRepairOrder> zoList6 = bizRepairOrderService.selectBizRepairOrderListWL(bizRepairOrder6);
				if(zoList6.size() != 0) {
					sysMenu.setMenuName(sysMenu.getMenuName() + "--" + zoList6.size());
				}
				break;
			case "部门审批":
				/** 所有本部门待部门审批的采购计划 */
				BizPurchasePlan bizPurchasePlan = new BizPurchasePlan();
				bizPurchasePlan.setPurchaseStatue("20");
				Long deptId = SecurityUtils.getLoginUser().getUser().getDeptId();
		        bizPurchasePlan.setPurBlext1(Long.toString(deptId));
				List<BizPurchasePlan> bppList = bizPurchasePlanService.selectBizPurchasePlanListWL(bizPurchasePlan);
				if(bppList.size() != 0) {
					sysMenu.setMenuName(sysMenu.getMenuName() + "--" + bppList.size());
				}
				break;
			case "院长审批":
				/** 所有待院长审批的采购计划 */
				BizPurchasePlan bizPurchasePlan1 = new BizPurchasePlan();
				bizPurchasePlan1.setPurchaseStatue("30");
				List<BizPurchasePlan> bppList1 = bizPurchasePlanService.selectBizPurchasePlanListWL(bizPurchasePlan1);
				if(bppList1.size() != 0) {
					sysMenu.setMenuName(sysMenu.getMenuName() + "--" + bppList1.size());
				}
				break;
			case "合同审批":
				/** 所有未归档的合同 */
				IbsContract ibsContract = new IbsContract();
				List<IbsContract> contractList = ibsContractService.selectIbsContractList(ibsContract);
				if(contractList.size() != 0) {
					sysMenu.setMenuName(sysMenu.getMenuName() + "--" + contractList.size());
				}
				break;
			case "分管领导审核":
				/** 所有待分管领导审核 */
				BizMeal bizMeal = new BizMeal();
				bizMeal.setAuditState("1");
				List<BizMeal> mealList = bizMealService.selectBizMealListAudit(bizMeal);
				if(mealList.size() != 0) {
					sysMenu.setMenuName(sysMenu.getMenuName() + "--" + mealList.size());
				}
				break;
			case "党政工作部审核":
				/** 所有待党政工作部审核 */
				BizMeal bizMeal1 = new BizMeal();
				bizMeal1.setAuditState("4");
				List<BizMeal> mealList1 = bizMealService.selectBizMealListAudit(bizMeal1);
				if(mealList1.size() != 0) {
					sysMenu.setMenuName(sysMenu.getMenuName() + "--" + mealList1.size());
				}
				break;
			case "会议申请":
				/** 所有待审批的会议申请 */
				Boolean isme0 = true;
				IbsMeeting ibsMeeting = new IbsMeeting();
				for (Iterator iterator2 = permsSet.iterator(); iterator2.hasNext();) {
					String string = (String) iterator2.next();
					if(string.equals("meeting:meeting:approve1")) {
						// 本部门的
						ibsMeeting.setmDid(SecurityUtils.getLoginUser().getUser().getDeptId().toString());
					}
					
					if(string.equals("meeting:meeting:approve4")) {
						// 院务会议
						ibsMeeting.setmType("院务会议");
					}
					
					if(string.equals("meeting:meeting:approve5")) {
						// 党委会议
						ibsMeeting.setmType("党委会议");
					}

					if(
							string.equals("meeting:meeting:approve1") ||
							string.equals("meeting:meeting:approve2") ||
							string.equals("meeting:meeting:approve3") ||
							string.equals("meeting:meeting:approve4") ||
							string.equals("meeting:meeting:approve5")
							)
					{
						isme0 = false;
					}
				}
				if(isme0)
				{
					// 查本人的
					ibsMeeting.setmUid(SecurityUtils.getLoginUser().getUser().getUserId().toString());
				}
				List<IbsMeeting> meetingList = ibsMeetingService.selectIbsMeetingList(ibsMeeting);
				if(meetingList.size() != 0) {
					sysMenu.setMenuName(sysMenu.getMenuName() + "--" + meetingList.size());
				}
				break;
			case "发文管理":
				/** 所有未完结的发文 */
				IbsDocumentSend ibsDocumentSend = new IbsDocumentSend();
				List<IbsDocumentSend> dsList = ibsDocumentSendService.selectIbsDocumentSendList(ibsDocumentSend);
				if(dsList.size() != 0) {
					sysMenu.setMenuName(sysMenu.getMenuName() + "--" + dsList.size());
				}
				break;
			case "文件阅办":
				/** 所有未完结的阅办 */
				IbsDocumentReceive ibsDocumentReceive = new IbsDocumentReceive();
				List<IbsDocumentReceive> drList = ibsDocumentReceiveService.selectIbsDocumentReceiveList(ibsDocumentReceive);
				if(drList.size() != 0) {
					sysMenu.setMenuName(sysMenu.getMenuName() + "--" + drList.size());
				}
				break;
			case "通知信息":
				/** 所有待审批通知数 */
				FicNewsInfo ficNewsInfo = new FicNewsInfo();
				ficNewsInfo.setAuditStatus(0);
				List<FicNewsInfo> newsList = ficNewsInfoService.selectFicNewsInfoList(ficNewsInfo);
				if(newsList.size() != 0)
				{
					sysMenu.setMenuName(sysMenu.getMenuName() + "--" + newsList.size());
				}
				break;
			case "我的消息":
				/** 本用户所有未读消息数 */
				IbsMymsg ibsMymsg = new IbsMymsg();
				ibsMymsg.setMymsgStatus("N");
				ibsMymsg.setUserId(userId);
				List<IbsMymsg> myMsgList = ibsMymsgService.selectIbsMymsgList(ibsMymsg);
				if(myMsgList.size() != 0) {
					sysMenu.setMenuName(sysMenu.getMenuName() + "--" + myMsgList.size());
				}
				break;
				
			}
			
		}

    }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

外码斯迪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值