354798ggg
2023-08-06 25b96182ecf21d325ce560a9b9d1f4f3e0ef55b2
材料信息调整
已修改3个文件
84 ■■■■ 文件已修改
product-server-project-base/src/main/java/com/product/base/config/CmnConst.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
product-server-project-base/src/main/java/com/product/base/controller/MaterialManagerController.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
product-server-project-base/src/main/java/com/product/base/service/MaterialManagerService.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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";
    
    
}
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());
            }
            //判断表名是否正确
            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
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