doum
2025-09-12 7d28e7367852aaa35587e4fd1bf29674ac17d5f6
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
package com.doumee.cloud.admin;
 
import com.doumee.api.BaseController;
import com.doumee.service.business.third.model.ApiResponse;
import com.doumee.service.business.third.model.LoginUserInfo;
import com.doumee.service.business.third.model.PageData;
import com.doumee.service.business.third.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.dao.admin.response.PCWorkPlatformDataVO;
import com.doumee.dao.admin.response.StagingDataVO;
import com.doumee.dao.business.model.Visits;
import com.doumee.dao.system.dto.NoticesDTO;
import com.doumee.dao.system.model.Notices;
import com.doumee.dao.web.response.InternalHomeVO;
import com.doumee.service.business.ApproveService;
import com.doumee.service.business.MemberService;
import com.doumee.service.business.VisitsService;
import com.doumee.service.business.impl.hksync.HkSyncNoticeServiceImpl;
import com.doumee.service.system.NoticesService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
 
/**
 * Created by IntelliJ IDEA.
 *
 * @Author : Rk
 * @create 2024/2/26 11:00
 */
@Api(tags = "工作台数据")
@RestController
@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/business/staging")
public class StagingCloudController extends BaseController {
 
 
    @Autowired
    private MemberService memberService;
 
    @Autowired
    private VisitsService visitsService;
 
    @Autowired
    private HkSyncNoticeServiceImpl hkSyncNoticeService;
    @Autowired
    private NoticesService noticesService;
 
    @Autowired
    private ApproveService approveService;
 
 
    @ApiOperation("头部数据")
    @GetMapping("/head")
    public ApiResponse<StagingDataVO> head(@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        return ApiResponse.success("查询成功",memberService.stagingHead(new StagingDataVO()));
    }
 
 
    @ApiOperation("主体数据")
    @GetMapping("/body")
    public ApiResponse<StagingDataVO> body(@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        return ApiResponse.success("查询成功",memberService.stagingBody(new StagingDataVO()));
    }
 
 
    @ApiOperation("超时预警人员")
    @PostMapping("/timeoutPage")
    public ApiResponse<PageData<Visits>> timeoutPage (@RequestBody PageWrap<Visits> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        pageWrap.getModel().setLevelStatus(Constants.ZERO);
        return ApiResponse.success(visitsService.retentionPage(pageWrap));
    }
 
    @ApiOperation("超时预警人员离场")
    @GetMapping("/level")
//    @RequiresPermissions("business:visits:level")
    public ApiResponse level (@RequestParam Integer visitId,@RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        visitsService.visitLevel(visitId);
        return ApiResponse.success("操作成功");
    }
 
 
 
    @ApiOperation(value = "任务中心头部 - H5", notes = "H5")
    @GetMapping("/taskCenterHead")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "isDetail", value = " 是否查询详细 1是;0否", required = true),
    })
    public ApiResponse<InternalHomeVO> taskCenterHead(@RequestParam Integer isDetail,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        LoginUserInfo loginUserInfo = getLoginUser(token);
        hkSyncNoticeService.syncHkNotices(loginUserInfo.getUsername());
        return ApiResponse.success("查询成功",approveService.getHomeDataH5(getLoginUser(token).getMemberId(),isDetail));
    }
 
 
    @ApiOperation(value = "任务中心头部 - PC", notes = "PC")
    @PostMapping("/taskCenterHeadPC")
    public ApiResponse<InternalHomeVO> taskCenterHeadPC(@RequestBody NoticesDTO  noticesDTO,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        LoginUserInfo loginUserInfo = getLoginUser(token);
        hkSyncNoticeService.syncHkNotices(loginUserInfo.getUsername());
        noticesDTO.setMemberId(loginUserInfo.getMemberId());
        noticesDTO.setUserId(loginUserInfo.getId());
        return ApiResponse.success("查询成功",approveService.getHomeDataPC(noticesDTO));
    }
 
 
    @ApiOperation("任务中心分页")
    @PostMapping("/taskPage")
    public ApiResponse<PageData<Notices>> taskPage (@RequestBody PageWrap<NoticesDTO> pageWrap, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        LoginUserInfo loginUserInfo = getLoginUser(token);
        pageWrap.getModel().setMemberId(loginUserInfo.getMemberId());
//        pageWrap.getModel().setUserId(loginUserInfo.getId());
        return ApiResponse.success(noticesService.taskCanterPage(pageWrap));
    }
 
 
 
    @ApiOperation("标记已读")
    @GetMapping("/signRead")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "noticesId", value = "记录主键", required = false),
            @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "signType", value = "标记类型:0=单个标记;1=标记全部未读", required = false),
    })
    public ApiResponse signRead (Integer noticesId,@RequestParam Integer signType, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        LoginUserInfo loginUserInfo = getLoginUser(token);
        if(Constants.equalsInteger(signType,Constants.ZERO)){
            noticesService.signReadById(noticesId);
        }else{
            noticesService.signRead(loginUserInfo.getMemberId());
        }
        return ApiResponse.success("操作成功");
    }
 
 
    @ApiOperation("PC工作台")
    @GetMapping("/pCWorkPlatformData")
    @ApiImplicitParams({
            @ApiImplicitParam(paramType = "query", dataType = "Integer", name = "queryType", value = "查询类型:1=在园人数;2=报表数据;3=待办事项;4=超时预警", required = true),
    })
    public ApiResponse<PCWorkPlatformDataVO> pCWorkPlatformData (@RequestParam Integer queryType, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        if(queryType==Constants.THREE){
            //同步海康代办数据
            hkSyncNoticeService.syncHkNotices(this.getLoginUser(token).getUsername());
        }
        PCWorkPlatformDataVO pcWorkPlatformDataVO = visitsService.getPcWorkPlatformData(queryType,getLoginUser(token));
        return ApiResponse.success("查询成功",pcWorkPlatformDataVO);
    }
}