Эх сурвалжийг харах

日志新增第二页优化,试验保存新增日志sql

chenr 1 сар өмнө
parent
commit
4429e4c645

+ 13 - 10
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TrialNumberRuleServiceImpl.java

@@ -125,7 +125,7 @@ public class TrialNumberRuleServiceImpl extends BaseServiceImpl<TrialNumberRuleM
                 if(rule.getIsAutoIncrement()!=null&&rule.getIsAutoIncrement()==1){
                     String autoIncrementNumber="";
                     //如果是需要自增的 先要查出当前数据库中自增编号的最大值
-                    String sql3 = "SELECT MAX(auto_increment_number) FROM u_trial_auto_number where is_deleted=0";
+                    String sql3 = "SELECT auto_increment_number FROM u_trial_auto_number where type="+type+" and is_deleted=0 ORDER BY auto_increment_number DESC LIMIT 1";
                     String maxNumber = jdbcTemplate.query(sql3, rs -> {
                         if (rs.next()) {
                             return rs.getObject(1, String.class);
@@ -133,7 +133,7 @@ public class TrialNumberRuleServiceImpl extends BaseServiceImpl<TrialNumberRuleM
                             return rule.getData();
                         }
                     });
-                    String sql4="select auto_increment_number FROM u_trial_auto_number where is_deleted=0  ORDER BY auto_increment_number ASC";
+                    String sql4="select auto_increment_number FROM u_trial_auto_number where type="+type+" and is_deleted=0  ORDER BY auto_increment_number ASC";
                     List<String> autoNumbers = jdbcTemplate.query(sql4, new SingleColumnRowMapper<>(String.class));
                     //判断自增的流水号是否是连续的 是连续的就在最大值加1,不是连续的先使用缺失的编号
                     List<String> missingNumbers = findMissingNumberPatterns(autoNumbers);
@@ -250,10 +250,13 @@ public class TrialNumberRuleServiceImpl extends BaseServiceImpl<TrialNumberRuleM
         }else {
             trialNumberRules = baseMapper.selectList(Wrappers.<TrialNumberRule>query().lambda().eq(TrialNumberRule::getContractId, contractId).eq(TrialNumberRule::getType, type).eq(TrialNumberRule::getStatus,2).orderByAsc(TrialNumberRule::getSort));
         }
-        Map<String, String> map = getTrialNumber(projectId,contractId, type, null, false);
-        vo1.setList(trialNumberRules);
-        vo1.setTrialNumber(map.get("trialNumber"));
-        return vo1;
+        if(trialNumberRules!=null){
+            Map<String, String> map = getTrialNumber(projectId,contractId, type, null, false);
+            vo1.setList(trialNumberRules);
+            vo1.setTrialNumber(map.get("trialNumber"));
+            return vo1;
+        }
+        return null;
     }
 
     /**
@@ -268,15 +271,15 @@ public class TrialNumberRuleServiceImpl extends BaseServiceImpl<TrialNumberRuleM
         if(contractId!=null&&contractId!=0L){
             String update;
             if(type==1){
-                update="update u_trial_material_mobilization set material_number IS NULL where contract_id="+contractId;
+                update="update u_trial_material_mobilization set material_number = NULL where contract_id="+contractId;
             } else if (type==2) {
-                update="update u_trial_sample_info set specification_number IS NULL where contract_id="+contractId;
+                update="update u_trial_sample_info set specification_number = NULL where contract_id="+contractId;
             } else if (type==3) {
                 update="update u_entrust_info set entrust_no IS NULL where contract_id="+contractId+" and status=1";
             } else if (type==4) {
-                update="update u_trial_self_inspection_record set record_no IS NULL where contract_id="+contractId+" and task_status='未上报'";
+                update="update u_trial_self_inspection_record set record_no = NULL where contract_id="+contractId+" and task_status='未上报'";
             }else{
-                update="update u_trial_self_inspection_record set report_no IS NULL where contract_id="+contractId+" and task_status='未上报'";
+                update="update u_trial_self_inspection_record set report_no = NULL where contract_id="+contractId+" and task_status='未上报'";
             }
             jdbcTemplate.execute(update);
         }

+ 58 - 4
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ExcelTabController.java

@@ -3081,7 +3081,8 @@ public class ExcelTabController extends BladeController {
             }
             //查询数据
             String querySql = "SELECT * FROM " + tabName + " WHERE id = " + ids[0] + " and group_id = " + tableNode2.getPKeyId();
-            Map<String, Object> businessDataMap = this.jdbcTemplate.queryForMap(querySql);
+            List<Map<String, Object>> businessDataMap = this.jdbcTemplate.queryForList(querySql);
+            Map<String, Object> reData=new HashMap<>();
             if (businessDataMap.size() > 0){
                 try {
                     if (tableNode2.getHtmlUrl() != null){
@@ -3106,11 +3107,64 @@ public class ExcelTabController extends BladeController {
                         allElements.add(rq);
                         allElements.add(shr);
                         allElements.add(tqqk);
+                        allElements=allElements.stream().filter(o->o!=null&&o.size()>0).collect(Collectors.toList());
                         if(allElements.size()>0){
+                            for (String key : businessDataMap.get(0).keySet()) {
+                                String tabVal = businessDataMap.get(0).get(key) + "";
+                                // 时间段处理
+                                if (StringUtils.isNotEmpty(tabVal) && !tabVal.equals("null")) {
+                                    if (tabVal.indexOf("T") >= 0 && tabVal.indexOf(".000Z]") >= 0) {
+                                        String[] tabData = tabVal.split("_\\^_");
+                                        if (reData.containsKey("pickerKey")) {
+                                            String pickerKey = reData.get("pickerKey") + "," + key + "__" + tabData[1];
+                                            reData.put("pickerKey", pickerKey);
+                                        } else {
+                                            reData.put("pickerKey", key + "__" + tabData[1]);
+                                        }
+                                        String sql = tabData[0];
+                                        sql = sql.replaceAll("\\[", "['");
+                                        sql = sql.replaceAll("]", "']");
+                                        sql = sql.replaceAll("000Z,", "000Z',");
+                                        sql = sql.replaceAll(", 20", ", '20");
+                                        sql = sql.replaceAll("'", "");
+                                        reData.put(key + "__" + tabData[1], sql);
+                                    } else if (tabVal.indexOf("T") >= 0 && tabVal.indexOf(".000Z") >= 0) { //时间
+                                        String[] tabData = tabVal.split("_\\^_");
+                                        reData.put(key + "__" + tabData[1], tabData[0]);
+                                    } else if (tabVal.indexOf("☆") >= 0) {
+                                        String[] mysql = tabVal.split("☆");
+                                        for (String data : mysql) {
+                                            String[] tabData = data.split("_\\^_");
+                                            reData.put(key + "__" + tabData[1], tabData[0]);
+                                        }
+                                    } else if (tabVal.indexOf("_^_") >= 0) { //数组处理方式
+                                        String[] tabData = tabVal.split("_\\^_");
+                                        if (StringUtils.isNotEmpty(tabData[0])) {
+                                            if (tabVal.contains("[") && tabVal.contains("年")) {
+                                                String[] strings = StringUtils.strip(tabData[0], "[]").split(",");
+                                                reData.put(key + "__" + tabData[1], strings);
+                                            }
+                                            if (tabVal.contains("[") && tabVal.contains("]") && tabVal.indexOf(",") >= 0) {
+                                                String[] strings = StringUtils.strip(tabData[0], "[]").split(",");
+                                                reData.put(key + "__" + tabData[1], strings);
+                                            } else {
+                                                if (tabVal.contains("[") && tabVal.contains("]")) {
+                                                    String[] strings = new String[]{tabData[0].replaceAll("\\[","").replaceAll("]","")};
+                                                    reData.put(key + "__" + tabData[1],strings);
+                                                } else {
+                                                    reData.put(key + "__" + tabData[1], tabData[0]);
+                                                }
+                                            }
+                                        }
+                                    } else {
+                                        reData.put(key, tabVal);
+                                    }
+                                }
+                            }
                             for (Elements element : allElements) {
-                             if(businessDataMap.containsKey(element.attr("keyname"))){
-                                resultMapList.put(element.attr("keyname"), businessDataMap.get(element.attr("keyname")));
-                               }
+                                if(reData.containsKey(element.attr("keyname"))){
+                                    resultMapList.put(element.attr("keyname"),reData.get(element.attr("keyname")));
+                                }
                             }
                         }
                     }

+ 6 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ExcelTabServiceImpl.java

@@ -49,6 +49,7 @@ import org.springblade.core.mp.support.Query;
 import org.springblade.core.oss.model.BladeFile;
 import org.springblade.core.secure.BladeUser;
 import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.node.ForestNodeMerger;
 import org.springblade.core.tool.utils.DateUtil;
@@ -3641,13 +3642,16 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
                 keyStr = keyStr.substring(0, keyStr.lastIndexOf(","));
                 valStr = valStr.substring(0, valStr.lastIndexOf(","));
                 sqlInfo = sqlInfo + keyStr + ") VALUES (" + valStr + ")";
-
+                String deletedTrialSqlInfo="INSERT INTO blade_trial_sql (id,p_key_id,group_id,uesr_id,create_time,sql_info) Values ("+SnowFlakeUtil.getId()+","+tableInfo.getPkeyId()+","+groupId+","+ SecureUtil.getUserId() +",SYSDATE(),"+delSql+")";
+                String trialSqlInfo="INSERT INTO blade_trial_sql (id,p_key_id,group_id,uesr_id,create_time,sql_info) Values ("+SnowFlakeUtil.getId()+","+tableInfo.getPkeyId()+","+groupId+","+ SecureUtil.getUserId() +",SYSDATE(),"+sqlInfo+")";
                 TransactionStatus transactionStatus = this.beginTransaction(transactionManager1);
                 try {
                     //删除
                     jdbcTemplate.execute(delSql);
                     //新增
                     jdbcTemplate.execute(sqlInfo);
+                    jdbcTemplate.execute(deletedTrialSqlInfo);
+                    jdbcTemplate.execute(trialSqlInfo);
                     //提交事务
                     transactionManager1.commit(transactionStatus);
                 } catch (Exception e) {
@@ -3655,6 +3659,7 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
                     transactionManager1.rollback(transactionStatus);
                     throw new RuntimeException("500"+e.getCause().getMessage()+"  字段过长,新增失败");
                 }
+
             }
         }
     }