package com.javaweb.geo.controller; import java.io.File; import java.util.ArrayList; import java.util.List; import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.ObjectUtil; import com.javaweb.common.config.Global; import com.javaweb.geo.domain.Hole; import com.javaweb.geo.domain.HoleMedia; import com.javaweb.geo.service.IHoleMediaService; import com.javaweb.geo.vo.FileVo; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.*; import com.javaweb.common.annotation.Log; import com.javaweb.common.enums.BusinessType; import com.javaweb.geo.domain.ProjectData; import com.javaweb.geo.service.IProjectDataService; import com.javaweb.common.core.controller.BaseController; import com.javaweb.common.core.domain.AjaxResult; import com.javaweb.common.utils.poi.ExcelUtil; import com.javaweb.common.core.page.TableDataInfo; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; /** * 项目资料Controller * * @author cxy * @date 2024-05-16 */ @Controller @RequestMapping("/geo/projectData") public class ProjectDataController extends BaseController { private String prefix = "geo/projectData"; @Autowired private IProjectDataService projectDataService; @Autowired private IHoleMediaService holeMediaService; @RequiresPermissions("geo:projectData:view") @GetMapping() public String projectData(String id, String type, ModelMap mmap) { mmap.put("projectId", id); mmap.put("type", type); return prefix + "/projectData"; } @RequiresPermissions("geo:projectData:view") @GetMapping("/2") public String projectData2(String id, String type, ModelMap mmap) { mmap.put("projectId", id); mmap.put("type", type); return prefix + "/projectData2"; } /** * 导入压缩包 */ @GetMapping("/importImg") public String importPdf(String projectDataId,ModelMap mmap){ mmap.put("projectDataId",projectDataId); return prefix + "/upload"; } /** * 图片展示 */ @GetMapping("/viewImage") public String viewImage(ModelMap mmap, @RequestParam("id") String id){ ProjectData data = projectDataService.selectProjectDataById(id); String path = ""; if (!ObjectUtils.isEmpty(data)){ path = data.getDataUrl(); } mmap.put("urlAddress",path); return prefix + "/image_view"; } /** * 项目文件列表页面 * @return */ @GetMapping("/projectDataFileList") public String projectDataFileList(String id ,ModelMap modelMap){ modelMap.put("id",id); return prefix + "/files"; } /** * 查询项目资料列表 */ @RequiresPermissions("geo:projectData:list") @PostMapping("/list") @ResponseBody public TableDataInfo list(ProjectData projectData) { startPage(); List list = projectDataService.selectProjectDataList(projectData); return getDataTable(list); } /** * 导出项目资料列表 */ @RequiresPermissions("geo:projectData:export") @Log(title = "项目资料", businessType = BusinessType.EXPORT) @PostMapping("/export") @ResponseBody public AjaxResult export(ProjectData projectData) { List list = projectDataService.selectProjectDataList(projectData); ExcelUtil util = new ExcelUtil(ProjectData.class); return util.exportExcel(list, "projectData"); } /** * 新增项目资料 */ @GetMapping("/add") public String add(String projectId, String dataType, ModelMap mmap) { mmap.put("projectId", projectId); mmap.put("dataType", dataType); return prefix + "/add"; } /** * 新增保存项目资料 */ @RequiresPermissions("geo:projectData:add") @Log(title = "项目资料", businessType = BusinessType.INSERT) @PostMapping("/add") @ResponseBody public AjaxResult addSave(ProjectData projectData) { return toAjax(projectDataService.insertProjectData(projectData)); } /** * 修改项目资料 */ @GetMapping("/edit/{id}") public String edit(@PathVariable("id") String id, ModelMap mmap) { ProjectData projectData = projectDataService.selectProjectDataById(id); mmap.put("projectData", projectData); return prefix + "/edit"; } /** * 修改保存项目资料 */ @RequiresPermissions("geo:projectData:edit") @Log(title = "项目资料", businessType = BusinessType.UPDATE) @PostMapping("/edit") @ResponseBody public AjaxResult editSave(ProjectData projectData) { return toAjax(projectDataService.updateProjectData(projectData)); } /** * 删除项目资料 */ @RequiresPermissions("geo:projectData:remove") @Log(title = "项目资料", businessType = BusinessType.DELETE) @PostMapping("/remove") @ResponseBody public AjaxResult remove(String ids) { return toAjax(projectDataService.deleteProjectDataByIds(ids)); } /** * 上传压缩包 */ @PostMapping("/uploadZIP") @ResponseBody public AjaxResult uploadZIP(MultipartFile file, HttpServletRequest request){ return projectDataService.uploadZIP(file,request); } /** * 获取文件列表 * @param id * @return */ @PostMapping( "/listFile") @ResponseBody public TableDataInfo listFile(String id){ List paths = new ArrayList<>(); HoleMedia holeMedia = new HoleMedia(); holeMedia.setRecordId(id); List holeMedias =holeMediaService.selectHoleMediaList(holeMedia); if(ObjectUtil.isNotEmpty(holeMedias)){ for(HoleMedia holeMedia1 :holeMedias ){ FileVo vo = new FileVo() ; vo.setName(holeMedia1.getName()); vo.setPath(holeMedia1.getInternetPath()); paths.add(vo); } } return getDataTable(paths); } }