cy
2022-06-21 129904537f66509f97b285e7eb4f42b3dc349dd0
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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
package cn.ksource.web.controller.business.pages.desktop;
 
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
 
import cn.ksource.beans.GG_USER;
import cn.ksource.core.license.LicenseController;
import cn.ksource.core.page.PageInfo;
import cn.ksource.core.util.ConvertUtil;
import cn.ksource.core.util.DateUtil;
import cn.ksource.core.util.JsonUtil;
import cn.ksource.core.util.ParamsMapUtil;
import cn.ksource.core.util.StringUtil;
import cn.ksource.core.web.LoginUser;
import cn.ksource.core.web.WebUtil;
import cn.ksource.web.Constants;
import cn.ksource.web.GnConstants;
import cn.ksource.web.SysConstants;
import cn.ksource.web.facade.JsglFacade;
import cn.ksource.web.facade.customermanage.CustomerManageFacade;
import cn.ksource.web.facade.desktop.DesktopFacade;
import cn.ksource.web.facade.incident.IncidentFacade;
import cn.ksource.web.facade.order.OrderFacade;
import cn.ksource.web.facade.question.QuestionFacade;
import cn.ksource.web.facade.traffic.TrafficFacade;
import cn.ksource.web.facade.zc.ZcywFacade;
import de.schlichtherle.license.LicenseContent;
 
@Controller
@RequestMapping("/business/pages/desktop")
public class DesktopController {
    
    @Resource
    private JsglFacade jsglFacade;
    @Resource
    private OrderFacade orderFacade;
    @Resource
    private IncidentFacade incidentFacade;
    @Resource
    private QuestionFacade questionFacade;
    @Resource
    private ZcywFacade zcywFacade;
    @Resource
    private DesktopFacade desktopFacade;
    @Resource
    private CustomerManageFacade customerFacade;
    @Autowired
    private TrafficFacade trafficFacade;
    
    /**
     * 跳转页面
     * @param model
     * @param request
     * @return
     * @author chenlong
     */
    @RequestMapping("homeJump.html")
    public String homeJump(Model model,HttpServletRequest request){
        ModelAndView view = new ModelAndView();
        //默认地址
        String url = "/business/pages/desktop/defaultDesk.html";
        List<Map> roles = jsglFacade.getRolesByUserId(WebUtil.getLoginedUserId(request), 1);
        if(roles.size()>1){
            url = "/business/pages/desktop/selDesk.html";
        }else if(roles.size()==1){
            String identify = ConvertUtil.obj2StrBlank(roles.get(0).get("identify"));
            if (StringUtil.isNotBlank(identify)) {
                url = Constants.getINDEX(identify);
            }
        }
        return "redirect:"+url;
    }
    
    /**
     * 默认桌面
     * @return
     * @author chenlong
     */
    @RequestMapping("defaultDesk.html")
    public String defaultDesk(Model model,HttpServletRequest request){
        setAc(request,model);
        return "/business/pages/desktop/defaultDesk";
    }
    
    /**
     * 跳转到系统管理员桌面
     */
    @RequestMapping("sysmanager.html")
    public String sysmanager(Model model,HttpServletRequest request) {
        LicenseController licenseController = new LicenseController();
        LicenseContent license;
        String licenseFileName = "license.lic";
        String path = this.getClass().getClassLoader().getResource("").getPath().replace("WEB-INF/classes/", "");
        try {
            license = licenseController.installLicense(path + licenseFileName);
            SimpleDateFormat df = new SimpleDateFormat("yyyyMMdd");
            String expire = df.format(license.getNotAfter());
            Long expireDay = DateUtil.getFromTime2TimeByDay(DateUtil.getCurrentDate8(),Long.valueOf(expire));
            model.addAttribute("expireDay", expireDay);
            model.addAttribute("expire", expire);
        } catch (Exception e) {
            e.printStackTrace();
        }
        setAc(request,model);
        setFunList(request,model);
        return "/business/pages/desktop/sysmanager";
    }
    
    /**
     * 公司领导
     * @return
     * @author chenlong
     */
    @RequestMapping("leaderDesk.html")
    public String leaderDesk(Model model,HttpServletRequest request){
        setAc(request,model);
        List<Map> cusList = customerFacade.getCusList();
        model.addAttribute("cusList", cusList);
        return "/business/pages/desktop/leaderDesk";
    }
    
    /**
     * 管理层桌面
     * @return
     * @author chenlong
     */
    @RequestMapping("manageDesk.html")
    public String manageDesk(Model model,HttpServletRequest request){
        setAc(request,model);
        List<Map> cusList = customerFacade.getCusList();
        model.addAttribute("cusList", cusList);
        return "/business/pages/desktop/manageDesk";
    }
    
    /**
     * 服务台桌面
     * @return
     * @author chenlong
     */
    @RequestMapping("serviceDesk.html")
    public String serviceDesk(Model model,HttpServletRequest request){
        setAc(request,model);
        Map<String,String> params = ParamsMapUtil.getParameterMap(request);
        params.put("userId", WebUtil.getLoginedUserId(request));
        int order_num = orderFacade.queryMyOrderCount(params);//我的工单数量
        int out_num = incidentFacade.queryincidentTimeoutCount(params);//超时数量
        int pool_num = orderFacade.orderpoolCount(params);//工单池数量
        int incident_num = incidentFacade.queryincidentJxzCount(params);//事件数量
        int question_count = questionFacade.queryQuestionJxzCount(params);//问题
        int local_count = zcywFacade.zcywCountForFwt(params);//驻场运维
        int remind_count = 0;//例行维护
        int health_count = 0;//健康检查
        int satis_count = 0;//满意度
        model.addAttribute("order_num", order_num);
        model.addAttribute("out_num", out_num);
        model.addAttribute("pool_num", pool_num);
        model.addAttribute("incident_num", incident_num);
        model.addAttribute("question_count", question_count);
        model.addAttribute("local_count", local_count);
        model.addAttribute("remind_count", remind_count);
        model.addAttribute("health_count", health_count);
        model.addAttribute("satis_count", satis_count);
        //查询工单类型
        Map<String, String> state = Constants.mapWORKFLOW_BASE_BUSINESS_TYPE;
        List ways = new ArrayList();
        for (Map.Entry<String, String> entry : state.entrySet()) {  
            String key = entry.getKey();
            String value = entry.getValue();
            Map map = new HashMap();
            map.put("typeId", key);
            map.put("typeName", value);
            ways.add(map);
        }
        model.addAttribute("types", ways);
        setMyOrder(request, model);
        return "/business/pages/desktop/serviceDesk";
    }
    
    
    /**
     * 一线桌面
     * @return
     * @author chenlong
     */
    @RequestMapping("flineDesk.html")
    public String flineDesk(Model model,HttpServletRequest request){
        setAc(request,model);
        setMyOrder(request, model);
        return "/business/pages/desktop/flineDesk";
    }
    
    /**
     * 二线桌面
     * @return
     * @author chenlong
     */
    @RequestMapping("slineDesk.html")
    public String slineDesk(Model model,HttpServletRequest request){
        setAc(request,model);
        setMyOrder(request, model);
        return "/business/pages/desktop/slineDesk";
    }
    
    /**
     * 三线桌面
     * @return
     * @author chenlong
     */
    @RequestMapping("tlineDesk.html")
    public String tlineDesk(Model model,HttpServletRequest request){
        setAc(request,model);
        setMyOrder(request, model);
        return "/business/pages/desktop/tlineDesk";
    }
    
    /**
     * 驻场桌面
     * @return
     * @author chenlong
     */
    @RequestMapping("locationDesk.html")
    public String locationDesk(Model model,HttpServletRequest request){
        setAc(request,model);
        setMyOrder(request, model);
        return "/business/pages/desktop/locationDesk";
    }
    
    /**
     * 运维经理桌面
     * @return
     * @author chenlong
     */
    @RequestMapping("operationDesk.html")
    public String operationDesk(Model model,HttpServletRequest request){
        setAc(request,model);
        List<Map> cusList = customerFacade.getCusList();
        model.addAttribute("cusList", cusList);
        //查询工单类型
        Map<String, String> state = Constants.mapWORKFLOW_BASE_BUSINESS_TYPE;
        List ways = new ArrayList();
        for (Map.Entry<String, String> entry : state.entrySet()) {  
            String key = entry.getKey();
            String value = entry.getValue();
            Map map = new HashMap();
            map.put("typeId", key);
            map.put("typeName", value);
            ways.add(map);
        }
        model.addAttribute("types", ways);
        setMyOrder(request, model);
        return "/business/pages/desktop/operationDesk";
    }
    
    /**
     * 配置管理员
     * @param model
     * @param request
     * @return
     * @author chenlong
     */
    @RequestMapping("cfgDesk.html")
    public String cfgDesk(Model model,HttpServletRequest request){
        setAc(request,model);
        setMyOrder(request,model);
        return "/business/pages/desktop/cfgDesk";
    }
    
    /**
     * 知识管理员桌面
     * @return
     * @author chenlong
     */
    @RequestMapping("knowDesk.html")
    public String knowDesk(Model model,HttpServletRequest request){
        setAc(request,model);
        setMyOrder(request, model);
        return "/business/pages/desktop/knowDesk";
    }
    
    
    /**
     * 选择桌面类型
     * @param model
     * @param request
     * @return
     * @author chenlong
     */
    @SuppressWarnings({ "rawtypes", "unchecked" })
    @RequestMapping(value="selDesk.html",method=RequestMethod.GET) 
    public String selDesk(Model model,HttpServletRequest request){
        List<Map> list = jsglFacade.getRolesByUserId(WebUtil.getLoginedUserId(request), 1);
        model.addAttribute("list", list);
        return "/business/pages/desktop/selDesk";
    }
    
    /**
     * 选择桌面
     * @param model
     * @param request
     * @return
     * @author chenlong
     */
    @RequestMapping(value="selDesk.html",method=RequestMethod.POST) 
    public String doSelDesk(Model model,HttpServletRequest request){
        String roleId = request.getParameter("roleId");
        String userId = WebUtil.getLoginedUserId(request);
        jsglFacade.setDefaultRole(userId, roleId);
        //默认地址
        String url = "/business/pages/desktop/defaultDesk.html";
        List<Map> roles = jsglFacade.getRolesByUserId(WebUtil.getLoginedUserId(request), 1);
        if(roles.size()>1){
            url = "/business/pages/desktop/selDesk.html";
        }else if(roles.size()==1){
            String identify = ConvertUtil.obj2StrBlank(roles.get(0).get("identify"));
            if (StringUtil.isNotBlank(identify)) {
                url = Constants.getINDEX(identify);
            }
        }
        return "redirect:"+url;
    }
    /**
     * 设置权限
     * @param request
     * @param model
     * @author chenlong
     */
    private void setAc(HttpServletRequest request,Model model){
        LoginUser user = WebUtil.getLoginUser(request);
        Map<String, List<Map>> gnMap = user.getGnMap();
        Map<String, List<Map>> ejgnMap = user.getEjgnMap();
        Map param=ParamsMapUtil.getParameterMap(request);
        Map countNum=trafficFacade.getTrafficNum(param);
        model.addAttribute("countNum", countNum);
    }
    
    /**
     * 运维经理桌面详情
     * @param request
     * @param model
     * @return
     * @author chenlong
     */
    @RequestMapping(value="operationDeskDetail.html",method=RequestMethod.POST) 
    public String operationDeskDetail(HttpServletRequest request,Model model){
        String cusId = request.getParameter("cusId");
        Map info = desktopFacade.getOperationDeskDetail(cusId);
        model.addAttribute("info", info);
        return "/business/pages/desktop/operationDeskDetail";
    }
    
    @RequestMapping("getCusSatisfactionSurvey.html")
    public void getCusSatisfactionSurvey(Model model,HttpServletRequest request, HttpServletResponse response){
        Map SurveyMap = desktopFacade.getCusSatisfactionSurvey(request);
        WebUtil.write(response, JsonUtil.map2Json(SurveyMap));
    }
    
    @RequestMapping("getCusSatisfactionDetail.html")
    public void getCusSatisfactionDetail(Model model,HttpServletRequest request, HttpServletResponse response){
        String cusId = request.getParameter("cusId");
        Map SurveyMap = desktopFacade.getCusSatisfactionDetail(cusId);
        System.out.println(JsonUtil.map2Json(SurveyMap));
        WebUtil.write(response, JsonUtil.map2Json(SurveyMap));
    }
    
    @RequestMapping("getLastStep.html")
    public void getLastStep(Model model,HttpServletRequest request, HttpServletResponse response){
        String lastIndex = request.getParameter("lastIndex");
        List<Map> cusList = customerFacade.getCusList();
        List<Map> targetList = new ArrayList<Map>();
        int flag = Integer.valueOf(lastIndex)-6;
        if(flag>=0){
            for(int i=0;i<6;i++){
                int index = flag + i;
                if(index==0){
                    cusList.get(index).put("flowTop", true);
                }
                cusList.get(index).put("index", index);
                targetList.add(cusList.get(index));
            }
        }
        WebUtil.write(response, JsonUtil.list2Json(targetList));
    }
    
    /**
     * 获取下一页项目
     * @param model
     * @param request
     * @param response
     */
    @RequestMapping("getNextStep.html")
    public void getNextStep(Model model,HttpServletRequest request, HttpServletResponse response){
        String nextIndex = request.getParameter("nextIndex");
        List<Map> cusList = customerFacade.getCusList();
        List<Map> targetList = new ArrayList<Map>();
        for(int i=1;i<=6;i++){
            int index = Integer.valueOf(nextIndex)+i;
            if(index<cusList.size()){
                if(index==cusList.size()-1){
                    cusList.get(index).put("flowOver", true);
                }
                cusList.get(index).put("index", index);
                targetList.add(cusList.get(index));
            }
        }
        WebUtil.write(response, JsonUtil.list2Json(targetList));
    }
    
    private void setMyOrder(HttpServletRequest request,Model model){
        PageInfo pageInfo = new PageInfo();
        Map<String, String> params = ParamsMapUtil.getParameterMap(request);
        params.put("userId", WebUtil.getUserId(request));
        params.put("flowstate", Constants.WORKFLOW_NODE_FLOWSTATE_UNDISPOSE.toString());
        params.put("status", Constants.WORKFLOW_BASE_WFSTATE_DOING.toString());
        pageInfo = orderFacade.queryMyOrderData(pageInfo,params);
        model.addAttribute("pageInfo", pageInfo);
    }
    
    private void setFunList(HttpServletRequest request,Model model){
        List lv3Set = new ArrayList();
        LoginUser loginUser = WebUtil.getLoginUser(request);
        Map gnMap = loginUser.getGnMap();
        if(null!=gnMap&&gnMap.containsKey(GnConstants.XGSZ)) {
            Map lv1Map= (Map)gnMap.get(GnConstants.XGSZ);
            if(null!=lv1Map) {
                List<Map> lv2List = (List<Map>)lv1Map.get("MENULIST");
                if(lv2List!=null&&lv2List.size()>0){
                    for(Map lv2Map:lv2List){
                        if(lv2Map.get("MENULIST")!=null){
                            List<Map> lv3List = (List<Map>)lv2Map.get("MENULIST");
                            for(Map lv3Map:lv3List){
                                lv3Set.add(lv3Map);
                            }
                        }
                    }
                }
            }
        }
        model.addAttribute("lv3Set", lv3Set);
    }
    @RequestMapping("updateUser.html")
    public void updateUser(HttpServletRequest request,HttpServletResponse response){
        String id=WebUtil.getLoginedUserId(request);
        GG_USER user=new GG_USER(id).getInstanceById();
        String is_tp=request.getParameter("is_tp");
        user.setIs_tp(ConvertUtil.obj2Integer(is_tp)).update();
        Map loguser=(Map)request.getSession().getAttribute("loguser");
        loguser.put("IS_TP", ConvertUtil.obj2Integer(is_tp));
        request.getSession().setAttribute("loguser", loguser);
    }
}