1
0
chenendian 2 дней назад
Родитель
Сommit
3bf7ce1b15

+ 27 - 1
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/controller/cadastre/SupplyController.java

@@ -566,8 +566,34 @@ public class SupplyController extends BaseController {
     }
 
 
+    /**
+     *
+     * 收储文件上传入库
+     * 0 全量更新;1 增量更新
+     */
+    @PostMapping("/schedule/import")
+    public R<String> importSchedule(String shpFilePath,String addType) {
+        try {
+            Map<String, Object>  res = supplyService.importSupplySchedule(shpFilePath,addType);
+            return R.ok("success");
+        } catch (Exception e) {
+            return R.fail(e.getMessage());
+        }
+    }
 
-
+    @GetMapping("/supply/list")
+    public  R<?> supplyList(
+            @RequestParam(value = "pageNum", required = false) Integer pageNum,
+            @RequestParam(value = "pageSize", required = false) Integer pageSize) {
+        try {
+            startPage();
+            List<Map<String, Object>>  resList = supplyService.supplyList("gj_gongdi_xiangmu_jihua","");
+            return R.ok(getDataTable(resList));
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.fail(e.getMessage());
+        }
+    }
 
 
 }

+ 16 - 4
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/domain/GongdiJihua.java

@@ -13,9 +13,9 @@ public class GongdiJihua {
 
     private Integer fid;
 
-    private BigDecimal mjPfm;
+    private BigDecimal mj12;
 
-    private BigDecimal mjMu;
+    private BigDecimal mjM;
 
     private String xmmc;
 
@@ -24,9 +24,21 @@ public class GongdiJihua {
     private String gyfs;
 
     @JsonFormat(pattern = "yyyy-MM-dd")
-    private Date gysj;
+    private Date ngysj;
+
+    private String nf;
+
+    private String nydwz;
+
+    private String xzqmc;
+
+    private String tgdw;
+
+    private BigDecimal ybpmj;
+
+    private BigDecimal wbpmj;
 
     private String bz;
 
     private String geom;
-}
+}

+ 7 - 0
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/mapper/GongdiJihuaMapper.java

@@ -30,4 +30,11 @@ public interface GongdiJihuaMapper {
     List<Map<String, Object>> getPlanStatsByLandType(@Param("startTime") String startTime, @Param("endTime") String endTime);
 
     List<Map<String, Object>> getPlanStatsBySupplyMode(@Param("startTime") String startTime, @Param("endTime") String endTime);
+
+    List<Map<String, Object>> supplyList(@Param("tableName") String tableName,@Param("year") String year);
+
+    int insertTableSupplyData(@Param("tableName") String tableName, @Param("data") Map<String, Object> data, @Param("shpDbSRID") Integer shpDbSRID);
+
+    int deleteByTable(@Param("tableName") String tableName, @Param("gid") String gid);
+
 }

+ 4 - 2
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/service/cadastre/ISupplyService.java

@@ -18,7 +18,6 @@ public interface ISupplyService {
 
     LandSupplyReportDTO getTdgyReport(String startTime,String endTime); //  supplyService.getTdgyReport(startTime,endTime);
 
-
     SupplyYearStatisticsRes yearStatistics(String year);
 
     TrendStatisticsRes trendStatistics(String landType);
@@ -31,7 +30,10 @@ public interface ISupplyService {
 
     Map<String,Object> getActualProject(String id);
 
-
     List<LandType> getLandTypeList();
 
+    Map<String, Object> importSupplySchedule(String shpFilePath,String addType);
+
+    List<Map<String, Object>> supplyList(String tableName,String sourceType);
+
 }

+ 125 - 6
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/service/cadastre/impl/SupplyServiceImpl.java

@@ -8,20 +8,29 @@ import com.siwei.apply.domain.vo.GongdiJihuaFilterVo;
 import com.siwei.apply.domain.vo.LandSupplyProjectVO;
 import com.siwei.apply.domain.vo.LandSupplyReportVO;
 import com.siwei.apply.enums.LandUseTypeEnum;
+import com.siwei.apply.mapper.GjShouchuJihuaMapper;
 import com.siwei.apply.mapper.GongdiJihuaMapper;
 import com.siwei.apply.mapper.LandTypeMapper;
 import com.siwei.apply.mapper.TdgyMapper;
 import com.siwei.apply.service.cadastre.ISupplyService;
+import com.siwei.common.core.constant.SecurityConstants;
+import com.siwei.common.core.domain.R;
+import com.siwei.common.core.exception.ServiceException;
 import com.siwei.common.core.utils.StringUtils;
+import com.siwei.spatial.api.RemoteSpatialFilesDbService;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.collections4.MapUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.io.File;
 import java.math.BigDecimal;
 import java.util.*;
 import java.util.stream.Collectors;
 
 
+@Slf4j
 @Service
 public class SupplyServiceImpl implements ISupplyService {
 
@@ -34,6 +43,13 @@ public class SupplyServiceImpl implements ISupplyService {
     @Autowired
     private LandTypeMapper landTypeMapper;
 
+    @Autowired
+    private RemoteSpatialFilesDbService remoteSpatialFilesDbService;
+
+    @Autowired
+    private GjShouchuJihuaMapper gjShouchuJihuaMapper;
+
+
 
 
     @Override
@@ -78,10 +94,10 @@ public class SupplyServiceImpl implements ISupplyService {
             supplyRate.setPlanProjectCount(list.size());
             supplyRate.setCompleteProjectCount(completeList.size()); 
 
-            //根据GongdiJihua 对象的MjMu 计算加总值
+            //根据GongdiJihua 对象的MjM 计算加总值
             double planArea = list.stream()
-                .filter(g -> g.getMjMu() != null)
-                .mapToDouble(g -> g.getMjMu().doubleValue())
+                .filter(g -> g.getMjM() != null)
+                .mapToDouble(g -> g.getMjM().doubleValue())
                 .sum();
             supplyRate.setPlanArea((float) planArea);
 
@@ -102,7 +118,7 @@ public class SupplyServiceImpl implements ISupplyService {
                     .map(g -> {
                         for (LandUseTypeEnum type : LandUseTypeEnum.values()) {
                             if (type.getName().equals(g.getTdyt())) {
-                                return Map.entry(type.getParentName(), g.getMjMu() != null ? g.getMjMu().doubleValue() : 0.0);
+                                return Map.entry(type.getParentName(), g.getMjM() != null ? g.getMjM().doubleValue() : 0.0);
                             }
                         }
                         return null;
@@ -559,9 +575,9 @@ public class SupplyServiceImpl implements ISupplyService {
                 vo.setSupplyType(supplyType.toString());
                 vo.setDateType(supplyType.toString());
                 vo.setGeom(item.getGeom());
-                String area = String.format("%.2f", item.getMjMu() == null ? BigDecimal.ZERO : item.getMjMu());
+                String area = String.format("%.2f", item.getMjM() == null ? BigDecimal.ZERO : item.getMjM());
                 vo.setArea(area);
-                vo.setYear(item.getGysj());
+                vo.setYear(item.getNgysj());
                 return vo;
             }).collect(Collectors.toList());
         }else if(supplyType == 2){
@@ -736,4 +752,107 @@ public class SupplyServiceImpl implements ISupplyService {
         }
         return 0;
     }
+
+
+
+
+
+    @Override
+    public Map<String, Object> importSupplySchedule(String shpFilePath,String addType) {
+        Map<String, Object> retMap = new LinkedHashMap<>();
+        if(StringUtils.isBlank(shpFilePath)){
+            throw new ServiceException("文件不存在请重新上传!");
+        }
+        File file = new File(shpFilePath);
+        if (!file.exists()) {
+            throw new  ServiceException("文件不存在请重新上传!");
+        }
+
+        R<List<Map<String, Object>>> shpGeomResult  = remoteSpatialFilesDbService.readShpFile(shpFilePath, SecurityConstants.INNER);
+        List<Map<String, Object>> shpDataList = shpGeomResult.getData();
+        log.info("远程调用geom获取,返回结果:{}", shpDataList);
+
+        int count = 1;
+        for (Map<String, Object> shpData : shpDataList){
+            String nf = shpData.get("nf").toString();
+            String ngysj = shpData.get("ngysj").toString();
+            String gyfs = shpData.get("gyfs").toString();
+            String tdyt = shpData.get("tdyt").toString();
+            String mj_m = shpData.get("mj_m").toString();
+            if(StringUtils.isBlank(nf)|| StringUtils.isBlank(ngysj) ||StringUtils.isBlank(gyfs) || StringUtils.isBlank(tdyt) || StringUtils.isBlank(mj_m)){
+                throw new  ServiceException("关键字段不能为空(nf,ngysj,gyfs,tdyt,mj_m),请检查第"+count+"条数据");
+            }
+            count++;
+        }
+        if("0".equals(addType)){
+            //这里把当前表清空,重新写入;
+            gongdiJihuaMapper.deleteByTable("gj_gongdi_xiangmu_jihua","");
+        }
+
+        // 供地项目表 geom 列的 SRID(参考建表语句 vector.gj_gongdi_xiangmu_jihua)
+        int shpDbSRID = 4326;
+        // 日期字段:shp 读取出来是 ISO8601 字符串(例如 2025-12-24T00:00:00.000+08:00),入库仅保留到 "T" 之前
+
+        Set<String> dateFields = new HashSet<>(Arrays.asList("ngysj"));
+        // 数值字段:建表语句中为 numeric(18,4)
+        Set<String> numericFields = new HashSet<>(Arrays.asList(
+                "ybpmj", "mj_m", "wbpmj", "mj_12"));
+
+        for (Map<String, Object> shpData : shpDataList) {
+            Map<String, Object> insertData = new LinkedHashMap<>();
+            for (Map.Entry<String, Object> e : shpData.entrySet()) {
+                String key = e.getKey();
+                Object val = e.getValue();
+                if (val == null) {
+                    continue;
+                }
+                // 字符串做一次清洗:空白置为 null
+                if (val instanceof String) {
+                    String s = ((String) val).trim();
+                    if (s.isEmpty()) {
+                        continue;
+                    }
+                    if (dateFields.contains(key)) {
+                        int t = s.indexOf('T');
+                        if (t > 0) {
+                            s = s.substring(0, t);
+                        }
+                        insertData.put(key, s);
+                        continue;
+                    }
+                    if (numericFields.contains(key)) {
+                        try {
+                            insertData.put(key, new BigDecimal(s));
+                        } catch (NumberFormatException ex) {
+                            log.warn("字段 {} 数值转换失败,原值:{}", key, s);
+                        }
+                        continue;
+                    }
+                    insertData.put(key, s);
+                } else {
+                    insertData.put(key, val);
+                }
+            }
+            if (MapUtils.isEmpty(insertData)) {
+                continue;
+            }
+            //todo 完成这里的调用方法
+            gongdiJihuaMapper.insertTableSupplyData("gj_gongdi_xiangmu_jihua", insertData, shpDbSRID);
+        }
+        retMap.put("status","success");
+        retMap.put("path",shpFilePath);
+        return retMap;
+    }
+
+
+
+    @Override
+    public List<Map<String, Object>> supplyList(String tableName,String sourceType) {
+        List<Map<String, Object>> list = gongdiJihuaMapper.supplyList(tableName,"");
+        return list;
+    }
+
+
+
+
 }

+ 2 - 1
siwei-modules/siwei-apply/src/main/java/com/siwei/apply/service/third/impl/DealExcelServiceImpl.java

@@ -652,7 +652,7 @@ public class DealExcelServiceImpl {
 
                 String gdUnit = tdgyExcel.get("面积单位");
                 if (StringUtils.isBlank(gdUnit)) {
-                    log.warn("供地面积为空,默认设置为0");
+                    log.warn("面积单位为空,默认设置为空字符");
                     gdUnit = "";
                 }
                 tdgyVo.setGdUnit(gdUnit);
@@ -977,6 +977,7 @@ public class DealExcelServiceImpl {
             fullFilePath = copyFileToDirectory(rootPathAll +"\\" + innerDirName + "\\" + projectFileName, targectDir + "\\" + projectFileName, nodeFileName);
         }
         if (StringUtils.isNotBlank(fullFilePath)) {
+
             //这里进行文件关联
             String nodeAttachmentId = associationFile(fullFilePath, projectId, nodeId);
             log.info("关于项目{}的土地供应环节,文件{}关联结果{}", projectId, nodeFileName, nodeAttachmentId);

+ 107 - 46
siwei-modules/siwei-apply/src/main/resources/mapper/GongdiJihuaMapper.xml

@@ -7,30 +7,36 @@
     <resultMap id="gongdiJihuaMap" type="com.siwei.apply.domain.GongdiJihua">
         <id column="gid" property="gid"/>
         <result column="fid" property="fid"/>
-        <result column="mj_pfm" property="mjPfm"/>
-        <result column="mj_mu" property="mjMu"/>
+        <result column="mj_12" property="mj12"/>
+        <result column="mj_m" property="mjM"/>
         <result column="xmmc" property="xmmc"/>
         <result column="tdyt" property="tdyt"/>
         <result column="gyfs" property="gyfs"/>
-        <result column="gysj" property="gysj"/>
+        <result column="ngysj" property="ngysj"/>
+        <result column="nf" property="nf"/>
+        <result column="nydwz" property="nydwz"/>
+        <result column="xzqmc" property="xzqmc"/>
+        <result column="tgdw" property="tgdw"/>
+        <result column="ybpmj" property="ybpmj"/>
+        <result column="wbpmj" property="wbpmj"/>
         <result column="bz" property="bz"/>
         <result column="geom" property="geom"/>
     </resultMap>
 
     <insert id="add" parameterType="com.siwei.apply.domain.GongdiJihua">
-        INSERT INTO vector.gj_gongdi_jihua (fid, mj_pfm, mj_mu, xmmc, tdyt, gyfs, gysj, bz, geom)
-        VALUES (#{fid}, #{mjPfm}, #{mjMu}, #{xmmc}, #{tdyt}, #{gyfs}, #{gysj}, #{bz}, ST_GeomFromEWKT(#{geom}))
+        INSERT INTO vector.gj_gongdi_xiangmu_jihua (fid, mj_12, mj_m, xmmc, tdyt, gyfs, ngysj, nf, nydwz, xzqmc, tgdw, ybpmj, wbpmj, bz, geom)
+        VALUES (#{fid}, #{mj12}, #{mjM}, #{xmmc}, #{tdyt}, #{gyfs}, #{ngysj}, #{nf}, #{nydwz}, #{xzqmc}, #{tgdw}, #{ybpmj}, #{wbpmj}, #{bz}, ST_GeomFromEWKT(#{geom}))
     </insert>
 
     <select id="get" resultMap="gongdiJihuaMap">
-        SELECT gid, fid, mj_pfm, mj_mu, xmmc, tdyt, gyfs, gysj, bz, ST_AsEWKT(geom) as geom
-        FROM vector.gj_gongdi_jihua
+        SELECT gid, fid, mj_12, mj_m, xmmc, tdyt, gyfs, ngysj, nf, nydwz, xzqmc, tgdw, ybpmj, wbpmj, bz, ST_AsEWKT(geom) as geom
+        FROM vector.gj_gongdi_xiangmu_jihua
         WHERE gid = #{gid}
     </select>
 
     <select id="getList" parameterType="com.siwei.apply.domain.vo.GongdiJihuaFilterVo" resultMap="gongdiJihuaMap">
-        SELECT gid, fid, mj_pfm, mj_mu, xmmc, tdyt, gyfs, gysj, bz, ST_AsEWKT(geom) as geom
-        FROM vector.gj_gongdi_jihua
+        SELECT gid, fid, mj_12, mj_m, xmmc, tdyt, gyfs, ngysj, nf, nydwz, xzqmc, tgdw, ybpmj, wbpmj, bz, ST_AsEWKT(geom) as geom
+        FROM vector.gj_gongdi_xiangmu_jihua
         <where>
             <if test="xmmc != null and xmmc != ''">
                 AND xmmc LIKE CONCAT('%', #{xmmc}, '%')
@@ -42,30 +48,22 @@
                 AND gyfs = #{gyfs}
             </if>
             <if test="startDate != null and startDate != ''">
-                AND gysj &gt;= #{startDate}
+                AND ngysj &gt;= #{startDate}
             </if>
             <if test="endDate != null and endDate != ''">
-                AND gysj &lt;= #{endDate}
+                AND ngysj &lt;= #{endDate}
             </if>
             <if test="year != null and year != ''">
-                AND  TO_CHAR(gysj, 'YYYY') = #{year}
+                AND  TO_CHAR(ngysj, 'YYYY') = #{year}
             </if>
         </where>
         ORDER BY gid DESC
         LIMIT #{pageSize} OFFSET #{offset}
     </select>
 
-
-
-
-
-
-
-
-
     <select id="getCount" parameterType="com.siwei.apply.domain.vo.GongdiJihuaFilterVo" resultType="int">
         SELECT COUNT(*)
-        FROM vector.gj_gongdi_jihua
+        FROM vector.gj_gongdi_xiangmu_jihua
         <where>
             <if test="xmmc != null and xmmc != ''">
                 AND xmmc LIKE CONCAT('%', #{xmmc}, '%')
@@ -77,24 +75,30 @@
                 AND gyfs = #{gyfs}
             </if>
             <if test="startDate != null and startDate != ''">
-                AND gysj &gt;= #{startDate}
+                AND ngysj &gt;= #{startDate}
             </if>
             <if test="endDate != null and endDate != ''">
-                AND gysj &lt;= #{endDate}
+                AND ngysj &lt;= #{endDate}
             </if>
         </where>
     </select>
 
     <update id="update" parameterType="com.siwei.apply.domain.GongdiJihua">
-        UPDATE vector.gj_gongdi_jihua
+        UPDATE vector.gj_gongdi_xiangmu_jihua
         <set>
             <if test="fid != null">fid = #{fid},</if>
-            <if test="mjPfm != null">mj_pfm = #{mjPfm},</if>
-            <if test="mjMu != null">mj_mu = #{mjMu},</if>
+            <if test="mj12 != null">mj_12 = #{mj12},</if>
+            <if test="mjM != null">mj_m = #{mjM},</if>
             <if test="xmmc != null">xmmc = #{xmmc},</if>
             <if test="tdyt != null">tdyt = #{tdyt},</if>
             <if test="gyfs != null">gyfs = #{gyfs},</if>
-            <if test="gysj != null">gysj = #{gysj},</if>
+            <if test="ngysj != null">ngysj = #{ngysj},</if>
+            <if test="nf != null">nf = #{nf},</if>
+            <if test="nydwz != null">nydwz = #{nydwz},</if>
+            <if test="xzqmc != null">xzqmc = #{xzqmc},</if>
+            <if test="tgdw != null">tgdw = #{tgdw},</if>
+            <if test="ybpmj != null">ybpmj = #{ybpmj},</if>
+            <if test="wbpmj != null">wbpmj = #{wbpmj},</if>
             <if test="bz != null">bz = #{bz},</if>
             <if test="geom != null">geom = ST_GeomFromEWKT(#{geom}),</if>
         </set>
@@ -102,7 +106,7 @@
     </update>
 
     <delete id="batchDelete">
-        DELETE FROM vector.gj_gongdi_jihua
+        DELETE FROM vector.gj_gongdi_xiangmu_jihua
         WHERE gid IN
         <foreach collection="gids" item="gid" open="(" separator="," close=")">
             #{gid}
@@ -110,26 +114,26 @@
     </delete>
 
     <select id="getByGeomIntersects" resultMap="gongdiJihuaMap">
-        SELECT gid, fid, mj_pfm, mj_mu, xmmc, tdyt, gyfs, gysj, bz, ST_AsEWKT(geom) as geom
-        FROM vector.gj_gongdi_jihua
+        SELECT gid, fid, mj_12, mj_m, xmmc, tdyt, gyfs, ngysj, nf, nydwz, xzqmc, tgdw, ybpmj, wbpmj, bz, ST_AsEWKT(geom) as geom
+        FROM vector.gj_gongdi_xiangmu_jihua
         WHERE public.ST_Intersects(geom, public.ST_GeomFromEWKT(#{ewkt}))
     </select>
 
     <select id="getPlanSummaryByTimeRange" resultType="map">
         SELECT
-            COALESCE(SUM(mj_pfm), 0) AS planarea,
-            COALESCE(SUM(mj_mu), 0) AS planmu,
+            COALESCE(SUM(mj_12), 0) AS planarea,
+            COALESCE(SUM(mj_m), 0) AS planmu,
             COUNT(*) AS plancount,
             COALESCE(SUM(CASE WHEN gyfs = '出让' THEN 1 ELSE 0 END), 0) AS plantransfer,
             COALESCE(SUM(CASE WHEN gyfs = '划拨' THEN 1 ELSE 0 END), 0) AS planallocation,
             COALESCE(SUM(CASE WHEN gyfs IS NULL OR gyfs NOT IN ('出让', '划拨') THEN 1 ELSE 0 END), 0) AS planother
-        FROM vector.gj_gongdi_jihua
+        FROM vector.gj_gongdi_xiangmu_jihua
         <where>
             <if test="startTime != null and startTime != ''">
-                AND gysj &gt;= #{startTime}::date
+                AND ngysj &gt;= #{startTime}::date
             </if>
             <if test="endTime != null and endTime != ''">
-                AND gysj &lt;= #{endTime}::date
+                AND ngysj &lt;= #{endTime}::date
             </if>
         </where>
     </select>
@@ -137,20 +141,20 @@
     <select id="getPlanStatsByLandType" resultType="map">
         SELECT
             COALESCE(tdyt, '未知') AS category,
-            COALESCE(SUM(mj_pfm), 0) AS planarea,
-            COALESCE(SUM(mj_mu), 0) AS planmu,
+            COALESCE(SUM(mj_12), 0) AS planarea,
+            COALESCE(SUM(mj_m), 0) AS planmu,
             COUNT(*) AS plancount,
             COALESCE(SUM(CASE WHEN gyfs = '出让' THEN 1 ELSE 0 END), 0) AS plantransfer,
             COALESCE(SUM(CASE WHEN gyfs = '划拨' THEN 1 ELSE 0 END), 0) AS planallocation,
             COALESCE(SUM(CASE WHEN gyfs IS NULL OR gyfs NOT IN ('出让', '划拨') THEN 1 ELSE 0 END), 0) AS planother,
             '0%' AS supplyrate
-        FROM vector.gj_gongdi_jihua
+        FROM vector.gj_gongdi_xiangmu_jihua
         <where>
             <if test="startTime != null and startTime != ''">
-                AND gysj &gt;= #{startTime}::date
+                AND ngysj &gt;= #{startTime}::date
             </if>
             <if test="endTime != null and endTime != ''">
-                AND gysj &lt;= #{endTime}::date
+                AND ngysj &lt;= #{endTime}::date
             </if>
         </where>
         GROUP BY tdyt
@@ -160,24 +164,81 @@
     <select id="getPlanStatsBySupplyMode" resultType="map">
         SELECT
             COALESCE(gyfs, '未知') AS category,
-            COALESCE(SUM(mj_pfm), 0) AS planarea,
-            COALESCE(SUM(mj_mu), 0) AS planmu,
+            COALESCE(SUM(mj_12), 0) AS planarea,
+            COALESCE(SUM(mj_m), 0) AS planmu,
             COUNT(*) AS plancount,
             COALESCE(SUM(CASE WHEN gyfs = '出让' THEN 1 ELSE 0 END), 0) AS plantransfer,
             COALESCE(SUM(CASE WHEN gyfs = '划拨' THEN 1 ELSE 0 END), 0) AS planallocation,
             COALESCE(SUM(CASE WHEN gyfs IS NULL OR gyfs NOT IN ('出让', '划拨') THEN 1 ELSE 0 END), 0) AS planother,
             '0%' AS supplyrate
-        FROM vector.gj_gongdi_jihua
+        FROM vector.gj_gongdi_xiangmu_jihua
         <where>
             <if test="startTime != null and startTime != ''">
-                AND gysj &gt;= #{startTime}::date
+                AND ngysj &gt;= #{startTime}::date
             </if>
             <if test="endTime != null and endTime != ''">
-                AND gysj &lt;= #{endTime}::date
+                AND ngysj &lt;= #{endTime}::date
             </if>
         </where>
         GROUP BY gyfs
         ORDER BY planarea DESC
     </select>
 
-</mapper>
+    <select id="supplyList" resultType="map">
+        SELECT *
+        FROM vector.${tableName}
+        WHERE 1=1
+        <if test="year != null and year != '' and year != '0'">
+            AND nf = #{year}
+        </if>
+        ORDER BY gid ASC
+    </select>
+
+
+    <insert id="insertTableSupplyData" parameterType="map">
+        INSERT INTO vector.${tableName}
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="data.fid != null">fid,</if>
+            <if test="data.mj_12 != null">mj_12,</if>
+            <if test="data.mj_m != null">mj_m,</if>
+            <if test="data.xmmc != null">xmmc,</if>
+            <if test="data.tdyt != null">tdyt,</if>
+            <if test="data.gyfs != null">gyfs,</if>
+            <if test="data.ngysj != null">ngysj,</if>
+            <if test="data.nf != null">nf,</if>
+            <if test="data.nydwz != null">nydwz,</if>
+            <if test="data.xzqmc != null">xzqmc,</if>
+            <if test="data.tgdw != null">tgdw,</if>
+            <if test="data.ybpmj != null">ybpmj,</if>
+            <if test="data.wbpmj != null">wbpmj,</if>
+            <if test="data.bz != null">bz,</if>
+            <if test="data.the_geom != null">geom,</if>
+        </trim>
+        <trim prefix="VALUES (" suffix=")" suffixOverrides=",">
+            <if test="data.fid != null">#{data.fid}::int4,</if>
+            <if test="data.mj_12 != null">#{data.mj_12}::numeric,</if>
+            <if test="data.mj_m != null">#{data.mj_m}::numeric,</if>
+            <if test="data.xmmc != null">#{data.xmmc}::varchar,</if>
+            <if test="data.tdyt != null">#{data.tdyt}::varchar,</if>
+            <if test="data.gyfs != null">#{data.gyfs}::varchar,</if>
+            <if test="data.ngysj != null">#{data.ngysj}::date,</if>
+            <if test="data.nf != null">#{data.nf}::varchar,</if>
+            <if test="data.nydwz != null">#{data.nydwz}::varchar,</if>
+            <if test="data.xzqmc != null">#{data.xzqmc}::varchar,</if>
+            <if test="data.tgdw != null">#{data.tgdw}::varchar,</if>
+            <if test="data.ybpmj != null">#{data.ybpmj}::numeric,</if>
+            <if test="data.wbpmj != null">#{data.wbpmj}::numeric,</if>
+            <if test="data.bz != null">#{data.bz}::varchar,</if>
+            <if test="data.the_geom != null">public.st_transform(public.st_geomfromewkt(#{data.the_geom}), #{shpDbSRID}),</if>
+        </trim>
+    </insert>
+
+    <delete id="deleteByTable" parameterType="String">
+        DELETE FROM vector.${tableName}
+        WHERE 1=1
+        <if test="gid != null and gid !=''">
+            and gid = #{gid}
+        </if>
+    </delete>
+
+</mapper>