From b09803bb3baffb75a3b739924b29ba9ada481403 Mon Sep 17 00:00:00 2001
From: 许鹏程 <1821349743@qq.com>
Date: 星期五, 30 六月 2023 16:30:33 +0800
Subject: [PATCH] 数据模板导入
---
src/main/java/com/product/module/data/service/SystemDataUpLoadService.java | 1472 ++++++++++++++++++++++++++++++----------------------------
1 files changed, 755 insertions(+), 717 deletions(-)
diff --git a/src/main/java/com/product/module/data/service/SystemDataUpLoadService.java b/src/main/java/com/product/module/data/service/SystemDataUpLoadService.java
index 01ef57b..9778d34 100644
--- a/src/main/java/com/product/module/data/service/SystemDataUpLoadService.java
+++ b/src/main/java/com/product/module/data/service/SystemDataUpLoadService.java
@@ -1,6 +1,9 @@
package com.product.module.data.service;
+import cn.hutool.core.util.NumberUtil;
+import cn.hutool.core.util.ReflectUtil;
+import cn.hutool.extra.spring.SpringUtil;
import com.alibaba.fastjson.JSONObject;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
@@ -21,7 +24,6 @@
import com.product.core.service.support.QueryFilterService;
import com.product.core.spring.context.SpringMVCContextHolder;
import com.product.core.transfer.Transactional;
-import com.product.core.util.ReflectUtil;
import com.product.file.service.FileManagerService;
import com.product.module.data.config.CmnCode;
import com.product.module.data.config.CmnConst;
@@ -37,259 +39,263 @@
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.lang.reflect.Method;
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
import java.util.*;
@Service
public class SystemDataUpLoadService extends AbstractBaseService implements ISystemDataUpLoadService {
- @Autowired
- private BaseDao baseDao;
- @Autowired
- private FileManagerService fileManagerService;
- @Autowired
- private QueryFilterService queryFilterService;
+ @Autowired
+ private BaseDao baseDao;
+ @Autowired
+ private FileManagerService fileManagerService;
+ @Autowired
+ private QueryFilterService queryFilterService;
- @Autowired
- private PermissionService permissionService;
+ @Autowired
+ private PermissionService permissionService;
- public List<Map<String, Object>> getPrompt() throws BaseException {
- StringBuilder sql = new StringBuilder();
- sql.append(" select prompt_name `value` ,prompt_name `label` ,'prompt' type FROM product_sys_prompt ");
- sql.append(" union all ");
- sql.append(" select concat('銆�',dict_name,'銆�') dict_name,dict_name,'dict' type FROM product_sys_dict where is_used=1 group by dict_name ");
- FieldSetEntity f = new FieldSetEntity();
- f.setTableName("x");
- f.setValue("desc", "楂樼骇鍙傜収锛屾櫘閫氬弬鐓�");
- DataTableEntity dt = baseDao.listTable(sql.toString(), new Object[]{});
- List<Map<String, Object>> result = Lists.newArrayList();
- if (!BaseUtil.dataTableIsEmpty(dt)) {
- List<Map<String, Object>> promptList = Lists.newArrayList();
- List<Map<String, Object>> dictList = Lists.newArrayList();
- Map<String, Object> item;
- for (int i = 0; i < dt.getRows(); i++) {
- String type = dt.getString(i, "type");
- String value = dt.getString(i, "value");
- String label = dt.getString(i, "label");
- item = Maps.newHashMap();
- item.put("value", value);
- item.put("label", label);
- if ("prompt".equals(type)) {
- promptList.add(item);
- } else {
- dictList.add(item);
- }
- }
- item = Maps.newHashMap();
- item.put("label", "楂樼骇鍙傜収");
- item.put("children", promptList);
- item.put("value", "~楂樼骇鍙傜収~");
- result.add(item);
- item = Maps.newHashMap();
- item.put("label", "鏅�氬弬鐓�");
- item.put("children", dictList);
- item.put("value", "~鏅�氬弬鐓");
- result.add(item);
- }
- return result;
- }
+ public List<Map<String, Object>> getPrompt() throws BaseException {
+ StringBuilder sql = new StringBuilder();
+ sql.append(" select prompt_name `value` ,prompt_name `label` ,'prompt' type FROM product_sys_prompt ");
+ sql.append(" union all ");
+ sql.append(" select concat('銆�',dict_name,'銆�') dict_name,dict_name,'dict' type FROM product_sys_dict where is_used=1 group by dict_name ");
+ FieldSetEntity f = new FieldSetEntity();
+ f.setTableName("x");
+ f.setValue("desc", "楂樼骇鍙傜収锛屾櫘閫氬弬鐓�");
+ DataTableEntity dt = baseDao.listTable(sql.toString(), new Object[]{});
+ List<Map<String, Object>> result = Lists.newArrayList();
+ if (!BaseUtil.dataTableIsEmpty(dt)) {
+ List<Map<String, Object>> promptList = Lists.newArrayList();
+ List<Map<String, Object>> dictList = Lists.newArrayList();
+ Map<String, Object> item;
+ for (int i = 0; i < dt.getRows(); i++) {
+ String type = dt.getString(i, "type");
+ String value = dt.getString(i, "value");
+ String label = dt.getString(i, "label");
+ item = Maps.newHashMap();
+ item.put("value", value);
+ item.put("label", label);
+ if ("prompt".equals(type)) {
+ promptList.add(item);
+ } else {
+ dictList.add(item);
+ }
+ }
+ item = Maps.newHashMap();
+ item.put("label", "楂樼骇鍙傜収");
+ item.put("children", promptList);
+ item.put("value", "~楂樼骇鍙傜収~");
+ result.add(item);
+ item = Maps.newHashMap();
+ item.put("label", "鏅�氬弬鐓�");
+ item.put("children", dictList);
+ item.put("value", "~鏅�氬弬鐓");
+ result.add(item);
+ }
+ return result;
+ }
- /**
- * 妯℃澘涓婁紶
- *
- * @param rpe
- * @return
- */
- @Override
- @Transactional
- public JSONObject uploadTemplate(RequestParameterEntity rpe) {
- FieldSetEntity paramFse = rpe.getFormData();
- String sourceFileName = paramFse.getString(CmnConst.FIELD_TEMPLATE_INFO);
- if (StringUtils.isEmpty(sourceFileName) || !sourceFileName.endsWith(".xlsx")) {
- throw new BaseException(CmnCode.UPLOAD_TEMPLATE_NOT_ALLOWED_FORMAT.getValue(), CmnCode.UPLOAD_TEMPLATE_NOT_ALLOWED_FORMAT.getText());
- }
+ /**
+ * 妯℃澘涓婁紶
+ *
+ * @param rpe
+ * @return
+ */
+ @Override
+ @Transactional
+ public JSONObject uploadTemplate(RequestParameterEntity rpe) {
+ FieldSetEntity paramFse = rpe.getFormData();
+ String sourceFileName = paramFse.getString(CmnConst.FIELD_TEMPLATE_INFO);
+ if (StringUtils.isEmpty(sourceFileName) || !sourceFileName.endsWith(".xlsx")) {
+ throw new BaseException(CmnCode.UPLOAD_TEMPLATE_NOT_ALLOWED_FORMAT.getValue(), CmnCode.UPLOAD_TEMPLATE_NOT_ALLOWED_FORMAT.getText());
+ }
- FieldSetEntity fse = fileManagerService.uploadFile(rpe);
- JSONObject resultObj = new JSONObject();
- resultObj.put(CmnConst.FIELD_TEMPLATE_INFO, fse.getString(CmnConst.FIELD_TEMPLATE_INFO));
- return resultObj;
- }
+ FieldSetEntity fse = fileManagerService.uploadFile(rpe);
+ JSONObject resultObj = new JSONObject();
+ resultObj.put(CmnConst.FIELD_TEMPLATE_INFO, fse.getString(CmnConst.FIELD_TEMPLATE_INFO));
+ return resultObj;
+ }
- /**
- * 瑙f瀽妯℃澘锛岃幏鍙朎xcel琛ㄥご淇℃伅
- *
- * @param fse
- * @return
- */
- public JSONObject analysisTemplate(FieldSetEntity fse) {
- String attachmentUUID = fse.getString(CmnConst.FIELD_TEMPLATE_INFO);
- DataTableEntity modelDte = null;
+ /**
+ * 瑙f瀽妯℃澘锛岃幏鍙朎xcel琛ㄥご淇℃伅
+ *
+ * @param fse
+ * @return
+ */
+ public JSONObject analysisTemplate(FieldSetEntity fse) {
+ String attachmentUUID = fse.getString(CmnConst.FIELD_TEMPLATE_INFO);
+ DataTableEntity modelDte = null;
- String modelUUID = fse.getUUID();
- boolean needAnalysisFlag = true;
- if (!StringUtils.isEmpty(modelUUID)) {
- FieldSetEntity preModelFse = baseDao.getFieldSetEntity(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_MODEL, modelUUID, true);
- String preAttachmentUUID = preModelFse.getString(CmnConst.FIELD_TEMPLATE_INFO);
- modelDte = baseDao.listTable(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_MODEL, "upload_sign=?", new Object[]{preModelFse.getString(CmnConst.FIELD_UPLOAD_SIGN)}, null, null, Integer.MAX_VALUE, 1, true);
- if (preAttachmentUUID.equals(attachmentUUID)) {
- // 鍚屾牱鐨勬枃浠讹紝涓嶉渶瑕侀噸鏂拌В鏋�
- needAnalysisFlag = false;
- }
- }
+ String modelUUID = fse.getUUID();
+ boolean needAnalysisFlag = true;
+ if (!StringUtils.isEmpty(modelUUID)) {
+ FieldSetEntity preModelFse = baseDao.getFieldSetEntity(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_MODEL, modelUUID, true);
+ String preAttachmentUUID = preModelFse.getString(CmnConst.FIELD_TEMPLATE_INFO);
+ modelDte = baseDao.listTable(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_MODEL, "upload_sign=?", new Object[]{preModelFse.getString(CmnConst.FIELD_UPLOAD_SIGN)}, null, null, Integer.MAX_VALUE, 1, true);
+ if (preAttachmentUUID.equals(attachmentUUID)) {
+ // 鍚屾牱鐨勬枃浠讹紝涓嶉渶瑕侀噸鏂拌В鏋�
+ needAnalysisFlag = false;
+ }
+ }
- FieldSetEntity attachmentFse = baseDao.getFieldSetEntity(CmnConst.TABLE_PRODUCT_SYS_ATTACHMENT, attachmentUUID, false);
- if (needAnalysisFlag) {
- // 闇�瑕侀噸鏂拌В鏋�
- String relativePath = attachmentFse.getString(CmnConst.FIELD_ATTACHMENT_URL);
- String templateName = attachmentFse.getString(CmnConst.FIELD_ATTACHMENT_TITLE);
- String path = Global.getSystemConfig("local.dir", "") + File.separator + relativePath + File.separator + templateName;
- File templateFile = new File(path);
- // 鍒涘缓鏂囦欢娴佹搷浣滃璞�
- try (InputStream inputStream = new FileInputStream(templateFile)) {
- Map<String, List<List<String>>> map = EasyExcelUtil.readExcelByStringFromInputStream(inputStream, null);
- DataTableEntity subDte;
- Map<String, FieldSetEntity> subMap;
- FieldSetEntity mainFse;
- FieldSetEntity subFse;
- List<List<String>> list;
- int index = 0;
- for (Map.Entry<String, List<List<String>>> entry : map.entrySet()) {
- list = entry.getValue();
- if (list.isEmpty()) {
- continue;
- }
- subDte = new DataTableEntity();
- mainFse = null;
- for (String excelHeader : list.get(0)) {
- if (StringUtils.isEmpty(excelHeader)) {
- throw new BaseException(CmnCode.UPLOAD_TEMPLATE_EXISTS_EMPTY_COL.getValue(), CmnCode.UPLOAD_TEMPLATE_EXISTS_EMPTY_COL.getText());
- }
- subFse = null;
- if (modelDte != null && modelDte.getRows() > index) {
- mainFse = modelDte.getFieldSetEntity(index);
- subMap = dte2Map(mainFse.getSubDataTable(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_MODEL_SUB), CmnConst.FIELD_EXCEL_HEADER);
- if (subMap.containsKey(excelHeader)) {
- // 鍘熸湁鐨勫瓧娈�
- subFse = subMap.get(excelHeader);
- }
- }
- if (subFse == null) {
- // 鏈韩娌℃湁鐨勫瓧娈�
- subFse = new FieldSetEntity();
- subFse.setTableName(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_MODEL_SUB);
- subFse.setValue(CmnConst.FIELD_EXCEL_HEADER, excelHeader);
- }
- subDte.addFieldSetEntity(subFse);
- }
- if (mainFse == null) {
- mainFse = new FieldSetEntity();
- mainFse.setTableName(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_MODEL);
- if (modelDte == null) {
- modelDte = new DataTableEntity();
- }
- modelDte.addFieldSetEntity(mainFse);
- } else {
- mainFse.removeSubData(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_MODEL_SUB);
- }
- mainFse.addSubDataTable(subDte);
- index++;
- }
- } catch (Exception e) {
- e.printStackTrace();
- throw new BaseException(CmnCode.UPLOAD_TEMPLATE_GET_INFO_FAIL.getValue(), CmnCode.UPLOAD_TEMPLATE_GET_INFO_FAIL.getText());
- }
- }
+ FieldSetEntity attachmentFse = baseDao.getFieldSetEntity(CmnConst.TABLE_PRODUCT_SYS_ATTACHMENT, attachmentUUID, false);
+ if (needAnalysisFlag) {
+ // 闇�瑕侀噸鏂拌В鏋�
+ String relativePath = attachmentFse.getString(CmnConst.FIELD_ATTACHMENT_URL);
+ String templateName = attachmentFse.getString(CmnConst.FIELD_ATTACHMENT_TITLE);
+ String path = Global.getSystemConfig("local.dir", "") + File.separator + relativePath + File.separator + templateName;
+ File templateFile = new File(path);
+ // 鍒涘缓鏂囦欢娴佹搷浣滃璞�
+ try (InputStream inputStream = new FileInputStream(templateFile)) {
+ Map<String, List<List<String>>> map = EasyExcelUtil.readExcelByStringFromInputStream(inputStream, null);
+ DataTableEntity subDte;
+ Map<String, FieldSetEntity> subMap;
+ FieldSetEntity mainFse;
+ FieldSetEntity subFse;
+ List<List<String>> list;
+ int index = 0;
+ for (Map.Entry<String, List<List<String>>> entry : map.entrySet()) {
+ list = entry.getValue();
+ if (list.isEmpty()) {
+ continue;
+ }
+ subDte = new DataTableEntity();
+ mainFse = null;
+ for (String excelHeader : list.get(list.size() - 1)) {
+ if (StringUtils.isEmpty(excelHeader)) {
+ throw new BaseException(CmnCode.UPLOAD_TEMPLATE_EXISTS_EMPTY_COL.getValue(), CmnCode.UPLOAD_TEMPLATE_EXISTS_EMPTY_COL.getText());
+ }
+ subFse = null;
+ if (modelDte != null && modelDte.getRows() > index) {
+ mainFse = modelDte.getFieldSetEntity(index);
+ subMap = dte2Map(mainFse.getSubDataTable(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_MODEL_SUB), CmnConst.FIELD_EXCEL_HEADER);
+ if (subMap.containsKey(excelHeader)) {
+ // 鍘熸湁鐨勫瓧娈�
+ subFse = subMap.get(excelHeader);
+ }
+ }
+ if (subFse == null) {
+ // 鏈韩娌℃湁鐨勫瓧娈�
+ subFse = new FieldSetEntity();
+ subFse.setTableName(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_MODEL_SUB);
+ subFse.setValue(CmnConst.FIELD_EXCEL_HEADER, excelHeader);
+ }
+ subDte.addFieldSetEntity(subFse);
+ }
+ if (mainFse == null) {
+ mainFse = new FieldSetEntity();
+ mainFse.setTableName(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_MODEL);
+ if (modelDte == null) {
+ modelDte = new DataTableEntity();
+ }
+ modelDte.addFieldSetEntity(mainFse);
+ } else {
+ mainFse.removeSubData(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_MODEL_SUB);
+ }
+ mainFse.setValue("start_row_index", list.size() - 1);
+ mainFse.addSubDataTable(subDte);
+ index++;
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new BaseException(CmnCode.UPLOAD_TEMPLATE_GET_INFO_FAIL.getValue(), CmnCode.UPLOAD_TEMPLATE_GET_INFO_FAIL.getText());
+ }
+ }
- JSONObject resultObj = new JSONObject();
- resultObj.put("sheet_info", BaseUtil.dataTableEntityToJson(modelDte));
- resultObj.put(CmnConst.FIELD_UPLOAD_SIGN, SpringMVCContextHolder.getCurrentUser().getClient_uuid() + "_" + attachmentFse.getString(CmnConst.FIELD_ATTACHMENT_TITLE) + "_" + System.currentTimeMillis());
- return resultObj;
- }
+ JSONObject resultObj = new JSONObject();
+ resultObj.put("sheet_info", BaseUtil.dataTableEntityToJson(modelDte));
+ resultObj.put(CmnConst.FIELD_UPLOAD_SIGN, SpringMVCContextHolder.getCurrentUser().getClient_uuid() + "_" + attachmentFse.getString(CmnConst.FIELD_ATTACHMENT_TITLE) + "_" + System.currentTimeMillis());
+ return resultObj;
+ }
- /**
- * 淇濆瓨
- *
- * @param fse
- */
- @Override
- @Transactional
- public void saveTemplate(FieldSetEntity fse) {
- if (StringUtils.isEmpty(fse.getUUID())) {
- addTemplate(fse);
- } else {
- updateTemplate(fse);
- }
- }
+ /**
+ * 淇濆瓨
+ *
+ * @param fse
+ */
+ @Override
+ @Transactional
+ public void saveTemplate(FieldSetEntity fse) {
+ if (StringUtils.isEmpty(fse.getUUID())) {
+ addTemplate(fse);
+ } else {
+ updateTemplate(fse);
+ }
+ }
- /**
- * 鏂板妯℃澘
- *
- * @param fse
- */
- private void addTemplate(FieldSetEntity fse) {
- SystemUser curUser = SpringMVCContextHolder.getCurrentUser();
- String orgLevelUUID = curUser.getOrg_level_uuid();
- String clientUUID = curUser.getClient_uuid();
- String attachmentUUID = fse.getString(CmnConst.FIELD_TEMPLATE_INFO);
- FieldSetEntity attachmentFse = baseDao.getFieldSetEntity(CmnConst.TABLE_PRODUCT_SYS_ATTACHMENT, attachmentUUID, false);
- String uploadSign = clientUUID + "_" + attachmentFse.getString(CmnConst.FIELD_ATTACHMENT_TITLE) + "_" + System.currentTimeMillis();
- int sheetOrder = 1;
- fse.setValue(CmnConst.FIELD_SHEET_ORDER, sheetOrder);
- fse.setValue(CmnConst.FIELD_UPLOAD_SIGN, uploadSign);
- // 淇濆瓨鏁版嵁瀵煎叆妯℃澘淇℃伅
- DataTableEntity modelDte = fse.getSubDataTable(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_MODEL);
- if (!BaseUtil.dataTableIsEmpty(modelDte)) {
- FieldSetEntity tempFse;
- for (int i = 0; i < modelDte.getRows(); i++) {
- tempFse = modelDte.getFieldSetEntity(i);
- tempFse.setValue(CmnConst.FIELD_UPLOAD_SIGN, uploadSign);
- tempFse.setValue(CmnConst.FIELD_SHEET_ORDER, ++sheetOrder);
- BaseUtil.addOrgLeveLUUID(tempFse, Collections.singletonList(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_MODEL_SUB), orgLevelUUID, curUser);
- baseDao.saveFieldSetEntity(tempFse);
- }
- fse.removeSubData(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_MODEL);
- }
- BaseUtil.addOrgLeveLUUID(fse, Collections.singletonList(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_MODEL_SUB), orgLevelUUID, curUser);
- baseDao.saveFieldSetEntity(fse);
+ /**
+ * 鏂板妯℃澘
+ *
+ * @param fse
+ */
+ private void addTemplate(FieldSetEntity fse) {
+ SystemUser curUser = SpringMVCContextHolder.getCurrentUser();
+ String orgLevelUUID = curUser.getOrg_level_uuid();
+ String clientUUID = curUser.getClient_uuid();
+ String attachmentUUID = fse.getString(CmnConst.FIELD_TEMPLATE_INFO);
+ FieldSetEntity attachmentFse = baseDao.getFieldSetEntity(CmnConst.TABLE_PRODUCT_SYS_ATTACHMENT, attachmentUUID, false);
+ String uploadSign = clientUUID + "_" + attachmentFse.getString(CmnConst.FIELD_ATTACHMENT_TITLE) + "_" + System.currentTimeMillis();
+ int sheetOrder = 1;
+ fse.setValue(CmnConst.FIELD_SHEET_ORDER, sheetOrder);
+ fse.setValue(CmnConst.FIELD_UPLOAD_SIGN, uploadSign);
+ // 淇濆瓨鏁版嵁瀵煎叆妯℃澘淇℃伅
+ DataTableEntity modelDte = fse.getSubDataTable(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_MODEL);
+ if (!BaseUtil.dataTableIsEmpty(modelDte)) {
+ FieldSetEntity tempFse;
+ for (int i = 0; i < modelDte.getRows(); i++) {
+ tempFse = modelDte.getFieldSetEntity(i);
+ tempFse.setValue(CmnConst.FIELD_UPLOAD_SIGN, uploadSign);
+ tempFse.setValue(CmnConst.FIELD_SHEET_ORDER, ++sheetOrder);
+ BaseUtil.addOrgLeveLUUID(tempFse, Collections.singletonList(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_MODEL_SUB), orgLevelUUID, curUser);
+ baseDao.saveFieldSetEntity(tempFse);
+ }
+ fse.removeSubData(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_MODEL);
+ }
+ BaseUtil.addOrgLeveLUUID(fse, Collections.singletonList(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_MODEL_SUB), orgLevelUUID, curUser);
+ baseDao.saveFieldSetEntity(fse);
- String mvcUUID = fse.getString(CmnConst.FIELD_FUNCTION_UUID);
- String buttonTitle = fse.getString(CmnConst.FILED_BUTTON_TITLE);
- // todo 寰呮祴璇曪紝鍒涘缓mvc鐩稿叧鍐呭
- dealMvcInfo(mvcUUID, buttonTitle, uploadSign);
- }
+ String mvcUUID = fse.getString(CmnConst.FIELD_FUNCTION_UUID);
+ String buttonTitle = fse.getString(CmnConst.FILED_BUTTON_TITLE);
+ // todo 寰呮祴璇曪紝鍒涘缓mvc鐩稿叧鍐呭
+ dealMvcInfo(mvcUUID, buttonTitle, uploadSign);
+ }
- /**
- * 澶勭悊mvc涓鍏ラ厤缃俊鎭�
- *
- * @param mvcUUID
- * @param buttonTitle
- */
- private void dealMvcInfo(String mvcUUID, String buttonTitle, String uploadSign) {
- FieldSetEntity firstPageFse = getFirstPageFse(mvcUUID);
- if (firstPageFse == null) {
- throw new BaseException(CmnCode.GET_MVC_FIRST_PAGE_INFO_FAIL.getValue(), CmnCode.GET_MVC_FIRST_PAGE_INFO_FAIL.getText());
- }
- FieldSetEntity preImportButtonFse = getImportButtonFse(firstPageFse, mvcUUID);
+ /**
+ * 澶勭悊mvc涓鍏ラ厤缃俊鎭�
+ *
+ * @param mvcUUID
+ * @param buttonTitle
+ */
+ private void dealMvcInfo(String mvcUUID, String buttonTitle, String uploadSign) {
+ FieldSetEntity firstPageFse = getFirstPageFse(mvcUUID);
+ if (firstPageFse == null) {
+ throw new BaseException(CmnCode.GET_MVC_FIRST_PAGE_INFO_FAIL.getValue(), CmnCode.GET_MVC_FIRST_PAGE_INFO_FAIL.getText());
+ }
+ FieldSetEntity preImportButtonFse = getImportButtonFse(firstPageFse, mvcUUID);
- SystemUser curUser = SpringMVCContextHolder.getCurrentUser();
- if (preImportButtonFse == null) {
- // 鏈韩娌℃湁瀵煎叆鎸夐挳锛岃嚜鍔ㄥ垱寤� todo
+ SystemUser curUser = SpringMVCContextHolder.getCurrentUser();
+ if (preImportButtonFse == null) {
+ // 鏈韩娌℃湁瀵煎叆鎸夐挳锛岃嚜鍔ㄥ垱寤� todo
- // 鎸夐挳
- FieldSetEntity importButtonFse = new FieldSetEntity();
- importButtonFse.setTableName(CmnConst.TABLE_PRODUCT_SYS_BUTTONS);
- importButtonFse.setValue(CmnConst.FILED_FUNCTION_UUID, mvcUUID);
- importButtonFse.setValue(CmnConst.FILED_BUTTON_NAME, "default_import");
- importButtonFse.setValue(CmnConst.FILED_BUTTON_TITLE, buttonTitle);
- importButtonFse.setValue(CmnConst.FILED_STATUS_UUID, 1);
- importButtonFse.setValue(CmnConst.FILED_CATEGORY_UUID, "import");
- importButtonFse.setValue(CmnConst.FILED_CLIENT_TYPE_UUID, "Web");
- importButtonFse.setValue(CmnConst.FILED_ROUTE_NAME, BaseUtil.getPageCode());
- importButtonFse.setValue("params", "{\"upload_sign\":\"" + uploadSign + "\"}");
- importButtonFse.setValue("button_category_uuid", "import");
- importButtonFse.setValue("button_type", 2);
- importButtonFse.setValue("is_main", 0);
- BaseUtil.createCreatorAndCreationTime(curUser, importButtonFse);
- baseDao.saveFieldSetEntity(importButtonFse);
+ // 鎸夐挳
+ FieldSetEntity importButtonFse = new FieldSetEntity();
+ importButtonFse.setTableName(CmnConst.TABLE_PRODUCT_SYS_BUTTONS);
+ importButtonFse.setValue(CmnConst.FILED_FUNCTION_UUID, mvcUUID);
+ importButtonFse.setValue(CmnConst.FILED_BUTTON_NAME, "default_import");
+ importButtonFse.setValue(CmnConst.FILED_BUTTON_TITLE, buttonTitle);
+ importButtonFse.setValue(CmnConst.FILED_STATUS_UUID, 1);
+ importButtonFse.setValue(CmnConst.FILED_CATEGORY_UUID, "import");
+ importButtonFse.setValue(CmnConst.FILED_CLIENT_TYPE_UUID, "Web");
+ importButtonFse.setValue(CmnConst.FILED_ROUTE_NAME, BaseUtil.getPageCode());
+ importButtonFse.setValue("params", "{\"upload_sign\":\"" + uploadSign + "\"}");
+ importButtonFse.setValue("button_category_uuid", "import");
+ importButtonFse.setValue("button_type", 2);
+ importButtonFse.setValue("is_main", 0);
+ BaseUtil.createCreatorAndCreationTime(curUser, importButtonFse);
+ baseDao.saveFieldSetEntity(importButtonFse);
// // 椤甸潰
// FieldSetEntity importPageFse = new FieldSetEntity();
@@ -301,17 +307,17 @@
// BaseUtil.createCreatorAndCreationTime(curUser, importPageFse);
// baseDao.saveFieldSetEntity(importPageFse);
- // 杩炵嚎-鍒楄〃鐣岄潰-瀵煎叆鎸夐挳
- FieldSetEntity importLinkFse1 = new FieldSetEntity();
- importLinkFse1.setTableName(CmnConst.TABLE_PRODUCT_SYS_MVC_LINK);
- importLinkFse1.setValue(CmnConst.FILED_FUNCTION_UUID, mvcUUID);
- importLinkFse1.setValue(CmnConst.FIELD_LINK_TYPE, 0);
- importLinkFse1.setValue(CmnConst.FIELD_LINE_FROM, firstPageFse.getUUID());
- importLinkFse1.setValue(CmnConst.FIELD_FROM_TYPE, 2);
- importLinkFse1.setValue(CmnConst.FIELD_LINE_TO, importButtonFse.getUUID());
- importLinkFse1.setValue(CmnConst.FIELD_TO_TYPE, 1);
- BaseUtil.createCreatorAndCreationTime(curUser, importLinkFse1);
- baseDao.saveFieldSetEntity(importLinkFse1);
+ // 杩炵嚎-鍒楄〃鐣岄潰-瀵煎叆鎸夐挳
+ FieldSetEntity importLinkFse1 = new FieldSetEntity();
+ importLinkFse1.setTableName(CmnConst.TABLE_PRODUCT_SYS_MVC_LINK);
+ importLinkFse1.setValue(CmnConst.FILED_FUNCTION_UUID, mvcUUID);
+ importLinkFse1.setValue(CmnConst.FIELD_LINK_TYPE, 0);
+ importLinkFse1.setValue(CmnConst.FIELD_LINE_FROM, firstPageFse.getUUID());
+ importLinkFse1.setValue(CmnConst.FIELD_FROM_TYPE, 2);
+ importLinkFse1.setValue(CmnConst.FIELD_LINE_TO, importButtonFse.getUUID());
+ importLinkFse1.setValue(CmnConst.FIELD_TO_TYPE, 1);
+ BaseUtil.createCreatorAndCreationTime(curUser, importLinkFse1);
+ baseDao.saveFieldSetEntity(importLinkFse1);
// // 杩炵嚎-瀵煎叆鎸夐挳-瀵煎叆椤甸潰
// FieldSetEntity importLinkFse2 = new FieldSetEntity();
// importLinkFse2.setTableName(CmnConst.TABLE_PRODUCT_SYS_MVC_LINK);
@@ -323,507 +329,539 @@
// importLinkFse2.setValue(CmnConst.FIELD_TO_TYPE, 2);
// BaseUtil.createCreatorAndCreationTime(curUser, importLinkFse2);
// baseDao.saveFieldSetEntity(importLinkFse2);
- } else {
- // 鏈韩瀛樺湪瀵煎叆鎸夐挳锛岀洿鎺ユ浛鎹㈢浉搴旂殑鏁版嵁 todo
- preImportButtonFse.setValue("", "");
- BaseUtil.updatedRegeneratorAndUpdateTime(curUser, preImportButtonFse);
- baseDao.saveFieldSetEntity(preImportButtonFse);
- }
- }
+ } else {
+ // 鏈韩瀛樺湪瀵煎叆鎸夐挳锛岀洿鎺ユ浛鎹㈢浉搴旂殑鏁版嵁 todo
+ preImportButtonFse.setValue("", "");
+ BaseUtil.updatedRegeneratorAndUpdateTime(curUser, preImportButtonFse);
+ baseDao.saveFieldSetEntity(preImportButtonFse);
+ }
+ }
- /**
- * 鎻愬彇鎸囧畾mvc涓�愬叆鍙c�戝悗绗竴涓〉闈�
- *
- * @param mvcUUID
- * @return
- */
- private FieldSetEntity getFirstPageFse(String mvcUUID) {
- StringBuilder sql = new StringBuilder(256);
- sql.append("select p.* from (")
- .append("\n select * FROM product_sys_function_buttons where is_main=1 and function_uuid=?")
- .append("\n) b")
- .append("\ninner join product_sys_link l on b.uuid=l.line_from")
- .append("\ninner join product_sys_mvc_page p on l.line_to=p.uuid");
- FieldSetEntity firstPageFse = baseDao.getFieldSetEntityBySQL(sql.toString(), new Object[]{mvcUUID}, false);
- return firstPageFse;
- }
+ /**
+ * 鎻愬彇鎸囧畾mvc涓�愬叆鍙c�戝悗绗竴涓〉闈�
+ *
+ * @param mvcUUID
+ * @return
+ */
+ private FieldSetEntity getFirstPageFse(String mvcUUID) {
+ StringBuilder sql = new StringBuilder(256);
+ sql.append("select p.* from (")
+ .append("\n select * FROM product_sys_function_buttons where is_main=1 and function_uuid=?")
+ .append("\n) b")
+ .append("\ninner join product_sys_link l on b.uuid=l.line_from")
+ .append("\ninner join product_sys_mvc_page p on l.line_to=p.uuid");
+ FieldSetEntity firstPageFse = baseDao.getFieldSetEntityBySQL(sql.toString(), new Object[]{mvcUUID}, false);
+ return firstPageFse;
+ }
- /**
- * 鍏ュ彛鍚庣涓�涓〉闈箣鍚庣殑瀵煎叆
- *
- * @param firstPageFse
- * @param mvcUUID
- * @return
- */
- private FieldSetEntity getImportButtonFse(FieldSetEntity firstPageFse, String mvcUUID) {
- StringBuilder sql = new StringBuilder(256);
- sql.append("select b.* from (")
- .append("\n select * FROM product_sys_mvc_page where uuid=?")
- .append("\n) p")
- .append("\ninner join product_sys_link l on p.uuid=l.line_to")
- .append("\ninner join (")
- .append("\n select * FROM product_sys_function_buttons where function_uuid=? and button_category_uuid='import'")
- .append("\n) b on l.line_from=b.uuid");
- FieldSetEntity preImportButtonFse = baseDao.getFieldSetEntityBySQL(sql.toString(), new Object[]{firstPageFse.getUUID(), mvcUUID}, false);
- return preImportButtonFse;
- }
+ /**
+ * 鍏ュ彛鍚庣涓�涓〉闈箣鍚庣殑瀵煎叆
+ *
+ * @param firstPageFse
+ * @param mvcUUID
+ * @return
+ */
+ private FieldSetEntity getImportButtonFse(FieldSetEntity firstPageFse, String mvcUUID) {
+ StringBuilder sql = new StringBuilder(256);
+ sql.append("select b.* from (")
+ .append("\n select * FROM product_sys_mvc_page where uuid=?")
+ .append("\n) p")
+ .append("\ninner join product_sys_link l on p.uuid=l.line_to")
+ .append("\ninner join (")
+ .append("\n select * FROM product_sys_function_buttons where function_uuid=? and button_category_uuid='import'")
+ .append("\n) b on l.line_from=b.uuid");
+ FieldSetEntity preImportButtonFse = baseDao.getFieldSetEntityBySQL(sql.toString(), new Object[]{firstPageFse.getUUID(), mvcUUID}, false);
+ return preImportButtonFse;
+ }
- /**
- * 淇敼妯℃澘
- *
- * @param fse
- */
- private void updateTemplate(FieldSetEntity fse) {
- SystemUser curUser = SpringMVCContextHolder.getCurrentUser();
+ /**
+ * 淇敼妯℃澘
+ *
+ * @param fse
+ */
+ private void updateTemplate(FieldSetEntity fse) {
+ SystemUser curUser = SpringMVCContextHolder.getCurrentUser();
- // 淇濆瓨鏁版嵁瀵煎叆妯℃澘淇℃伅
- DataTableEntity modelDte = fse.getSubDataTable(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_MODEL);
- if (!BaseUtil.dataTableIsEmpty(modelDte)) {
- FieldSetEntity tempFse;
- for (int i = 0; i < modelDte.getRows(); i++) {
- tempFse = modelDte.getFieldSetEntity(i);
- BaseUtil.updatedRegeneratorAndUpdateTime(curUser, tempFse);
- baseDao.saveFieldSetEntity(tempFse);
- }
- }
- fse.removeSubData(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_MODEL);
- BaseUtil.updatedRegeneratorAndUpdateTime(curUser, fse);
- baseDao.saveFieldSetEntity(fse);
- }
+ // 淇濆瓨鏁版嵁瀵煎叆妯℃澘淇℃伅
+ DataTableEntity modelDte = fse.getSubDataTable(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_MODEL);
+ if (!BaseUtil.dataTableIsEmpty(modelDte)) {
+ FieldSetEntity tempFse;
+ for (int i = 0; i < modelDte.getRows(); i++) {
+ tempFse = modelDte.getFieldSetEntity(i);
+ BaseUtil.updatedRegeneratorAndUpdateTime(curUser, tempFse);
+ baseDao.saveFieldSetEntity(tempFse);
+ }
+ }
+ fse.removeSubData(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_MODEL);
+ BaseUtil.updatedRegeneratorAndUpdateTime(curUser, fse);
+ baseDao.saveFieldSetEntity(fse);
+ }
- /**
- * 鏌ヨ妯℃澘閰嶇疆璇︽儏
- *
- * @param fse
- * @return
- */
- public FieldSetEntity findTemplate(FieldSetEntity fse) {
- String uploadSign = fse.getString(CmnConst.FIELD_UPLOAD_SIGN);
- DataTableEntity dt = baseDao.listTable(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_MODEL, "upload_sign=?", new Object[]{uploadSign}, null, "sheet_order", Integer.MAX_VALUE, 1, true);
- if (!BaseUtil.dataTableIsEmpty(dt)) {
- FieldSetEntity fs = new FieldSetEntity();
- fs.setTableName(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_MODEL);
- DataTableEntity sub = new DataTableEntity();
- for (int i = 0; i < dt.getRows(); i++) {
- if (i == 0) {
- fs.setValue(CmnConst.FIELD_TITLE, dt.getString(0, CmnConst.FIELD_TITLE));
- fs.setValue(CmnConst.FIELD_FUNCTION_UUID, dt.getString(0, CmnConst.FIELD_FUNCTION_UUID));
- fs.setValue(CmnConst.FILED_BUTTON_TITLE, dt.getString(0, CmnConst.FILED_BUTTON_TITLE));
- fs.setValue(CmnConst.UUID, dt.getString(0, CmnConst.UUID));
- fs.setValue(CmnConst.FIELD_UPLOAD_SIGN, dt.getString(0, CmnConst.FIELD_UPLOAD_SIGN));
- fs.setValue(CmnConst.FIELD_TEMPLATE_INFO, dt.getString(0, CmnConst.FIELD_TEMPLATE_INFO));
- }
- String before_func = dt.getString(i, CmnConst.FIELD_BEFORE_FUNC);
- String after_func = dt.getString(i, CmnConst.FIELD_AFTER_FUNC);
- String table_name = dt.getString(i, CmnConst.TABLE_NAME);
- FieldSetEntity f = new FieldSetEntity();
- f.setTableName("sheet_info");
- f.setValue(CmnConst.FIELD_BEFORE_FUNC, before_func);
- f.setValue(CmnConst.FIELD_AFTER_FUNC, after_func);
- f.setValue(CmnConst.UUID, dt.getString(i, CmnConst.UUID));
- f.setValue(CmnConst.TABLE_NAME, table_name);
- f.setSubData(dt.getFieldSetEntity(i).getSubData());
- sub.addFieldSetEntity(f);
- }
- fs.addSubDataTable(sub);
- return fs;
- }
- return null;
- }
+ /**
+ * 鏌ヨ妯℃澘閰嶇疆璇︽儏
+ *
+ * @param fse
+ * @return
+ */
+ public FieldSetEntity findTemplate(FieldSetEntity fse) {
+ String uploadSign = fse.getString(CmnConst.FIELD_UPLOAD_SIGN);
+ DataTableEntity dt = baseDao.listTable(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_MODEL, "upload_sign=?", new Object[]{uploadSign}, null, "sheet_order", Integer.MAX_VALUE, 1, true);
+ if (!BaseUtil.dataTableIsEmpty(dt)) {
+ FieldSetEntity fs = new FieldSetEntity();
+ fs.setTableName(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_MODEL);
+ DataTableEntity sub = new DataTableEntity();
+ for (int i = 0; i < dt.getRows(); i++) {
+ if (i == 0) {
+ fs.setValue(CmnConst.FIELD_TITLE, dt.getString(0, CmnConst.FIELD_TITLE));
+ fs.setValue(CmnConst.FIELD_FUNCTION_UUID, dt.getString(0, CmnConst.FIELD_FUNCTION_UUID));
+ fs.setValue(CmnConst.FILED_BUTTON_TITLE, dt.getString(0, CmnConst.FILED_BUTTON_TITLE));
+ fs.setValue(CmnConst.UUID, dt.getString(0, CmnConst.UUID));
+ fs.setValue(CmnConst.FIELD_UPLOAD_SIGN, dt.getString(0, CmnConst.FIELD_UPLOAD_SIGN));
+ fs.setValue(CmnConst.FIELD_TEMPLATE_INFO, dt.getString(0, CmnConst.FIELD_TEMPLATE_INFO));
+ }
+ String before_func = dt.getString(i, CmnConst.FIELD_BEFORE_FUNC);
+ String after_func = dt.getString(i, CmnConst.FIELD_AFTER_FUNC);
+ String table_name = dt.getString(i, CmnConst.TABLE_NAME);
+ FieldSetEntity f = new FieldSetEntity();
+ f.setTableName("sheet_info");
+ f.setValue(CmnConst.FIELD_BEFORE_FUNC, before_func);
+ f.setValue(CmnConst.FIELD_AFTER_FUNC, after_func);
+ f.setValue(CmnConst.UUID, dt.getString(i, CmnConst.UUID));
+ f.setValue(CmnConst.TABLE_NAME, table_name);
+ f.setSubData(dt.getFieldSetEntity(i).getSubData());
+ sub.addFieldSetEntity(f);
+ }
+ fs.addSubDataTable(sub);
+ return fs;
+ }
+ return null;
+ }
- /**
- * 妯℃澘鍙拌处-宸﹁竟鏍戠粨鏋�
- *
- * @param fse
- * @return
- */
- public DataTableEntity listTemplate(FieldSetEntity fse) {
- int pageSize = fse.getInteger(CmnConst.PAGESIZE) == null ? Integer.MAX_VALUE : fse.getInteger(CmnConst.PAGESIZE);
- int curPage = fse.getInteger(CmnConst.CPAGE) == null ? 1 : fse.getInteger(CmnConst.CPAGE);
- SystemUser user = SpringMVCContextHolder.getCurrentUser();
- StringBuilder filter = new StringBuilder(128);
- filter.append("org_level_uuid=? and length(title)>0");
- String queryFilter = queryFilterService.getQueryFilter(fse);
- if (!StringUtils.isEmpty(queryFilter)) {
- filter.append(" and ").append(queryFilter);
- }
- List<Object> paramList = Lists.newArrayList();
- paramList.add(user.getOrg_level_uuid());
- String[] filterParamArr = !StringUtils.isEmpty(fse.getString("~select_params~")) ? fse.getString("~select_params~").split(",") : null;
- if (filterParamArr != null) {
- Collections.addAll(paramList, filterParamArr);
- }
- return baseDao.listTable(fse.getTableName(), filter.toString(), paramList.toArray(), null, fse.getString(""), pageSize, curPage);
- }
+ /**
+ * 妯℃澘鍙拌处-宸﹁竟鏍戠粨鏋�
+ *
+ * @param fse
+ * @return
+ */
+ public DataTableEntity listTemplate(FieldSetEntity fse) {
+ int pageSize = fse.getInteger(CmnConst.PAGESIZE) == null ? Integer.MAX_VALUE : fse.getInteger(CmnConst.PAGESIZE);
+ int curPage = fse.getInteger(CmnConst.CPAGE) == null ? 1 : fse.getInteger(CmnConst.CPAGE);
+ SystemUser user = SpringMVCContextHolder.getCurrentUser();
+ StringBuilder filter = new StringBuilder(128);
+ filter.append("org_level_uuid=? and length(title)>0");
+ String queryFilter = queryFilterService.getQueryFilter(fse);
+ if (!StringUtils.isEmpty(queryFilter)) {
+ filter.append(" and ").append(queryFilter);
+ }
+ List<Object> paramList = Lists.newArrayList();
+ paramList.add(user.getOrg_level_uuid());
+ String[] filterParamArr = !StringUtils.isEmpty(fse.getString("~select_params~")) ? fse.getString("~select_params~").split(",") : null;
+ if (filterParamArr != null) {
+ Collections.addAll(paramList, filterParamArr);
+ }
+ return baseDao.listTable(fse.getTableName(), filter.toString(), paramList.toArray(), null, fse.getString(""), pageSize, curPage);
+ }
- /**
- * 鏁版嵁涓婁紶妯℃澘鍒犻櫎
- *
- * @param fse
- * @throws BaseException
- */
- @Override
- @Transactional
- public void deleteModel(FieldSetEntity fse) throws BaseException {
- String uploadSign = fse.getString(CmnConst.FIELD_UPLOAD_SIGN);
- DataTableEntity modelDte = baseDao.listTable(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_MODEL, "upload_sign=?", new Object[]{uploadSign});
- if (BaseUtil.dataTableIsEmpty(modelDte)) {
- throw new BaseException(CmnCode.UPLOAD_TEMPLATE_DELETE_FAIL.getValue(), CmnCode.UPLOAD_TEMPLATE_DELETE_FAIL.getText());
- }
- FieldSetEntity mainModelFse = null;
- FieldSetEntity tempFse;
- List<String> uuidParamList = Lists.newArrayList();
- for (int i = 0; i < modelDte.getRows(); i++) {
- tempFse = modelDte.getFieldSetEntity(i);
- uuidParamList.add(tempFse.getUUID());
- if (!StringUtils.isEmpty(tempFse.getString(CmnConst.FIELD_FUNCTION_UUID))) {
- mainModelFse = tempFse;
- }
- }
- if (mainModelFse == null) {
- throw new BaseException(CmnCode.UPLOAD_TEMPLATE_GET_MAIN_INFO_FAIL.getValue(), CmnCode.UPLOAD_TEMPLATE_GET_MAIN_INFO_FAIL.getText());
- }
+ /**
+ * 鏁版嵁涓婁紶妯℃澘鍒犻櫎
+ *
+ * @param fse
+ * @throws BaseException
+ */
+ @Override
+ @Transactional
+ public void deleteModel(FieldSetEntity fse) throws BaseException {
+ String uploadSign = fse.getString(CmnConst.FIELD_UPLOAD_SIGN);
+ DataTableEntity modelDte = baseDao.listTable(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_MODEL, "upload_sign=?", new Object[]{uploadSign});
+ if (BaseUtil.dataTableIsEmpty(modelDte)) {
+ throw new BaseException(CmnCode.UPLOAD_TEMPLATE_DELETE_FAIL.getValue(), CmnCode.UPLOAD_TEMPLATE_DELETE_FAIL.getText());
+ }
+ FieldSetEntity mainModelFse = null;
+ FieldSetEntity tempFse;
+ List<String> uuidParamList = Lists.newArrayList();
+ for (int i = 0; i < modelDte.getRows(); i++) {
+ tempFse = modelDte.getFieldSetEntity(i);
+ uuidParamList.add(tempFse.getUUID());
+ if (!StringUtils.isEmpty(tempFse.getString(CmnConst.FIELD_FUNCTION_UUID))) {
+ mainModelFse = tempFse;
+ }
+ }
+ if (mainModelFse == null) {
+ throw new BaseException(CmnCode.UPLOAD_TEMPLATE_GET_MAIN_INFO_FAIL.getValue(), CmnCode.UPLOAD_TEMPLATE_GET_MAIN_INFO_FAIL.getText());
+ }
- // 鍒犻櫎mvc鐩稿叧鐨勮〃淇℃伅
- String mvcUUID = mainModelFse.getString(CmnConst.FIELD_FUNCTION_UUID);
- FieldSetEntity firstPageFse = getFirstPageFse(mvcUUID);
- // 瀵煎叆鎸夐挳
- FieldSetEntity importButtonFse = baseDao.getFieldSetEntityByFilter(CmnConst.TABLE_PRODUCT_SYS_BUTTONS, "function_uuid=? and button_name='default_import'", new Object[]{mvcUUID}, false);
- if (importButtonFse != null) {
- // 杩炵嚎-瀵煎叆鎸夐挳-瀵煎叆椤甸潰
+ // 鍒犻櫎mvc鐩稿叧鐨勮〃淇℃伅
+ String mvcUUID = mainModelFse.getString(CmnConst.FIELD_FUNCTION_UUID);
+ FieldSetEntity firstPageFse = getFirstPageFse(mvcUUID);
+ // 瀵煎叆鎸夐挳
+ FieldSetEntity importButtonFse = baseDao.getFieldSetEntityByFilter(CmnConst.TABLE_PRODUCT_SYS_BUTTONS, "function_uuid=? and button_name='default_import'", new Object[]{mvcUUID}, false);
+ if (importButtonFse != null) {
+ // 杩炵嚎-瀵煎叆鎸夐挳-瀵煎叆椤甸潰
// FieldSetEntity secondLinkFse = baseDao.getFieldSetEntityByFilter(CmnConst.TABLE_PRODUCT_SYS_MVC_LINK, "function_uuid=? and link_type=0 and from_type=1 and line_from=?", new Object[]{mvcUUID, importButtonFse.getUUID()}, false);
- // 鍒犻櫎-瀵煎叆椤甸潰
+ // 鍒犻櫎-瀵煎叆椤甸潰
// baseDao.delete(CmnConst.TABLE_PRODUCT_SYS_MVC_PAGE, new Object[]{secondLinkFse.getString(CmnConst.FIELD_LINE_TO)});
- // 鍒犻櫎-杩炵嚎-瀵煎叆鎸夐挳-瀵煎叆椤甸潰
+ // 鍒犻櫎-杩炵嚎-瀵煎叆鎸夐挳-瀵煎叆椤甸潰
// baseDao.delete(CmnConst.TABLE_PRODUCT_SYS_MVC_LINK, "function_uuid=? and link_type=0 and from_type=1 and line_from=?", new Object[]{mvcUUID, importButtonFse.getUUID()});
- // 鍒犻櫎-杩炵嚎-鍒楄〃鐣岄潰-瀵煎叆鎸夐挳
- baseDao.delete(CmnConst.TABLE_PRODUCT_SYS_MVC_LINK, "function_uuid=? and link_type=0 and from_type=2 and to_type=1 and line_from=? and line_to=?", new Object[]{mvcUUID, firstPageFse.getUUID(), importButtonFse.getUUID()});
- // 鍒犻櫎-瀵煎叆鎸夐挳
- baseDao.delete(CmnConst.TABLE_PRODUCT_SYS_BUTTONS, new Object[]{importButtonFse.getUUID()});
+ // 鍒犻櫎-杩炵嚎-鍒楄〃鐣岄潰-瀵煎叆鎸夐挳
+ baseDao.delete(CmnConst.TABLE_PRODUCT_SYS_MVC_LINK, "function_uuid=? and link_type=0 and from_type=2 and to_type=1 and line_from=? and line_to=?", new Object[]{mvcUUID, firstPageFse.getUUID(), importButtonFse.getUUID()});
+ // 鍒犻櫎-瀵煎叆鎸夐挳
+ baseDao.delete(CmnConst.TABLE_PRODUCT_SYS_BUTTONS, new Object[]{importButtonFse.getUUID()});
- }
- // 鍒犻櫎闄勪欢
- FieldSetEntity attachmentFse = baseDao.getFieldSetEntity(CmnConst.TABLE_PRODUCT_SYS_ATTACHMENT, mainModelFse.getString(CmnConst.FIELD_TEMPLATE_INFO), false);
- if (attachmentFse != null) {
- String relativePath = attachmentFse.getString(CmnConst.FIELD_ATTACHMENT_URL);
- String templateName = attachmentFse.getString(CmnConst.FIELD_ATTACHMENT_TITLE);
- String path = Global.getSystemConfig("local.dir", "") + File.separator + relativePath + File.separator + templateName;
- File templateFile = new File(path);
- templateFile.delete();
- // 鍒犻櫎闄勪欢琛�
- baseDao.delete(CmnConst.TABLE_PRODUCT_SYS_ATTACHMENT, new Object[]{attachmentFse.getUUID()});
- }
- // 鍒犻櫎妯℃澘瀛愯〃
- String filter = BaseUtil.buildQuestionMarkFilter(CmnConst.FIELD_MODEL_UUID, uuidParamList.size(), true);
- baseDao.delete(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_MODEL_SUB, filter, uuidParamList.toArray());
- // 鍒犻櫎妯℃澘涓昏〃
- baseDao.delete(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_MODEL, uuidParamList.toArray());
- }
+ }
+ // 鍒犻櫎闄勪欢
+ FieldSetEntity attachmentFse = baseDao.getFieldSetEntity(CmnConst.TABLE_PRODUCT_SYS_ATTACHMENT, mainModelFse.getString(CmnConst.FIELD_TEMPLATE_INFO), false);
+ if (attachmentFse != null) {
+ String relativePath = attachmentFse.getString(CmnConst.FIELD_ATTACHMENT_URL);
+ String templateName = attachmentFse.getString(CmnConst.FIELD_ATTACHMENT_TITLE);
+ String path = Global.getSystemConfig("local.dir", "") + File.separator + relativePath + File.separator + templateName;
+ File templateFile = new File(path);
+ templateFile.delete();
+ // 鍒犻櫎闄勪欢琛�
+ baseDao.delete(CmnConst.TABLE_PRODUCT_SYS_ATTACHMENT, new Object[]{attachmentFse.getUUID()});
+ }
+ // 鍒犻櫎妯℃澘瀛愯〃
+ String filter = BaseUtil.buildQuestionMarkFilter(CmnConst.FIELD_MODEL_UUID, uuidParamList.size(), true);
+ baseDao.delete(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_MODEL_SUB, filter, uuidParamList.toArray());
+ // 鍒犻櫎妯℃澘涓昏〃
+ baseDao.delete(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_MODEL, uuidParamList.toArray());
+ }
- /**
- * 妯℃澘涓嬭浇
- *
- * @param fse
- * @param response
- * @throws IOException
- */
- public void downloadTemplate(FieldSetEntity fse, HttpServletResponse response) throws IOException {
- String upload_sign = fse.getString("upload_sign");
- FieldSetEntity templateFse = baseDao.getFieldSetEntityByFilter(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_MODEL, "upload_sign=? AND length(title)>0", new Object[]{upload_sign}, false);
- String attachmentUUID = templateFse.getString(CmnConst.FIELD_TEMPLATE_INFO);
- fse.setValue(CmnConst.UUID, attachmentUUID);
- fileManagerService.getFileContent(fse, response);
- }
+ /**
+ * 妯℃澘涓嬭浇
+ *
+ * @param fse
+ * @param response
+ * @throws IOException
+ */
+ public void downloadTemplate(FieldSetEntity fse, HttpServletResponse response) throws IOException {
+ String upload_sign = fse.getString("upload_sign");
+ FieldSetEntity templateFse = baseDao.getFieldSetEntityByFilter(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_MODEL, "upload_sign=? AND length(title)>0", new Object[]{upload_sign}, false);
+ String attachmentUUID = templateFse.getString(CmnConst.FIELD_TEMPLATE_INFO);
+ fse.setValue(CmnConst.UUID, attachmentUUID);
+ fileManagerService.getFileContent(fse, response);
+ }
- /**
- * 涓氬姟鍔熻兘瀵煎叆-涓婁紶鏂囦欢
- *
- * @param rpe
- * @return
- */
- @Override
- @Transactional
- public String recordDataImport(RequestParameterEntity rpe) {
- FieldSetEntity ff = fileManagerService.uploadFile(rpe);
- FieldSetEntity fse=rpe.getFormData();
- fse.setValue(CmnConst.FIELD_IS_SUCCESS, 0);
- SystemUser curUser = SpringMVCContextHolder.getCurrentUser();
- fse.setValue(CmnConst.FIELD_ORG_LEVEL_UUID, curUser.getOrg_level_uuid());
- BaseUtil.createCreatorAndCreationTime(curUser, fse);
- fse.setValue("import_info",ff.getString("import_info"));
- baseDao.saveFieldSetEntity(fse);
- return fse.getUUID();
- }
+ /**
+ * 涓氬姟鍔熻兘瀵煎叆-涓婁紶鏂囦欢
+ *
+ * @param rpe
+ * @return
+ */
+ @Override
+ @Transactional
+ public String recordDataImport(RequestParameterEntity rpe) {
+ FieldSetEntity ff = fileManagerService.uploadFile(rpe);
+ FieldSetEntity fse = rpe.getFormData();
+ fse.setValue(CmnConst.FIELD_IS_SUCCESS, 0);
+ SystemUser curUser = SpringMVCContextHolder.getCurrentUser();
+ fse.setValue(CmnConst.FIELD_ORG_LEVEL_UUID, curUser.getOrg_level_uuid());
+ BaseUtil.createCreatorAndCreationTime(curUser, fse);
+ fse.setValue("import_info", ff.getString("import_info"));
+ baseDao.saveFieldSetEntity(fse);
+ return fse.getUUID();
+ }
- /**
- * 涓氬姟鍔熻兘瀵煎叆-瑙f瀽骞朵繚瀛樺埌鏁版嵁搴�
- *
- * @param fse
- * @return
- */
- @Override
- @Transactional
- public void recordDataSave(FieldSetEntity fse) {
- SystemUser curUser = SpringMVCContextHolder.getCurrentUser();
+ /**
+ * 涓氬姟鍔熻兘瀵煎叆-瑙f瀽骞朵繚瀛樺埌鏁版嵁搴�
+ *
+ * @param fse
+ * @return
+ */
+ @Override
+ @Transactional
+ public void recordDataSave(FieldSetEntity fse) {
+ SystemUser curUser = SpringMVCContextHolder.getCurrentUser();
- FieldSetEntity logFse = baseDao.getFieldSetEntity(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_RECORD, fse.getUUID(), false);
- if (logFse == null) {
- throw new BaseException(CmnCode.UPLOAD_TEMPLATE_GET_UPLOAD_RECORD_FAIL.getValue(), CmnCode.UPLOAD_TEMPLATE_GET_UPLOAD_RECORD_FAIL.getText());
- }
+ FieldSetEntity logFse = baseDao.getFieldSetEntity(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_RECORD, fse.getUUID(), false);
+ if (logFse == null) {
+ throw new BaseException(CmnCode.UPLOAD_TEMPLATE_GET_UPLOAD_RECORD_FAIL.getValue(), CmnCode.UPLOAD_TEMPLATE_GET_UPLOAD_RECORD_FAIL.getText());
+ }
- // 鑾峰彇妯℃澘淇℃伅
- DataTableEntity templateDte = baseDao.listTable(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_MODEL, "upload_sign=?", new Object[]{logFse.getString(CmnConst.FIELD_UPLOAD_SIGN)}, null, "sheet_order", Integer.MAX_VALUE, 1, true);
+ // 鑾峰彇妯℃澘淇℃伅
+ DataTableEntity templateDte = baseDao.listTable(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_MODEL, "upload_sign=?", new Object[]{logFse.getString(CmnConst.FIELD_UPLOAD_SIGN)}, null, "sheet_order", Integer.MAX_VALUE, 1, true);
- // 鑾峰彇瀵煎叆鏂囦欢淇℃伅
- FieldSetEntity attachmentFse = baseDao.getFieldSetEntity(CmnConst.TABLE_PRODUCT_SYS_ATTACHMENT, logFse.getString(CmnConst.FIELD_IMPORT_INFO), false);
- String relativePath = attachmentFse.getString(CmnConst.FIELD_ATTACHMENT_URL);
- String templateName = attachmentFse.getString(CmnConst.FIELD_ATTACHMENT_TITLE);
- Map<String, List<List<String>>> dataMap= new HashMap<>();
- try{
- String filePath = Global.getSystemConfig("local.dir", "") + File.separator + relativePath + File.separator + templateName;
- dataMap = EasyExcelUtil.readExcelByString(filePath);
- }catch (Exception e){
- e.printStackTrace();
- }
- // 灏佽鍒癲te涓�
- List<DataTableEntity> beforeSaveDataList = Lists.newArrayList();
- List<String> titleList;
- List<List<String>> dataList;
- List<String> rowList;
- String singleValue;// 鍗曞厓鏍煎唴鐨勫��
- int index = 0;
- FieldSetEntity curTemplateFse;
- Map<String, FieldSetEntity> curSubMap;
- List<Map<String, FieldSetEntity>> fieldInfoList = Lists.newArrayList();
- FieldSetEntity curFieldFse;
- FieldSetEntity recordFse;// 涓氬姟琛╢se
- DataTableEntity recordDte;// 涓氬姟琛╠te
- for (Map.Entry<String, List<List<String>>> entry : dataMap.entrySet()) {
- dataList = entry.getValue();
- if (dataList.isEmpty()) {
- continue;
- }
+ // 鑾峰彇瀵煎叆鏂囦欢淇℃伅
+ FieldSetEntity attachmentFse = baseDao.getFieldSetEntity(CmnConst.TABLE_PRODUCT_SYS_ATTACHMENT, logFse.getString(CmnConst.FIELD_IMPORT_INFO), false);
+ String relativePath = attachmentFse.getString(CmnConst.FIELD_ATTACHMENT_URL);
+ String templateName = attachmentFse.getString(CmnConst.FIELD_ATTACHMENT_TITLE);
+ Map<String, List<List<String>>> dataMap = new HashMap<>();
+ try {
+ String filePath = Global.getSystemConfig("local.dir", "") + File.separator + relativePath + File.separator + templateName;
+ dataMap = EasyExcelUtil.readExcelByString(filePath);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ // 灏佽鍒癲te涓�
+ List<DataTableEntity> beforeSaveDataList = Lists.newArrayList();
+ List<String> titleList;
+ List<List<String>> dataList;
+ List<String> rowList;
+ String singleValue;// 鍗曞厓鏍煎唴鐨勫��
+ int index = 0;
+ FieldSetEntity curTemplateFse;
+ Map<String, FieldSetEntity> curSubMap;
+ List<List<List<String>>> headerDataList = Lists.newArrayList();
+ List<Map<String, FieldSetEntity>> fieldInfoList = Lists.newArrayList();
+ FieldSetEntity curFieldFse;
+ FieldSetEntity recordFse;// 涓氬姟琛╢se
+ DataTableEntity recordDte;// 涓氬姟琛╠te
+ for (Map.Entry<String, List<List<String>>> entry : dataMap.entrySet()) {
+ dataList = entry.getValue();
+ if (dataList.isEmpty()) {
+ continue;
+ }
- recordDte = new DataTableEntity();
- curTemplateFse = templateDte.getFieldSetEntity(index);
- curSubMap = dte2Map(curTemplateFse.getSubDataTable(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_MODEL_SUB), CmnConst.FIELD_EXCEL_HEADER);
- fieldInfoList.add(curSubMap);
- titleList = dataList.get(0);
- // 瀛楁瀵瑰簲鐨別xcel 琛ㄥご绱㈠紩
- Map<String, String> fieldIndex = Maps.newHashMap();
- for (int i = 1; i < dataList.size(); i++) {
- rowList = dataList.get(i);
- recordFse = new FieldSetEntity();
- recordFse.setTableName(curTemplateFse.getString(CmnConst.FIELD_TABLE_NAME));
- //瀛楁瀵瑰簲鐨勫垪
- int j = 0;
- for (; j < titleList.size(); j++) {
- if (rowList.size() < (j + 1)) {
- singleValue = null;
- } else {
- singleValue = rowList.get(j);
- }
- curFieldFse = curSubMap.get(titleList.get(j));
- recordFse.setValue(curFieldFse.getString(CmnConst.FIELD_FIELD_NAME), singleValue);
- if (i == 1 || rowList.size() > fieldIndex.size()) {
- fieldIndex.put(curFieldFse.getString(CmnConst.FIELD_FIELD_NAME), String.valueOf(j));
- }
- }
- recordFse.setValue("~colName~", titleList);
- recordFse.setValue("~fieldIndex~", fieldIndex);
- // fieldSet 瀵瑰簲鐨勮
- recordFse.setValue("~row~", i);
- recordDte.addFieldSetEntity(recordFse);
- }
- beforeSaveDataList.add(recordDte);
- index++;
- }
+ recordDte = new DataTableEntity();
+ curTemplateFse = templateDte.getFieldSetEntity(index);
+ curSubMap = dte2Map(curTemplateFse.getSubDataTable(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_MODEL_SUB), CmnConst.FIELD_EXCEL_HEADER);
+ fieldInfoList.add(curSubMap);
+ // 瀛楁瀵瑰簲鐨別xcel 琛ㄥご绱㈠紩
+ Map<String, String> fieldIndex = Maps.newHashMap();
+ //琛ㄥご寮�濮嬭 cheng update 2023骞�6鏈�30鏃�15:48:22 澶氳澶存椂锛岃〃澶村紑濮嬭涓嶄竴瀹氭槸绗竴琛�
+ int startRowIndex = 1;
+ if (!StringUtils.isEmpty(curTemplateFse.getString("start_row_index")) && NumberUtil.isNumber(curTemplateFse.getString("start_row_index"))) {
+ startRowIndex = Integer.parseInt(curTemplateFse.getString("start_row_index")) + 1;
+ if (startRowIndex < 1) {
+ startRowIndex = 1;
+ }
+ }
- // 鏁版嵁瑙f瀽淇濆瓨
- String orgLevelUUID = curUser.getOrg_level_uuid();
- String actualValue;
- FieldMetaEntity meta;
- Object[] fieldArr;
- DataTableEntity tempDte;
- String fieldName;
- for (int i = 0; i < beforeSaveDataList.size(); i++) {
- tempDte = beforeSaveDataList.get(i);
+ titleList = dataList.get(startRowIndex);
+ if (startRowIndex > 0) {
+ headerDataList.add(dataList.subList(0, startRowIndex));
+ } else {
+ headerDataList.add(new ArrayList<>());
+ }
+ for (int i = startRowIndex; i < dataList.size(); i++) {
+ rowList = dataList.get(i);
+ recordFse = new FieldSetEntity();
+ recordFse.setTableName(curTemplateFse.getString(CmnConst.FIELD_TABLE_NAME));
+ //瀛楁瀵瑰簲鐨勫垪
+ int j = 0;
+ for (; j < titleList.size(); j++) {
+ if (rowList.size() < (j + 1)) {
+ singleValue = null;
+ } else {
+ singleValue = rowList.get(j);
+ }
+ curFieldFse = curSubMap.get(titleList.get(j));
+ recordFse.setValue(curFieldFse.getString(CmnConst.FIELD_FIELD_NAME), singleValue);
+ if (i == 1 || rowList.size() > fieldIndex.size()) {
+ fieldIndex.put(curFieldFse.getString(CmnConst.FIELD_FIELD_NAME), String.valueOf(j));
+ }
+ }
+ recordFse.setValue("~colName~", titleList);
+ recordFse.setValue("~fieldIndex~", fieldIndex);
+ // fieldSet 瀵瑰簲鐨勮
+ recordFse.setValue("~row~", i);
+ recordDte.addFieldSetEntity(recordFse);
+ }
+ beforeSaveDataList.add(recordDte);
+ index++;
+ }
- // 淇濆瓨鍓嶅鐞�
- try {
- tempDte = spDeal(templateDte.getFieldSetEntity(i).getString(CmnConst.FIELD_BEFORE_FUNC), tempDte);
- if (BaseUtil.dataTableIsEmpty(tempDte)) {
- throw new BaseException(CmnCode.UPLOAD_TEMPLATE_BEFORE_FUNC_EXEC_NO_DATA.getValue(), CmnCode.UPLOAD_TEMPLATE_BEFORE_FUNC_EXEC_NO_DATA.getText());
- }
- } catch (BaseException e) {
- throw e;
- } catch (Exception e) {
- e.printStackTrace();
- throw new BaseException(CmnCode.UPLOAD_TEMPLATE_BEFORE_FUNC_EXEC_FAIL.getValue(), CmnCode.UPLOAD_TEMPLATE_BEFORE_FUNC_EXEC_FAIL.getText());
- }
+ // 鏁版嵁瑙f瀽淇濆瓨
+ String orgLevelUUID = curUser.getOrg_level_uuid();
+ String actualValue;
+ FieldMetaEntity meta;
+ Object[] fieldArr;
+ DataTableEntity tempDte;
+ String fieldName;
+ for (int i = 0; i < beforeSaveDataList.size(); i++) {
+ tempDte = beforeSaveDataList.get(i);
- meta = tempDte.getMeta();
- fieldArr = meta.getFields();
+ // 淇濆瓨鍓嶅鐞�
+ try {
+ tempDte = spDeal(templateDte.getFieldSetEntity(i).getString(CmnConst.FIELD_BEFORE_FUNC), tempDte, headerDataList.get(i));
+ if (BaseUtil.dataTableIsEmpty(tempDte)) {
+ throw new BaseException(CmnCode.UPLOAD_TEMPLATE_BEFORE_FUNC_EXEC_NO_DATA.getValue(), CmnCode.UPLOAD_TEMPLATE_BEFORE_FUNC_EXEC_NO_DATA.getText());
+ }
+ } catch (BaseException e) {
+ throw e;
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new BaseException(CmnCode.UPLOAD_TEMPLATE_BEFORE_FUNC_EXEC_FAIL.getValue(), CmnCode.UPLOAD_TEMPLATE_BEFORE_FUNC_EXEC_FAIL.getText());
+ }
- curTemplateFse = templateDte.getFieldSetEntity(i);
- curSubMap = dte2Map(curTemplateFse.getSubDataTable(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_MODEL_SUB), CmnConst.FIELD_FIELD_NAME);
- boolean isMultiFlag;
- StringBuilder errorMsg = new StringBuilder(8);
- for (int j = 0; j < tempDte.getRows(); j++) {
- recordFse = tempDte.getFieldSetEntity(j);
- for (Object fieldNameObj : fieldArr) {
- if (fieldNameObj == null) {
- continue;
- }
- fieldName = fieldNameObj.toString();
- singleValue = recordFse.getString(fieldName);
+ meta = tempDte.getMeta();
+ fieldArr = meta.getFields();
- curFieldFse = curSubMap.get(fieldName);
- if (curFieldFse != null) {
- // 鎻愬彇鐪熷疄鍊�
- if (!StringUtils.isEmpty(curFieldFse.getString(CmnConst.FIELD_PROMPT_NAME))) {
- isMultiFlag = curFieldFse.getString(CmnConst.FIELD_IS_MULTI) == null ? false : "1".equals(curFieldFse.getString(CmnConst.FIELD_IS_MULTI));
- // 鏍规嵁鍙傜収鍚嶇О锛屽弬鐓х被鍨嬶紝鏄剧ず鍩熺殑鍊硷紝鑾峰彇闅愯棌鍩熺殑鍊�
- actualValue = getRealValue(curFieldFse.getString(CmnConst.FIELD_PROMPT_NAME), singleValue, isMultiFlag);
- } else {
- actualValue = singleValue;
- }
- recordFse.setValue(curFieldFse.getString(CmnConst.FIELD_FIELD_NAME), actualValue);
- }
- }
- try {
- BaseUtil.createCreatorAndCreationTime(curUser, recordFse);
- baseDao.saveFieldSetEntity(recordFse);
- } catch (BaseException e) {
- e.printStackTrace();
+ curTemplateFse = templateDte.getFieldSetEntity(i);
+ curSubMap = dte2Map(curTemplateFse.getSubDataTable(CmnConst.TABLE_PRODUCT_SYS_DATA_UPLOAD_MODEL_SUB), CmnConst.FIELD_FIELD_NAME);
+ boolean isMultiFlag;
+ StringBuilder errorMsg = new StringBuilder(8);
+ for (int j = 0; j < tempDte.getRows(); j++) {
+ recordFse = tempDte.getFieldSetEntity(j);
+ for (Object fieldNameObj : fieldArr) {
+ if (fieldNameObj == null) {
+ continue;
+ }
+ fieldName = fieldNameObj.toString();
+ singleValue = recordFse.getString(fieldName);
+
+ curFieldFse = curSubMap.get(fieldName);
+ if (curFieldFse != null) {
+ // 鎻愬彇鐪熷疄鍊�
+ if (!StringUtils.isEmpty(curFieldFse.getString(CmnConst.FIELD_PROMPT_NAME))) {
+ isMultiFlag = curFieldFse.getString(CmnConst.FIELD_IS_MULTI) == null ? false : "1".equals(curFieldFse.getString(CmnConst.FIELD_IS_MULTI));
+ // 鏍规嵁鍙傜収鍚嶇О锛屽弬鐓х被鍨嬶紝鏄剧ず鍩熺殑鍊硷紝鑾峰彇闅愯棌鍩熺殑鍊�
+ actualValue = getRealValue(curFieldFse.getString(CmnConst.FIELD_PROMPT_NAME), singleValue, isMultiFlag);
+ } else {
+ actualValue = singleValue;
+ }
+ recordFse.setValue(curFieldFse.getString(CmnConst.FIELD_FIELD_NAME), actualValue);
+ }
+ }
+ try {
+ BaseUtil.createCreatorAndCreationTime(curUser, recordFse);
+ baseDao.saveFieldSetEntity(recordFse);
+ } catch (BaseException e) {
+ e.printStackTrace();
// errorMsg.append("瀵煎叆鏁版嵁閿欒锛歕n\t");
- errorMsg.append(String.format("绗�%s涓猻heet锛岀%s琛�,%s", i + 1, j + 1, e.getMessageInfo() != null ? e.getMessageInfo() : "")).append("\n");
+ errorMsg.append(String.format("绗�%s涓猻heet锛岀%s琛�,%s", i + 1, j + 1, e.getMessageInfo() != null ? e.getMessageInfo() : "")).append("\n");
// throw new BaseException(CmnCode.UPLOAD_TEMPLATE_IMPORT_DATA_FAIL.getValue(), String.format("%s: 绗�%s涓猻heet锛岀%s琛�", CmnCode.UPLOAD_TEMPLATE_IMPORT_DATA_FAIL.getText(), i + 1, j + 1), e);
- } catch (Exception e) {
- errorMsg.append(String.format("绗�%s涓猻heet锛岀%s琛�,%s", i + 1, j + 1, e.getMessage() != null ? e.getMessage() : "")).append("\n");
+ } catch (Exception e) {
+ errorMsg.append(String.format("绗�%s涓猻heet锛岀%s琛�,%s", i + 1, j + 1, e.getMessage() != null ? e.getMessage() : "")).append("\n");
// throw new BaseException(CmnCode.UPLOAD_TEMPLATE_IMPORT_DATA_FAIL.getValue(), String.format("%s: 绗�%s涓猻heet锛岀%s琛�", CmnCode.UPLOAD_TEMPLATE_IMPORT_DATA_FAIL.getText(), i + 1, j + 1));
- }
- }
- if (errorMsg.length() > 0) {
- throw new BaseException(CmnCode.UPLOAD_TEMPLATE_IMPORT_DATA_FAIL.getValue(), errorMsg.toString());
- }
+ }
+ }
+ if (errorMsg.length() > 0) {
+ throw new BaseException(CmnCode.UPLOAD_TEMPLATE_IMPORT_DATA_FAIL.getValue(), errorMsg.toString());
+ }
- // 淇濆瓨鍚庡鐞�
- try {
- spDeal(templateDte.getFieldSetEntity(i).getString(CmnConst.FIELD_AFTER_FUNC), tempDte);
- } catch (BaseException e) {
- SpringMVCContextHolder.getSystemLogger().error(e);
- } catch (Exception e) {
- throw new BaseException(CmnCode.UPLOAD_TEMPLATE_AFTER_FUNC_EXEC_FAIL.getValue(), CmnCode.UPLOAD_TEMPLATE_AFTER_FUNC_EXEC_FAIL.getText());
- }
- }
+ // 淇濆瓨鍚庡鐞�
+ try {
+ spDeal(templateDte.getFieldSetEntity(i).getString(CmnConst.FIELD_AFTER_FUNC), tempDte, headerDataList.get(i));
+ } catch (BaseException e) {
+ SpringMVCContextHolder.getSystemLogger().error(e);
+ } catch (Exception e) {
+ throw new BaseException(CmnCode.UPLOAD_TEMPLATE_AFTER_FUNC_EXEC_FAIL.getValue(), CmnCode.UPLOAD_TEMPLATE_AFTER_FUNC_EXEC_FAIL.getText());
+ }
+ }
- // 鏇存柊璁板綍琛ㄦ儏鍐�
- logFse.setValue(CmnConst.FIELD_IS_SUCCESS, 1);
- BaseUtil.updatedRegeneratorAndUpdateTime(curUser, fse);
- baseDao.saveFieldSetEntity(logFse);
- }
+ // 鏇存柊璁板綍琛ㄦ儏鍐�
+ logFse.setValue(CmnConst.FIELD_IS_SUCCESS, 1);
+ BaseUtil.updatedRegeneratorAndUpdateTime(curUser, fse);
+ baseDao.saveFieldSetEntity(logFse);
+ }
- /**
- * dte鎸夌収鎸囧畾fse涓殑鍊间綔涓簁ey杞崲涓簃ap
- *
- * @param dte
- * @param keyFieldName
- * @return
- */
- private Map<String, FieldSetEntity> dte2Map(DataTableEntity dte, String keyFieldName) {
- Map<String, FieldSetEntity> resultMap = Maps.newHashMap();
- FieldSetEntity tempFse;
- for (int i = 0; i < dte.getRows(); i++) {
- tempFse = dte.getFieldSetEntity(i);
- resultMap.put(tempFse.getString(keyFieldName), tempFse);
- }
- return resultMap;
- }
+ /**
+ * dte鎸夌収鎸囧畾fse涓殑鍊间綔涓簁ey杞崲涓簃ap
+ *
+ * @param dte
+ * @param keyFieldName
+ * @return
+ */
+ private Map<String, FieldSetEntity> dte2Map(DataTableEntity dte, String keyFieldName) {
+ Map<String, FieldSetEntity> resultMap = Maps.newHashMap();
+ FieldSetEntity tempFse;
+ for (int i = 0; i < dte.getRows(); i++) {
+ tempFse = dte.getFieldSetEntity(i);
+ resultMap.put(tempFse.getString(keyFieldName), tempFse);
+ }
+ return resultMap;
+ }
- /**
- * 浜嬩欢鍓嶆垨鑰呬簨浠跺悗璋冪敤閫昏緫鏂规硶鐨勭壒娈婂鐞�
- *
- * @param functionContent
- * @param dte
- */
- private DataTableEntity spDeal(String functionContent, DataTableEntity dte) throws BaseException {
- if (functionContent == null) {
- return dte;
- }
- functionContent = functionContent.trim();
- if (StringUtils.isEmpty(functionContent)) {
- return dte;
- }
- String className = functionContent.substring(0, functionContent.indexOf("."));
- String methodName = functionContent.substring(functionContent.indexOf(".") + 1, functionContent.indexOf("("));
- Object resultObj = ReflectUtil.invoke(className, methodName, new Object[]{dte});
- return (DataTableEntity) resultObj;
- }
+ /**
+ * 浜嬩欢鍓嶆垨鑰呬簨浠跺悗璋冪敤閫昏緫鏂规硶鐨勭壒娈婂鐞�
+ *
+ * @param functionContent
+ * @param dte
+ * @param headerDataList
+ * @return
+ */
+ private DataTableEntity spDeal(String functionContent, DataTableEntity dte, List<List<String>> headerDataList) throws BaseException {
+ if (functionContent == null) {
+ return dte;
+ }
+ functionContent = functionContent.trim();
+ if (StringUtils.isEmpty(functionContent)) {
+ return dte;
+ }
+ String className = functionContent.substring(0, functionContent.indexOf("."));
+ String methodName = functionContent.substring(functionContent.indexOf(".") + 1, functionContent.indexOf("("));
+ //鏍规嵁className鑾峰彇绫�
+ Object bean = SpringUtil.getBean(className);
+ //浣跨敤huTool鐨勫弽灏勫伐鍏风被鑾峰彇鏂规硶锛屾柟娉曠殑鍙傛暟绫诲瀷涓篋ataTableEntity銆丩ist<List<String>>
+ Method method = ReflectUtil.getMethod(bean.getClass(), methodName, DataTableEntity.class, List.class);
+ if (method != null) {
+ //鍒ゆ柇method杩斿洖鍊间负DataTableEntity
+ boolean isBackDataTable = !method.getReturnType().equals(DataTableEntity.class);
+ //鍒ゆ柇绗簩涓弬鏁扮殑娉涘瀷绫诲瀷
+ Type[] types = method.getGenericParameterTypes();
+ Type type = types[1];
+ //鍒ゆ柇绫诲瀷鏄惁涓篖ist<List<String>>锛屽鏋滄槸鍒欒皟鐢ㄦ柟娉�
+ if (isBackDataTable && type.getTypeName().equals("java.util.List<java.util.List<java.lang.String>>")) {
+ return ReflectUtil.invoke(bean, methodName, dte, headerDataList);
+ }
+ }
- /**
- * 鑾峰彇鐪熷疄鍊�
- *
- * @param promptName
- * @param showValue
- * @return
- */
- private String getRealValue(String promptName, String showValue, boolean isMultiFlag) {
- String realValue = showValue;
- DataTableEntity promptDte;
- FieldSetEntity promptFse;
- if (promptName.startsWith("銆�")) {
- // 鏅�氬弬鐓�
- promptName = promptName.replace("銆�", "").replace("銆�", "");
- promptDte = DataPoolCacheImpl.getInstance().getCacheData(CmnConst.CACHE_COMMON_PROMPT, new String[]{promptName});
- if (!BaseUtil.dataTableIsEmpty(promptDte)) {
- Set<String> showSet = SetUtils.string2Set(showValue, ",");
- Set<String> realSet = Sets.newLinkedHashSet();
- for (int i = 0; i < promptDte.getRows(); i++) {
- promptFse = promptDte.getFieldSetEntity(i);
- if (isMultiFlag) {
- if (showSet.contains(promptFse.getString(CmnConst.FIELD_DICT_LABEL))) {
- realSet.add(promptFse.getString(CmnConst.FIELD_DICT_VALUE));
- }
- } else {
- if (showValue.equals(promptFse.getString(CmnConst.FIELD_DICT_LABEL))) {
- realValue = promptFse.getString(CmnConst.FIELD_DICT_VALUE);
- break;
- }
- }
- }
- if (!realSet.isEmpty()) {
- realValue = SetUtils.set2String(realSet, ",");
- }
- }
- } else {
- // 楂樼骇鍙傜収
- promptFse = BaseUtil.getSingleInfoByCache(CmnConst.CACHE_ADVANCED_PROMPT, new String[]{promptName});
- String sourceTableName = promptFse.getString(CmnConst.FILED_SOURCE_TABLE);
- String filter = promptFse.getString(CmnConst.FILED_FILTER);
- String showFieldName = promptFse.getString(CmnConst.FILED_VIEW_FIELD);
- Set<String> showSet = SetUtils.string2Set(showValue, ",");
- String promptFilter = BaseUtil.buildQuestionMarkFilter(showFieldName, isMultiFlag ? showSet.size() : 1, true);
- StringBuilder sql = new StringBuilder(256);
- String realFieldName = promptFse.getString(CmnConst.FILED_VALUE_FIELD);
- sql.append("select GROUP_CONCAT(").append(realFieldName).append(") real_value from ").append(sourceTableName).append(" where ").append(promptFilter);
- if (!StringUtils.isEmpty(filter)) {
- filter = SystemParamReplace.systemParamsReplace(filter);
- sql.append(" and ").append(filter);
- }
- // 琛ュ厖鐗瑰畾瀛楁鏁版嵁杩囨护
- if (!StringUtils.isEmpty(promptFse.getString("org_filter_field")) || !StringUtils.isEmpty(promptFse.getString("user_filter_field"))) {
- String dataFilter = permissionService.getDataFilter(sourceTableName,
- promptFse.getString("user_filter_field"), promptFse.getString("org_filter_field"));
- if (!StringUtils.isEmpty(dataFilter)) {
- sql.append(" and ").append(dataFilter);
- }
- }
- FieldSetEntity sourceFse = baseDao.getFieldSetEntityBySQL(sql.toString(), showSet.toArray(), false);
- if (sourceFse != null) {
- realValue = sourceFse.getString("real_value");
- }
- }
- return realValue;
- }
+ return ReflectUtil.invoke(bean, methodName, dte);
+ }
+
+ /**
+ * 鑾峰彇鐪熷疄鍊�
+ *
+ * @param promptName
+ * @param showValue
+ * @return
+ */
+ private String getRealValue(String promptName, String showValue, boolean isMultiFlag) {
+ String realValue = showValue;
+ DataTableEntity promptDte;
+ FieldSetEntity promptFse;
+ if (promptName.startsWith("銆�")) {
+ // 鏅�氬弬鐓�
+ promptName = promptName.replace("銆�", "").replace("銆�", "");
+ promptDte = DataPoolCacheImpl.getInstance().getCacheData(CmnConst.CACHE_COMMON_PROMPT, new String[]{promptName});
+ if (!BaseUtil.dataTableIsEmpty(promptDte)) {
+ Set<String> showSet = SetUtils.string2Set(showValue, ",");
+ Set<String> realSet = Sets.newLinkedHashSet();
+ for (int i = 0; i < promptDte.getRows(); i++) {
+ promptFse = promptDte.getFieldSetEntity(i);
+ if (isMultiFlag) {
+ if (showSet.contains(promptFse.getString(CmnConst.FIELD_DICT_LABEL))) {
+ realSet.add(promptFse.getString(CmnConst.FIELD_DICT_VALUE));
+ }
+ } else {
+ if (showValue.equals(promptFse.getString(CmnConst.FIELD_DICT_LABEL))) {
+ realValue = promptFse.getString(CmnConst.FIELD_DICT_VALUE);
+ break;
+ }
+ }
+ }
+ if (!realSet.isEmpty()) {
+ realValue = SetUtils.set2String(realSet, ",");
+ }
+ }
+ } else {
+ // 楂樼骇鍙傜収
+ promptFse = BaseUtil.getSingleInfoByCache(CmnConst.CACHE_ADVANCED_PROMPT, new String[]{promptName});
+ String sourceTableName = promptFse.getString(CmnConst.FILED_SOURCE_TABLE);
+ String filter = promptFse.getString(CmnConst.FILED_FILTER);
+ String showFieldName = promptFse.getString(CmnConst.FILED_VIEW_FIELD);
+ Set<String> showSet = SetUtils.string2Set(showValue, ",");
+ String promptFilter = BaseUtil.buildQuestionMarkFilter(showFieldName, isMultiFlag ? showSet.size() : 1, true);
+ StringBuilder sql = new StringBuilder(256);
+ String realFieldName = promptFse.getString(CmnConst.FILED_VALUE_FIELD);
+ sql.append("select GROUP_CONCAT(").append(realFieldName).append(") real_value from ").append(sourceTableName).append(" where ").append(promptFilter);
+ if (!StringUtils.isEmpty(filter)) {
+ filter = SystemParamReplace.systemParamsReplace(filter);
+ sql.append(" and ").append(filter);
+ }
+ // 琛ュ厖鐗瑰畾瀛楁鏁版嵁杩囨护
+ if (!StringUtils.isEmpty(promptFse.getString("org_filter_field")) || !StringUtils.isEmpty(promptFse.getString("user_filter_field"))) {
+ String dataFilter = permissionService.getDataFilter(sourceTableName,
+ promptFse.getString("user_filter_field"), promptFse.getString("org_filter_field"));
+ if (!StringUtils.isEmpty(dataFilter)) {
+ sql.append(" and ").append(dataFilter);
+ }
+ }
+ FieldSetEntity sourceFse = baseDao.getFieldSetEntityBySQL(sql.toString(), showSet.toArray(), false);
+ if (sourceFse != null) {
+ realValue = sourceFse.getString("real_value");
+ }
+ }
+ return realValue;
+ }
}
--
Gitblit v1.9.2