package com.doumee.api.web; import com.doumee.config.Jwt.JwtTokenUtil; import com.doumee.config.annotation.EncryptionReq; import com.doumee.config.annotation.EncryptionResp; import com.doumee.config.annotation.LoginRequired; import com.doumee.core.annotation.pr.PreventRepeat; import com.doumee.core.constants.Constants; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; import com.doumee.core.model.ApiResponse; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.dao.business.model.Managers; import com.doumee.dao.business.model.Member; import com.doumee.dao.business.model.Workorder; import com.doumee.dao.web.dto.*; import com.doumee.dao.web.vo.WorkOrderDataVO; import com.doumee.service.business.ManagersService; import com.doumee.service.business.MemberService; import com.doumee.service.business.WorkorderService; import com.github.xiaoymin.knife4j.core.util.CollectionUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.java.Log; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.http.server.reactive.ServerHttpRequest; import org.springframework.web.bind.annotation.*; import org.springframework.web.server.ServerWebExchange; import javax.annotation.Resource; import java.util.List; /** * Created by IntelliJ IDEA. * * @Author : Rk * @create 2025/4/8 9:35 */ @RestController @Api(tags ="工单上报") @RequestMapping("/web/workOrder") public class WebWorkOrderController { @Resource private JwtTokenUtil jwtTokenUtil; @Resource private WorkorderService workorderService; @Resource private ManagersService managersService; @LoginRequired @ApiOperation("风险上报") @PostMapping("/create") @PreventRepeat @EncryptionReq @EncryptionResp public ApiResponse create (@RequestBody Workorder workorder, @RequestHeader(JwtTokenUtil.HEADER_KEY) String token) { try { Member user = jwtTokenUtil.getUserInfoByToken(token); workorder.setMemberId(user.getId()); return ApiResponse.success(workorderService.create(workorder)); }catch (BusinessException e){ return ApiResponse.failed(e.getCode(),e.getMessage()); }catch (Exception e){ e.printStackTrace(); return ApiResponse.failed(ResponseStatus.SERVER_ERROR); } } @LoginRequired @ApiOperation("通知人查询") @PostMapping("/managersList") @EncryptionReq @EncryptionResp public ApiResponse> managersList (@RequestBody Managers model, @RequestHeader(JwtTokenUtil.HEADER_KEY) String token) { try { return ApiResponse.success(managersService.findList(model)); }catch (BusinessException e){ return ApiResponse.failed(e.getCode(),e.getMessage()); }catch (Exception e){ e.printStackTrace(); return ApiResponse.failed(ResponseStatus.SERVER_ERROR); } } @LoginRequired @ApiOperation("风险上报详情") @GetMapping("/detail") @EncryptionReq @EncryptionResp public ApiResponse detail (@RequestParam Integer id, @RequestHeader(JwtTokenUtil.HEADER_KEY) String token) { try { return ApiResponse.success(workorderService.getDetail(id,jwtTokenUtil.getUserInfoByToken(token))); }catch (BusinessException e){ return ApiResponse.failed(e.getCode(),e.getMessage()); }catch (Exception e){ e.printStackTrace(); return ApiResponse.failed(ResponseStatus.SERVER_ERROR); } } @LoginRequired @ApiOperation("工单关闭") @PostMapping("/closeWorkOrder") @PreventRepeat @EncryptionReq @EncryptionResp public ApiResponse closeWorkOrder(@RequestBody CloseDTO closeDTO, @RequestHeader(JwtTokenUtil.HEADER_KEY) String token) { try { closeDTO.setMember(jwtTokenUtil.getUserInfoByToken(token)); workorderService.closeWorkOrder(closeDTO); return ApiResponse.success("操作成功"); }catch (BusinessException e){ return ApiResponse.failed(e.getCode(),e.getMessage()); }catch (Exception e){ e.printStackTrace(); return ApiResponse.failed(ResponseStatus.SERVER_ERROR); } } @LoginRequired @ApiOperation("工单指派") @PostMapping("/passOn") @PreventRepeat @EncryptionReq @EncryptionResp public ApiResponse passOn(@RequestBody PassOnDTO passOnDTO, @RequestHeader(JwtTokenUtil.HEADER_KEY) String token) { try { passOnDTO.setMember(jwtTokenUtil.getUserInfoByToken(token)); workorderService.passOn(passOnDTO); return ApiResponse.success("操作成功"); }catch (BusinessException e){ return ApiResponse.failed(e.getCode(),e.getMessage()); }catch (Exception e){ e.printStackTrace(); return ApiResponse.failed(ResponseStatus.SERVER_ERROR); } } @LoginRequired @ApiOperation("工单催促") @GetMapping("/urge") @PreventRepeat @EncryptionReq @EncryptionResp public ApiResponse urge(@RequestParam Integer workorderId, @RequestHeader(JwtTokenUtil.HEADER_KEY) String token) { try { workorderService.urge(workorderId,jwtTokenUtil.getUserInfoByToken(token)); return ApiResponse.success("操作成功"); }catch (BusinessException e){ return ApiResponse.failed(e.getCode(),e.getMessage()); }catch (Exception e){ e.printStackTrace(); return ApiResponse.failed(ResponseStatus.SERVER_ERROR); } } @LoginRequired @ApiOperation("工单抄送") @PreventRepeat @PostMapping("/sendCopy") @EncryptionReq @EncryptionResp public ApiResponse sendCopy(@RequestBody SendCopyDTO sendCopyDTO, @RequestHeader(JwtTokenUtil.HEADER_KEY) String token) { try { sendCopyDTO.setMember(jwtTokenUtil.getUserInfoByToken(token)); workorderService.sendCopy(sendCopyDTO); return ApiResponse.success("操作成功"); }catch (BusinessException e){ return ApiResponse.failed(e.getCode(),e.getMessage()); }catch (Exception e){ e.printStackTrace(); return ApiResponse.failed(ResponseStatus.SERVER_ERROR); } } @LoginRequired @ApiOperation("SHE、跌绊滑报表") @PostMapping("/getWorkOrderData") @EncryptionReq @EncryptionResp public ApiResponse> getWorkOrderData(@RequestBody OrderDataDTO orderDataDTO, @RequestHeader(JwtTokenUtil.HEADER_KEY) String token) { try { return ApiResponse.success(workorderService.getWorkOrderData(orderDataDTO)); }catch (BusinessException e){ return ApiResponse.failed(e.getCode(),e.getMessage()); }catch (Exception e){ e.printStackTrace(); return ApiResponse.failed(ResponseStatus.SERVER_ERROR); } } @LoginRequired @ApiOperation("分页查询") @PostMapping("/page") @EncryptionReq @EncryptionResp public ApiResponse> findPage (@RequestBody PageWrap pageWrap,@RequestHeader(JwtTokenUtil.HEADER_KEY) String token) { try { Member member = jwtTokenUtil.getUserInfoByToken(token); pageWrap.getModel().setQwId(member.getQwId()); PageData pageData = workorderService.findPage(pageWrap); return ApiResponse.success(pageData); }catch (BusinessException e){ return ApiResponse.failed(e.getCode(),e.getMessage()); }catch (Exception e){ e.printStackTrace(); return ApiResponse.failed(ResponseStatus.SERVER_ERROR); } } }