Browse Source

修改共享接口是否共享设置
添加获取共享数据

DESKTOP-2K9OVK9\siwei 8 months ago
parent
commit
0422cd82f9

+ 10 - 0
onemap-modules/onemap-apply/src/main/java/com/onemap/apply/controller/yzt/ZymlController.java

@@ -65,6 +65,16 @@ public class ZymlController extends BaseController {
         return list;
     }
 
+    /**
+     * 共享图层查询
+     *
+     * @return
+     */
+    @GetMapping("/GetTree/share")
+    public RequestResult GetTreeShare(String name) {
+        return zymlService.GetZymlShareList(name);
+    }
+
     /**
      * 获取资源目录树结构
      *

+ 9 - 0
onemap-modules/onemap-apply/src/main/java/com/onemap/apply/domain/yzt/ZymlDTO.java

@@ -45,6 +45,7 @@ public class ZymlDTO {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date create_time;
     private String create_by;
+    private String sharestate;
 
     public String getYwlx() {
         return ywlx;
@@ -365,4 +366,12 @@ public class ZymlDTO {
     public void setCreate_by(String create_by) {
         this.create_by = create_by;
     }
+
+    public String getSharestate() {
+        return sharestate;
+    }
+
+    public void setSharestate(String sharestate) {
+        this.sharestate = sharestate;
+    }
 }

+ 18 - 0
onemap-modules/onemap-apply/src/main/java/com/onemap/apply/domain/yzt/ZymlTreeDataDTO.java

@@ -31,6 +31,8 @@ public class ZymlTreeDataDTO {
     private String format;
     private String maximumlevel;
     private String minimumlevel;
+    private String sharestate;
+    private String year;
     private List<ZymlTreeDataDTO> children = new ArrayList<>();
 
     public String getLegend() {
@@ -218,4 +220,20 @@ public class ZymlTreeDataDTO {
     public void setMinimumlevel(String minimumlevel) {
         this.minimumlevel = minimumlevel;
     }
+
+    public String getSharestate() {
+        return sharestate;
+    }
+
+    public void setSharestate(String sharestate) {
+        this.sharestate = sharestate;
+    }
+
+    public String getYear() {
+        return year;
+    }
+
+    public void setYear(String year) {
+        this.year = year;
+    }
 }

+ 3 - 0
onemap-modules/onemap-apply/src/main/java/com/onemap/apply/mapper/yzt/ZymlMapper.java

@@ -14,6 +14,9 @@ import java.util.Map;
  */
 @Mapper
 public interface ZymlMapper {
+
+    List<ZymlDTO> GetListCondition(@Param("username") String username, @Param("bsm") String bsm, @Param("pbsm") String pbsm, @Param("name") String name, @Param("sharestate") String sharestate);
+
     List<ZymlDTO> GetList(@Param("username") String username, @Param("param") String param, @Param("resources") String resources);
 
     List<ZymlDTO> GetList4XZQH(@Param("username") String username, @Param("xzqh") String xzqh, @Param("param") String param);

+ 162 - 0
onemap-modules/onemap-apply/src/main/java/com/onemap/apply/service/impl/yzt/ZymlServiceImpl.java

@@ -428,4 +428,166 @@ public class ZymlServiceImpl implements IZymlService {
     private boolean hasChild(List<ZymlTreeDTO> list, ZymlTreeDTO t) {
         return getChildList(list, t).size() > 0 ? true : false;
     }
+
+    //递归循环
+    public List<ZymlDTO> GetZymlSubsetList(String username, String pbsm, String name, Boolean share) {
+        String sharestate = null;
+        if (share != null && share == true) {
+            sharestate = "0";
+        }
+        List<ZymlDTO> ret = new ArrayList<>();
+        List<ZymlDTO> res = zymlMapper.GetListCondition(username, null, pbsm, name, sharestate);
+        for (ZymlDTO dto : res) {
+            List<ZymlDTO> subset = GetZymlSubsetList(username, dto.getBsm(), name, share);
+            ret.addAll(subset);
+        }
+        ret.addAll(res);
+        return ret;
+    }
+
+    @Override
+    public RequestResult GetZymlList(String bsm, String pbsm, String name, Boolean share, Boolean subset) {
+        try {
+            List<ZymlDTO> res = new ArrayList<>();
+            String sharestate = "1";
+            if (share != null && share == true) {
+                sharestate = "0";
+            }
+            //TODO 暂时为admin
+//            String username = SecurityUtils.getUsername();
+            String username = "admin";
+            if (StringUtils.isNotEmpty(username)) {
+                //暂定管理员权限可以查询所有数据,其他只能看到自己的
+                if (username.equals("admin")) {
+                    username = null;
+                }
+            } else {
+                return RequestResult.error("参数缺失");
+            }
+            List<ZymlDTO> ret = zymlMapper.GetListCondition(username, bsm, pbsm, name, sharestate);
+            if (subset != null && subset) {
+                for (ZymlDTO dto : ret) {
+                    List<ZymlDTO> subsetList = GetZymlSubsetList(username, dto.getBsm(), name, share);
+                    res.addAll(subsetList);
+                }
+            }
+            res.addAll(ret);
+            List<ZymlTreeDataDTO> treedata = new ArrayList<>();
+            for (int i = 0; i < res.size(); i++) {
+                ZymlDTO cur = res.get(i);
+                ZymlTreeDataDTO c = new ZymlTreeDataDTO();
+//                c.setDisabled((cur.getParent() == 1));
+                c.setId(cur.getBsm());
+                c.setPid(cur.getPbsm());
+                c.setLabel(cur.getName());
+                c.setTitle(cur.getName());
+                c.setType(cur.getType());
+                c.setLegend(cur.getLegend());
+                c.setUrl(cur.getUrl());
+                c.setSource(cur.getSde());
+                c.setFavorite(cur.getMy());
+                c.setMinimumlevel(cur.getMinimumlevel());
+                c.setMaximumlevel(cur.getMaximumlevel());
+                c.setFormat(cur.getFormat());
+                c.setLayergroup(cur.getLayergroup());
+                c.setQpfa(cur.getQpfa());
+                c.setFwys(cur.getFwys());
+                c.setFwgzkj(cur.getFwgzkj());
+                c.setFwmc(cur.getFwmc());
+                c.setServerType(cur.getServerType());
+                c.setSharestate(cur.getSharestate());
+                c.setYear(cur.getYear());
+                treedata.add(c);
+            }
+            List<ZymlTreeDataDTO> data = buildDeptTree2(treedata);
+            return RequestResult.success("成功", data);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return RequestResult.error("失败", null);
+        }
+    }
+
+    public RequestResult GetZymlShareList(String name) {
+        List<ZymlDTO> res = new ArrayList<>();
+        List<ZymlDTO> ret = zymlMapper.GetListCondition(null, null, null, null, null);
+        for (ZymlDTO dto : ret) {
+            List<ZymlDTO> subsetList = GetZymlSubsetList(null, dto.getBsm(), null, null);
+            res.addAll(subsetList);
+        }
+        res.addAll(ret);
+        List<ZymlTreeDataDTO> treedata = new ArrayList<>();
+        for (int i = 0; i < res.size(); i++) {
+            ZymlDTO cur = res.get(i);
+            ZymlTreeDataDTO c = new ZymlTreeDataDTO();
+//                c.setDisabled((cur.getParent() == 1));
+            c.setId(cur.getBsm());
+            c.setPid(cur.getPbsm());
+            c.setLabel(cur.getName());
+            c.setTitle(cur.getName());
+            c.setType(cur.getType());
+            c.setLegend(cur.getLegend());
+            c.setUrl(cur.getUrl());
+            c.setSource(cur.getSde());
+            c.setFavorite(cur.getMy());
+            c.setMinimumlevel(cur.getMinimumlevel());
+            c.setMaximumlevel(cur.getMaximumlevel());
+            c.setFormat(cur.getFormat());
+            c.setLayergroup(cur.getLayergroup());
+            c.setQpfa(cur.getQpfa());
+            c.setFwys(cur.getFwys());
+            c.setFwgzkj(cur.getFwgzkj());
+            c.setFwmc(cur.getFwmc());
+            c.setServerType(cur.getServerType());
+            c.setSharestate(cur.getSharestate());
+            c.setYear(cur.getYear());
+            treedata.add(c);
+        }
+        //获取树
+        List<ZymlTreeDataDTO> newRET = new ArrayList<>();
+        List<ZymlTreeDataDTO> data = buildDeptTree2(treedata);
+        for (ZymlTreeDataDTO dto : data) {
+            Map<String, Object> statsMap = new HashMap<>();
+            statsMap.put("stats", false);
+            statsMap.put("id", dto.getId());
+            statsMap.put("data", dto);
+
+            Map<String, Object> retStatsMap = handleZymlTreeShare(statsMap);
+            Boolean retstats = (Boolean) retStatsMap.get("stats");
+            if (retstats) {
+                ZymlTreeDataDTO newData0 = (ZymlTreeDataDTO) retStatsMap.get("data");
+                newRET.add(newData0);
+            }
+        }
+        return RequestResult.success(newRET);
+    }
+
+
+    private Map<String, Object> handleZymlTreeShare(Map<String, Object> data) {
+        ZymlTreeDataDTO dtoObj = (ZymlTreeDataDTO) data.get("data");
+        Boolean stats = (Boolean) data.get("stats");
+        //判断是否是共享类型
+        String sharestate = dtoObj.getSharestate();
+        if (StringUtils.isNotEmpty(sharestate) && sharestate.equals("0")) {
+            stats = true;
+        }
+        List<ZymlTreeDataDTO> child = dtoObj.getChildren();
+        List<ZymlTreeDataDTO> newchild = new ArrayList<>();
+        for (ZymlTreeDataDTO dto : child) {
+            Map<String, Object> statsMap = new HashMap<>();
+            statsMap.put("stats", false);
+            statsMap.put("id", dto.getId());
+            statsMap.put("data", dto);
+            Map<String, Object> retStatsMap = handleZymlTreeShare(statsMap);
+            Boolean retstats = (Boolean) retStatsMap.get("stats");
+            if (retstats) {
+                ZymlTreeDataDTO newData0 = (ZymlTreeDataDTO) retStatsMap.get("data");
+                stats = true;
+                newchild.add(newData0);
+            }
+        }
+        dtoObj.setChildren(newchild);
+        data.put("data", dtoObj);
+        data.put("stats", stats);
+        return data;
+    }
 }

+ 13 - 0
onemap-modules/onemap-apply/src/main/java/com/onemap/apply/service/yzt/IZymlService.java

@@ -28,4 +28,17 @@ public interface IZymlService {
     RequestResult GetLegendAttr(String ywlx);
 
     RequestResult GetTree(String param);
+
+    /**
+     * 暂时放弃
+     * @param bsm
+     * @param pbsm
+     * @param name
+     * @param share
+     * @param subset
+     * @return
+     */
+    RequestResult GetZymlList(String bsm, String pbsm, String name, Boolean share,Boolean subset);
+
+    RequestResult GetZymlShareList( String name);
 }

+ 74 - 0
onemap-modules/onemap-apply/src/main/resources/mapper/postgresql/yzt/ZymlMapper.xml

@@ -4,7 +4,79 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.onemap.apply.mapper.yzt.ZymlMapper">
 
+    <select id="GetListCondition" parameterType="java.lang.String" resultType="com.onemap.apply.domain.yzt.ZymlDTO">
+        select
+        (WITH RECURSIVE a AS (
+        SELECT g.bsm, g.pbsm, g.parent
+        FROM t_yzt_zyml g
+        WHERE bsm = t.bsm
+        UNION ALL
+        SELECT d.bsm, d.pbsm, d.parent
+        FROM t_yzt_zyml d
+        JOIN a ON a.bsm = d.pbsm )
+        SELECT count(1) FROM a where a.parent = '0') as "count",
+        t.bsm as "bsm",
+        t.name as "name",
+        t.type as "type",
+        t.pbsm as "pbsm",
+        t.icon as "icon",
+        t.url as "url",
+        t.lev as "lev",
+        t.sort as "sort",
+        t.state as "state",
+        t.parent as "parent",
+        case when t.sde is null then t.server_type else 'Arcgis' end as "server_type",
+        t.sflssj as "sflssj",
+        t.sfdbfx as "sfdbfx",
+        t.sfjl as "sfjl",
+        t.sfcx as "sfcx",
+        t.sftj as "sftj",
+        t.epsg as "epsg",
+        t.year as "year",
+        t.sjlx as "sjlx",
+        t.sde as "sde",
+        t.gltj as "gltj",
+        t.sjly as "sjly",
+        t.legend as "legend",
+        t.ywlx as "ywlx",
+        t.server_type as "serverType",
+        t.fwmc as "fwmc" ,
+        t.fwgzkj as "fwgzkj",
+        t.fwys as "fwys",
+        t.qpfa as "qpfa",
+        t.layergroup as "layergroup",
+        t.format as "format",
+        t.maximumlevel as "maximumlevel",
+        t.minimumlevel as "minimumlevel",
+        t.create_time as "create_time",
+        t.create_by as "create_by",
+        t.sharestate as "sharestate"
+        from t_yzt_zyml t
+        where 1 = 1
+        <choose>
+            <when test="bsm != null and bsm != ''">
+                and t.bsm = #{bsm}
+            </when>
+            <otherwise>
+                <choose>
+                    <when test="pbsm != null and pbsm != ''">
+                        and t.pbsm = #{pbsm}
+                    </when>
+                    <otherwise>
+                        and (T.pbsm is null or T.pbsm ='')
+                    </otherwise>
+                </choose>
+            </otherwise>
+        </choose>
+        <if test="name != null and name != ''">
+            and t.name like concat('%',#{name},'%')
+        </if>
+        <if test="sharestate != null and sharestate != ''">
+            and t.sharestate = #{sharestate}
+        </if>
 
+        order by t.lev,t.pbsm,t.sort
+    </select>
     <select id="GetList" parameterType="java.lang.String" resultType="com.onemap.apply.domain.yzt.ZymlDTO">
         select
         (WITH RECURSIVE a AS (
@@ -222,6 +294,8 @@
         t.sjly as "sjly",
         t.legend as "legend",
         t.ywlx as "ywlx",
+        t.create_time as "create_time",
+        t.create_by as "create_by",
         null as "my",
         null as "fzbsm"
         from T_YZT_ZYML t where t.bsm in

+ 1 - 1
onemap-modules/onemap-apply/src/main/resources/mapper/postgresql/zymlapplication/ShareConfigurationMapper.xml

@@ -5,6 +5,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 <mapper namespace="com.onemap.apply.mapper.zymlapplication.ShareConfigurationMapper">
 
     <update id="updateZymlShareState" parameterType="String">
-        update t_yzt_zyml set sharestate = (case when sharestate ='0' then '0' else '1' end)  where bsm = #{bsm}
+        update t_yzt_zyml set sharestate = (case when sharestate !='1' then '0' else '1' end)  where bsm = #{bsm}
     </update>
 </mapper>

+ 1 - 0
onemap-modules/onemap-system/src/main/java/com/onemap/system/service/impl/TYztZymlServiceImpl.java

@@ -59,6 +59,7 @@ public class TYztZymlServiceImpl implements ITYztZymlService {
         tYztZyml = filterZymlPbsm(tYztZyml);
         tYztZyml.setCreateTime(new Date());
         tYztZyml.setCreateBy(SecurityUtils.getUsername());
+        //判断不为空
         if (!StringUtils.isEmpty(tYztZyml.getSde())) {
             String[] dblayers = tYztZyml.getSde().split(",");
             if (dblayers.length == 1) {