ResourceController.java 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. package com.ruoyi.web.controller.zhdd;
  2. import cn.hutool.core.collection.CollUtil;
  3. import cn.hutool.core.util.StrUtil;
  4. import cn.hutool.http.HttpStatus;
  5. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  6. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  7. import com.ruoyi.common.annotation.Log;
  8. import com.ruoyi.common.annotation.RepeatSubmit;
  9. import com.ruoyi.common.annotation.Security;
  10. import com.ruoyi.common.core.controller.BaseController;
  11. import com.ruoyi.common.core.domain.AjaxResult;
  12. import com.ruoyi.common.core.domain.GatewayUser;
  13. import com.ruoyi.common.core.page.TableDataInfo;
  14. import com.ruoyi.common.core.validate.AddGroup;
  15. import com.ruoyi.common.core.validate.EditGroup;
  16. import com.ruoyi.common.core.validate.QueryGroup;
  17. import com.ruoyi.common.enums.BusinessType;
  18. import com.ruoyi.common.utils.poi.ExcelUtil;
  19. import com.ruoyi.zhdd.domain.Resource;
  20. import com.ruoyi.zhdd.domain.ResourceDetail;
  21. import com.ruoyi.zhdd.domain.bo.ResourceBo;
  22. import com.ruoyi.zhdd.domain.vo.ResourceVo;
  23. import com.ruoyi.zhdd.service.IResourceDetailService;
  24. import com.ruoyi.zhdd.service.IResourceService;
  25. import io.swagger.annotations.Api;
  26. import io.swagger.annotations.ApiOperation;
  27. import lombok.RequiredArgsConstructor;
  28. import org.springframework.beans.factory.annotation.Autowired;
  29. import org.springframework.validation.annotation.Validated;
  30. import org.springframework.web.bind.annotation.DeleteMapping;
  31. import org.springframework.web.bind.annotation.GetMapping;
  32. import org.springframework.web.bind.annotation.PathVariable;
  33. import org.springframework.web.bind.annotation.PostMapping;
  34. import org.springframework.web.bind.annotation.PutMapping;
  35. import org.springframework.web.bind.annotation.RequestBody;
  36. import org.springframework.web.bind.annotation.RequestMapping;
  37. import org.springframework.web.bind.annotation.RestController;
  38. import javax.servlet.http.HttpServletResponse;
  39. import javax.validation.constraints.NotEmpty;
  40. import javax.validation.constraints.NotNull;
  41. import java.util.ArrayList;
  42. import java.util.Arrays;
  43. import java.util.Collections;
  44. import java.util.HashMap;
  45. import java.util.List;
  46. import java.util.Map;
  47. import java.util.stream.Collectors;
  48. /**
  49. * 应急资源Controller
  50. *
  51. * @author xintong
  52. * @date 2021-10-27
  53. */
  54. @Validated
  55. @Api(value = "应急资源控制器", tags = {"应急资源管理"})
  56. @RequiredArgsConstructor(onConstructor_ = @Autowired)
  57. @RestController
  58. @RequestMapping("/zhdd/resource")
  59. public class ResourceController extends BaseController {
  60. private final IResourceService iResourceService;
  61. private final IResourceDetailService iResourceDetailService;
  62. /**
  63. * 查询应急资源列表
  64. */
  65. @ApiOperation("查询应急资源列表")
  66. // @PreAuthorize("@ss.hasPermi('zhdd:resource:list')")
  67. @GetMapping("/list")
  68. @Security
  69. public TableDataInfo<ResourceVo> list(@Validated(QueryGroup.class) ResourceBo bo) {
  70. if (bo.getResourceType() != null && bo.getResourceType() == 1 && StrUtil.isNotBlank(bo.getGoodsName())) {
  71. // 模糊查询有哪些仓库存在此物资
  72. List<Object> objects = iResourceDetailService.listObjs(new QueryWrapper<ResourceDetail>()
  73. .select("distinct resource_id")
  74. .like("name", bo.getGoodsName()));
  75. if (objects != null && objects.size() > 0) {
  76. bo.setResourceIds(objects);
  77. } else {
  78. TableDataInfo<ResourceVo> rspData = new TableDataInfo<>();
  79. rspData.setCode(HttpStatus.HTTP_OK);
  80. rspData.setMsg("查询成功");
  81. rspData.setRows(Collections.emptyList());
  82. rspData.setTotal(0);
  83. return rspData;
  84. }
  85. }
  86. // 临时增加处理只能看到该部门的数据
  87. GatewayUser user = getGateWayUser();
  88. if (user != null && StrUtil.isNotBlank(user.getOrgId())) {
  89. List<String> deptIds = new ArrayList<>();
  90. deptIds.add(user.getOrgId());
  91. bo.setDeptIds(deptIds);
  92. }
  93. return iResourceService.queryPageList(bo);
  94. }
  95. /**
  96. * 导出应急资源列表
  97. */
  98. @ApiOperation("导出应急资源列表")
  99. @Log(title = "应急资源", businessType = BusinessType.EXPORT)
  100. @GetMapping("/export")
  101. public void export(@Validated ResourceBo bo, HttpServletResponse response) {
  102. List<ResourceVo> list = iResourceService.queryList(bo);
  103. ExcelUtil.exportExcel(list, "应急资源", ResourceVo.class, response);
  104. }
  105. /**
  106. * 获取应急资源详细信息
  107. */
  108. @ApiOperation("获取应急资源详细信息")
  109. // @PreAuthorize("@ss.hasPermi('zhdd:resource:query')")
  110. @GetMapping("/{id}")
  111. public AjaxResult<ResourceVo> getInfo(@NotNull(message = "主键不能为空")
  112. @PathVariable("id") String id) {
  113. return AjaxResult.success(iResourceService.queryById(id));
  114. }
  115. /**
  116. * 新增应急资源
  117. */
  118. @ApiOperation("新增应急资源")
  119. // @PreAuthorize("@ss.hasPermi('zhdd:resource:add')")
  120. @Log(title = "应急资源", businessType = BusinessType.INSERT)
  121. @RepeatSubmit()
  122. @PostMapping()
  123. @Security
  124. public AjaxResult<Void> add(@Validated(AddGroup.class) @RequestBody ResourceBo bo) {
  125. // // 临时增加处理只能看到该部门的数据
  126. // GatewayUser user = getGateWayUser();
  127. // if (user != null) {
  128. // bo.setDeptId(user.getOrgId());
  129. // }
  130. // 判断名称是否存在
  131. ResourceVo voOne = iResourceService.getVoOne(Wrappers.<Resource>lambdaQuery().eq(Resource::getName, bo.getName()));
  132. if (voOne != null) {
  133. return AjaxResult.error("名称已存在!");
  134. }
  135. return toAjax(iResourceService.insertResource(bo) ? 1 : 0);
  136. }
  137. /**
  138. * 修改应急资源
  139. */
  140. @ApiOperation("修改应急资源")
  141. // @PreAuthorize("@ss.hasPermi('zhdd:resource:edit')")
  142. @Log(title = "应急资源", businessType = BusinessType.UPDATE)
  143. @RepeatSubmit()
  144. @PutMapping()
  145. @Security
  146. public AjaxResult<Void> edit(@Validated(EditGroup.class) @RequestBody ResourceBo bo) {
  147. // 判断名称是否存在
  148. ResourceVo resourceVo = iResourceService.queryById(bo.getId());
  149. if (!resourceVo.getName().equals(bo.getName())) {
  150. ResourceVo voOne = iResourceService.getVoOne(Wrappers.<Resource>lambdaQuery().eq(Resource::getName, bo.getName()));
  151. if (voOne != null) {
  152. return AjaxResult.error("名称已存在!");
  153. }
  154. }
  155. return toAjax(iResourceService.updateResource(bo) ? 1 : 0);
  156. }
  157. /**
  158. * 删除应急资源
  159. */
  160. @ApiOperation("删除应急资源")
  161. // @PreAuthorize("@ss.hasPermi('zhdd:resource:remove')")
  162. @Log(title = "应急资源", businessType = BusinessType.DELETE)
  163. @DeleteMapping("/{ids}")
  164. @Security
  165. public AjaxResult<Void> remove(@NotEmpty(message = "主键不能为空")
  166. @PathVariable String[] ids) {
  167. return toAjax(iResourceService.deleteWithValidByIds(Arrays.asList(ids), true) ? 1 : 0);
  168. }
  169. @ApiOperation("查询所有应急资源信息")
  170. @GetMapping("/location")
  171. public AjaxResult<Map<String, List<ResourceVo>>> queryResourceLocation(ResourceBo bo) {
  172. List<ResourceVo> list = iResourceService.queryList(bo);
  173. Map<Integer, List<ResourceVo>> collect = list.stream().collect(Collectors.groupingBy(ResourceVo::getResourceType, Collectors.mapping(a -> a, Collectors.toList())));
  174. Map<String, List<ResourceVo>> result = new HashMap<>();
  175. result.put("应急仓库", CollUtil.defaultIfEmpty(collect.get(1), new ArrayList<>()));
  176. result.put("应急队伍", CollUtil.defaultIfEmpty(collect.get(2), new ArrayList<>()));
  177. result.put("应急车队", CollUtil.defaultIfEmpty(collect.get(3), new ArrayList<>()));
  178. return AjaxResult.success(result);
  179. }
  180. }