| | |
| | | |
| | | import java.util.Map; |
| | | |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import com.product.core.config.CoreConst; |
| | | import com.product.core.dao.BaseDao; |
| | | import com.product.core.entity.DataTableEntity; |
| | | import com.product.core.entity.FieldSetEntity; |
| | |
| | | import com.product.project.management.config.SystemCode; |
| | | import com.product.util.BaseUtil; |
| | | |
| | | @Component("qxlw-project-service") |
| | | public class ProjectInfoService extends AbstractBaseService{ |
| | | import cn.hutool.json.JSONObject; |
| | | |
| | | @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_CODE}); |
| | | if (!BaseUtil.dataTableIsEmpty(dtProjectItem)) { |
| | | DataTableEntity newDtProjectItem = BaseUtil.dataTableToTreeTable(dtProjectItem, Cmnconst.ITEMIZE_CODE, Cmnconst.ITEMIZE_PARENT_CODE, null); |
| | | return newDtProjectItem; |
| | | @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_TYPE, 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; |
| | | } |
| | | |
| | | /** |
| | | * 通过项目UUID获取项目分项(获取保存的子表分项--多个树) |
| | | * |
| | | * @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); |
| | | Map<String, DataTableEntity> dtSubTable = fseProject.getSubData(); |
| | | dtSubTable.put(Cmnconst.PRODUCT_PROJECT_ITEM, newDtProjectItem); |
| | | return fseProject; |
| | | } |
| | | |
| | | /** |
| | | * 通过项目UUID获取项目分项(获取保存的子表分项--单个树) |
| | | * |
| | | * @param uuid |
| | | * @return |
| | | */ |
| | | public DataTableEntity getProjectAllItem(String uuid) { |
| | | DataTableEntity dtProjectItemize = baseDao.listTable(Cmnconst.PRODUCT_PROJECT_ITEM, "project_uuid=?", new Object[]{uuid}, new Object[]{CoreConst.UUID, Cmnconst.ITEMIZE, Cmnconst.ITEMIZE_CODE, Cmnconst.ITEMIZE_PARENT_CODE, Cmnconst.ITEMIZE_FULL_NAME}); |
| | | if (!BaseUtil.dataTableIsEmpty(dtProjectItemize)) { |
| | | DataTableEntity newDtProjectItem = BaseUtil.dataTableToTreeTable(dtProjectItemize, Cmnconst.ITEMIZE_CODE, Cmnconst.ITEMIZE_PARENT_CODE, null); |
| | | return newDtProjectItem; |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | /** |
| | | * 获取所有项目信息 |
| | | * |
| | | * @return |
| | | */ |
| | | public DataTableEntity listProject() { |
| | | return baseDao.listTable(Cmnconst.PRODUCT_PROJECT_QXLW, null, null, new Object[]{CoreConst.UUID, Cmnconst.PROJECT_NAME}); |
| | | } |
| | | |
| | | |
| | | |
| | | /** |
| | | * 删除子项验证(已经生成预算的子项不能删除) |
| | | * |
| | | * @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_ITEMIZE_DEL_FAIL_HAS_BUDGET.getValue(), SystemCode.PROJECT_ITEMIZE_DEL_FAIL_HAS_BUDGET.getText()); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 获取分项预算信息 |
| | | * |
| | | * @param itemizeUUID 分项UUID |
| | | * @param capge 当前页 |
| | | * @param pageSize 页大小 |
| | | * @return |
| | | */ |
| | | public DataTableEntity listItemizeBudget(String itemizeUUID, Integer capge, Integer pageSize) { |
| | | if (!BaseUtil.strIsNull(itemizeUUID)) { |
| | | DataTableEntity dtItemizeBudget = baseDao.listTable(Cmnconst.PRODUCT_PROJECT_BUDGET, "project_itemize_uuid = ?", new Object[] {itemizeUUID}, null, null, pageSize, capge); |
| | | if (!BaseUtil.dataTableIsEmpty(dtItemizeBudget)) { |
| | | baseDao.loadPromptData(dtItemizeBudget); |
| | | } |
| | | return dtItemizeBudget; |
| | | } |
| | | 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); |
| | | Map<String, DataTableEntity>dtSubTable = 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()); |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | /** |
| | | * 更具项目分项uuid获取项目分项下的材料 |
| | | * @param uuid |
| | | * @param capge |
| | | * @param pageSize |
| | | * @return |
| | | */ |
| | | public DataTableEntity listMaterialV(String uuid, Integer capge, Integer pageSize) { |
| | | return baseDao.listTable("product_project_base_material_v","project_itemize_uuid=?",new String[]{uuid},null,null,pageSize, capge); |
| | | } |
| | | |
| | | /** |
| | | * 更具仓库和材料获取库存 |
| | | * @return |
| | | */ |
| | | public FieldSetEntity findInventoryV(String warehouse_uuid, String material_uuid) { |
| | | return baseDao.getFieldSetByFilter("product_project_inventory_v","warehouse_uuid=? and uuid=?",new String[]{warehouse_uuid,material_uuid},false); |
| | | } |
| | | |
| | | /** |
| | | * 根据项目uuid获取项目分项树结构 |
| | | * @param uuid |
| | | * @return |
| | | */ |
| | | public JSONArray getTreeProjectItem(String uuid) { |
| | | DataTableEntity dtProjectItemize = baseDao.listTable(Cmnconst.PRODUCT_PROJECT_ITEM, "project_uuid=?", new Object[]{uuid}, new Object[]{CoreConst.UUID, Cmnconst.ITEMIZE, Cmnconst.ITEMIZE_CODE, Cmnconst.ITEMIZE_PARENT_CODE}); |
| | | DataTableEntity newDtProjectItem = BaseUtil.dataTableToTreeTable(dtProjectItemize, Cmnconst.ITEMIZE_CODE, Cmnconst.ITEMIZE_PARENT_CODE, null); |
| | | JSONArray objects = BaseUtil.dataTableEntityToJson(newDtProjectItem); |
| | | JSONObject json = new JSONObject(); |
| | | json.set("itemize", "项目分部分项"); |
| | | json.set("children", objects); |
| | | json.set("type", 1); |
| | | JSONArray array = new JSONArray(); |
| | | array.add(json); |
| | | return array; |
| | | } |
| | | } |