From 3f6aa8e6687e1a9f6e41e5a3f69cba37172908ab Mon Sep 17 00:00:00 2001
From: 354798ggg <1074825718@qq.com>
Date: 星期三, 05 七月 2023 10:40:33 +0800
Subject: [PATCH] 项目预算导入
---
product-server-project-management/src/main/java/com/product/project/management/service/ProjectBudgetService.java | 82 +++++++++++++++++++++++++++++++++++++++++
1 files changed, 82 insertions(+), 0 deletions(-)
diff --git a/product-server-project-management/src/main/java/com/product/project/management/service/ProjectBudgetService.java b/product-server-project-management/src/main/java/com/product/project/management/service/ProjectBudgetService.java
new file mode 100644
index 0000000..3bc336b
--- /dev/null
+++ b/product-server-project-management/src/main/java/com/product/project/management/service/ProjectBudgetService.java
@@ -0,0 +1,82 @@
+package com.product.project.management.service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.product.core.dao.BaseDao;
+import com.product.core.entity.DataTableEntity;
+import com.product.core.entity.FieldSetEntity;
+import com.product.core.exception.BaseException;
+import com.product.core.service.support.AbstractBaseService;
+import com.product.project.management.config.Cmnconst;
+import com.product.project.management.config.SystemCode;
+import com.product.util.BaseUtil;
+
+@Service("projectBudget")
+public class ProjectBudgetService extends AbstractBaseService{
+
+ @Autowired
+ BaseDao baseDao;
+
+ /**
+ * 椤圭洰棰勭畻瀵煎叆
+ * @param dtParseData 瑙f瀽鏁版嵁
+ * @param headerDataList excel鏍囬鏁版嵁
+ */
+ public DataTableEntity importBudget(DataTableEntity dtParseData, List<List<String>> headerDataList) {
+ //鍒ゆ柇鏄惁鏈夎В鏋怑XCEL鏁版嵁
+ if (BaseUtil.dataTableIsEmpty(dtParseData)) {
+ return null;
+ }
+ //澹版槑寮傚父闆�
+ StringBuilder sbError = new StringBuilder();
+ //閬嶅巻excel杞崲鏁版嵁
+ for (int i = 0; i < dtParseData.getRows(); i++) {
+ FieldSetEntity fseParseData = dtParseData.getFieldSetEntity(i);
+
+ //鏍规嵁瑙f瀽鏁版嵁鑾峰彇椤圭洰鍒嗛」淇℃伅
+ List<Object> params = new ArrayList<>();
+ String projectItem = autoCreateFilter(params, fseParseData);
+
+ FieldSetEntity fseProjectItem = baseDao.getFieldSetEntityByFilter(Cmnconst.PRODUCT_PROJECT_ITEM, "project_uuid IN (SELECT uuid FROM product_project_qxlw WHERE project_name=?) AND itemize_full_name=?", params.toArray(), false);
+ if(fseProjectItem==null) {
+ sbError.append(String.format("绗� %s 琛岄」鐩垎椤� '%s' 涓嶅瓨鍦ㄤ簬绯荤粺涓��", fseParseData.getString("~row~"), projectItem));
+ continue;
+ }
+ fseParseData.setValue("project_itemize_uuid", fseProjectItem.getUUID());
+ }
+ if (!BaseUtil.strIsNull(sbError.toString())) {
+ throw new BaseException(SystemCode.PROJECT_BUDGET_IMPORT_FAIL.getValue(), sbError.toString());
+ }
+// baseDao.add(dtParseData);
+ return dtParseData;
+ }
+
+ /**
+ * 鑷姩鐢熸垚鏌ヨ椤圭洰鍒嗛」filter
+ * @param params
+ * @param fseParseData
+ * @return
+ */
+ public String autoCreateFilter(List<Object> params , FieldSetEntity fseParseData) {
+ StringBuilder projectItem = new StringBuilder();
+ for (int i = 1; i < 7; i++) {
+ String fieldValue = fseParseData.getString("field"+i);
+ if(!BaseUtil.strIsNull(fieldValue)) {
+ if (i>2) {
+ projectItem.append("/");
+ }
+ if(i==1) {
+ params.add(fieldValue);
+ }else{
+ projectItem.append(fieldValue);
+ }
+ }
+ }
+ params.add(projectItem.toString());
+ return projectItem.toString();
+ }
+}
--
Gitblit v1.9.2