MonthlyReconciliationController.java 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  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.base.vo.BasePolicyPageReqVo;
  7. import com.ozs.common.annotation.Log;
  8. import com.ozs.common.constant.Constants;
  9. import com.ozs.common.constant.ModularConstans;
  10. import com.ozs.common.core.controller.BaseController;
  11. import com.ozs.common.core.domain.AjaxResult;
  12. import com.ozs.common.core.domain.entity.SysDept;
  13. import com.ozs.common.core.domain.entity.SysDictData;
  14. import com.ozs.common.core.domain.entity.SysRole;
  15. import com.ozs.common.enums.BusinessType;
  16. import com.ozs.common.enums.SysFileRefEnum;
  17. import com.ozs.plan.doman.MonthlyReconciliation;
  18. import com.ozs.plan.doman.vo.requestVo.MonthlyReconciliationPageReqVo;
  19. import com.ozs.plan.service.MonthlyReconciliationService;
  20. import com.ozs.system.domain.SysFileInfo;
  21. import com.ozs.system.domain.SysFileRef;
  22. import com.ozs.system.domain.vo.responseVo.SysDeptResponseVo;
  23. import com.ozs.system.service.ISysDeptService;
  24. import com.ozs.system.service.ISysDictTypeService;
  25. import com.ozs.system.service.SysFileRefService;
  26. import com.ozs.system.service.SysFileService;
  27. import io.swagger.annotations.Api;
  28. import io.swagger.annotations.ApiOperation;
  29. import org.apache.commons.lang3.StringUtils;
  30. import org.springframework.beans.factory.annotation.Autowired;
  31. import org.springframework.security.access.prepost.PreAuthorize;
  32. import org.springframework.util.ObjectUtils;
  33. import org.springframework.web.bind.annotation.*;
  34. import javax.validation.constraints.NotEmpty;
  35. import java.util.Arrays;
  36. import java.util.List;
  37. import java.util.Map;
  38. import java.util.stream.Collectors;
  39. @RestController
  40. @RequestMapping("/monthly/reconciliation")
  41. @Api(tags = ModularConstans.monthly)
  42. public class MonthlyReconciliationController extends BaseController {
  43. @Autowired
  44. private MonthlyReconciliationService monthlyReconciliationService;
  45. @Autowired
  46. private SysFileRefService sysFileRefService;
  47. @Autowired
  48. private SysFileService sysFileService;
  49. @Autowired
  50. private ISysDeptService iSysDeptService;
  51. @Autowired
  52. private ISysDictTypeService dictTypeService;
  53. @ApiOperation(value = "分页查询月度对表")
  54. @PostMapping("/page")
  55. @PreAuthorize("@ss.hasPermi('base:monthly:list')")
  56. @Log(title = ModularConstans.monthly, businessType = BusinessType.QUERY)
  57. public AjaxResult page(@NotEmpty(message = "数据为空")
  58. @RequestBody MonthlyReconciliationPageReqVo vo) {
  59. vo.setDeptId(getDeptId());
  60. vo.setUserId(getUserId());
  61. // 分页查询
  62. IPage<MonthlyReconciliation> page = monthlyReconciliationService.queryPage(vo);
  63. if (!ObjectUtils.isEmpty(page.getRecords()) && page.getRecords().size() > 0) {
  64. page.setRecords(page.getRecords().stream().map(dto -> {
  65. // 采购单位名称
  66. Map<String, Object> stringObjectMap = iSysDeptService.selectDeptById(dto.getPurchaseDeptId());
  67. if (!ObjectUtils.isEmpty(stringObjectMap)) {
  68. SysDeptResponseVo sysDept = (SysDeptResponseVo) stringObjectMap.get("sysDept");
  69. dto.setPurchaseDeptName(sysDept.getDeptName());
  70. }
  71. // 项目状态
  72. List<SysDictData> projectStatus = dictTypeService.selectDictDataByType(Constants.SYS_PROJECT_STATUS);
  73. if (!ObjectUtils.isEmpty(projectStatus)) {
  74. List<SysDictData> collect = projectStatus.stream()
  75. .filter(d -> d.getDictValue().equals(dto.getProjectStatus())).collect(Collectors.toList());
  76. if (!ObjectUtils.isEmpty(collect)) {
  77. dto.setProjectStatusStr(collect.get(0).getDictLabel());
  78. }
  79. }
  80. // 报警状态
  81. List<SysDictData> warnStatus = dictTypeService.selectDictDataByType(Constants.PROJECT_WARN_STATUS);
  82. if (!ObjectUtils.isEmpty(warnStatus)) {
  83. List<SysDictData> collect = warnStatus.stream()
  84. .filter(d -> d.getDictValue().equals(dto.getWarnStatus())).collect(Collectors.toList());
  85. if (!ObjectUtils.isEmpty(collect)) {
  86. dto.setWarnStatusStr(collect.get(0).getDictLabel());
  87. }
  88. }
  89. return dto;
  90. }).collect(Collectors.toList()));
  91. }
  92. return success(page);
  93. }
  94. @ApiOperation(value = "查看月度对表详情")
  95. @PostMapping("/getInfo")
  96. @PreAuthorize("@ss.hasPermi('base:monthly:query')")
  97. @Log(title = ModularConstans.monthly, businessType = BusinessType.QUERY)
  98. public AjaxResult getInfo(@NotEmpty(message = "主键id不能为空")
  99. @RequestParam(value = "id", required = true)
  100. Long id) {
  101. MonthlyReconciliation vo = monthlyReconciliationService.getById(id);
  102. if (!ObjectUtils.isEmpty(vo)) {
  103. LambdaQueryWrapper<SysFileRef> lw = new LambdaQueryWrapper();
  104. lw.eq(SysFileRef::getType, SysFileRefEnum.PLAN_TEMPORARY.getType());
  105. lw.eq(SysFileRef::getRedId, vo.getPlanId());
  106. List<SysFileRef> list = sysFileRefService.list(lw);
  107. if (!ObjectUtils.isEmpty(list)) {
  108. LambdaQueryWrapper<SysFileInfo> l = new LambdaQueryWrapper();
  109. l.in(SysFileInfo::getFileId, list.stream().map(SysFileRef::getFileId).collect(Collectors.toList()));
  110. vo.setFileList(sysFileService.list(l));
  111. }
  112. Map<String, Object> stringObjectMap = iSysDeptService.selectDeptById(vo.getPurchaseDeptId());
  113. if (!ObjectUtils.isEmpty(stringObjectMap)) {
  114. SysDeptResponseVo sysDept = (SysDeptResponseVo) stringObjectMap.get("sysDept");
  115. vo.setPurchaseDeptName(sysDept.getDeptName());
  116. }
  117. // 采购服务站名称
  118. List<SysDictData> data = dictTypeService.selectDictDataByType("purchase_services");
  119. if (!ObjectUtils.isEmpty(data)) {
  120. List<SysDictData> collect = data.stream()
  121. .filter(d -> d.getDictValue().equals(vo.getPurchaseServices())).collect(Collectors.toList());
  122. if (!ObjectUtils.isEmpty(collect)) {
  123. vo.setPurchaseServicesName(collect.get(0).getDictLabel());
  124. }
  125. }
  126. }
  127. return success(vo);
  128. }
  129. @ApiOperation(value = "根据项目名称模糊查询项目信息")
  130. @PostMapping("/listProjectInfoLikeName")
  131. @Log(title = ModularConstans.monthly, businessType = BusinessType.QUERY)
  132. public AjaxResult listProjectInfoLikeName(@NotEmpty(message = "数据为空")
  133. @RequestBody BasePolicyPageReqVo vo) {
  134. LambdaQueryWrapper<MonthlyReconciliation> lw = new LambdaQueryWrapper<>();
  135. if (!StringUtils.isBlank(vo.getName())) {
  136. lw.like(MonthlyReconciliation::getProjectName, vo.getName());
  137. }
  138. return success(monthlyReconciliationService.list(lw));
  139. }
  140. }