Browse Source

公式相关

yangyj 3 năm trước cách đây
mục cha
commit
03e29ec848

+ 6 - 129
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ExcelTabController.java

@@ -37,6 +37,7 @@ import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.constant.BladeConstant;
 import org.springblade.core.tool.utils.*;
+import org.springblade.manager.bean.TableInfo;
 import org.springblade.manager.entity.*;
 import org.springblade.manager.mapper.WbsTreePrivateMapper;
 import org.springblade.manager.service.*;
@@ -611,7 +612,7 @@ public class ExcelTabController extends BladeController {
     /**
      *保存用户填报数据接口
      */
-    @PostMapping("/save_buss_data")
+    @PostMapping("/save_buss_data_bak")
     @ApiOperationSupport(order = 13)
     @ApiOperation(value = "填报页面数据保存", notes = "填报页面数据保存")
     public R<String> saveBussData(@Valid @RequestBody JSONObject dataInfo, BladeUser bladeUser) throws IOException {
@@ -1587,11 +1588,10 @@ public class ExcelTabController extends BladeController {
 
 
 
-    @PostMapping("/save_buss_data_bak")
+    @PostMapping("/save_buss_data")
     @ApiOperationSupport(order = 13)
     @ApiOperation(value = "填报页面数据保存", notes = "填报页面数据保存")
     public R<String> _saveBussData(@Valid @RequestBody JSONObject dataInfo, BladeUser bladeUser) throws IOException {
-
         JSONArray dataArray = new JSONArray();
         if(dataInfo.containsKey("dataInfo")){ // 节点保存
             JSONObject jsonObject = dataInfo.getJSONObject("dataInfo");
@@ -1599,132 +1599,9 @@ public class ExcelTabController extends BladeController {
         }else{ // 单个保存
             dataArray.add(dataInfo);
         }
-
-        for(int m=0;m<dataArray.size();m++){
-            JSONObject dataInfo2= dataArray.getJSONObject(m);
-            //
-            String contractId = dataInfo2.getString("contractId");
-            String pkeyId = dataInfo2.getString("pkeyId");
-            String projectId = dataInfo2.getString("projectId");
-            //huangjn 填报的类型,施工或监理
-            String classify = dataInfo2.getString("classify");
-
-            //huangjn 填报的类型,施工或监理
-            // 去掉
-            dataInfo2.remove("contractId");
-            dataInfo2.remove("pkeyId");
-            dataInfo2.remove("p_key_id");
-            dataInfo2.remove("projectId");
-            dataInfo2.remove("classify");
-            dataInfo2.remove("pickerKey");
-            dataInfo2.remove("id");
-            dataInfo2.remove("");
-            // 计算数据
-            Map<String,String> dataMap = new HashMap<>();
-            for(String k:dataInfo2.keySet()){
-                if(k.indexOf("__")>=0){
-                    String key = k.split("__")[0];
-                    if(dataMap.containsKey(key)){
-                        dataMap.put(key,dataMap.get(key)+","+k);
-                    }else{
-                        dataMap.put(key,k);
-                    }
-                }
-            }
-
-            Map<String,String> dataMap2 = new HashMap<>();
-
-
-            // 字段组合
-            for(String k:dataMap.keySet()){
-                if(dataMap.get(k).indexOf(",")>=0 && dataMap.get(k).indexOf("000Z")<0){
-                    String [] ziduan= dataMap.get(k).split(",");
-                    String temp = "";
-                    for(int i = 0; i < ziduan.length - 1; i++) {
-                        for (int j = 0; j < ziduan.length - i - 1; j++) {
-                            Integer tr = Integer.parseInt((ziduan[j].split("__")[1]).split("_")[0]);
-                            Integer td = Integer.parseInt(ziduan[j].split("__")[1].split("_")[1]);
-
-                            Integer tr_1 = Integer.parseInt(ziduan[j + 1].split("__")[1].split("_")[0]);
-                            Integer td_1 = Integer.parseInt(ziduan[j + 1].split("__")[1].split("_")[1]);
-
-                            if (tr > tr_1 && td==td_1  ) { //纵向排序
-                                temp = ziduan[j];
-                                ziduan[j] = ziduan[j + 1];
-                                ziduan[j + 1] = temp;
-                            }
-                        }
-                    }
-
-                    String lastStr = dataInfo2.getString(ziduan[0])+"__"+ziduan[0].split("__")[1];
-                    for (int i=1 ;i<ziduan.length;i++){
-                        String keyData = dataInfo2.getString(ziduan[i]);
-                        if(!keyData.equals("")){
-                            lastStr+=","+dataInfo2.getString(ziduan[i])+"__"+ziduan[i].split("__")[1];
-                        }
-
-                    }
-                    dataMap2.put(k,lastStr);
-                }else{
-                    String dataVal = dataInfo2.getString(dataMap.get(k));
-                    if(!dataVal.equals("") || !dataVal.equals("[]") ) {
-                        System.out.println(k+"__"+dataMap.get(k));
-                        dataMap2.put(k, dataVal+"__"+dataMap.get(k).split("__")[1]);
-                    }
-                }
-            }
-
-            dataMap2.put("p_key_id",pkeyId);
-
-            WbsTreeContract wbsTreeContract = wbsTreeContractService.getBaseMapper().selectOne(Wrappers.<WbsTreeContract>query().lambda()
-                    .eq(WbsTreeContract::getPKeyId, pkeyId));
-            if(wbsTreeContract == null){
-                continue;
-            }
-
-            String tabName = wbsTreeContract.getInitTableName();
-
-            // 判读修改还是 添加
-            String querySql = "select * from "+tabName+" where p_key_id="+pkeyId ;
-            List<Map<String, Object>> dataIn = jdbcTemplate.queryForList(querySql);
-
-            String sqlInfo="";
-
-            if(dataIn.isEmpty()){ //插入
-                sqlInfo = "INSERT INTO "+tabName+" ( ";
-                String keyStr = "id,";
-                String valStr = SnowFlakeUtil.getId() + ",";
-                for (String keys : dataMap2.keySet()){
-                    keyStr += keys+",";
-                    valStr += "'"+dataMap2.get(keys)+"',";
-                }
-                keyStr=keyStr.substring(0,keyStr.lastIndexOf(","));
-                valStr=valStr.substring(0,valStr.lastIndexOf(","));
-                sqlInfo = sqlInfo + keyStr+") VALUES (" +valStr +")";
-
-
-                WbsTreeContract wbsTreeContractByP = wbsTreeContractService.getBaseMapper().selectOne(Wrappers.<WbsTreeContract>query().lambda()
-                        .eq(WbsTreeContract::getId, wbsTreeContract.getParentId()).eq(WbsTreeContract::getContractId,contractId));
-
-                //huangjn 保存成功后调用生成资料查询列表数据
-                this.informationQueryClient.saveOrUpdateInformationQueryData(wbsTreeContractByP.getPKeyId()+"", "文件名称(后面再完善)", Integer.parseInt(classify), 2);
-            }else{ //更新
-                sqlInfo = "update  "+tabName+" set ";
-                for (String keys : dataMap2.keySet()){
-                    sqlInfo += keys+"='"+dataMap2.get(keys)+"',";
-                }
-                sqlInfo=sqlInfo.substring(0,sqlInfo.lastIndexOf(","));
-                sqlInfo = sqlInfo + " where p_key_id="+pkeyId;
-            }
-
-            UpdateWrapper<WbsTreeContract> updateWrapper = new UpdateWrapper<>();
-            updateWrapper.in("p_key_id",pkeyId);
-            updateWrapper.set("is_tab_pdf",2);
-            wbsTreeContractService.update(updateWrapper);
-
-            jdbcTemplate.execute(sqlInfo);
-            // this.getBussPdfInfo(Long.parseLong(pkeyId));
-        }
+        List<TableInfo> tableInfoList =this.excelTabService.getTableInfoList(dataArray);
+        this.excelTabService.formulaFillData(tableInfoList);
+        this.excelTabService.saveOrUpdateInfo(tableInfoList);
         return  R.success("1");
     }
 

+ 9 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/IExcelTabService.java

@@ -89,5 +89,14 @@ public interface IExcelTabService extends BaseService<ExcelTab> {
 	 *  表格数据封装
 	 */
 	List<TableInfo>  getTableInfoList(JSONArray dataArray);
+	/**
+	 *  公式填充
+	 */
+	void  formulaFillData(List<TableInfo> tableInfoList);
+	/**
+	 *  结果信息持久化
+	 */
+	void saveOrUpdateInfo(List<TableInfo> tableInfoList);
+
 
 }

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

@@ -18,12 +18,19 @@ package org.springblade.manager.service.impl;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.mixsmart.utils.ListUtils;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import org.springblade.business.feign.InformationQueryClient;
+import org.springblade.common.utils.SnowFlakeUtil;
 import org.springblade.core.oss.model.BladeFile;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.node.ForestNodeMerger;
 import org.springblade.core.tool.utils.StringPool;
 import org.springblade.manager.bean.TableInfo;
+import org.springblade.manager.dto.FormData;
 import org.springblade.manager.entity.ExcelTab;
 import org.springblade.manager.entity.WbsTreeContract;
 import org.springblade.manager.service.IWbsTreeContractService;
@@ -34,6 +41,7 @@ import org.springblade.manager.service.IExcelTabService;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.manager.vo.ExcelTabWbsTypeVO;
 import org.springblade.manager.vo.WbsTreeVO;
+import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
@@ -47,9 +55,14 @@ import java.util.stream.Collectors;
  * @since 2022-05-18
  */
 @Service
+@AllArgsConstructor
 public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTab> implements IExcelTabService {
 
-
+	//客户端资料查询接口
+	private final InformationQueryClient informationQueryClient;
+	// 元素信息表-
+	private final IWbsTreeContractService wbsTreeContractService;
+	private final JdbcTemplate jdbcTemplate;
 	@Override
 	public IPage<ExcelTabVO> selectExcelTabPage(IPage<ExcelTabVO> page, ExcelTabVO excelTab) {
 		return page.setRecords(baseMapper.selectExcelTabPage(page, excelTab));
@@ -179,4 +192,68 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
 		}
 		return null;
 	}
+
+	@Override
+	public void formulaFillData(List<TableInfo> tableInfoList) {
+		List<FormData> fds = new ArrayList<>();
+		for(TableInfo tableInfo:tableInfoList){
+			//TODO
+		}
+	}
+
+	@Override
+	public void saveOrUpdateInfo(List<TableInfo> tableInfoList) {
+		if(ListUtils.isNotEmpty(tableInfoList)){
+			for(TableInfo tableInfo:tableInfoList){
+				WbsTreeContract wbsTreeContract = wbsTreeContractService.getBaseMapper().selectOne(Wrappers.<WbsTreeContract>query().lambda()
+						.eq(WbsTreeContract::getPKeyId, tableInfo.getPkeyId()));
+				if(wbsTreeContract == null){
+					continue;
+				}
+
+				String tabName = wbsTreeContract.getInitTableName();
+
+				// 判读修改还是 添加
+				String querySql = "select * from "+tabName+" where p_key_id="+tableInfo.getPkeyId() ;
+				List<Map<String, Object>> dataIn = jdbcTemplate.queryForList(querySql);
+
+				String sqlInfo="";
+                 LinkedHashMap<String,String> dataMap2 = tableInfo.getDataMap();
+				if(dataIn.isEmpty()){ //插入
+					sqlInfo = "INSERT INTO "+tabName+" ( ";
+					String keyStr = "id,";
+					String valStr = SnowFlakeUtil.getId() + ",";
+					for (String keys : dataMap2.keySet()){
+						keyStr += keys+",";
+						valStr += "'"+dataMap2.get(keys)+"',";
+					}
+					keyStr=keyStr.substring(0,keyStr.lastIndexOf(","));
+					valStr=valStr.substring(0,valStr.lastIndexOf(","));
+					sqlInfo = sqlInfo + keyStr+") VALUES (" +valStr +")";
+
+
+					WbsTreeContract wbsTreeContractByP = wbsTreeContractService.getBaseMapper().selectOne(Wrappers.<WbsTreeContract>query().lambda()
+							.eq(WbsTreeContract::getId, wbsTreeContract.getParentId()).eq(WbsTreeContract::getContractId,tableInfo.getContractId()));
+
+					//huangjn 保存成功后调用生成资料查询列表数据
+					this.informationQueryClient.saveOrUpdateInformationQueryData(wbsTreeContractByP.getPKeyId()+"", "文件名称(后面再完善)", Integer.parseInt(tableInfo.getClassify()), 2);
+				}else{ //更新
+					sqlInfo = "update  "+tabName+" set ";
+					for (String keys : dataMap2.keySet()){
+						sqlInfo += keys+"='"+dataMap2.get(keys)+"',";
+					}
+					sqlInfo=sqlInfo.substring(0,sqlInfo.lastIndexOf(","));
+					sqlInfo = sqlInfo + " where p_key_id="+tableInfo.getPkeyId();
+				}
+
+				UpdateWrapper<WbsTreeContract> updateWrapper = new UpdateWrapper<>();
+				updateWrapper.in("p_key_id",tableInfo.getPkeyId());
+				updateWrapper.set("is_tab_pdf",2);
+				wbsTreeContractService.update(updateWrapper);
+
+				jdbcTemplate.execute(sqlInfo);
+				// this.getBussPdfInfo(Long.parseLong(pkeyId));
+			}
+		}
+	}
 }