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

表单相关:重置和擦除元素数据

yangyj 2 éve
szülő
commit
87d97f779c

+ 14 - 7
blade-common/src/main/java/org/springblade/common/utils/BaseUtils.java

@@ -122,16 +122,23 @@ public class BaseUtils {
         }
     }
     public static boolean isNotEmpty(Object value) {
-        return !isEmpty(value);
+             if(value!=null){
+                 if(value instanceof List&&((List<?>) value).size()>0 ){
+                    return true;
+                 }else if(value instanceof Map&&((Map<?, ?>) value).size()>0){
+                     return true;
+                 }else if(value.toString().trim().length()>0){
+                     return true;
+                 }
+             }
+             return false;
     }
 
-    public static boolean isEmpty(Object value) {
-        if (null == value) {
-            return true;
-        } else {
-            return isEmpty(handleNull(value));
-        }
+    public static boolean isEmpty(Object value){
+        return !isNotEmpty(value);
     }
+
+
     public static Double[] scopeParse(Object dev, Object design, Object xN) {
         if (isNotEmpty(dev)) {
             Double[] result = new Double[2];

+ 5 - 5
blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java

@@ -1483,7 +1483,7 @@ public class InformationWriteQueryController extends BladeController {
                         String keys = StringUtils.join(filteredList, ",");
 
                         /*重置*/
-                        Map<String,String> eMap=reviseValue(nodeOld,parent,ekvMap);
+                        Map<String,String> eMap=reviseValue(nodeOld,null,ekvMap);
                         //构造入参
                         String dataSql = "SELECT " + keys + " FROM " + tableName + " WHERE p_key_id= " + nodeOld.getPKeyId() + " LIMIT 1;";
                         List<LinkedHashMap<String, Object>> resultList = jdbcTemplate.query(dataSql, new RowMapper<LinkedHashMap<String, Object>>() {
@@ -1914,7 +1914,7 @@ public class InformationWriteQueryController extends BladeController {
                                 //insert into SQL
                                 String testColVal=reviseCols(eMap,colVal,oldPKeyId,tableName);
                                 StaticLog.info("KT3356:"+testColVal);
-                                copyDataSql.append(delSql).append("insert into ").append(tableName).append("  (").append(col).append(") select ").append(colVal).append(" from ").append(tableName).append(" where p_key_id='").append(oldPKeyId).append("' LIMIT 1;");
+                                copyDataSql.append(delSql).append("insert into ").append(tableName).append("  (").append(col).append(") select ").append(testColVal).append(" from ").append(tableName).append(" where p_key_id='").append(oldPKeyId).append("' LIMIT 1;");
                                 resultTablesData.add(copyDataSql.toString());
                             }
                         }
@@ -1961,7 +1961,7 @@ public class InformationWriteQueryController extends BladeController {
                                     //insert into SQL
                                     String testColVal=reviseCols(eMap,colVal,oldPKeyId,tableName);
                                     StaticLog.info("KT3356:"+testColVal);
-                                    copyDataSql.append(delSql).append("insert into ").append(tableName).append("  (").append(col).append(") select ").append(colVal).append(" from ").append(tableName).append(" where p_key_id='").append(oldPKeyId).append("' LIMIT 1;");
+                                    copyDataSql.append(delSql).append("insert into ").append(tableName).append("  (").append(col).append(") select ").append(testColVal).append(" from ").append(tableName).append(" where p_key_id='").append(oldPKeyId).append("' LIMIT 1;");
                                     resultTablesData.add(copyDataSql.toString());
                                 }
                             }
@@ -2061,7 +2061,7 @@ public class InformationWriteQueryController extends BladeController {
                             //insert into SQL
                             String testColVal=reviseCols(eMap,colVal,oldPKeyId,tableName);
                             StaticLog.info("KT3356:"+testColVal);
-                            copyDataSql.append(delSql).append("insert into ").append(tableName).append("  (").append(col).append(") select ").append(colVal).append(" from ").append(tableName).append(" where p_key_id='").append(oldPKeyId).append("' LIMIT 1;");
+                            copyDataSql.append(delSql).append("insert into ").append(tableName).append("  (").append(col).append(") select ").append(testColVal).append(" from ").append(tableName).append(" where p_key_id='").append(oldPKeyId).append("' LIMIT 1;");
                             resultTablesData.add(copyDataSql.toString());
                         }
                     }
@@ -2163,7 +2163,7 @@ public class InformationWriteQueryController extends BladeController {
                                         //insert into SQL
                                         String testColVal=reviseCols(eMap,colVal,oldPKeyId,tableName);
                                         StaticLog.info("KT3356:"+testColVal);
-                                        copyDataSql.append(delSql).append("insert into ").append(tableName).append("  (").append(col).append(") select ").append(colVal).append(" from ").append(tableName).append(" where p_key_id='").append(oldPKeyId).append("' LIMIT 1;");
+                                        copyDataSql.append(delSql).append("insert into ").append(tableName).append("  (").append(col).append(") select ").append(testColVal).append(" from ").append(tableName).append(" where p_key_id='").append(oldPKeyId).append("' LIMIT 1;");
                                         resultTablesData.add(copyDataSql.toString());
                                     }
                                 }

+ 44 - 37
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaOptionServiceImpl.java

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.mixsmart.utils.FormulaUtils;
 import com.mixsmart.utils.StringUtils;
 import lombok.RequiredArgsConstructor;
+import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.manager.dto.FormulaOptionVo;
 import org.springblade.manager.dto.RangeInfo;
@@ -106,45 +107,51 @@ public class FormulaOptionServiceImpl extends ServiceImpl<FormulaOptionMapper, F
 
     @Override
     public Object saveOrUpdateOption(RangeInfo rg,String[] dw,int start ) {
-        RangeJson rj = new RangeJson(rg);
-        rj.setStart(start);
-        WbsTreeContract wbc = this.wbsTreeContractService.getOne(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getPKeyId, rg.getPkId()));
-        WbsTreeContract parent= this.wbsTreeContractService.getOne(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getParentId, wbc.getParentId()).eq(WbsTreeContract::getContractId, wbc.getContractId()));
-        FormulaOption formulaOption = this.getById(parent.getPKeyId());
-        JSONObject root;
-        if (formulaOption == null) {
-            formulaOption = new FormulaOption();
-            formulaOption.setId(parent.getPKeyId());
-            formulaOption.setParentId(wbc.getParentId());
-            formulaOption.setContractId(Func.toLong(wbc.getContractId()));
-            root = new JSONObject();
-        } else {
-            root = JSON.parseObject(formulaOption.getVal());
-        }
-        JSONObject table = (JSONObject) root.computeIfAbsent(wbc.getInitTableName(), (k) -> new JSONObject());
-        JSONObject data = (JSONObject) table.computeIfAbsent(rg.getKey(), (k) -> new JSONObject());
-        /*每个元素可以包含多个右键随机参数,只要范围不重叠都可以,具有重要参考意义但实际计算合格率和模仿数据的时候必须同时依赖实际元素数据*/
-        /**/
-        List<Map<String,Object>> listMaps=this.jdbcTemplate.queryForList("select p_key_id pkeyId from m_wbs_tree_contract where parent_id="+wbc.getParentId()+" and contract_id ="+wbc.getContractId()+" and is_deleted=0  and init_table_name='"+wbc.getInitTableName()+"' ORDER BY sort");
-        if(listMaps.size()>0){
-            List<Long> ids = listMaps.stream().map(m->Long.parseLong(m.get("pkeyId").toString())).collect(Collectors.toList());
-            JSONArray rangeArr = (JSONArray) data.computeIfAbsent(RangeInfo.RG, (k) -> new JSONArray());
-            if(ids.contains(rj.getPkeyId())){
-                List<RangeJson> rjs= JSON.parseArray(rangeArr.toJSONString(),RangeJson.class);
-                int head= (ids.indexOf(rj.getPkeyId()))*dw.length+start;
-                int tail=head+Integer.parseInt(rj.getSize());
-                rjs.removeIf(e->rangeCompare(ids,dw.length,e,head,tail));
-                rjs.add(rj);
-                rjs.sort(Comparator.comparingInt(e->ids.indexOf(e.getPkeyId())));
-                rangeArr=JSONArray.parseArray(JSON.toJSONString(rjs));
-            }else {
-                rangeArr.add(rj);
+        try {
+
+            RangeJson rj = new RangeJson(rg);
+            rj.setStart(start);
+            WbsTreeContract wbc = this.wbsTreeContractService.getOne(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getPKeyId, rg.getPkId()));
+            WbsTreeContract parent = this.wbsTreeContractService.getOne(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getId, wbc.getParentId()).eq(WbsTreeContract::getContractId, wbc.getContractId()));
+            FormulaOption formulaOption = this.getById(parent.getPKeyId());
+            JSONObject root;
+            if (formulaOption == null) {
+                formulaOption = new FormulaOption();
+                formulaOption.setId(parent.getPKeyId());
+                formulaOption.setParentId(wbc.getParentId());
+                formulaOption.setContractId(Func.toLong(wbc.getContractId()));
+                root = new JSONObject();
+            } else {
+                root = JSON.parseObject(formulaOption.getVal());
+            }
+            JSONObject table = (JSONObject) root.computeIfAbsent(wbc.getInitTableName(), (k) -> new JSONObject());
+            JSONObject data = (JSONObject) table.computeIfAbsent(rg.getKey(), (k) -> new JSONObject());
+            /*每个元素可以包含多个右键随机参数,只要范围不重叠都可以,具有重要参考意义但实际计算合格率和模仿数据的时候必须同时依赖实际元素数据*/
+            /**/
+            List<Map<String, Object>> listMaps = this.jdbcTemplate.queryForList("select p_key_id pkeyId from m_wbs_tree_contract where parent_id=" + wbc.getParentId() + " and contract_id =" + wbc.getContractId() + " and is_deleted=0  and init_table_name='" + wbc.getInitTableName() + "' ORDER BY sort");
+            if (listMaps.size() > 0) {
+                List<Long> ids = listMaps.stream().map(m -> Long.parseLong(m.get("pkeyId").toString())).collect(Collectors.toList());
+                JSONArray rangeArr = (JSONArray) data.computeIfAbsent(RangeInfo.RG, (k) -> new JSONArray());
+                if (ids.contains(rj.getPkeyId())) {
+                    List<RangeJson> rjs = JSON.parseArray(rangeArr.toJSONString(), RangeJson.class);
+                    int head = (ids.indexOf(rj.getPkeyId())) * dw.length + start;
+                    int tail = head + Integer.parseInt(rj.getSize());
+                    rjs.removeIf(e -> rangeCompare(ids, dw.length, e, head, tail));
+                    rjs.add(rj);
+                    rjs.sort(Comparator.comparingInt(e -> ids.indexOf(e.getPkeyId())));
+                    rangeArr = JSONArray.parseArray(JSON.toJSONString(rjs));
+                } else {
+                    rangeArr.add(rj);
+                }
+                data.put(RangeInfo.RG, rangeArr);
             }
-            data.put(RangeInfo.RG, rangeArr);
+            formulaOption.setVal(root.toJSONString());
+            this.saveOrUpdate(formulaOption);
+            return data;
+        }catch (Exception e){
+            e.printStackTrace();
+            return R.fail("保存失败");
         }
-        formulaOption.setVal(root.toJSONString());
-        this.saveOrUpdate(formulaOption);
-        return data;
     }
 
     public static Boolean  rangeCompare(List<Long> ids,Integer len,RangeJson rj ,Integer head,Integer tail){