package com.product.project.management.service; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; 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; @Component("qxlw-project-service") public class ProjectInfoService extends AbstractBaseService{ @Autowired BaseDao baseDao; /** * 通过项目类型获取项目分项(获取模板分项) * @param projectType * @return */ public DataTableEntity getProjectTypeItem(String projectType) { DataTableEntity dtProjectItem = baseDao.listTable(Cmnconst.PRODUCT_PROJECT_BASE_PROJECT_ITEM, "itemize_type=?", new Object[] {projectType}, new Object[] {Cmnconst.ITEMIZE, Cmnconst.ITEMIZE_CODE, Cmnconst.ITEMIZE_PARENT_CODE}); if (!BaseUtil.dataTableIsEmpty(dtProjectItem)) { DataTableEntity newDtProjectItem = BaseUtil.dataTableToTreeTable(dtProjectItem, Cmnconst.ITEMIZE_CODE, Cmnconst.ITEMIZE_PARENT_CODE, null); return newDtProjectItem; } return null; } /** * 通过项目主表获取项目分项(获取保存的子表分项) * @param uuid * @return */ public FieldSetEntity getProjectItem(String uuid) { FieldSetEntity fseProject = baseDao.getFieldSetEntity(Cmnconst.PRODUCT_PROJECT_QXLW, uuid, true); DataTableEntity newDtProjectItem = BaseUtil.dataTableToTreeTable(fseProject.getSubDataTable(Cmnconst.PRODUCT_PROJECT_ITEM), Cmnconst.ITEMIZE_CODE, Cmnconst.ITEMIZE_PARENT_CODE, null); MapdtSubTable = fseProject.getSubData(); dtSubTable.put(Cmnconst.PRODUCT_PROJECT_ITEM, newDtProjectItem); return fseProject; } /** * 删除子项验证(已经生成预算的子项不能删除) * @param uuid */ public void deleteItemizeValidate(String uuid) { DataTableEntity dtBudget = baseDao.listTable(Cmnconst.PRODUCT_PROJECT_BUDGET, "budget_code=?", new Object[] {uuid}); if (!BaseUtil.dataTableIsEmpty(dtBudget)) { throw new BaseException(SystemCode.PROJECT_MANAGEMENT_ITEMIZE_DEL_FAIL.getValue(), SystemCode.PROJECT_MANAGEMENT_ITEMIZE_DEL_FAIL.getText()); } } }