package com.ruoyi.web.controller.api; import com.alibaba.fastjson2.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ruoyi.common.basic.PageInfo; import com.ruoyi.common.core.domain.BasePage; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.framework.web.service.TokenService; import com.ruoyi.system.dto.MissionIdDto; import com.ruoyi.system.dto.TMissionUserDto; import com.ruoyi.system.model.*; import com.ruoyi.system.query.TEquipmentQuery; import com.ruoyi.system.service.*; import com.ruoyi.system.vo.MissionTotalVo; import com.ruoyi.system.vo.TotalHistoryVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; 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.LocalDate; import java.time.LocalDateTime; import java.time.Month; import java.util.List; /** *

* 任务管理 前端控制器 *

* * @author xiaochen * @since 2025-09-28 */ @RestController @RequestMapping("") @Api(tags = "任务App") public class TMissionController { private final TokenService tokenService; private final TAppUserService appUserService; private final TMissionService missionService; private final TMissionReassignService missionReassignService; private final TMissionAssignRuleService missionAssignRuleService; private final TEquipmentService equipmentService; private final TMissionUserService missionUserService; @Autowired public TMissionController(TokenService tokenService, TAppUserService appUserService, TMissionService missionService, RedisCache redisCache, TMissionReassignService missionReassignService, TMissionAssignRuleService missionAssignRuleService, TEquipmentService equipmentService, TMissionUserService missionUserService) { this.tokenService = tokenService; this.appUserService = appUserService; this.missionService = missionService; this.missionReassignService = missionReassignService; this.missionAssignRuleService = missionAssignRuleService; this.equipmentService = equipmentService; this.missionUserService = missionUserService; } @ApiOperation(value = "获取任务列表--任务汇总",notes = "响应参数:R«app任务汇总数»", response = MissionTotalVo.class) @PostMapping(value = "/api/t-mission/missionTotal") public R missionTotal() { String userId = tokenService.getLoginUserApplet().getUserId(); return R.ok(missionService.missionTotal(userId)); } /** * 获取待执行任务 任务列表 */ // @PreAuthorize("@ss.hasPermi('system:mission:list')") @ApiOperation(value = "获取任务列表--待执行任务",notes = "请求参数:基础查询列表dto,响应参数:TMission对象", response = TMission.class) @PostMapping(value = "/api/t-mission/pageNowList") public R> pageList(@RequestBody String param) { BasePage query = JSON.parseObject(param, BasePage.class); String userId = tokenService.getLoginUserApplet().getUserId(); return R.ok(missionService.pageNowList(query,userId)); } /** * 获取抢单任务列表 任务列表 */ // @PreAuthorize("@ss.hasPermi('system:mission:list')") @ApiOperation(value = "获取任务列表--抢单任务列表",notes = "请求参数:基础查询列表dto,响应参数:TMission对象", response = BasePage.class) @PostMapping(value = "/api/t-mission/pageGrabList") public R> pageGrabList(@RequestBody String param) { BasePage query = JSON.parseObject(param, BasePage.class); return R.ok(missionService.pageGrabList(query)); } /** * 获取历史任务 任务列表 */ // @PreAuthorize("@ss.hasPermi('system:mission:list')") @ApiOperation(value = "获取任务列表--历史任务",notes = "请求参数:基础查询列表dto,响应参数:TMission对象", response = TMission.class) @PostMapping(value = "/api/t-mission/pageHistoryList") public R> pageHistoryList(@RequestBody String param) { BasePage query = JSON.parseObject(param, BasePage.class); String userId = tokenService.getLoginUserApplet().getUserId(); return R.ok(missionService.pageHistoryList(query,userId)); } @ApiOperation(value = "获取任务列表--历史任务汇总",notes = "响应参数:app历史任务顶部汇总", response = TotalHistoryVo.class) @PostMapping(value = "/open/t-mission/totalHistory") public R totalHistory() { String userId = tokenService.getLoginUserApplet().getUserId(); // String userId ="1"; return R.ok(missionService.totalHistory(userId)); } /** * 添加任务 */ @ApiOperation(value = "获取任务列表--添加任务",notes = "请求参数:TMission对象", response = TMission.class) @PostMapping(value = "/api/t-mission/addMission") public R addMission(@RequestBody String param) { TMission tMission = JSON.parseObject(param, TMission.class); String userId = tokenService.getLoginUserApplet().getUserId(); TAppUser appUser = appUserService.getById(userId); tMission.setCommitUserId(userId); tMission.setCommitTime(LocalDateTime.now()); tMission.setCommitUserName(appUser.getNickName()); tMission.setCommitType(2); tMission.setIsMissionPool(0); missionService.save(tMission); return R.ok(tMission.getId()); } /** * 抢单任务 */ @ApiOperation(value = "获取任务列表--抢单任务", response = TMission.class) @PostMapping(value = "/api/t-mission/grabMission") public R grabMission(@RequestBody String param) { MissionIdDto missionId = JSON.parseObject(param, MissionIdDto.class); String userId = tokenService.getLoginUserApplet().getUserId(); return R.ok( missionService.grabMission(missionId.getMissionId(),userId)); } /** * 申请支援 */ @ApiOperation(value = "获取任务列表--申请支援/改派", response = TMissionReassign.class) @PostMapping(value = "/api/t-mission/requestSupport") public R requestSupport(@RequestBody String param) { TMissionReassign tMissionReassign = JSON.parseObject(param, TMissionReassign.class); String userId = tokenService.getLoginUserApplet().getUserId(); TAppUser appUser = appUserService.getById(userId); tMissionReassign.setCommitUserId(userId); tMissionReassign.setCommitTime(LocalDateTime.now()); tMissionReassign.setCommitUserName(appUser.getNickName()); missionReassignService.save(tMissionReassign); return R.ok(); } public static void main(String[] args) { LocalDate now = LocalDate.now(); System.out.println(LocalDate.now().minusMonths(5) + " 00:00:00"); } /** * 完成任务 */ @ApiOperation(value = "获取任务列表--完成任务汇报", response = TMissionUserDto.class) @PostMapping(value = "/api/t-mission/successMission") public R successMission(@RequestBody String param) { TMissionUserDto dto = JSON.parseObject(param, TMissionUserDto.class); String userId = tokenService.getLoginUserApplet().getUserId(); missionService.successMission(dto,userId); return R.ok(); } /** * 获取任务类型 */ @ApiOperation(value = "获取任务列表--获取任务类型", response = TMissionAssignRule.class) @PostMapping(value = "/api/t-mission/missionTypeList") public R> missionTypeList() { List list = missionAssignRuleService.list(); return R.ok(list); } /** * 获取任务详情 */ @ApiOperation(value = "获取任务列表--获取任务详情", response = TMission.class) @PostMapping(value = "/api/t-mission/detailMission") public R detailMission(@RequestBody String param) { MissionIdDto missionId = JSON.parseObject(param, MissionIdDto.class); String userId = tokenService.getLoginUserApplet().getUserId(); TMission tMission = missionService.getById(missionId.getMissionId()); TMissionAssignRule byId = missionAssignRuleService.getById(tMission.getMissionTypeId()); tMission.setMissionType(byId.getTypeName()); // 判断我结果这个任务没有 TMissionUser one = missionUserService.getOne(new QueryWrapper().eq("mission_id", missionId.getMissionId()).eq("app_user_id", userId).orderByDesc("create_time")); if(one!=null){ tMission.setUserMissionId(one.getId()); } tMission.setMissionUser( one); return R.ok(tMission); } /** * 装备库管理列表 */ //@PreAuthorize("@ss.hasPermi('system:equipment:list')") @ApiOperation(value = "装备库管理列表", response = TEquipment.class) @PostMapping(value = "/api/t-mission/equipmentList") public R> equipmentList() { return R.ok(equipmentService.list()); } }