package com.ruoyi.web.controller.api;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.basic.PageInfo;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.dto.YearTaskAuditDTO;
import com.ruoyi.system.model.ProjectInvestment;
import com.ruoyi.system.model.ProjectMain;
import com.ruoyi.system.model.YearTask;
import com.ruoyi.system.model.YearTaskDetail;
import com.ruoyi.system.query.ProjectMainListQuery;
import com.ruoyi.system.query.YearTaskListQuery;
import com.ruoyi.system.service.*;
import com.ruoyi.system.vo.ProjectMainListVO;
import com.ruoyi.system.vo.YearTaskListVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
*
* 年度任务主表 前端控制器
*
*
* @author WuGuanFengYue
* @since 2025-10-16
*/
@RestController
@Api(tags = "年度任务")
@RequestMapping("/year-task")
public class YearTaskController {
@Resource
private YearTaskService yearTaskService;
@Resource
private ISysUserService sysUserService;
@Resource
private TokenService tokenService;
@Resource
private YearTaskDetailService yearTaskDetailService;
@Resource
private ProjectMainService projectMainService;
@ApiOperation(value = "项目不分页列表")
@PostMapping(value = "/listProject")
public R> listProject() {
return R.ok(projectMainService.list());
}
@ApiOperation(value = "年度任务分页列表")
@PostMapping(value = "/pageList")
public R> pageList(@RequestBody YearTaskListQuery query) {
return R.ok(yearTaskService.pageList(query));
}
@ApiOperation(value = "添加")
@Transactional
@Log(title = "年度任务-添加", businessType = BusinessType.INSERT)
@PostMapping(value = "/add")
public R save(@RequestBody YearTask entity) {
yearTaskService.save(entity);
List yearTaskDetails = entity.getYearTaskDetails();
for (YearTaskDetail yearTaskDetail : yearTaskDetails) {
yearTaskDetail.setYearTaskId(entity.getId());
}
yearTaskDetailService.saveBatch(yearTaskDetails);
return R.ok();
}
@ApiOperation(value = "修改")
@Transactional
@Log(title = "年度任务-修改", businessType = BusinessType.UPDATE)
@PostMapping(value = "/edit")
public R edit(@RequestBody ProjectMain entity) {
projectMainService.updateById(entity);
return R.ok();
}
@ApiOperation(value = "年度任务投资目标-审核")
@Transactional
@Log(title = "年度任务投资目标-审核", businessType = BusinessType.UPDATE)
@PostMapping(value = "/audit")
public R audit(@RequestBody YearTaskAuditDTO entity) {
YearTaskDetail yearTaskDetail = yearTaskDetailService.getById(entity.getId());
yearTaskDetail.setIsAudit( true);
yearTaskDetail.setAuditUserId(tokenService.getLoginUser().getUser().getUserId().intValue());
yearTaskDetailService.updateById(yearTaskDetail);
return R.ok();
}
@ApiOperation(value = "年度任务投资目标-修改")
@Transactional
@Log(title = "年度任务投资目标-修改", businessType = BusinessType.UPDATE)
@PostMapping(value = "/editYearTaskDetail")
public R edit(@RequestBody YearTaskDetail entity) {
YearTaskDetail yearTaskDetail = yearTaskDetailService.getById(entity.getId());
yearTaskDetail.setIsAudit( true);
yearTaskDetail.setCompeleteUserId(tokenService.getLoginUser().getUser().getUserId().intValue());
yearTaskDetailService.updateById(yearTaskDetail);
return R.ok();
}
@ApiOperation(value = "年度任务详情")
@GetMapping(value = "/detail")
public R detail(Integer id ) {
YearTask yearTask = yearTaskService.getById(id);
List list = yearTaskDetailService.lambdaQuery()
.eq(YearTaskDetail::getYearTaskId, id).list();
Map userMaps = sysUserService.selectAllList().stream()
.collect(Collectors.toMap(SysUser::getUserId, SysUser::getNickName));
for (YearTaskDetail yearTaskDetail : list) {
if (yearTaskDetail.getAuditUserId()!=null){
yearTaskDetail.setAuditUserName(userMaps.get(Long.valueOf(yearTaskDetail.getAuditUserId())));
}
if (yearTaskDetail.getCompeleteUserId()!=null){
yearTaskDetail.setCompeleteUserName(userMaps.get(Long.valueOf(yearTaskDetail.getCompeleteUserId())));
}
}
yearTask.setYearTaskDetails(list);
return R.ok(yearTask);
}
}