Pārlūkot izejas kodu

监表检查内容检查时间

yangyj 2 gadi atpakaļ
vecāks
revīzija
c0930c4088

+ 22 - 11
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/FormulaController.java

@@ -173,17 +173,18 @@ public class FormulaController {
                 Map<String,Object> map =listMap.get(0);
                 String rely = StringUtils.handleNull(map.get("rely"));
                 FormulaBean fb=BeanUtil.toBean(map,FormulaBean.class);
-                if(StringUtils.isNotEmpty(rely)){
-                    String[] relyArr = rely.split(StringPool.COMMA);
-                   List<Map<String,Object>> mapList =this.jdbcTemplate.queryForList("select CONCAT(a.tab_en_name,':',b.e_key) ekey,a.tab_ch_name tableName,b.e_name ename  ,b.e_length elength,c.dict_value type f" +
-                           "rom m_table_info a JOIN m_wbs_form_element b on a.id=b.f_id  " +
-                           "LEFT JOIN (select dict_key, dict_value from blade_dict where code ='data_type' and parent_id > 0 and is_sealed = 0 and is_deleted = 0 )c on b.e_type=c.dict_key" +
-                           " where  a.tab_en_name in( "+ Arrays.stream(relyArr).map(e->e.split(StringPool.COLON)[0]).distinct().collect(Collectors.joining(StringPool.COMMA,"'","'"))+")");
-                   if(ListUtils.isNotEmpty(mapList)){
-                       fb.setDict(mapList.stream().filter(e-> Arrays.stream(relyArr).anyMatch(c->StringUtils.isEquals(e.get("ekey"),c))).collect(Collectors.toMap(e->StringUtils.handleNull(e.get("ekey")), e->e)));
-                   }
-
-                }
+//                if(StringUtils.isNotEmpty(rely)){
+//                    String[] relyArr = rely.split(StringPool.COMMA);
+//                   List<Map<String,Object>> mapList =this.jdbcTemplate.queryForList("select CONCAT(a.tab_en_name,':',b.e_key) ekey,a.tab_ch_name tableName,b.e_name ename  ,b.e_length elength,c.dict_value type f" +
+//                           "rom m_table_info a JOIN m_wbs_form_element b on a.id=b.f_id  " +
+//                           "LEFT JOIN (select dict_key, dict_value from blade_dict where code ='data_type' and parent_id > 0 and is_sealed = 0 and is_deleted = 0 )c on b.e_type=c.dict_key" +
+//                           " where  a.tab_en_name in( "+ Arrays.stream(relyArr).map(e->e.split(StringPool.COLON)[0]).distinct().collect(Collectors.joining(StringPool.COMMA,"'","'"))+")");
+//                   if(ListUtils.isNotEmpty(mapList)){
+//                       fb.setDict(mapList.stream().filter(e-> Arrays.stream(relyArr).anyMatch(c->StringUtils.isEquals(e.get("ekey"),c))).collect(Collectors.toMap(e->StringUtils.handleNull(e.get("ekey")), e->e)));
+//                   }
+//
+//                }
+                fb.setDict(this.service.getElementInfoByCodes(rely));
                 return R.data(fb);
             }
 
@@ -391,6 +392,16 @@ public class FormulaController {
            return    R.success("保存成功");
     }
 
+    @GetMapping("/log")
+    public R<Object> log(Long pkeyId){
+        Map<String,Object> result = new HashMap<>();
+        result.put("版本信息","20230308");
+        if(Func.isNotEmpty(pkeyId)){
+            result.put("执行情况",this.jdbcTemplate.queryForList("select * from m_formula_log where id="+pkeyId));
+        }
+        return    R.data(result);
+    }
+
 
     public String getDev(String pkId){
         String dev="";

+ 2 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/IFormulaService.java

@@ -7,6 +7,7 @@ import org.springblade.manager.formula.KeyMapper;
 import org.springblade.manager.formula.impl.TableElementConverter;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author yangyj
@@ -34,4 +35,5 @@ public interface IFormulaService extends BaseService<Formula> {
 
     List<Formula> getFormulaList(List<KeyMapper> keyMapperList);
     List<KeyMapper> getKeyMapperList(List<Long> ids,String projectId);
+    Map<String,Object> getElementInfoByCodes(String codes);
 }

+ 31 - 9
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaServiceImpl.java

@@ -130,7 +130,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
         /*检查是否有跨节点数据*/
         /*获取type=1的检验单或者type=4的监表*/
         List<Map<String,Object>>  inspectionElementMaps = new ArrayList<>();
-        Optional<AppWbsTreeContractVO> wop=tableList.stream().filter(e->e.getTableType()==1).findAny();
+        Optional<AppWbsTreeContractVO> wop=tableList.stream().filter(e->e.getFullName().contains("检验单")).findAny();
         if(wop.isPresent()){
             /*检验单或者监表的*/
             inspectionElementMaps=  this.jdbcTemplate.queryForList(" select c.e_name name ,b.tab_en_name tableName,c.e_key ekey from m_wbs_tree_contract a join m_table_info b on a.init_table_name=b.tab_en_name join m_wbs_form_element c on c.f_id= b.id where a.p_key_id=" + wop.get().getPKeyId());
@@ -189,11 +189,12 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
             StringBuilder sb = new StringBuilder();
             for(String s:cki){
                 FormData fdTmp=this.formDataMap.get(s);
-                if(fdTmp!=null&&fdTmp.getValues().stream().anyMatch(e->StringUtils.isNotEmpty(e)&&StringUtils.isEquals("/",e))){
-                    sb.append(fdTmp.getEName().split("\\(.+\\)")[0]).append(",");
+                if(fdTmp!=null&&fdTmp.getValues().stream().map(ElementData::getValue).anyMatch(e->StringUtils.isNotEmpty(e)&&StringUtils.isNotEquals("/",e))){
+                    sb.append(fdTmp.getEName().split("[((].+[))]")[0]).append(",");
                 }
             }
             if(sb.length()>1){
+                sb.deleteCharAt(sb.length()-1);
                 this.constantMap.put(CHECK_ITEMS,sb.toString());
             }
         }
@@ -224,6 +225,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
         /*数据池里面没有任何元素匹配和当前依赖匹配*/
         if(Func.isNotEmpty(missingList)){
             StaticLog.info("缺失元素{}", String.join(";", missingList));
+            Map<String, Object> elementInfoMap=this.getElementInfoByCodes(String.join(",",missingList));
             /*1从当前节点其它表格中查找匹配的元素*/
             List<String> removeList=new ArrayList<>();
             for(String r:missingList){
@@ -231,6 +233,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                 String key =r.substring(r.indexOf(StringPool.COLON)+1);
                 List<AppWbsTreeContractVO> nodeList = this.tec.getTableAll().stream().filter(e->e.getInitTableName().equals(tn)).collect(Collectors.toList());
                 if(Func.isNotEmpty(nodeList)){
+                    Map<String,Object> elementInfo= (Map<String, Object>) elementInfoMap.get(r);
                     String tableName = nodeList.get(0).getInitTableName();
                     try {
                         if(!this.tec.getCoordinateMap().containsKey(tableName)){
@@ -240,7 +243,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                         e.printStackTrace();
                     }
                     List<Map<String,Object>> tableDatas= this.jdbcTemplate.queryForList("select * from "+tableName+" where p_key_id in("+nodeList.stream().map(AppWbsTreeContractVO::getPKeyId).map(StringUtils::handleNull).collect(Collectors.joining(","))+")");
-                    fill(tableDatas,removeList,tn,key);
+                    fill(tableDatas,removeList,tn,key,StringUtils.handleNull(elementInfo.get("ename")));
                 }
             }
             if(Func.isNotEmpty(removeList)){
@@ -254,12 +257,13 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
                 if(Func.isNotEmpty(tableNamePkIdsMaps)){
                     removeList.clear();
                     missingList.forEach(miss->{
+                        Map<String,Object> elementInfo= (Map<String, Object>) elementInfoMap.get(miss);
                         String tn = miss.substring(0,miss.indexOf(StringPool.COLON));
                         String key =miss.substring(miss.indexOf(StringPool.COLON)+1);
                         String targetIds=tableNamePkIdsMaps.stream().filter(m->StringUtils.isEquals(m.get("tableName"),tn)).map(m->m.get("pkId")).map(StringUtils::handleNull).collect(Collectors.joining(","));
                         if(Func.isNotEmpty(targetIds)){
                             List<Map<String,Object>> tableDatas= this.jdbcTemplate.queryForList("select * from "+tn+" where p_key_id in ("+targetIds+")");
-                            fill(tableDatas,removeList,tn,key);
+                            fill(tableDatas,removeList,tn,key,StringUtils.handleNull(elementInfo.get("ename")));
                         }
                     });
                 }
@@ -271,7 +275,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
         }
     }
 
-    public void fill(List<Map<String,Object>> tableDatas,List<String> removeList,String tn,String key){
+    public void fill(List<Map<String,Object>> tableDatas,List<String> removeList,String tn,String key,String name){
         if(Func.isNotEmpty(tableDatas)){
             Map<String,Object> map = new HashMap<>();
             tableDatas.forEach(m->{
@@ -285,7 +289,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
             String values= StringUtils.handleNull(map.get(key));
             String r= tn+StringPool.COLON+key;
             if(StringUtils.isNotEmpty(values)){
-                FormData tmp=createFormDataFast(r,values);
+                FormData tmp=createFormDataFast(name,r,values);
                 if(tmp!=null){
                     removeList.add(r);
                     this.formDataMap.put(r,tmp);
@@ -293,13 +297,15 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
             }
         }
     }
-    public FormData createFormDataFast(String code,String values){
+    public FormData createFormDataFast(String name,String code,String values){
         if(StringUtils.isNotEmpty(code,values)){
-            return    new FormData(code, Arrays.stream(values.split("☆")).map(s->{
+            FormData one=    new FormData(code, Arrays.stream(values.split("☆")).map(s->{
                 String[] t = s.split("_\\^_");
                 String[] c =t[1].split("_");
                 return  new ElementData(0,0,t[0],Func.toInt(c[1]),Func.toInt(c[0]));
             }).collect(Collectors.toList()), null,StringPool.EMPTY);
+            one.setEName(name);
+            return one;
         }
         return null;
     }
@@ -975,6 +981,22 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
     }
 
 
+    @Override
+    public Map<String,Object> getElementInfoByCodes(String codes){
+        if(StringUtils.isNotEmpty(codes)){
+            String[] relyArr = codes.split(StringPool.COMMA);
+            List<Map<String,Object>> mapList =this.jdbcTemplate.queryForList("select CONCAT(a.tab_en_name,':',b.e_key) ekey,a.tab_ch_name tableName,b.e_name ename  ,b.e_length elength,c.dict_value type f" +
+                    "rom m_table_info a JOIN m_wbs_form_element b on a.id=b.f_id  " +
+                    "LEFT JOIN (select dict_key, dict_value from blade_dict where code ='data_type' and parent_id > 0 and is_sealed = 0 and is_deleted = 0 )c on b.e_type=c.dict_key" +
+                    " where  a.tab_en_name in( "+ Arrays.stream(relyArr).map(e->e.split(StringPool.COLON)[0]).distinct().collect(Collectors.joining(StringPool.COMMA,"'","'"))+")");
+            if(ListUtils.isNotEmpty(mapList)){
+             return   mapList.stream().filter(e-> Arrays.stream(relyArr).anyMatch(c->StringUtils.isEquals(e.get("ekey"),c))).collect(Collectors.toMap(e->StringUtils.handleNull(e.get("ekey")), e->e));
+            }
+
+        }
+        return new HashMap<>();
+    }
+
     public void batch(){
         List<Map<String,Object>> list = this.jdbcTemplate.queryForList("select id,formula from m_formula where (formula like '%reasonable%' or formula like '%proportion%' or formula like '%goodSize%')");
         if(ListUtils.isNotEmpty(list)){