Forráskód Böngészése

后台接口完善提交

wanger 7 hónapja
szülő
commit
984313f7e4

+ 17 - 0
onemap-modules/onemap-spotoverlap/src/main/java/com/onemap/spotoverlap/controller/yzt/YztController.java

@@ -660,6 +660,23 @@ public class YztController extends BaseController {
         }
     }
 
+    /**
+     * 过滤条件校验是否可用
+     *
+     * @param tablename
+     * @param querywhere
+     * @return
+     */
+    @RequestMapping("/checkQueryWhere")
+    public RequestResult checkQueryWhere(String tablename, String querywhere) {
+        try {
+            return yztService.checkQueryWhere(tablename, querywhere);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return RequestResult.error("失败", null);
+        }
+    }
+
     /**
      * 查询分析情形数据源
      *

+ 10 - 0
onemap-modules/onemap-spotoverlap/src/main/java/com/onemap/spotoverlap/domain/yzt/tModelDetail.java

@@ -33,6 +33,16 @@ public class tModelDetail {
     @TableField(exist = false)
     //sub分类表的条件
     private String subwhere;
+    @TableField(exist = false)
+    private String relationshipname;
+
+    public String getRelationshipname() {
+        return relationshipname;
+    }
+
+    public void setRelationshipname(String relationshipname) {
+        this.relationshipname = relationshipname;
+    }
 
     public String getSubwhere() {
         return subwhere;

+ 2 - 0
onemap-modules/onemap-spotoverlap/src/main/java/com/onemap/spotoverlap/mapper/yzt/YztMapper.java

@@ -116,4 +116,6 @@ public interface YztMapper {
     List<String> getLayerNameByModelId(String modelid);
 
     void modeldetailisvalid(@Param("situationid") String situationid, @Param("isvalid") String isvalid);
+
+    Integer checkQueryWhere(@Param("tablename") String tablename, @Param("querywhere") String querywhere);
 }

+ 30 - 3
onemap-modules/onemap-spotoverlap/src/main/java/com/onemap/spotoverlap/service/impl/yzt/YztServiceImpl.java

@@ -22,6 +22,9 @@ import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.support.TransactionTemplate;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
@@ -66,6 +69,9 @@ public class YztServiceImpl implements IYztService {
     private TReportSubMapper tReportSubMapper;
     @Autowired
     private TReportMapper tReportMapper;
+    @Autowired
+    private TransactionTemplate transactionTemplate;
+
 
     @Value("${decimalPlaces}")
     private String decimalPlaces;
@@ -528,6 +534,7 @@ public class YztServiceImpl implements IYztService {
         return RequestResult.error("删除失败!", null);
     }
 
+    @Transactional(propagation = Propagation.REQUIRES_NEW)
     @Override
     public RequestResult modeldetailupdate(tModelDetail modeldetail) {
         try {
@@ -545,7 +552,7 @@ public class YztServiceImpl implements IYztService {
                 //TODO wanger 根据类型生成查询语句
                 String querywhere = typeDto.getQuerywhere();
                 if ("tbbhlx".equals(relationship)) {//TODO wanger 处理图斑变化类型过滤
-                    String where = " " +querywhere + " ";
+                    String where = " " + querywhere + " ";
                     if ("=".equals(relationshipkey)) {
                         where += " in (";
                     } else if ("!=".equals(relationshipkey)) {
@@ -578,7 +585,13 @@ public class YztServiceImpl implements IYztService {
             } else {
                 modeldetail.setId(StringUtils.getUUID());
                 modeldetail.setCjsj(new Date());
-                tModelDetailMapper.insert(modeldetail);
+                transactionTemplate.execute(status -> {
+                    tModelDetailMapper.insert(modeldetail);
+                    // 立即提交
+                    status.flush();
+                    return null;
+                });
+
             }
             return RequestResult.success("修改成功!", 1);
         } catch (Exception e) {
@@ -1241,7 +1254,7 @@ public class YztServiceImpl implements IYztService {
                     sqlwhere += ",";
                     groupwhere += ",";
                 }
-                if(StringUtils.isEmpty(sub)){
+                if (StringUtils.isEmpty(sub)) {
                     continue;
                 }
                 QueryWrapper<tReportSub> subwrapper = new QueryWrapper();
@@ -1266,6 +1279,9 @@ public class YztServiceImpl implements IYztService {
             }
             String[] calcsub = report.getCalctotal().split(",");
             for (String sub : calcsub) {
+                if(StringUtils.isEmpty(sub)){
+                    continue;
+                }
                 if (StringUtils.isNotEmpty(sqlwhere)) {
                     sqlwhere += ",";
                 }
@@ -1495,6 +1511,17 @@ public class YztServiceImpl implements IYztService {
         return RequestResult.error("查询失败!", 0);
     }
 
+    @Override
+    public RequestResult checkQueryWhere(String tablename, String querywhere) {
+        try {
+            Integer count = yztMapper.checkQueryWhere(tablename, querywhere);
+            return RequestResult.success("成功!", count);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return RequestResult.error("失败!", 0);
+    }
+
     @Override
     public RequestResult getChangeType(String type) {
         try {

+ 2 - 0
onemap-modules/onemap-spotoverlap/src/main/java/com/onemap/spotoverlap/service/yzt/IYztService.java

@@ -117,4 +117,6 @@ public interface IYztService {
     RequestResult getGdbLayerFields(String filepath, String layername);
 
     RequestResult modeldetailisvalid(String situationid, String isvalid);
+
+    RequestResult checkQueryWhere(String tablename, String querywhere);
 }

+ 1 - 1
onemap-modules/onemap-spotoverlap/src/main/resources/bootstrap.yml

@@ -55,7 +55,7 @@ swtype: swtype
 dbschema: public
 qgis: D:\Program Files\QGIS 3.34.9\bin\
 # 导出的字段集合
-exportFields: 编号,后类型,合法性判断,合法性说明,面积
+exportFields: 编号,后类型,合法性判断,合法性说明,swarea
 # 不参与查询的字段集合
 notQueryFields: 面积集合,geom,面积比,编号集合,面积
 # 地图导出的配置  固定项是高度还是宽度  再根据比例计算尺寸

+ 7 - 2
onemap-modules/onemap-spotoverlap/src/main/resources/mapper/postgresql/yzt/YztMapper.xml

@@ -129,7 +129,7 @@ WHERE
     </select>
 
     <select id="getLayerNameByModelId" parameterType="java.lang.String" resultType="java.lang.String">
-        select sourcename "layername" from t_model_detail d where subid in (select id from t_model_sub s where modelid = #{modelid}) and sourcelayer != 'self'
+        select distinct(sourcename) "layername" from t_model_detail d where subid in (select id from t_model_sub s where modelid = #{modelid}) and sourcelayer != 'self'
     </select>
 
     <select id="getLayerNameByTableName" parameterType="java.lang.String" resultType="java.lang.String">
@@ -214,7 +214,7 @@ WHERE
 
     <select id="getDetails" resultType="com.onemap.spotoverlap.domain.yzt.tModelDetail"
             parameterType="java.lang.String">
-        select d.* from t_model_detail d where situationid = #{situationid}
+        select d.*, (select "value" from t_analyse_type where name = d.relationship) "relationshipname" from t_model_detail d where situationid = #{situationid}
         order by d.cjsj asc , d.situationid
     </select>
 
@@ -229,6 +229,11 @@ WHERE
         order by d.name asc
     </select>
 
+    <select id="checkQueryWhere" resultType="java.lang.Integer"
+            parameterType="java.lang.String">
+        select count(1) from ${tablename} where ${querywhere}
+    </select>
+
     <update id="executeAnalyseByEntity" parameterType="com.onemap.spotoverlap.domain.yzt.tModelDetail">
         UPDATE ${tablename} AS C
         SET 合法性说明 = ( CASE WHEN (1 = 1