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