MonthlyReconciliationController.java 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. package com.ozs.web.controller.plan;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.core.metadata.IPage;
  4. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  5. import com.ozs.base.domain.BaseNoticeType;
  6. import com.ozs.common.annotation.Log;
  7. import com.ozs.common.constant.ModularConstans;
  8. import com.ozs.common.core.controller.BaseController;
  9. import com.ozs.common.core.domain.AjaxResult;
  10. import com.ozs.common.enums.BusinessType;
  11. import com.ozs.common.enums.SysFileRefEnum;
  12. import com.ozs.plan.doman.MonthlyReconciliation;
  13. import com.ozs.plan.doman.vo.requestVo.MonthlyReconciliationPageReqVo;
  14. import com.ozs.plan.service.MonthlyReconciliationService;
  15. import com.ozs.system.domain.SysFileInfo;
  16. import com.ozs.system.domain.SysFileRef;
  17. import com.ozs.system.domain.vo.responseVo.SysDeptResponseVo;
  18. import com.ozs.system.service.ISysDeptService;
  19. import com.ozs.system.service.SysFileRefService;
  20. import com.ozs.system.service.SysFileService;
  21. import io.swagger.annotations.Api;
  22. import io.swagger.annotations.ApiOperation;
  23. import org.apache.commons.lang3.StringUtils;
  24. import org.springframework.beans.factory.annotation.Autowired;
  25. import org.springframework.security.access.prepost.PreAuthorize;
  26. import org.springframework.util.ObjectUtils;
  27. import org.springframework.web.bind.annotation.*;
  28. import javax.validation.constraints.NotEmpty;
  29. import java.util.List;
  30. import java.util.Map;
  31. import java.util.stream.Collectors;
  32. @RestController
  33. @RequestMapping("/monthly/reconciliation")
  34. @Api(tags = ModularConstans.monthly)
  35. public class MonthlyReconciliationController extends BaseController {
  36. @Autowired
  37. private MonthlyReconciliationService monthlyReconciliationService;
  38. @Autowired
  39. private SysFileRefService sysFileRefService;
  40. @Autowired
  41. private SysFileService sysFileService;
  42. @Autowired
  43. private ISysDeptService iSysDeptService;
  44. @ApiOperation(value = "分页查询月度对表")
  45. @PostMapping("/page")
  46. @PreAuthorize("@ss.hasPermi('base:monthly:list')")
  47. @Log(title = ModularConstans.monthly, businessType = BusinessType.QUERY)
  48. public AjaxResult page(@NotEmpty(message = "数据为空")
  49. @RequestBody MonthlyReconciliationPageReqVo vo) {
  50. LambdaQueryWrapper<MonthlyReconciliation> lw = new LambdaQueryWrapper<>();
  51. if (!StringUtils.isBlank(vo.getProjectName())) {
  52. lw.like(MonthlyReconciliation::getProjectName, vo.getProjectName());
  53. }
  54. if (!ObjectUtils.isEmpty(vo.getProjectStatus())) {
  55. lw.eq(MonthlyReconciliation::getProjectStatus, vo.getProjectStatus());
  56. }
  57. if (!StringUtils.isBlank(vo.getPurchaseServices())) {
  58. lw.eq(MonthlyReconciliation::getPurchaseServices, vo.getPurchaseServices());
  59. }
  60. if(!ObjectUtils.isEmpty(vo.getStartTime())){
  61. lw.ge(MonthlyReconciliation::getPlanDemandSubTime,vo.getStartTime());
  62. }
  63. if(!ObjectUtils.isEmpty(vo.getStartTime())){
  64. lw.le(MonthlyReconciliation::getPlanDemandSubTime,vo.getEntTime());
  65. }
  66. IPage<MonthlyReconciliation> page = monthlyReconciliationService.page(new Page<>(vo.getPageNum(), vo.getPageSize()), lw);
  67. if (!ObjectUtils.isEmpty(page.getRecords())) {
  68. page.setRecords(page.getRecords().stream().map(dto -> {
  69. Map<String, Object> stringObjectMap = iSysDeptService.selectDeptById(dto.getPurchaseDeptId());
  70. if (!ObjectUtils.isEmpty(stringObjectMap)) {
  71. SysDeptResponseVo sysDept = (SysDeptResponseVo) stringObjectMap.get("sysDept");
  72. dto.setPurchaseDeptName(sysDept.getDeptName());
  73. }
  74. return dto;
  75. }).collect(Collectors.toList()));
  76. }
  77. return success(page);
  78. }
  79. @ApiOperation(value = "查看月度对表详情")
  80. @PostMapping("/getInfo")
  81. @PreAuthorize("@ss.hasPermi('base:monthly:query')")
  82. @Log(title = ModularConstans.monthly, businessType = BusinessType.QUERY)
  83. public AjaxResult getInfo(@NotEmpty(message = "主键id不能为空")
  84. @RequestParam(value = "id", required = true)
  85. Long id) {
  86. MonthlyReconciliation vo = monthlyReconciliationService.getById(id);
  87. if (!ObjectUtils.isEmpty(vo)) {
  88. LambdaQueryWrapper<SysFileRef> lw = new LambdaQueryWrapper();
  89. lw.eq(SysFileRef::getType, SysFileRefEnum.PLAN_TEMPORARY.getType());
  90. lw.eq(SysFileRef::getRedId, vo.getPlanId());
  91. List<SysFileRef> list = sysFileRefService.list(lw);
  92. if (!ObjectUtils.isEmpty(list)) {
  93. LambdaQueryWrapper<SysFileInfo> l = new LambdaQueryWrapper();
  94. l.in(SysFileInfo::getFileId, list.stream().map(SysFileRef::getFileId).collect(Collectors.toList()));
  95. vo.setFileList(sysFileService.list(l));
  96. }
  97. Map<String, Object> stringObjectMap = iSysDeptService.selectDeptById(vo.getPurchaseDeptId());
  98. if (!ObjectUtils.isEmpty(stringObjectMap)) {
  99. SysDeptResponseVo sysDept = (SysDeptResponseVo) stringObjectMap.get("sysDept");
  100. vo.setPurchaseDeptName(sysDept.getDeptName());
  101. }
  102. }
  103. return success(vo);
  104. }
  105. }