¶Ô±ÈÐÂÎļþ |
| | |
| | | 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 è§£ææ°æ® |
| | | * @param headerDataList excelæ 颿°æ® |
| | | */ |
| | | public DataTableEntity importBudget(DataTableEntity dtParseData, List<List<String>> headerDataList) { |
| | | //夿æ¯å¦æè§£æEXCELæ°æ® |
| | | if (BaseUtil.dataTableIsEmpty(dtParseData)) { |
| | | return null; |
| | | } |
| | | //声æå¼å¸¸é |
| | | StringBuilder sbError = new StringBuilder(); |
| | | //éåexcelè½¬æ¢æ°æ® |
| | | for (int i = 0; i < dtParseData.getRows(); i++) { |
| | | FieldSetEntity fseParseData = dtParseData.getFieldSetEntity(i); |
| | | |
| | | //æ ¹æ®è§£ææ°æ®è·å项ç®åé¡¹ä¿¡æ¯ |
| | | 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(); |
| | | } |
| | | } |