2 次代码提交 e19a08aea0 ... d4ff6d6f12

作者 SHA1 备注 提交日期
  wangtong d4ff6d6f12 Merge remote-tracking branch 'origin/master' 1 年之前
  wangtong 91ec8e5e36 提交代码 1 年之前

+ 36 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/gas/GCourtyardNetworkManagementController.java

@@ -1,5 +1,6 @@
 package com.ruoyi.web.controller.gas;
 
+import cn.hutool.http.HttpStatus;
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.annotation.RepeatSubmit;
 import com.ruoyi.common.core.controller.BaseController;
@@ -9,11 +10,15 @@ import com.ruoyi.common.core.validate.AddGroup;
 import com.ruoyi.common.core.validate.EditGroup;
 import com.ruoyi.common.core.validate.QueryGroup;
 import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.framework.obs.FileUtil;
 import com.ruoyi.gas.domain.bo.BatchReviewBo;
 import com.ruoyi.gas.domain.bo.GCourtyardNetworkManagementBo;
+import com.ruoyi.gas.domain.bo.zipFileBo;
 import com.ruoyi.gas.domain.vo.GCourtyardNetworkManagementVo;
 import com.ruoyi.gas.service.IGCourtyardNetworkManagementService;
+import com.ruoyi.gas.utils.FileInstallUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
@@ -22,9 +27,11 @@ import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.constraints.NotEmpty;
 import javax.validation.constraints.NotNull;
+import java.io.IOException;
 import java.util.Arrays;
 import java.util.List;
 
@@ -42,7 +49,8 @@ import java.util.List;
 public class GCourtyardNetworkManagementController extends BaseController {
 
     private final IGCourtyardNetworkManagementService iGCourtyardNetworkManagementService;
-
+   @Resource
+    private  FileInstallUtils fileInstallUtils;
     // 批量审核
     @PostMapping("batchReview")
     public AjaxResult<Void> batchReview(@RequestBody BatchReviewBo bo) {
@@ -69,6 +77,33 @@ public class GCourtyardNetworkManagementController extends BaseController {
         List<GCourtyardNetworkManagementVo> list = iGCourtyardNetworkManagementService.queryList(bo);
         ExcelUtil.exportExcel(list, "庭院网管", GCourtyardNetworkManagementVo.class, response);
     }
+    @ApiOperation("导出庭院网管列表")
+    @PreAuthorize("@ss.hasPermi('gas:courtyardNetworkManagement:export')")
+    @Log(title = "庭院网管", businessType = BusinessType.EXPORT)
+    @GetMapping("/install")
+    public void install(@Validated GCourtyardNetworkManagementBo bo, HttpServletResponse response) {
+        List<zipFileBo> list = iGCourtyardNetworkManagementService.installList(bo);
+        if (list.size()==0)
+        {
+            throw new ServiceException("该小区下无工作内容", HttpStatus.HTTP_ACCEPTED);
+        }
+//        List <zipFileBo> zipFileBoList=new ArrayList<>();
+//              list.forEach(item->{
+//                  zipFileBo zipFileBo=new zipFileBo();
+//                  BeanUtils.copyProperties(item,zipFileBo);
+//                  zipFileBo.setType("庭院网管");
+//                  zipFileBo.setPhotoList(item.getPhotoList());
+//                  zipFileBoList.add(zipFileBo);
+//
+//              });
+        String fileName= fileInstallUtils.installFile(list);
+        try {
+            FileUtil.toZip(fileName,response.getOutputStream(),true);
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+//        ExcelUtil.exportExcel(list, "庭院网管", GCourtyardNetworkManagementVo.class, response);
+    }
 
     /**
      * 获取庭院网管详细信息

+ 30 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/domain/bo/zipFileBo.java

@@ -0,0 +1,30 @@
+package com.ruoyi.gas.domain.bo;
+
+import com.ruoyi.common.core.domain.BaseEntity;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class zipFileBo extends BaseEntity {
+    /**
+     * 名称
+     */
+    private  String  Name;
+    /**
+     * 类型
+     */
+    private  String  Type;
+    /**
+     * 创建人
+     */
+    private  String  CreateByName;
+    /**
+     * 时间
+     */
+    private  String  time;
+    /**
+     * 照片
+     */
+    private List<String> photoList;
+}

+ 13 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/mapper/GCourtyardNetworkManagementMapper.java

@@ -8,6 +8,7 @@ import com.ruoyi.gas.domain.vo.GCourtyardNetworkManagementVo;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 庭院网管Mapper接口
@@ -20,5 +21,17 @@ public interface GCourtyardNetworkManagementMapper extends BaseMapperPlus<GCourt
     Page<GCourtyardNetworkManagementVo> getList(@Param("p") GCourtyardNetworkManagementBo bo, Page<?> page);
     List<String> getPhoto(Long id);
     GCourtyardNetworkManagementVo getById(Long id);
+    List<Map> getInstallList(@Param("p") GCourtyardNetworkManagementBo bo);
+    //调压箱维护
+//    List<Map> getBoxMaintenanceList(@Param("p") GCourtyardNetworkManagementBo bo);
+     //调压箱巡查
+    List<Map> getRegulatorBoxList(@Param("p") GCourtyardNetworkManagementBo bo);
+    //路段巡查
+//    List<Map> getRoadSectionList(@Param("p") GCourtyardNetworkManagementBo bo);
+//    //阀井巡查
+//    List<Map> getValveWellList(@Param("p") GCourtyardNetworkManagementBo bo);
+    //巡检车队
+    List<Map> getAllList(@Param("p") GCourtyardNetworkManagementBo bo);
+
 
 }

+ 5 - 3
ruoyi-gas/src/main/java/com/ruoyi/gas/service/IGCourtyardNetworkManagementService.java

@@ -1,11 +1,12 @@
 package com.ruoyi.gas.service;
 
+import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
+import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.gas.domain.GCourtyardNetworkManagement;
 import com.ruoyi.gas.domain.bo.BatchReviewBo;
-import com.ruoyi.gas.domain.vo.GCourtyardNetworkManagementVo;
 import com.ruoyi.gas.domain.bo.GCourtyardNetworkManagementBo;
-import com.ruoyi.common.core.mybatisplus.core.IServicePlus;
-import com.ruoyi.common.core.page.TableDataInfo;
+import com.ruoyi.gas.domain.bo.zipFileBo;
+import com.ruoyi.gas.domain.vo.GCourtyardNetworkManagementVo;
 
 import java.util.Collection;
 import java.util.List;
@@ -35,6 +36,7 @@ public interface IGCourtyardNetworkManagementService extends IServicePlus<GCourt
 	 * 查询列表
 	 */
 	List<GCourtyardNetworkManagementVo> queryList(GCourtyardNetworkManagementBo bo);
+	List<zipFileBo> installList(GCourtyardNetworkManagementBo bo);
 
 	/**
 	 * 根据新增业务对象插入庭院网管

+ 32 - 4
ruoyi-gas/src/main/java/com/ruoyi/gas/service/impl/GCourtyardNetworkManagementServiceImpl.java

@@ -12,6 +12,7 @@ import com.ruoyi.gas.domain.GCourtyardNetworkManagement;
 import com.ruoyi.gas.domain.bo.BatchReviewBo;
 import com.ruoyi.gas.domain.bo.GCourtyardNetworkManagementBo;
 import com.ruoyi.gas.domain.bo.GNetworkManagementPhotoBo;
+import com.ruoyi.gas.domain.bo.zipFileBo;
 import com.ruoyi.gas.domain.vo.GCourtyardNetworkManagementVo;
 import com.ruoyi.gas.mapper.GCourtyardNetworkManagementMapper;
 import com.ruoyi.gas.service.IGCourtyardNetworkManagementService;
@@ -19,10 +20,9 @@ import com.ruoyi.gas.service.IGNetworkManagementPhotoService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -67,6 +67,34 @@ public class GCourtyardNetworkManagementServiceImpl extends ServicePlusImpl<GCou
     public List<GCourtyardNetworkManagementVo> queryList(GCourtyardNetworkManagementBo bo) {
         return listVo(buildQueryWrapper(bo));
     }
+    @Override
+    public List<zipFileBo> installList(GCourtyardNetworkManagementBo bo) {
+        List<Map> list=new ArrayList<>();
+        if (!bo.getRemarks().equals("4")&&!bo.getRemarks().equals("0"))
+        {
+            list=baseMapper.getAllList(bo);
+        }
+       else if (bo.getRemarks()=="4")
+        {
+            list=baseMapper.getRegulatorBoxList(bo);
+        }else if (bo.getRemarks().equals("0"))
+        {
+            list=baseMapper.getInstallList(bo);
+        }
+        List<zipFileBo> zipFileBoList=new ArrayList<>();
+
+        DateFormat fmt =new SimpleDateFormat("yyyy-MM-dd");
+        list.stream().forEach(item->{
+            zipFileBo zipFileBo=new zipFileBo();
+            zipFileBo.setType(bo.getFindProblem());
+            zipFileBo.setCreateByName(item.containsKey("createName")?item.get("createName").toString():"null");
+            zipFileBo.setPhotoList(item.containsKey("pic_urls")? Arrays.asList(item.get("pic_urls").toString().split(",")) :new ArrayList<>());
+            zipFileBo.setName(item.containsKey("areaName")?item.get("areaName").toString():"null");
+            zipFileBo.setTime(item.containsKey("create_time")?item.get("create_time").toString().split("T")[0]:null);
+            zipFileBoList.add(zipFileBo);
+        });
+        return zipFileBoList;
+    }
 
     private LambdaQueryWrapper<GCourtyardNetworkManagement> buildQueryWrapper(GCourtyardNetworkManagementBo bo) {
         Map<String, Object> params = bo.getParams();

+ 1 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/service/impl/GPipelineGasUserServiceImpl.java

@@ -42,6 +42,7 @@ public class GPipelineGasUserServiceImpl extends ServicePlusImpl<GPipelineGasUse
         voById.setPhotoList(baseMapper.getPhoto(id));
 //        voById.setCreateByName(baseMapper.getName(voById.getCreateBy()));
         return voById;
+
     }
 
     @Override

+ 72 - 0
ruoyi-gas/src/main/java/com/ruoyi/gas/utils/FileInstallUtils.java

@@ -0,0 +1,72 @@
+package com.ruoyi.gas.utils;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.framework.obs.ObsService;
+import com.ruoyi.gas.domain.bo.zipFileBo;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
+
+@Service
+public class FileInstallUtils {
+
+    @Value("${filePath}")
+    private String filePath;
+    @Resource
+    private ObsService obsService;
+
+
+    public String installFile(List<zipFileBo> zipFileBoList){
+      zipFileBoList.stream().forEach( zipFileBo -> {
+          if (!ObjectUtil.isEmpty(zipFileBo))
+          {
+      zipFileBo.getPhotoList().stream().forEach(photo->{
+          if(StringUtils.isNotBlank(photo))
+          {
+              // 最底层
+           File file=new File(filePath);
+              if (!file.exists()) {
+                  file.mkdirs();
+              }
+              File Namefile=new File(new String(file.getPath()+"/"+zipFileBo.getName()));
+              if (!Namefile.exists()) {
+                  Namefile.mkdirs();
+              }
+              File typefile=new File(new String(Namefile.getPath()+"/"+zipFileBo.getType()));
+              if (!typefile.exists()) {
+                  typefile.mkdirs();
+              }
+
+              File timefile=new File(new String(typefile.getPath()+"/"+zipFileBo.getTime()));
+              if (!timefile.exists()) {
+                  timefile.mkdirs();
+              }
+              File createNamefile=new File(new String(timefile.getPath()+"/"+zipFileBo.getCreateByName()));
+              if (!createNamefile.exists()) {
+                  createNamefile.mkdirs();
+              }
+              try {
+                  obsService.download(createNamefile.getPath(), photo.substring(photo.lastIndexOf("/")+1));
+                  System.out.println(photo.substring(photo.lastIndexOf("/")+1));
+                  System.out.println(photo);
+                  System.out.println(createNamefile.getPath());
+              } catch (IOException e) {
+                  e.printStackTrace();
+              }
+          }
+
+      });
+          }
+
+      });
+
+
+    return  filePath+"/"+zipFileBoList.get(0).getName();
+
+    }
+}

+ 97 - 0
ruoyi-gas/src/main/resources/mapper/GCourtyardNetworkManagementMapper.xml

@@ -51,6 +51,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </where>
         ORDER BY a.create_time DESC
     </select>
+
     <select id="getById" resultType="com.ruoyi.gas.domain.vo.GCourtyardNetworkManagementVo">
         select a.*,
                c.id AS buildingId,
@@ -63,4 +64,100 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         where a.id = #{id}
           and a.del_flag = '0'
     </select>
+    <select id="getInstallList" resultType="java.util.Map">
+        SELECT
+        a.create_time,
+            (SELECT u.NAME FROM g_user u WHERE u.id = a.create_by AND u.del_flag = 0) AS createName,
+            c.NAME AS buildingName,
+            d.NAME AS areaName,
+            GROUP_CONCAT(e.pic_url) AS pic_urls
+        FROM
+            g_courtyard_network_management a
+                LEFT JOIN g_building c ON a.building_id = c.id AND c.del_flag = '0'
+                LEFT JOIN g_area d ON d.id = c.area_id AND d.del_flag = '0'
+                LEFT JOIN g_network_management_photo e ON e.courtyard_network_management_id = a.id
+        <where>
+            a.del_flag = '0'
+            <if test="p.id != null  and p.id != ''">
+                and d.id = #{p.id}
+            </if>
+<!--            <if test="p.areaName != null  and p.areaName != ''">-->
+<!--                and d.name LIKE concat('%', #{p.areaName}, '%')-->
+<!--            </if>-->
+<!--            <if test="p.createBy != null  and p.createBy != ''">-->
+<!--                and a.create_by = #{p.createBy}-->
+<!--            </if>-->
+<!--            <if test="p.ranks != null and p.ranks != ''">-->
+<!--                and u.ranks = #{p.ranks}-->
+<!--            </if>-->
+        </where>
+        GROUP BY
+        a.create_time,
+            createName,
+            buildingName,
+            areaName
+    </select>
+    <select id="getRegulatorBoxList" resultType="java.util.Map">
+        SELECT
+        a.create_time ,
+        b.name AS createName,
+        d.post_name AS `areaName`,
+        GROUP_CONCAT(C.pic_url) AS pic_urls
+        FROM
+        g_regulator_box  a
+        LEFT JOIN g_user b ON a.create_by=b.id
+        LEFT JOIN g_regulator_box_photo c ON c.regulator_box_id=a.id
+        LEFT JOIN sys_post d ON b.ranks=d.post_id
+        <where>
+            a.del_flag = '0'
+            <if test="p.id != null  and p.id != ''">
+                and b.ranks = #{p.id}
+            </if>
+            <!--            <if test="p.areaName != null  and p.areaName != ''">-->
+            <!--                and d.name LIKE concat('%', #{p.areaName}, '%')-->
+            <!--            </if>-->
+            <!--            <if test="p.createBy != null  and p.createBy != ''">-->
+            <!--                and a.create_by = #{p.createBy}-->
+            <!--            </if>-->
+            <!--            <if test="p.ranks != null and p.ranks != ''">-->
+            <!--                and u.ranks = #{p.ranks}-->
+            <!--            </if>-->
+        </where>
+        GROUP BY
+        a.create_time,
+        b.name,
+        d.post_name
+    </select>
+    <select id="getAllList" resultType="java.util.Map">
+        SELECT
+        a.create_time ,
+        b.name AS createName,
+        d.post_name AS `areaName`,
+        GROUP_CONCAT(C.pic_url) AS pic_urls
+        FROM
+        ${p.remarks}  a
+        LEFT JOIN g_user b ON a.create_by=b.id
+        LEFT JOIN ${p.remarks}_photo c ON c.parent_id=a.id
+        LEFT JOIN sys_post d ON b.ranks=d.post_id
+        <where>
+            a.del_flag = '0'
+            <if test="p.id != null  and p.id != ''">
+                and b.ranks = #{p.id}
+            </if>
+            <!--            <if test="p.areaName != null  and p.areaName != ''">-->
+            <!--                and d.name LIKE concat('%', #{p.areaName}, '%')-->
+            <!--            </if>-->
+            <!--            <if test="p.createBy != null  and p.createBy != ''">-->
+            <!--                and a.create_by = #{p.createBy}-->
+            <!--            </if>-->
+            <!--            <if test="p.ranks != null and p.ranks != ''">-->
+            <!--                and u.ranks = #{p.ranks}-->
+            <!--            </if>-->
+        </where>
+        GROUP BY
+        a.create_time,
+        b.name,
+        d.post_name
+    </select>
+
 </mapper>