jiangping
2024-12-05 f6ba5de2578c58a738f35b29a708c523ccb518ba
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
package com.doumee.cloud.web;
 
import cn.hutool.http.useragent.Platform;
import com.doumee.api.BaseController;
import com.doumee.config.annotation.LoginNoRequired;
import com.doumee.config.annotation.LoginRequired;
import com.doumee.core.annotation.trace.Trace;
import com.doumee.core.model.ApiResponse;
import com.doumee.core.model.LoginUserInfo;
import com.doumee.core.model.PageData;
import com.doumee.core.model.PageWrap;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DateUtil;
import com.doumee.dao.business.model.*;
import com.doumee.dao.business.vo.LargeScreenDataVO;
import com.doumee.dao.web.reqeust.*;
import com.doumee.dao.web.response.DriverHomeVO;
import com.doumee.dao.web.response.LineUpVO;
import com.doumee.dao.web.response.MemberVO;
import com.doumee.dao.web.response.VisitRecordVO;
import com.doumee.service.business.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
 
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
 
/**
 * Created by IntelliJ IDEA.
 *
 * @Author : Rk
 * @create 2023/12/28 14:31
 */
 
@Api(tags = "【公众号】物流车司机业务")
@Trace(exclude = true)
@RestController
@RequestMapping(Constants.CLOUD_SERVICE_URL_INDEX+"/web/driverPlatform")
@Slf4j
@LoginNoRequired
public class DriverPlatformController extends BaseController {
 
    @Autowired
    private VisitsService visitsService;
 
    @Autowired
    private PlatformJobService platformJobService;
 
    @Autowired
    private PlatformBooksService platformBooksService;
 
    @Autowired
    private PlatformReasonService platformReasonService;
 
    @Autowired
    private PlatformWmsJobService platformWmsJobService;
 
 
 
    @ApiOperation("入园原因")
    @GetMapping("/platformReasonList")
    public ApiResponse<List<PlatformReason>> platformReasonList (@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        List<PlatformReason> platformReasons = platformReasonService.findList(null);
        return ApiResponse.success(platformReasons);
    }
 
    @ApiOperation("司机首页信息")
    @GetMapping("/driverHome")
    public ApiResponse<DriverHomeVO> driverHome (@RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        DriverHomeVO driverHomeVO = platformJobService.getDriverHome(getLoginUser(token));
        return ApiResponse.success(driverHomeVO);
    }
 
    @ApiOperation("查询可预约量")
    @PostMapping("/checkSurplusNum")
    public ApiResponse<BigDecimal> checkSurplusNum (@RequestBody PlatformBooksCheckNumDTO platformBooksCheckNumDTO , @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        return ApiResponse.success(platformBooksService.checkNum(platformBooksCheckNumDTO));
    }
 
    @ApiOperation("物流车预约")
    @PostMapping("/apply")
    public ApiResponse<Integer> apply (@RequestBody PlatformBooksApplyDTO platformBooksApplyDTO , @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        LoginUserInfo loginUserInfo = getLoginUser(token);
        platformBooksApplyDTO.setUserId(loginUserInfo.getMemberId());
        platformBooksApplyDTO.setDriverId(loginUserInfo.getMemberId());
        return ApiResponse.success(platformBooksService.apply(platformBooksApplyDTO));
    }
 
 
    @ApiOperation("物流车预约修改")
    @PostMapping("/applyEdit")
    public ApiResponse<Integer> applyEdit (@RequestBody PlatformBooksApplyDTO platformBooksApplyDTO , @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        LoginUserInfo loginUserInfo = getLoginUser(token);
        platformBooksApplyDTO.setUserId(loginUserInfo.getMemberId());
        platformBooksApplyDTO.setDriverId(loginUserInfo.getMemberId());
        return ApiResponse.success(platformBooksService.edit(platformBooksApplyDTO));
    }
 
    @ApiOperation("物流车预约记录")
    @PostMapping("/page")
    public ApiResponse<PageData<PlatformBooks>> findPage (@RequestBody PageWrap<PlatformBooks> pageWrap, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        LoginUserInfo loginUserInfo = this.getLoginUser(token);
        pageWrap.getModel().setQueryDate(DateUtil.getBeforDay(new Date(),30));
        pageWrap.getModel().setDriverPhone(loginUserInfo.getMobile());
        return ApiResponse.success(platformBooksService.findPage(pageWrap));
    }
 
    @ApiOperation("物流车预约详情")
    @GetMapping("/getDetail")
    public ApiResponse<PlatformBooks> getDetail (@RequestParam Integer id, @RequestHeader(Constants.HEADER_USER_TOKEN) String token) {
        PlatformBooks platformBooks = platformBooksService.getDetail(id,getLoginUser(token).getMemberId());
        return ApiResponse.success(platformBooks);
    }
 
    @ApiOperation("物流车预约撤销")
    @PostMapping("/revoke")
    public ApiResponse  revoke (@RequestBody RevokeDTO revokeDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        platformBooksService.revoke(revokeDTO,getLoginUser(token));
        return ApiResponse.success("操作成功");
    }
 
    /******************************************************司机任务接口************************************************************************/
    @ApiOperation("任务确认")
    @PostMapping("/confirmTask")
    public ApiResponse  confirmTask (@RequestBody ConfirmTaskDTO confirmTaskDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        confirmTaskDTO.setLoginUserInfo(getLoginUser(token));
        platformJobService.confirmTask(confirmTaskDTO);
        return ApiResponse.success("操作成功");
    }
 
    @ApiOperation("任务签到")
    @PostMapping("/signIn")
    public ApiResponse  signIn (@RequestBody SignInDTO signInDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        signInDTO.setLoginUserInfo(getLoginUser(token));
        platformJobService.signIn(signInDTO);
        return ApiResponse.success("操作成功");
    }
 
    @ApiOperation("任务详情")
    @PostMapping("/jobDetail")
    public ApiResponse<PlatformJob>  jobDetail (@RequestBody JobDetailDTO jobDetailDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        return ApiResponse.success(platformJobService.getDetail(jobDetailDTO));
    }
 
    @ApiOperation("查询排队情况")
    @PostMapping("/lineUpDetail")
    public ApiResponse<LineUpVO>  lineUpDetail (@RequestBody LineUpDetailDTO lineUpDetailDTO, @RequestHeader(Constants.HEADER_USER_TOKEN) String token){
        return ApiResponse.success(platformJobService.lineUpDetail(lineUpDetailDTO));
    }
 
 
    @ApiOperation("WMS运输单详情")
    @GetMapping("/wmsJobDetail")
    public ApiResponse<PlatformWmsJob> wmsJobDetail(@RequestParam Integer id) {
        return ApiResponse.success(platformWmsJobService.findByDetailId(id));
    }
 
 
    @LoginNoRequired
    @ApiOperation("签到大屏数据")
    @GetMapping("/getLargeScreenData")
    public ApiResponse<LargeScreenDataVO> getLargeScreenData() {
        return ApiResponse.success(platformJobService.getLargeScreenData());
    }
 
    @LoginNoRequired
    @ApiOperation("月台任务测试定时方法")
    @GetMapping("/testTimer")
    public ApiResponse testTimer(Integer type) {
        if(Constants.equalsInteger(type ,1)){
            platformJobService.timeOutWork();
        }else if(Constants.equalsInteger(type ,2)){
            platformJobService.timeOutCallIn();
        }else if(Constants.equalsInteger(type ,3)){
            platformJobService.timeOutReport();
        }
        return ApiResponse.success("操作成功");
    }
 
}