|
@@ -13,6 +13,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.jfireel.expression.Expression;
|
|
|
import com.mixsmart.utils.*;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
+import org.apache.commons.lang.math.IntRange;
|
|
|
import org.apache.poi.ss.usermodel.*;
|
|
|
import org.jsoup.nodes.Document;
|
|
|
import org.springblade.common.utils.BaseUtils;
|
|
@@ -1520,34 +1521,60 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
|
|
|
}
|
|
|
|
|
|
/*调整页数并返回当所有页*/
|
|
|
- public List<WbsTreeContract> adjustPageSize(int pageSizeNow,WbsTreeContract wtc){
|
|
|
- List<WbsTreeContract> list =this.wbsTreeContractService.list(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getInitTableName,wtc.getInitTableName()).eq(WbsTreeContract::getContractId,wtc.getContractId()).eq(WbsTreeContract::getParentId,wtc.getParentId()).orderByDesc(WbsTreeContract::getCreateTime));
|
|
|
- int length=list.size();
|
|
|
- if(pageSizeNow!=length){
|
|
|
- int dx = pageSizeNow-length;
|
|
|
- if(dx>0) {
|
|
|
- /*加页*/
|
|
|
- WbsTreeContract origin = list.get(length - 1);
|
|
|
- if (origin != null) {
|
|
|
- List<WbsTreeContract> saveList = new ArrayList<>();
|
|
|
- for (int i = 0; i < dx; i++) {
|
|
|
- WbsTreeContract target = FormulaUtils.copyPage(origin);
|
|
|
- saveList.add(target);
|
|
|
- }
|
|
|
- this.wbsTreeContractService.saveOrUpdateBatch(saveList);
|
|
|
- list.addAll(saveList);
|
|
|
- String sql="select * from "+origin.getInitTableName()+" where p_key_id ="+origin.getPKeyId();
|
|
|
- }
|
|
|
- }else{
|
|
|
- /*删页*/
|
|
|
- int cut = length+dx;
|
|
|
- List<Long> removeList = list.stream().skip(cut).map(WbsTreeContract::getPKeyId).collect(Collectors.toList());
|
|
|
- List<WbsTreeContract> remain = list.subList(0,cut);
|
|
|
- this.wbsTreeContractService.update(Wrappers.<WbsTreeContract>lambdaUpdate().set(WbsTreeContract::getIsDeleted,1).in(WbsTreeContract::getPKeyId,removeList));
|
|
|
- return remain;
|
|
|
- }
|
|
|
- }
|
|
|
- return list;
|
|
|
+ public List<WbsTreeContract> adjustPageSize(int pageSizeNow,WbsTreeContract wtc,List<FormData> processFds){
|
|
|
+ try {
|
|
|
+ List<WbsTreeContract> list =this.wbsTreeContractService.list(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getInitTableName,wtc.getInitTableName()).eq(WbsTreeContract::getContractId,wtc.getContractId()).eq(WbsTreeContract::getParentId,wtc.getParentId()).orderByDesc(WbsTreeContract::getCreateTime));
|
|
|
+ int length=list.size();
|
|
|
+ if(pageSizeNow!=length){
|
|
|
+ int dx = pageSizeNow-length;
|
|
|
+ if(dx>0) {
|
|
|
+ /*加页*/
|
|
|
+ WbsTreeContract origin = list.get(length - 1);
|
|
|
+ if (origin != null) {
|
|
|
+ List<WbsTreeContract> saveList = new ArrayList<>();
|
|
|
+ for (int i = 0; i < dx; i++) {
|
|
|
+ WbsTreeContract target = FormulaUtils.copyPage(origin);
|
|
|
+ saveList.add(target);
|
|
|
+ }
|
|
|
+ this.wbsTreeContractService.saveOrUpdateBatch(saveList);
|
|
|
+ list.addAll(saveList);
|
|
|
+ String sql="select * from "+origin.getInitTableName()+" where p_key_id ="+origin.getPKeyId();
|
|
|
+ @SuppressWarnings("unchecked")
|
|
|
+ Map<String,String> maps = this.getSqlOne(sql,Map.class);
|
|
|
+ if(maps!=null){
|
|
|
+ Set<String> exclude = processFds.stream().filter(FormData::isContent).map(FormData::getKey).collect(Collectors.toSet());
|
|
|
+ /*移除空值,还有p_key_id、id等固定字段*/
|
|
|
+ List<String> keys= maps.entrySet().stream().filter(e->Func.isNotEmpty(e.getValue())||exclude.contains(e.getKey())||"p_Key_id".equals(e.getKey())||"id".equals(e.getKey())).map(Map.Entry::getKey).collect(Collectors.toList());
|
|
|
+ List<String> fields = new ArrayList<>(Arrays.asList("id","p_key_id"));
|
|
|
+ fields.addAll(keys);
|
|
|
+ List<String> values = new ArrayList<>();
|
|
|
+ keys.forEach(k->{
|
|
|
+ values.add(maps.get(k));
|
|
|
+ });
|
|
|
+ String fieldStr= fields.stream().collect(Collectors.joining(",","(",")"));
|
|
|
+ String valueStr= saveList.stream().map(w->{
|
|
|
+ List<String> l = new ArrayList<>(values);
|
|
|
+ l.add(0,w.getPKeyId().toString());
|
|
|
+ l.add(0,SnowFlakeUtil.getId().toString());
|
|
|
+ return l.stream().collect(Collectors.joining(",","(",")"));
|
|
|
+ }).collect(Collectors.joining(","));
|
|
|
+ String template ="insert into "+origin.getInitTableName()+fieldStr+" values "+valueStr;
|
|
|
+ this.jdbcTemplate.execute(template);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ /*删页*/
|
|
|
+ int cut = length+dx;
|
|
|
+ List<Long> removeList = list.stream().skip(cut).map(WbsTreeContract::getPKeyId).collect(Collectors.toList());
|
|
|
+ List<WbsTreeContract> remain = list.subList(0,cut);
|
|
|
+ this.wbsTreeContractService.update(Wrappers.<WbsTreeContract>lambdaUpdate().set(WbsTreeContract::getIsDeleted,1).in(WbsTreeContract::getPKeyId,removeList));
|
|
|
+ return remain;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return list;
|
|
|
+ }catch (Exception e){
|
|
|
+ return Collections.emptyList();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -1652,8 +1679,12 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
|
|
|
List<Map<String,Object>> listMaps=this.jdbcTemplate.queryForList(sql,args);
|
|
|
if(listMaps.size()>0){
|
|
|
Map<String,Object> target = listMaps.get(0);
|
|
|
- if (Map.class.equals(clazz)) {
|
|
|
- return (T) target;
|
|
|
+ if (Map.class.isAssignableFrom(clazz)) {
|
|
|
+ Map<String, String> result = new HashMap<>();
|
|
|
+ for (Map.Entry<String, Object> entry : target.entrySet()) {
|
|
|
+ result.put(entry.getKey(), Func.toStr(entry.getValue()));
|
|
|
+ }
|
|
|
+ return clazz.cast(result);
|
|
|
}
|
|
|
return BeanUtil.toBean(target,clazz);
|
|
|
}
|
|
@@ -2242,7 +2273,7 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
|
|
|
|
|
|
@Override
|
|
|
public List<FormData> createFormDataByTableName(String tableNames) {
|
|
|
- return this.getSqlList("select b.id, CONCAT(a.tab_en_name,':',b.e_key) code,a.tab_ch_name tableChName,b.e_name eName ,b.e_allow_deviation eAllowDeviation ,b.e_length eLength,c.dict_value eType " +
|
|
|
+ return this.getSqlList("select b.id, CONCAT(a.tab_en_name,':',b.e_key) code,a.tab_ch_name tableChName,b.e_name eName ,b.e_allow_deviation eAllowDeviation ,b.e_length eLength,b.structure,c.dict_value eType " +
|
|
|
"from m_table_info a JOIN m_wbs_form_element b on a.id=b.f_id and b.is_deleted=0 " +
|
|
|
"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('"+ tableNames+"')"
|
|
@@ -2420,8 +2451,10 @@ public class FormulaServiceImpl extends BaseServiceImpl<FormulaMapper, Formula>
|
|
|
Map<String,String> tableKeysCoordsMap= FormulaUtils.getElementCell(wtc.getHtmlUrl());
|
|
|
fb02.initFdCoords(tableKeysCoordsMap);
|
|
|
/*根据数据长度,增减页数*/
|
|
|
- List<WbsTreeContract> pages= this.adjustPageSize(10,wtc);
|
|
|
-
|
|
|
+ List<WbsTreeContract> wtcList= this.adjustPageSize(fb02.getPageNum(),wtc,processFds);
|
|
|
+ if(fb02.flush(wtcList)) {
|
|
|
+ this.jdbcTemplate.execute(fb02.getSql());
|
|
|
+ }
|
|
|
}
|
|
|
return R.success("成功");
|
|
|
}
|