package com.xiaopeng.maintenance.controller; import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.xiaopeng.api.model.maintenance.XpWorkOrder; import com.xiaopeng.api.model.maintenance.XpWorkOrderLog; import com.xiaopeng.common.core.domain.R; import com.xiaopeng.common.core.web.page.PageInfo; import com.xiaopeng.common.security.service.TokenService; import com.xiaopeng.evi.oss.service.AliOssService; import com.xiaopeng.maintenance.model.query.WorkOrderPageListQuery; import com.xiaopeng.maintenance.service.IXpWorkOrderLogService; import com.xiaopeng.maintenance.service.IXpWorkOrderService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.io.UnsupportedEncodingException; import java.util.ArrayList; /** *

* 管理后台 任务规则设置 *

* * @author mitao * @since 2026-02-03 */ @RestController @Slf4j @Api(tags = "管理后台-工单管理") @RequestMapping("/api/v1/workOrder") public class XpWorkOrderController { @Resource private IXpWorkOrderService workOrderService; @Resource private IXpWorkOrderLogService workOrderLogService; @Resource private TokenService tokenService; @Resource private AliOssService aliOssService; @ApiOperation(value = "工单管理分页列表") @PostMapping("/pageList") public R> pageList(@RequestBody WorkOrderPageListQuery query) { query.setUserId(tokenService.getLoginUser().getSysUser().getId()); PageInfo pageList = workOrderService.pageList(query); return R.ok(pageList); } @ApiOperation(value = "创建工单") @PostMapping("/saveWorkOrder") public R saveWordOrder(@RequestBody XpWorkOrder workOrder) { workOrder.setCreateById(tokenService.getLoginUser().getSysUser().getId()); workOrderService.save(workOrder); return R.ok(); } @ApiOperation(value = "编辑工单") @PostMapping("/updateWorkOrder") public R updateWordOrder(@RequestBody XpWorkOrder workOrder) { workOrderService.updateById(workOrder); return R.ok(); } @ApiOperation(value = "处理工单") @PostMapping("/handleWorkOrder") public R handleWorkOrder(@RequestBody XpWorkOrderLog workOrderLog) { workOrderService.handleWorkOrder(workOrderLog); return R.ok(); } @ApiOperation(value = "删除工单") @DeleteMapping("/deleteWorkOrder") public R deleteWordOrder(Long id) { workOrderService.removeById(id); return R.ok(); } @ApiOperation(value = "工单详情") @GetMapping("/workOrderDetail") public R workOrderDetail(Long id) { XpWorkOrder detail =workOrderService.workOrderDetail(id); if(detail.getProblemImage()!=null){ String problemImage = detail.getProblemImage(); if (StringUtils.isNotBlank(problemImage)) { JSONArray jsonArray = JSONArray.parseArray(problemImage); for (int i = 0; i < jsonArray.size(); i++) { JSONObject jsonObject = jsonArray.getJSONObject(i); // 1 String downloadUrl = jsonObject.getString("url");; try { downloadUrl = aliOssService.getDownloadUrl(jsonObject.getString("id"), jsonObject.getString("name"), true); } catch (UnsupportedEncodingException e) { log.error("获取图片下载地址失败", e); } jsonObject.put("url", downloadUrl); } detail.setProblemImage(JSONArray.toJSONString(jsonArray)); } } return R.ok(detail); } }