package com.ruoyi.web.controller.api;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.basic.PageInfo;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.model.ProjectStorage;
import com.ruoyi.system.model.ProjectMain;
import com.ruoyi.system.model.ProjectStorageItem;
import com.ruoyi.system.query.ProjectStorageListQuery;
import com.ruoyi.system.query.YearTaskListQuery;
import com.ruoyi.system.service.*;
import com.ruoyi.system.vo.ProjectStorageDetailVO;
import com.ruoyi.system.vo.ProjectStorageListVO;
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.Arrays;
import java.util.List;
/**
*
* 在库项目管理 前端控制器
*
*
* @author WuGuanFengYue
* @since 2025-10-16
*/
@RestController
@Api(tags = "在库项目管理")
@RequestMapping("/project-storage")
public class ProjectStorageController {
@Resource
private ProjectStorageService projectStorageService;
@Resource
private ProjectStorageItemService projectStorageItemService;
@ApiOperation(value = "在库项目分页列表")
@PostMapping(value = "/pageList")
public R> pageList(@RequestBody ProjectStorageListQuery query) {
return R.ok(projectStorageService.pageList(query));
}
@ApiOperation(value = "在库项目-添加")
@Log(title = "在库项目-添加", businessType = BusinessType.INSERT)
@PostMapping(value = "/add")
public R save(@RequestBody ProjectStorage entity) {
return R.ok(projectStorageService.save(entity));
}
@ApiOperation(value = "在库项目-修改")
@Log(title = "在库项目-修改", businessType = BusinessType.UPDATE)
@PostMapping(value = "/edit")
public R edit(@RequestBody ProjectStorage entity) {
return R.ok(projectStorageService.updateById(entity));
}
@ApiOperation(value = "详情")
@GetMapping(value = "/detail")
public R detail(Integer id) {
ProjectStorageDetailVO res = new ProjectStorageDetailVO();
ProjectStorage projectStorage = projectStorageService.getById(id);
List list = projectStorageItemService.lambdaQuery().eq(ProjectStorageItem::getProjectStorageId, id)
.list();
res.setProjectName(projectStorage.getProjectName());
res.setInTime(projectStorage.getInTime());
res.setList(list);
return R.ok(res);
}
@Log(title = "在库项目-投资明细-删除", businessType = BusinessType.DELETE)
@ApiOperation(value = "在库项目-投资明细-删除")
@Transactional
@DeleteMapping(value = "/deleteDetail")
public R deleteDetail(@RequestParam String ids) {
projectStorageItemService.remove(
new LambdaQueryWrapper()
.in(ProjectStorageItem::getId, Arrays.asList(ids.split(",")))
);
return R.ok();
}
@ApiOperation(value = "在库项目-投资明细-新增")
@Log(title = "在库项目-投资明细-修改", businessType = BusinessType.UPDATE)
@PostMapping(value = "/addDetail")
public R addDetail(@RequestBody ProjectStorageItem entity) {
return R.ok(projectStorageItemService.save(entity));
}
@ApiOperation(value = "在库项目-投资明细-修改")
@Log(title = "在库项目-投资明细-修改", businessType = BusinessType.UPDATE)
@PostMapping(value = "/editDetail")
public R editDetail(@RequestBody ProjectStorageItem entity) {
return R.ok(projectStorageItemService.updateById(entity));
}
@Log(title = "在库项目-删除", businessType = BusinessType.DELETE)
@ApiOperation(value = "在库项目-删除")
@Transactional
@DeleteMapping(value = "/delete")
public R delete(@RequestParam String ids) {
projectStorageItemService.remove(
new LambdaQueryWrapper()
.in(ProjectStorageItem::getProjectStorageId, Arrays.asList(ids.split(",")))
);
projectStorageService.removeBatchByIds(Arrays.asList(ids.split(",")));
return R.ok();
}
}