From 25b96182ecf21d325ce560a9b9d1f4f3e0ef55b2 Mon Sep 17 00:00:00 2001 From: 354798ggg <1074825718@qq.com> Date: 星期日, 06 八月 2023 21:25:39 +0800 Subject: [PATCH] 材料信息调整 --- product-server-project-base/src/main/java/com/product/base/service/MaterialManagerService.java | 30 ++++++++++++++ product-server-project-base/src/main/java/com/product/base/controller/MaterialManagerController.java | 38 ++++++++++-------- product-server-project-base/src/main/java/com/product/base/config/CmnConst.java | 16 ++++--- 3 files changed, 59 insertions(+), 25 deletions(-) diff --git a/product-server-project-base/src/main/java/com/product/base/config/CmnConst.java b/product-server-project-base/src/main/java/com/product/base/config/CmnConst.java index 397ca10..3c3c789 100644 --- a/product-server-project-base/src/main/java/com/product/base/config/CmnConst.java +++ b/product-server-project-base/src/main/java/com/product/base/config/CmnConst.java @@ -10,15 +10,14 @@ //table public static final String PRODUCT_PROJECT_BASE_WAREHOUSE = "product_project_base_warehouse"; public static final String PRODUCT_PROJECT_BASE_MATERIAL = "product_project_base_material"; - public static final String PRODUCT_SYS_DICT="product_sys_dict"; - public static final String PRODUCT_PROJECT_BASE_PROJECT_TYPE="product_project_base_project_type"; - public static final String PRODUCT_PROJECT_BASE_PROJECT_ITEM="product_project_base_project_item"; + public static final String PRODUCT_PROJECT_BASE_PROJECT_TYPE = "product_project_base_project_type"; + public static final String PRODUCT_PROJECT_BASE_PROJECT_ITEM = "product_project_base_project_item"; + public static final String PRODUCT_PROJECT_BASE_MATERIAL_TYPE = "product_project_base_material_type"; //special variable - public static final String CPAGE="cpage"; - public static final String PAGESIZE="pagesize"; - public static final String MATERIAL_TYPE="material_type"; - public static final String MATERIAL_TYPE_="鏉愭枡绫诲瀷"; + public static final String CPAGE = "cpage"; + public static final String PAGESIZE = "pagesize"; + public static final String MATERIAL_TYPE = "material_type"; //field public static final String UUID="uuid"; @@ -27,6 +26,9 @@ public static final String ITEMIZW_PARENT_CODE="itemize_parent_code"; public static final String ITEMIZE_TYPE="itemize_type"; public static final String MATERIAL_CODE="material_code"; + public static final String MATERIAL_TYPE_NAME="material_type_name"; + public static final String MATERIAL_TYPE_VALUE="material_type_value"; + public static final String IS_USED="is_used"; } diff --git a/product-server-project-base/src/main/java/com/product/base/controller/MaterialManagerController.java b/product-server-project-base/src/main/java/com/product/base/controller/MaterialManagerController.java index eb88597..ed6ff1a 100644 --- a/product-server-project-base/src/main/java/com/product/base/controller/MaterialManagerController.java +++ b/product-server-project-base/src/main/java/com/product/base/controller/MaterialManagerController.java @@ -11,10 +11,8 @@ import com.product.base.config.BaseErrorCode; import com.product.base.config.CmnConst; import com.product.base.service.MaterialManagerService; -import com.product.core.config.CoreConst; import com.product.core.controller.support.AbstractBaseController; import com.product.core.entity.FieldSetEntity; -import com.product.core.entity.RequestParameterEntity; import com.product.module.sys.version.ApiVersion; import com.product.util.BaseUtil; @@ -42,21 +40,6 @@ @ApiVersion(1) public String getMaterialTypeTree(HttpServletRequest request, HttpServletResponse response) { try { - //鑾峰彇鍙傛暟 - FieldSetEntity fse = null; - Object bean=request.getAttribute(CoreConst.API_POST_REQUEST_DATA); - if(bean != null){ - RequestParameterEntity reqp=(RequestParameterEntity)bean; - fse = reqp.getFormData(); - } - //鍒ゆ柇涓婁紶鍙傛暟鏄惁涓虹┖ - if(bean == null || fse == null) { - return error(BaseErrorCode.SYSTEM_FORM_NODATA.getValue(), BaseErrorCode.SYSTEM_FORM_NODATA.getText()); - } - //鍒ゆ柇琛ㄥ悕鏄惁姝g‘ - if(!CmnConst.PRODUCT_PROJECT_BASE_MATERIAL.equals(fse.getTableName())) { - return error(BaseErrorCode.SYSTEM_TABLE_NODATA.getValue(), BaseErrorCode.SYSTEM_TABLE_NODATA.getText()); - } return OK_List(materialManagerService.getMaterialTypeTree()); } catch (Exception e) { return this.error(BaseErrorCode.PROJECT_BASE_MATERIAL_OPERATE_FAIL.getValue(), BaseErrorCode.PROJECT_BASE_MATERIAL_OPERATE_FAIL.getText()+e.getMessage()); @@ -64,6 +47,27 @@ } /** + * 淇濆瓨鏉愭枡绫诲瀷 + * @param request + * @param response + * @return + */ + @RequestMapping(value="/save-material-type/{version}", method = RequestMethod.POST) + @ApiVersion(1) + public String saveMaterialType(HttpServletRequest request, HttpServletResponse response) { + try { + //鑾峰彇鍙傛暟 + FieldSetEntity fse = BaseUtil.getFieldSetEntity(request, CmnConst.PRODUCT_PROJECT_BASE_MATERIAL_TYPE); + if (BaseUtil.strIsNull(fse.getString(CmnConst.MATERIAL_TYPE_NAME))) { + return error(BaseErrorCode.SYSTEM_FORM_COUNT.getValue(), BaseErrorCode.SYSTEM_FORM_COUNT.getText()); + } + return OK_Add(materialManagerService.saveMaterialType(fse)); + } catch (Exception e) { + return this.error(BaseErrorCode.PROJECT_BASE_MATERIAL_OPERATE_FAIL.getValue(), BaseErrorCode.PROJECT_BASE_MATERIAL_OPERATE_FAIL.getText()+e.getMessage()); + } + } + + /** * 鑾峰彇鎵�鏈夋潗鏂欎俊鎭� * @param request * @param response diff --git a/product-server-project-base/src/main/java/com/product/base/service/MaterialManagerService.java b/product-server-project-base/src/main/java/com/product/base/service/MaterialManagerService.java index 281a158..482b519 100644 --- a/product-server-project-base/src/main/java/com/product/base/service/MaterialManagerService.java +++ b/product-server-project-base/src/main/java/com/product/base/service/MaterialManagerService.java @@ -33,10 +33,38 @@ * @return */ public DataTableEntity getMaterialTypeTree() { - return baseDao.listTable(CmnConst.PRODUCT_SYS_DICT, "dict_name=?", new Object[] {CmnConst.MATERIAL_TYPE}); + return baseDao.listTable(CmnConst.PRODUCT_PROJECT_BASE_MATERIAL_TYPE); } /** + * 鏂板鏉愭枡绫诲瀷 + * @param fse + * @return + */ + public String saveMaterialType(FieldSetEntity fse) { + if (BaseUtil.strIsNull(fse.getUUID())) { + FieldSetEntity fseMaxValue = baseDao.getFieldSetEntityBySQL("SELECT (MAX(material_type_value) + 1) material_type_value FROM product_project_base_material_type", new Object[] {}, false); + fse.setValue(CmnConst.MATERIAL_TYPE_VALUE, fseMaxValue.getString(CmnConst.MATERIAL_TYPE_VALUE)); + } else { + if ("0".equals(fse.getString(CmnConst.IS_USED))) { + StringBuilder sb = new StringBuilder(256); + sb.append("SELECT SUM(num)num FROM ( ") + .append(" select COUNT(*)num from product_project_budget A where a.material_type=? ") + .append(" UNION ALL ") + .append(" select COUNT(*)num from product_project_base_material WHERE FIND_IN_SET (?,material_type)>0 ") + .append(" )A "); + FieldSetEntity fseCount = baseDao.getFieldSetEntityBySQL(sb.toString(), new Object[] { fse.getString("material_type_value"),fse.getString("material_type_value") }, false); + if (fseCount.getInteger("num")<1) { + baseDao.executeUpdate("DELETE FROM product_project_base_material_type WHERE uuid=?", new Object[] {fse.getUUID()}); + return fse.getUUID(); + } + } + } + baseDao.saveFieldSetEntity(fse); + return fse.getUUID(); + } + + /** * 鍒嗛〉鑾峰彇鏉愭枡淇℃伅 * @param fse * @return -- Gitblit v1.9.2