ludc
2024-09-14 36c2449aec5b51e5ed4e5c6841154b746060e09a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
package com.vci.web.service.impl;
 
 
import com.vci.starter.web.exception.VciBaseException;
import com.vci.starter.web.pagemodel.DataGrid;
import com.vci.starter.web.pagemodel.PageHelper;
import com.vci.starter.web.pagemodel.SessionInfo;
import com.vci.starter.web.util.BeanUtil;
import com.vci.starter.web.util.VciBaseUtil;
import com.vci.dto.WebHomeTaskActionDTO;
import com.vci.model.WebHomeTaskActionDO;
import com.vci.pagemodel.WebHomeTaskActionVO;
import com.vci.web.service.WebBoServiceI;
import com.vci.web.service.WebHomeTaskServiceI;
import com.vci.web.util.WebUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
 
import java.util.*;
import java.util.stream.Collectors;
 
/**
 * 首页待办任务的服务
 * @author weidy
 */
@Service
public class WebHomeTaskServiceImpl implements WebHomeTaskServiceI {
 
    /**
     * 日志
     */
    private Logger logger = LoggerFactory.getLogger(getClass());
 
    /**
     * 业务数据的服务
     */
    @Autowired
    private WebBoServiceI boService;
 
    /**
     * 获取当前用户的首页待办任务
     *
     * @return 任务汇总的数量
     */
    @Override
    public List<WebHomeTaskActionVO> listMyHomeTask()  {
        List<WebHomeTaskActionVO> actionVOS = new ArrayList<>();
        List<WebHomeTaskActionDO> allActions = boService.queryObject(WebHomeTaskActionDO.class,null);
        if (!CollectionUtils.isEmpty(allActions)) {
            SessionInfo sessionInfo = WebUtil.getCurrentUserSessionInfo();
            if(sessionInfo ==null){
                throw new VciBaseException("没有登录");
            }
            List<String> myFunctionOids = sessionInfo.getFunctionOids();
            allActions = allActions.stream().filter(s -> !CollectionUtils.isEmpty(myFunctionOids) && myFunctionOids.contains(s.getId())).collect(Collectors.toList());
        }
        if(!CollectionUtils.isEmpty(allActions)){
            allActions.stream().forEach(action->{
                WebHomeTaskActionVO taskActionVO = new WebHomeTaskActionVO();
                BeanUtil.convert(action,taskActionVO);
                actionVOS.add(taskActionVO);
            });
        }
        return actionVOS;
    }
    /**
     * 获取当前用户,用于缓存中 。。。别的地方不要调用
     * @return 当前用户的主键
     */
    @Override
    public String getCurrentUserOid(){
        return WebUtil.getCurrentUserOid();
    }
 
    /**
     * 添加首页待办任务的action
     *
     * @param action 数据对象
     */
    @Override
    public void addAction(WebHomeTaskActionDTO action){
        WebUtil.alertNotNull(action,"要添加的信息为空",action.getId(),"菜单的主键",action.getName(),"菜单的名称",action.getCountUrl(),"调用的地址");
        WebHomeTaskActionDO actionDO = new WebHomeTaskActionDO();
        BeanUtil.convert(action,actionDO);
        actionDO.setOid(VciBaseUtil.getPk());
        boService.addSave(actionDO);
    }
 
    /**
     * 修改待办任务的action信息
     *
     * @param action 数据对象
     */
    @Override
    public void editAction(WebHomeTaskActionDTO action)  {
        WebUtil.alertNotNull(action,"要修改的信息为空",action.getOid(),"主键",action.getTs(),"时间戳");
        WebHomeTaskActionDO actionDO = boService.selectByOid(action.getOid(),WebHomeTaskActionDO.class);
        BeanUtil.convert(action,actionDO);
        boService.editSave(actionDO);
    }
 
    /**
     * 删除待办任务的action信息
     *
     * @param action 数据对象
     */
    @Override
    public void deleteAction(WebHomeTaskActionDTO action) throws VciBaseException {
        WebUtil.alertNotNull(action,"要删除的信息为空",action.getOid(),"主键",action.getTs(),"时间戳");
        if(boService.checkTs(action)) {
            WebHomeTaskActionDO actionDO = boService.selectByOid(action.getOid(), WebHomeTaskActionDO.class);
            boService.delete(actionDO);
        }
    }
 
    /**
     * 查询所有的待办任务动作定义
     *
     * @param conditionMap 查询条件
     * @param pageHelper   分页信息
     * @return 数据对象
     */
    @Override
    public DataGrid dataGrid(Map<String, String> conditionMap, PageHelper pageHelper) throws VciBaseException{
        if(pageHelper == null){
            pageHelper = new PageHelper(-1);
        }
        pageHelper.addDefaultDesc("createTime");
        DataGrid dataGrid = boService.queryGridClass(WebHomeTaskActionDO.class,conditionMap,pageHelper);
        if(!CollectionUtils.isEmpty(dataGrid.getData())){
            List<WebHomeTaskActionVO> taskActionVOS = new ArrayList<>();
            dataGrid.getData().forEach(action->{
                WebHomeTaskActionVO taskActionVO = new WebHomeTaskActionVO();
                BeanUtil.convert((WebHomeTaskActionDO)action,taskActionVO);
                taskActionVOS.add(taskActionVO);
            });
            dataGrid.setData(taskActionVOS);
        }
        return dataGrid;
    }
 
}