package com.ruoyi.web.controller.api; import com.alibaba.fastjson.JSON; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.common.core.domain.R; import com.ruoyi.system.dto.MissionSetUserDto; import com.ruoyi.system.model.TAppUser; import com.ruoyi.system.model.TMission; import com.ruoyi.system.model.TMissionUser; import com.ruoyi.system.query.TMissionQuery; import com.ruoyi.system.service.TAppUserService; import com.ruoyi.system.service.TMissionService; import com.ruoyi.system.service.TMissionUserService; import com.ruoyi.system.vo.TMissionReassignVO; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.time.LocalDateTime; /** *

* 任务支援、改派 前端控制器 *

* * @author xiaochen * @since 2025-09-29 */ @RestController @RequestMapping("") @Api(tags = "任务支援、改派 ") public class TMissionReassignController { private final TMissionService missionService; private final TAppUserService appUserService; private final TMissionUserService missionUserService; public TMissionReassignController(TMissionService missionService, TAppUserService appUserService, TMissionUserService missionUserService) { this.missionService = missionService; this.appUserService = appUserService; this.missionUserService = missionUserService; } @ApiOperation(value = "任务指派", response = TMissionReassignVO.class) @PostMapping(value = "/api/t-mission-reassign/missionSetUser") public R missionSetUser(@RequestBody String param) { MissionSetUserDto dto = JSON.parseObject(param, MissionSetUserDto.class); TMission tMission = missionService.getById(dto.getMissionId()); if(tMission.getStatus()!=1){ return R.fail("任务状态不是待指派"); } TAppUser appUser = appUserService.getById(dto.getAppUserId()); if(appUser.getMissionState()!=1){ return R.fail("用户正在执行任务"); } tMission.setStatus(2); tMission.setAssignTime(LocalDateTime.now()); missionService.updateById(tMission); TMissionUser missionUser = new TMissionUser(); missionUser.setAppUserId(dto.getAppUserId()); missionUser.setMissionId(dto.getMissionId()); missionUser.setUserType(1); missionUser.setStatus(0); missionUserService.save(missionUser); appUser.setMissionState(2); appUserService.updateById(appUser); return R.ok(); } }