<NME> ServiceCodeConstant.java
<BEF> package com.java110.utils.constant;

/**
 * 服务数据状态常量
 * Created by wuxw on 2017/5/20.
 */
public class ServiceCodeConstant {

    /**
     * 查询菜单编码
     */
    public static final String SERVICE_CODE_QUERY_MENU_INFO = "query.menu.info";

    /**
     * 查询菜单编码名称
     */
    public static final String SERVICE_CODE_QUERY_MENU_INFO_NAME = "查询菜单";

    /**
     * 查询菜单编码
     */
    public static final String SERVICE_CODE_QUERY_USER_LOGIN = "query.user.loginInfo";

    /**
     * 查询菜单编码名称
     */
    public static final String SERVICE_CODE_QUERY_USER_LOGIN_NAME = "查询用户登录信息";


    /**
     * 查询菜单编码
     */
    public static final String SERVICE_CODE_QUERY_CONSOLE_TEMPLATE = "query.console.template";

    /**
     * 查询菜单编码名称
     */
    public static final String SERVICE_CODE_QUERY_CONSOLE_TEMPLATE_NAME = "查询模板信息";


    /**
     * 查询菜单编码
     */
    public static final String SERVICE_CODE_QUERY_CONSOLE_CACHE = "query.console.cache";

    /**
     * 查询菜单编码名称
     */
    public static final String SERVICE_CODE_QUERY_CONSOLE_CACHE_NAME = "查询单条缓存信息";


    /**
     * 查询菜单编码
     */
    public static final String SERVICE_CODE_QUERY_CONSOLE_TEMPLATE_COL = "query.console.templateCol";

    /**
     * 查询菜单编码名称
     */
    public static final String SERVICE_CODE_QUERY_CONSOLE_TEMPLATE_COL_NAME = "查询模板列信息";


    public static final String SERVICE_CODE = "SERVICE_CODE";
    public static final String SERVICE_CODE_NAME = "SERVICE_CODE_NAME";


    /**
     * 保存用户
     */
    public static final String SERVICE_CODE_SAVE_USER_INFO = "user.saveUser";

    /**
     * 修改用户信息
     */
    public static final String SERVICE_CODE_MODIFY_USER_INFO = "modify.user.info";

    /**
     * 停用用户信息
     */
    public static final String SERVICE_CODE_REMOVE_USER_INFO = "remove.user.info";

    /**
     * 恢复用户信息
     */
    public static final String SERVICE_CODE_RECOVER_USER_INFO = "recover.user.info";

    /**
     * 保存用户地址信息
     */
    public static final String SERVICE_CODE_SAVE_USER_ADDRESS = "save.user.address";

    /**
     * 用户打标
     */
    public static final String SERVICE_CODE_SAVE_USER_TAG = "save.user.tag";


    /**
     * 用户证件
     */
    public static final String SERVICE_CODE_SAVE_USER_CREDENTIALS = "save.user.credentials";

    /**
     * 保存用户默认权限
     */
    public static final String SERVICE_CODE_SAVE_USER_DEFAULT_PRIVILEGE = "save.user.defaultPrivilege";

    /**
     * 删除用户全部权限
     */
    public static final String SERVICE_CODE_DELETE_USER_ALL_PRIVILEGE = "delete.user.allPrivilege";


    /**
     * 保存用户默认权限
     */
    public static final String SERVICE_CODE_QUERY_USER_USERINFO = "query.user.userInfo";


    /**
     * 查询 用户私密信息
     */
    public static final String QUERY_USER_SECRET = "user.queryUserSecret";

    /**
     * 查询 用户
     */
    public static final String LIST_USERS = "user.listUsers";

    /**
     * 查询 组织管理
     */
    public static final String USER_SEND_SMS = "user.userSendSms";

    /**
     * 保存商户信息
     */
    public static final String SERVICE_CODE_SAVE_STORE_INFO = "save.store.info";

    /**
     * 保存商户信息
     */
    public static final String SERVICE_CODE_LIST_STORES_BY_COMMUNITY = "store.listStoresByCommunity";

    /**
     * 查询 商户
     */
    public static final String SERVICE_CODE_LIST_STORES = "store.listStores";

    /**
     * 修改商户信息
     */
    public static final String SERVICE_CODE_UPDATE_STORE_INFO = "update.store.info";

    /**
     * 删除商户信息
     */
    public static final String SERVICE_CODE_DELETE_STORE_INFO = "delete.store.info";

    /**
     * 添加商户员工
     */
    public static final String SERVICE_CODE_SAVE_STORE_USER = "save.store.user";


    /**
     * 删除商户员工
     */
    public static final String SERVICE_CODE_DELETE_STORE_USER = "delete.store.user";

    /**
     * 根据用户查询商户信息
     */
    public static final String SERVICE_CODE_QUERY_STORE_BYUSER = "query.store.byuser";

    /**
     * 根据商户用户信息
     */
    public static final String SERVICE_CODE_QUERY_STORE_USERS = "query.store.users";
    /**
     * 商户成员加入信息
     */
    public static final String SERVICE_CODE_MEMBER_JOINED_STORE = "member.joined.store";

    /**
     * 商户成员退出信息
     */
    public static final String SERVICE_CODE_MEMBER_QUIT_STORE = "member.quit.store";

    /**
     * 保存商品信息
     */
    public static final String SERVICE_CODE_SAVE_SHOP_INFO = "save.shop.info";

    /**
     * 修改商品信息
     */
    public static final String SERVICE_CODE_UPDATE_SHOP_INFO = "update.shop.info";

    /**
     * 删除商品信息
     */
    public static final String SERVICE_CODE_DELETE_SHOP_INFO = "delete.shop.info";

    /**
     * 购买商品
     */
    public static final String SERVICE_CODE_BUY_SHOP_INFO = "buy.shop.info";

    /**
     * 保存商品目录
     */
    public static final String SERVICE_CODE_SAVE_SHOP_CATALOG = "save.shop.catalog";

    /**
     * 修改商品目录
     */
    public static final String SERVICE_CODE_UPDATE_SHOP_CATALOG = "update.shop.catalog";


    /**
     * 修改商品目录
     */
    public static final String SERVICE_CODE_DELETE_SHOP_CATALOG = "delete.shop.catalog";

    /**
     * 保存评论
     */
    public static final String SERVICE_CODE_SAVE_COMMENT_INFO = "save.comment.info";

    /**
     * 删除评论
     */
    public static final String SERVICE_CODE_DELETE_COMMENT_INFO = "delete.comment.info";


    /**
     * 透传服务
     */
    public static final String SERVICE_CODE_DO_SERVICE_TRANSFER = "do.service.transfer";

    /**
     * 透传服务
     */
    public static final String SERVICE_CODE_SYSTEM_TRANSFER = "system.transfer";

    /**
     * cmd服务
     */
    public static final String SERVICE_CODE_SYSTEM_CMD = "system.cmd";

    /**
     * 订单类服务处理
     */
    public static final String SERVICE_CODE_DO_SERVICE_ORDER = "do.service.order";

    /**
     * 用户注册服务处理
     */
    public static final String SERVICE_CODE_USER_SERVICE_REGISTER = "user.service.register";

    /**
     * 用户登录服务处理
     */
    public static final String SERVICE_CODE_USER_SERVICE_LOGIN = "user.service.login";
    /**
     * 用户登录服务处理
     */
    public static final String SERVICE_CODE_PC_USER_LOGIN = "login.pcUserLogin";

    /**
     * 管理员免密登录
     */
    public static final String SERVICE_CODE_ADMIN_LOGIN_PROPERTY = "login.adminLoginProperty";

    /**
     * 用户登录服务处理
     */
    public static final String SERVICE_CODE_USER_LOGIN = "user.userLogin";

    /**
     * 用户退出登录服务处理
     */
    public static final String SERVICE_CODE_USER_SERVICE_LOGOUT = "user.service.logout";
    /**
     * 检查用户登录服务处理
     */
    public static final String SERVICE_CODE_CHECK_SERVICE_LOGIN = "check.service.login";

    /**
     * 检查用户登录服务处理
     */
    public static final String SERVICE_CODE_QUERY_USER_BY_NAME = "query.user.byName";


    /**
     * 查询出userIds 是商户员工ID的userId
     */
    public static final String SERVICE_CODE_QUERY_STOREUSER_BYUSERIDS = "query.storeUser.byUserIds";

    /**
     * 刷新缓存
     */
    public static final String SERVICE_CODE_CACHE_SERVICE_FLUSH = "cache.service.flush";


    /**
     * 添加员工 服务
     */
    public static final String SERVICE_CODE_USER_STAFF_ADD = "user.staff.add";



    /**
     * 添加员工 服务
     */
    public static final String SERVICE_CODE_USER_STAFF_MODIFY = "user.staff.modify";

    /**
     * 停用员工服务
     */
    public static final String SERVICE_CODE_USER_STAFF_DISABLE = "user.staff.disable";

    /**
     * 启用员工服务
     */
    public static final String SERVICE_CODE_USER_STAFF_ENABLE = "user.staff.enable";

    /**
     * 删除员工服务
     */
    public static final String SERVICE_CODE_USER_STAFF_DELETE = "user.staff.delete";

    /**
     * 查询 员工
     */
    public static final String SERVICE_CODE_QUERY_STAFF_INFOS = "query.staff.infos";

    /**
     * 查询 员工
     */
    public static final String SERVICE_CODE_QUERY_STAFF_BY_NAME = "query.staff.byName";

    /**
     * 修改员工密码
     */
    public static final String SERVICE_CODE_CHANGE_STAFF_PWD = "user.changeStaffPwd";

    /**
     * 修改重置密码
     */
    public static final String SERVICE_CODE_RESET_STAFF_PWD = "user.resetStaffPwd";

    /**
     * 保存商户信息
     */
    public static final String SERVICE_CODE_SAVE_COMMUNITY_INFO = "save.community.info";

    /**
     * 修改商户信息
     */
    public static final String SERVICE_CODE_UPDATE_COMMUNITY_INFO = "update.community.info";

    /**
     * 删除商户信息
     */
    public static final String SERVICE_CODE_DELETE_COMMUNITY_INFO = "delete.community.info";


    /**
     * 商户成员加入信息
     */
    public static final String SERVICE_CODE_MEMBER_JOINED_COMMUNITY = "member.join.community";

    /**
     * 商户成员退出信息
     */
    public static final String SERVICE_CODE_MEMBER_QUIT_COMMUNITY = "member.quit.community";


    public static final String SERVICE_CODE_SAVE_PROPERTY_INFO = "save.property.info";
    public static final String SERVICE_CODE_SAVE_PROPERTY_PHOTO = "save.property.photo";
    public static final String SERVICE_CODE_SAVE_PROPERTY_CERDENTIALS = "save.property.cerdentials";
    public static final String SERVICE_CODE_SAVE_PROPERTY_USER = "save.property.user";
    public static final String SERVICE_CODE_SAVE_PROPERTY_FEE = "save.property.fee";
    public static final String SERVICE_CODE_SAVE_PROPERTY_HOUSE = "save.property.house";
    public static final String SERVICE_CODE_UPDATE_PROPERTY_INFO = "update.property.info";
    public static final String SERVICE_CODE_UPDATE_PROPERTY_PHOTO = "update.property.photo";
    public static final String SERVICE_CODE_UPDATE_PROPERTY_CERDENTIALS = "update.property.cerdentials";
    public static final String SERVICE_CODE_UPDATE_PROPERTY_FEE = "update.property.fee";
    public static final String SERVICE_CODE_UPDATE_PROPERTY_HOUSE = "update.property.house";
    public static final String SERVICE_CODE_DELETE_PROPERTY_ATTR = "delete.property.attr";
    public static final String SERVICE_CODE_DELETE_PROPERTY_PHOTO = "delete.property.photo";
    public static final String SERVICE_CODE_DELETE_PROPERTY_CERDENTIALS = "delete.property.cerdentials";
    public static final String SERVICE_CODE_DELETE_PROPERTY_USER = "delete.property.user";
    public static final String SERVICE_CODE_DELETE_PROPERTY_HOUSE = "delete.property.house";
    /**
     * 用工是否有物业信息
     */
    public static final String SERVICE_CODE_CHECK_PROPERTY_STAFFHASPROPERTY = "check.property.staffHasProperty";


    public static final String SERVICE_CODE_SAVE_AGENT_INFO = "save.agent.info";
    public static final String SERVICE_CODE_SAVE_AGENT_PHOTO = "save.agent.photo";
    public static final String SERVICE_CODE_SAVE_AGENT_CERDENTIALS = "save.agent.cerdentials";
    public static final String SERVICE_CODE_SAVE_AGENT_USER = "save.agent.user";
    public static final String SERVICE_CODE_UPDATE_AGENT_INFO = "update.agent.info";
    public static final String SERVICE_CODE_UPDATE_AGENT_PHOTO = "update.agent.photo";
    public static final String SERVICE_CODE_UPDATE_AGENT_CERDENTIALS = "update.agent.cerdentials";
    public static final String SERVICE_CODE_DELETE_AGENT_ATTR = "delete.agent.attr";
    public static final String SERVICE_CODE_DELETE_AGENT_PHOTO = "delete.agent.photo";
    public static final String SERVICE_CODE_DELETE_AGENT_CERDENTIALS = "delete.agent.cerdentials";
    public static final String SERVICE_CODE_DELETE_AGENT_USER = "delete.agent.user";


    //检查用户是否有权限
    public static final String SERVICE_CODE_CHECK_USER_HAS_PRIVILEGE = "check.user.hasPrivilege";

    //检查用户是否有权限
    public static final String SERVICE_CODE_CHECK_USER_HAS_RESOURCE = "basePrivilege.CheckUserHasResourceListener";


    //查询小区楼
    public static final String SERVICE_CODE_QUERY_FLOOR = "floor.queryFloors";

    // 保存小区楼信息
    public static final String SERVICE_CODE_SAVE_FLOOR = "floor.saveFloor";

    // 编辑小区楼信息
    public static final String SERVICE_CODE_EDIT_FLOOR = "floor.editFloor";

    //删除小区楼信息
    public static final String SERVICE_CODE_DELETE_FLOOR = "floor.deleteFloor";

    //查询小区单元
    public static final String SERVICE_CODE_QUERY_UNITS = "unit.queryUnits";

    //保存小区单元
    public static final String SERVICE_CODE_SAVE_UNIT = "unit.saveUnit";

    //修改小区单元
    public static final String SERVICE_CODE_UPDATE_UNIT = "unit.updateUnit";


    //删除小区单元
    public static final String SERVICE_CODE_DELETE_UNIT = "unit.deleteUnit";


    //保存房屋
    public static final String SERVICE_CODE_SAVE_ROOM = "room.saveRoom";


    //保存商铺
    public static final String SERVICE_CODE_SAVE_SHOPS = "room.saveShops";


    //售卖房屋
    public static final String SERVICE_CODE_SELL_ROOM = "room.sellRoom";
    //绑定业主（租客） 和商铺关系
    public static final String SERVICE_CODE_SAVE_OWNER_SHOPS = "room.saveOwnerShops";
    //退房
    public static final String SERVICE_CODE_EXIT_ROOM = "room.exitRoom";


    //查询房屋信息
    public static final String SERVICE_CODE_QUERY_ROOMS = "room.queryRooms";

    //查询房屋信息
    public static final String SERVICE_CODE_QUERY_ROOMS_BY_OWNER = "room.queryRoomsByOwner";

    //查询房屋信息
    public static final String SERVICE_CODE_QUERY_ROOMS_WITHOUT_SELL = "room.queryRoomsWithOutSell";

    //查询房屋信息
    public static final String SERVICE_CODE_QUERY_ROOMS_WITH_SELL = "room.queryRoomsWithSell";

    //修改房屋信息
    public static final String SERVICE_CODE_UPDATE_ROOMS = "room.updateRoom";

    //修改房屋信息
    public static final String SERVICE_CODE_DELETE_ROOMS = "room.deleteRoom";


    //查询业主
    public static final String SERVICE_CODE_QUERY_OWNER = "owner.queryOwners";

    //查询业主车辆
    public static final String SERVICE_CODE_QUERY_OWNER_CAR = "owner.queryOwnerCars";

    //删除业主车辆
    public static final String SERVICE_CODE_DELETE_OWNER_CAR = "owner.deleteOwnerCars";

    //添加业主车辆
    public static final String SERVICE_CODE_SAVE_OWNER_CAR = "owner.saveOwnerCar";

    //添加业主车辆
    public static final String SERVICE_CODE_SAVE_OWNER_CAR_MEMBER = "owner.saveOwnerCarMember";


    //设置费用
    public static final String SERVICE_CODE_SAVE_ROOM_CREATE_FEE = "fee.saveRoomCreateFee";

    //设置房屋费用
    public static final String SERVICE_CODE_DELETE_FEE = "fee.deleteFee";

    //查询业主成员
    public static final String SERVICE_CODE_QUERY_OWNER_MEMBER = "owner.queryOwnerMembers";

    // 保存业主信息
    public static final String SERVICE_CODE_SAVE_OWNER = "owner.saveOwner";

    // App 用户绑定业主接口
    public static final String SERVICE_CODE_APP_USER_BINDING_OWNER = "owner.appUserBindingOwner";

    // App 业主注册接口
    public static final String SERVICE_CODE_OWNER_REGISTER_WX_PHOTO = "owner.ownerRegisterWxPhoto";
    // App 业主注册接口
    public static final String SERVICE_CODE_OWNER_REGISTER = "owner.ownerRegister";


    /**
     * 查询 审核业主绑定
     */
    public static final String LIST_AUDIT_APPUSERBINDINGOWNERS = "owner.listAuditAppUserBindingOwners";

    /**
     * 查询 审核业主绑定
     */
    public static final String LIST_APPUSERBINDINGOWNERS = "owner.listAppUserBindingOwners";

    /**
     * 查询 业主门禁
     */
    public static final String LIST_OWNER_MACHINES = "owner.listOwnerMachines";


    /**
     * 修改 审核业主绑定
     */
    public static final String UPDATE_APPUSERBINDINGOWNER = "owner.updateAppUserBindingOwner";
    public static final String DELETE_APPUSERBINDINGOWNER = "owner.deleteAppUserBindingOwner";
    public static final String REFRESH_APP_USER_BINDING_OWNER_OPEN_ID = "owner.refreshAppUserBindingOwnerOpenId";


    public static final String SERVICE_CODE_APPLICATION_KEY = "owner.applicationKey";

    // 编辑业主信息
    public static final String SERVICE_CODE_EDIT_OWNER = "owner.editOwner";

    // 上传业主照片
    public static final String SERVICE_CODE_UPLOAD_OWNER_PHOTO = "owner.uploadOwnerPhoto";

    //删除业主信息
    public static final String SERVICE_CODE_DELETE_OWNER = "owner.deleteOwner";

    //查询费用配置
    public static final String SERVICE_CODE_QUERY_FEE_CONFIG = "fee.queryFeeConfig";
    public static final String SERVICE_CODE_QUERY_FEE_DETAIL = "fee.queryFeeDetail";
    public static final String SERVICE_CODE_QUERY_FEE = "fee.queryFee";

    //查询欠费数据
    public static final String SERVICE_CODE_QUERY_ARREARS_FEE = "fee.queryArrearsFee";

    //查询首页统计信息
    public static final String SERVICE_CODE_QUERY_INDEX_STATISTIC = "index.queryIndexStatistic";

    //查询首页待办
    public static final String SERVICE_CODE_QUERY_INDEX_TODO_TASK = "index.queryIndexTodoTask";

    //查询费用配置 根据停车位
    public static final String SERVICE_CODE_QUERY_FEE_BY_PARKING_SPACE = "fee.queryFeeByParkingSpace";

    //查询费用配置 根据车辆进出场
    public static final String SERVICE_CODE_QUERY_FEE_BY_CAR_INOUT = "fee.queryFeeByCarInout";

    //保存费用配置
    public static final String SERVICE_CODE_SAVE_FEE_CONFIG = "fee.saveFeeConfig";

    //修改费用配置
    public static final String SERVICE_CODE_UPDATE_FEE_CONFIG = "fee.updateFeeConfig";

    //缴费
    public static final String SERVICE_CODE_PAY_FEE = "fee.payFee";

    //欠费缴费
    public static final String SERVICE_CODE_PAY_OWE_FEE = "fee.payOweFee";

    //设置费用
    public static final String SERVICE_CODE_SAVE_ROOM_CREATE_FEE = "fee.saveRoomCreateFee";
    public static final String SERVICE_CODE_SAVE_CONTRACT_CREATE_FEE = "fee.saveContractCreateFee";
    //设置费用
    public static final String SERVICE_CODE_SAVE_PARKING_SPEC_CREATE_FEE = "fee.saveParkingSpaceCreateFee";

    //设置房屋费用
    public static final String SERVICE_CODE_DELETE_FEE = "fee.deleteFee";

    //修改房屋费用
    public static final String SERVICE_CODE_UPDATE_FEE = "fee.updateFee";

    //修改房屋费用
    public static final String SERVICE_CODE_FINISH_FEE = "fee.finishFee";

    //预交费
    public static final String SERVICE_CODE_PAY_FEE_PRE = "fee.payFeePre";
    /**
     * 临时停车费
     */
    public static final String SERVICE_CODE_PAY_FEE_PRE_TEMP_CAR_INOUT = "fee.payFeePreTempCarInout";

    //交费通知
    public static final String SERVICE_CODE_PAY_CONFIRM_PRE = "fee.payFeeConfirm";

    //租赁服务费
    public static final String SERVICE_CODE_RENTING_PAY_CONFIRM_PRE = "fee.rentingPayFeeConfirm";

    //欠费
    public static final String SERVICE_CODE_OWE_FEE_PAY_CONFIRM_PRE = "fee.oweFeePayFeeConfirm";


    //查询停车位
    public static final String SERVICE_CODE_QUERY_PARKING_SPACE = "parkingSpace.queryParkingSpaces";


    //查询停车位
    public static final String SERVICE_CODE_QUERY_PARKING_SPACE_BY_OWNER = "parkingSpace.queryParkingSpacesByOwner";


    // 保存停车位信息
    public static final String SERVICE_CODE_SAVE_PARKING_SPACE = "parkingSpace.saveParkingSpace";

    // 编辑停车位信息
    public static final String SERVICE_CODE_EDIT_PARKING_SPACE = "parkingSpace.editParkingSpace";

    //删除停车位信息
    public static final String SERVICE_CODE_DELETE_PARKING_SPACE = "parkingSpace.deleteParkingSpace";


    // 保存停车位信息
    public static final String SERVICE_CODE_SELL_PARKING_SPACE = "parkingSpace.sellParkingSpace";


    // 保存停车位信息
    public static final String SERVICE_CODE_EXIT_PARKING_SPACE = "parkingSpace.exitParkingSpace";

    //查询用例配置
    public static final String SERVICE_CODE_QUERY_DEMO_CONFIG = "demo.queryDemoConfig";

    //保存用例配置
    public static final String SERVICE_CODE_SAVE_DEMO_CONFIG = "demo.saveDemoConfig";


    // 保存BUSINESSTYPE信息
    public static final String SERVICE_CODE_EXIT_BUSINESSTYPE_SPACE = "business.exitBusinessTypeSpace";

    //查询BUSINESSTYPE配置
    public static final String SERVICE_CODE_QUERY_BUSINESSTYPE_CONFIG = "business.queryBusinessTypeConfig";

    //保存BUSINESSTYPE配置
    public static final String SERVICE_CODE_SAVE_BUSINESSTYPE_CONFIG = "business.saveBusinessTypeConfig";

    /**
     * 查询小区信息
     */
    public static final String SERVICE_CODE_LIST_COMMUNITYS = "community.listCommunitys";

    /**
     * 查询我的小区信息
     */
    public static final String SERVICE_CODE_LIST_MY_ENTERED_COMMUNITYS = "community.listMyEnteredCommunitys";


    /**
     * 查询需要审核入驻小区商户
     */
    public static final String SERVICE_CODE_LIST_AUDIT_ENTER_COMMUNITYS = "community.listAuditEnterCommunitys";

    /**
     * 保存小区
     */
    public static final String SERVICE_CODE_SAVE_COMMUNITY = "community.saveCommunity";


    /**
     * 修改小区
     */
    public static final String SERVICE_CODE_UPDATE_COMMUNITY = "community.updateCommunity";
    /**
     * 删除小区community.deleteCommunity
     */
    public static final String SERVICE_CODE_DELETE_COMMUNITY = "community.deleteCommunity";

    public static final String SERVICE_CODE_AUDIT_COMMUNITY = "community.auditCommunity";
    public static final String SERVICE_CODE_AUDIT_ENTER_COMMUNITY = "community.auditEnterCommunity";


    /**
     * 保存公告
     */
    public static final String SERVICE_CODE_SAVE_NOTICE = "notice.saveNotice";


    /**
     * 修改公告
     */
    public static final String SERVICE_CODE_UPDATE_NOTICE = "notice.updateNotice";
    /**
     * 删除公告community.deleteCommunity
     */
    public static final String SERVICE_CODE_DELETE_NOTICE = "notice.deleteNotice";

    public static final String SERVICE_CODE_LIST_NOTICES = "notice.listNotices";

    public static final String SERVICE_CODE_LIST_MSGS = "msg.listMsg";
    public static final String SERVICE_CODE_READ_MSGS = "msg.readMsg";


    //msg.readMsg

    /**
     * 查询数据字典
     */
    public static final String SERVICE_CODE_DICT_TYPE = "dict.queryDict";

    /**
     * 查询 地区
     */
    public static final String LIST_AREAS = "area.listAreas";


    //查询停车位
    public static final String SERVICE_CODE_QUERY_PARKING_SPACE_CAR = "parkingSpace.queryParkingSpaceCars";


    /**
     * 保存或修改用户属性
     */
    public static final String SERVICE_CODE_SAVE_UPDATE_USER_ATTR = "user.saveOrUpdateUserAttr";

}

<MSG> 停车费功能开发完成

<DFF> @@ -499,6 +499,8 @@ public class ServiceCodeConstant {
 
     //设置费用
     public static final String SERVICE_CODE_SAVE_ROOM_CREATE_FEE = "fee.saveRoomCreateFee";
+    //设置费用
+    public static final String SERVICE_CODE_SAVE_PARKING_SPEC_CREATE_FEE = "fee.saveParkingSpaceCreateFee";
 
     //设置房屋费用
     public static final String SERVICE_CODE_DELETE_FEE = "fee.deleteFee";

{'commit': 'diff --git a/Api/src/main/java/com/java110/api/listener/fee/ListParkingSpacesWhereFeeSetListener.java b/Api/src/main/java/com/java110/api/listener/fee/ListParkingSpacesWhereFeeSetListener.java\nindex 13d380a91..418dabf43 100644\n--- a/Api/src/main/java/com/java110/api/listener/fee/ListParkingSpacesWhereFeeSetListener.java\n+++ b/Api/src/main/java/com/java110/api/listener/fee/ListParkingSpacesWhereFeeSetListener.java\n@@ -80,6 +80,7 @@ public class ListParkingSpacesWhereFeeSetListener extends AbstractServiceApiList\n         }\n \n         ParkingSpaceDto parkingSpaceDto = BeanConvertUtil.covertBean(reqJson, ParkingSpaceDto.class);\n+        parkingSpaceDto.setWithOwnerCar(true);\n         //查询总记录数\n         int total = parkingSpaceInnerServiceSMOImpl.queryParkingSpacesCount(BeanConvertUtil.covertBean(reqJson, ParkingSpaceDto.class));\n         apiParkingSpaceVo.setTotal(total);\n@@ -176,6 +177,7 @@ public class ListParkingSpacesWhereFeeSetListener extends AbstractServiceApiList\n                     tmpParkingSpaceDto.setOwnerName(tmp.getOwnerName());\n                     tmpParkingSpaceDto.setIdCard(tmp.getIdCard());\n                     tmpParkingSpaceDto.setLink(tmp.getLink());\n+                    tmpParkingSpaceDto.setCarNum(tmp.getCarNum());\n                 }\n             }\n         }\ndiff --git a/Api/src/main/java/com/java110/api/listener/fee/SaveParkingSpaceCreateFeeListener.java b/Api/src/main/java/com/java110/api/listener/fee/SaveParkingSpaceCreateFeeListener.java\nnew file mode 100644\nindex 000000000..3db78c79e\n--- /dev/null\n+++ b/Api/src/main/java/com/java110/api/listener/fee/SaveParkingSpaceCreateFeeListener.java\n@@ -0,0 +1,211 @@\n+package com.java110.api.listener.fee;\n+\n+import com.alibaba.fastjson.JSONArray;\n+import com.alibaba.fastjson.JSONObject;\n+import com.java110.api.listener.AbstractServiceApiListener;\n+import com.java110.core.annotation.Java110Listener;\n+import com.java110.core.context.DataFlowContext;\n+import com.java110.core.smo.fee.IFeeConfigInnerServiceSMO;\n+import com.java110.core.smo.parkingSpace.IParkingSpaceInnerServiceSMO;\n+import com.java110.dto.fee.FeeConfigDto;\n+import com.java110.dto.parking.ParkingSpaceDto;\n+import com.java110.entity.center.AppService;\n+import com.java110.event.service.api.ServiceDataFlowEvent;\n+import com.java110.utils.constant.BusinessTypeConstant;\n+import com.java110.utils.constant.CommonConstant;\n+import com.java110.utils.constant.ServiceCodeConstant;\n+import com.java110.utils.util.Assert;\n+import com.java110.utils.util.DateUtil;\n+import org.slf4j.Logger;\n+import org.slf4j.LoggerFactory;\n+import org.springframework.beans.factory.annotation.Autowired;\n+import org.springframework.http.HttpHeaders;\n+import org.springframework.http.HttpMethod;\n+import org.springframework.http.HttpStatus;\n+import org.springframework.http.ResponseEntity;\n+\n+import java.util.List;\n+\n+/**\n+ * @ClassName SaveParkingSpaceCreateFeeListener\n+ * @Description TODO\n+ * @Author wuxw\n+ * @Date 2020/1/31 15:57\n+ * @Version 1.0\n+ * add by wuxw 2020/1/31\n+ **/\n+@Java110Listener("saveParkingSpaceCreateFeeListener")\n+public class SaveParkingSpaceCreateFeeListener extends AbstractServiceApiListener {\n+    private static Logger logger = LoggerFactory.getLogger(SaveParkingSpaceCreateFeeListener.class);\n+\n+    private static final int DEFAULT_ADD_FEE_COUNT = 200;\n+\n+    @Autowired\n+    private IParkingSpaceInnerServiceSMO parkingSpaceInnerServiceSMOImpl;\n+\n+    @Autowired\n+    private IFeeConfigInnerServiceSMO feeConfigInnerServiceSMOImpl;\n+\n+    @Override\n+    public String getServiceCode() {\n+        return ServiceCodeConstant.SERVICE_CODE_SAVE_PARKING_SPEC_CREATE_FEE;\n+    }\n+\n+    @Override\n+    public HttpMethod getHttpMethod() {\n+        return HttpMethod.POST;\n+    }\n+\n+    @Override\n+    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {\n+        // super.validatePageInfo(pd);\n+        Assert.hasKeyAndValue(reqJson, "communityId", "未包含小区ID");\n+        Assert.hasKeyAndValue(reqJson, "locationTypeCd", "未包含收费类型");\n+        Assert.hasKeyAndValue(reqJson, "locationObjId", "未包含收费对象");\n+        Assert.hasKeyAndValue(reqJson, "configId", "未包含收费项目");\n+        Assert.hasKeyAndValue(reqJson, "billType", "未包含出账类型");\n+        Assert.hasKeyAndValue(reqJson, "storeId", "未包含商户ID");\n+    }\n+\n+    @Override\n+    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {\n+        logger.debug("ServiceDataFlowEvent : {}", event);\n+        List<ParkingSpaceDto> parkingSpaceDtos = null;\n+        FeeConfigDto feeConfigDto = new FeeConfigDto();\n+        feeConfigDto.setCommunityId(reqJson.getString("communityId"));\n+        feeConfigDto.setConfigId(reqJson.getString("configId"));\n+        List<FeeConfigDto> feeConfigDtos = feeConfigInnerServiceSMOImpl.queryFeeConfigs(feeConfigDto);\n+        Assert.listOnlyOne(feeConfigDtos, "当前费用项ID不存在或存在多条" + reqJson.getString("configId"));\n+        reqJson.put("feeTypeCd", feeConfigDtos.get(0).getFeeTypeCd());\n+        reqJson.put("feeFlag", feeConfigDtos.get(0).getFeeFlag());\n+        //判断收费范围\n+        ParkingSpaceDto parkingSpaceDto = new ParkingSpaceDto();\n+        parkingSpaceDto.setState(reqJson.containsKey("parkingSpaceState") ? reqJson.getString("parkingSpaceState") : "");\n+        if (reqJson.containsKey("parkingSpaceState") && "SH".equals(reqJson.getString("parkingSpaceState"))) {\n+            parkingSpaceDto.setState("");\n+            parkingSpaceDto.setStates(new String[]{"S", "H"});\n+        }\n+        if ("1000".equals(reqJson.getString("locationTypeCd"))) {//小区\n+\n+            parkingSpaceDto.setCommunityId(reqJson.getString("communityId"));\n+            parkingSpaceDtos = parkingSpaceInnerServiceSMOImpl.queryParkingSpaces(parkingSpaceDto);\n+\n+        } else if ("2000".equals(reqJson.getString("locationTypeCd"))) {//停车场\n+            //ParkingSpaceDto parkingSpaceDto = new ParkingSpaceDto();\n+            parkingSpaceDto.setCommunityId(reqJson.getString("communityId"));\n+            parkingSpaceDto.setPaId(reqJson.getString("locationObjId"));\n+            parkingSpaceDtos = parkingSpaceInnerServiceSMOImpl.queryParkingSpaces(parkingSpaceDto);\n+\n+        } else if ("3000".equals(reqJson.getString("locationTypeCd"))) {//停车位\n+            //ParkingSpaceDto parkingSpaceDto = new ParkingSpaceDto();\n+            parkingSpaceDto.setCommunityId(reqJson.getString("communityId"));\n+            parkingSpaceDto.setPsId(reqJson.getString("locationObjId"));\n+            parkingSpaceDtos = parkingSpaceInnerServiceSMOImpl.queryParkingSpaces(parkingSpaceDto);\n+        } else {\n+            throw new IllegalArgumentException("收费范围错误");\n+        }\n+\n+        if (parkingSpaceDtos == null || parkingSpaceDtos.size() < 1) {\n+            throw new IllegalArgumentException("未查到需要付费的房屋");\n+        }\n+\n+        dealParkingSpaceFee(parkingSpaceDtos, context, reqJson, event);\n+    }\n+\n+    private void dealParkingSpaceFee(List<ParkingSpaceDto> parkingSpaceDtos, DataFlowContext context, JSONObject reqJson, ServiceDataFlowEvent event) {\n+\n+        AppService service = event.getAppService();\n+\n+\n+        HttpHeaders header = new HttpHeaders();\n+        context.getRequestCurrentHeaders().put(CommonConstant.HTTP_ORDER_TYPE_CD, "D");\n+        JSONArray businesses = new JSONArray();\n+        JSONObject paramInObj = null;\n+        ResponseEntity<String> responseEntity = null;\n+        int failParkingSpaces = 0;\n+        //添加单元信息\n+        for (int parkingSpaceIndex = 0; parkingSpaceIndex < parkingSpaceDtos.size(); parkingSpaceIndex++) {\n+\n+            businesses.add(addFee(parkingSpaceDtos.get(parkingSpaceIndex), reqJson, context));\n+\n+            if (parkingSpaceIndex % DEFAULT_ADD_FEE_COUNT == 0 && parkingSpaceIndex != 0) {\n+                paramInObj = super.restToCenterProtocol(businesses, context.getRequestCurrentHeaders());\n+                //将 rest header 信息传递到下层服务中去\n+                super.freshHttpHeader(header, context.getRequestCurrentHeaders());\n+\n+                responseEntity = this.callService(context, service.getServiceCode(), paramInObj);\n+\n+                if (responseEntity.getStatusCode() != HttpStatus.OK) {\n+                    failParkingSpaces += businesses.size();\n+                }\n+\n+                businesses = new JSONArray();\n+            }\n+        }\n+        if (businesses != null && businesses.size() > 0) {\n+\n+            paramInObj = super.restToCenterProtocol(businesses, context.getRequestCurrentHeaders());\n+            //将 rest header 信息传递到下层服务中去\n+            super.freshHttpHeader(header, context.getRequestCurrentHeaders());\n+            responseEntity = this.callService(context, service.getServiceCode(), paramInObj);\n+            if (responseEntity.getStatusCode() != HttpStatus.OK) {\n+                failParkingSpaces += businesses.size();\n+            }\n+        }\n+\n+        JSONObject paramOut = new JSONObject();\n+        paramOut.put("totalParkingSpace", parkingSpaceDtos.size());\n+        paramOut.put("successParkingSpace", parkingSpaceDtos.size() - failParkingSpaces);\n+        paramOut.put("errorParkingSpace", failParkingSpaces);\n+\n+        responseEntity = new ResponseEntity<>(paramOut.toJSONString(), HttpStatus.OK);\n+\n+        context.setResponseEntity(responseEntity);\n+    }\n+\n+    /**\n+     * 添加物业费用\n+     *\n+     * @param paramInJson     接口调用放传入入参\n+     * @param dataFlowContext 数据上下文\n+     * @return 订单服务能够接受的报文\n+     */\n+    private JSONObject addFee(ParkingSpaceDto parkingSpaceDto, JSONObject paramInJson, DataFlowContext dataFlowContext) {\n+\n+\n+        JSONObject business = JSONObject.parseObject("{\\"datas\\":{}}");\n+        business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_FEE_INFO);\n+        business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ + 1);\n+        business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);\n+        JSONObject businessUnit = new JSONObject();\n+        businessUnit.put("feeId", "-1");\n+        businessUnit.put("configId", paramInJson.getString("configId"));\n+        businessUnit.put("feeTypeCd", paramInJson.getString("feeTypeCd"));\n+        businessUnit.put("incomeObjId", paramInJson.getString("storeId"));\n+        businessUnit.put("amount", "-1.00");\n+        businessUnit.put("startTime", DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));\n+        businessUnit.put("endTime", DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));\n+        businessUnit.put("communityId", paramInJson.getString("communityId"));\n+        businessUnit.put("payerObjId", parkingSpaceDto.getPsId());\n+        businessUnit.put("payerObjType", "6666");\n+        businessUnit.put("feeFlag", paramInJson.getString("feeFlag"));\n+        businessUnit.put("state", "2008001");\n+        businessUnit.put("userId", dataFlowContext.getRequestCurrentHeaders().get(CommonConstant.HTTP_USER_ID));\n+        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessFee", businessUnit);\n+\n+        return business;\n+    }\n+\n+    @Override\n+    public int getOrder() {\n+        return DEFAULT_ORDER;\n+    }\n+\n+    public IParkingSpaceInnerServiceSMO getParkingSpaceInnerServiceSMOImpl() {\n+        return parkingSpaceInnerServiceSMOImpl;\n+    }\n+\n+    public void setParkingSpaceInnerServiceSMOImpl(IParkingSpaceInnerServiceSMO parkingSpaceInnerServiceSMOImpl) {\n+        this.parkingSpaceInnerServiceSMOImpl = parkingSpaceInnerServiceSMOImpl;\n+    }\n+}\ndiff --git a/WebService/src/main/java/com/java110/web/components/fee/ListParkingSpaceFeeComponent.java b/WebService/src/main/java/com/java110/web/components/fee/ListParkingSpaceFeeComponent.java\nnew file mode 100644\nindex 000000000..954620939\n--- /dev/null\n+++ b/WebService/src/main/java/com/java110/web/components/fee/ListParkingSpaceFeeComponent.java\n@@ -0,0 +1,75 @@\n+package com.java110.web.components.fee;\n+\n+\n+import com.java110.core.context.IPageData;\n+import com.java110.web.smo.feeConfig.IDeleteFeeSMO;\n+import com.java110.web.smo.feeConfig.IListFeeConfigsSMO;\n+import com.java110.web.smo.feeConfig.IListFeeSMO;\n+import org.springframework.beans.factory.annotation.Autowired;\n+import org.springframework.http.ResponseEntity;\n+import org.springframework.stereotype.Component;\n+\n+\n+/**\n+ * 费用项组件管理类\n+ * <p>\n+ * add by wuxw\n+ * <p>\n+ * 2019-06-29\n+ */\n+@Component("listParkingSpaceFee")\n+public class ListParkingSpaceFeeComponent {\n+\n+    @Autowired\n+    private IListFeeConfigsSMO listFeeConfigsSMOImpl;\n+\n+    @Autowired\n+    private IListFeeSMO listFeeSMOImpl;\n+\n+    @Autowired\n+    private IDeleteFeeSMO deleteFeeSMOImpl;\n+\n+    /**\n+     * 查询费用项列表\n+     *\n+     * @param pd 页面数据封装\n+     * @return 返回 ResponseEntity 对象\n+     */\n+    public ResponseEntity<String> list(IPageData pd) {\n+        return listFeeSMOImpl.list(pd);\n+    }\n+    /**\n+     * 查询费用项列表\n+     *\n+     * @param pd 页面数据封装\n+     * @return 返回 ResponseEntity 对象\n+     */\n+    public ResponseEntity<String> deleteFee(IPageData pd) {\n+        return deleteFeeSMOImpl.deleteFee(pd);\n+    }\n+\n+\n+    public IListFeeConfigsSMO getListFeeConfigsSMOImpl() {\n+        return listFeeConfigsSMOImpl;\n+    }\n+\n+    public void setListFeeConfigsSMOImpl(IListFeeConfigsSMO listFeeConfigsSMOImpl) {\n+        this.listFeeConfigsSMOImpl = listFeeConfigsSMOImpl;\n+    }\n+\n+    public IListFeeSMO getListFeeSMOImpl() {\n+        return listFeeSMOImpl;\n+    }\n+\n+    public void setListFeeSMOImpl(IListFeeSMO listFeeSMOImpl) {\n+        this.listFeeSMOImpl = listFeeSMOImpl;\n+    }\n+\n+    public IDeleteFeeSMO getDeleteFeeSMOImpl() {\n+        return deleteFeeSMOImpl;\n+    }\n+\n+    public void setDeleteFeeSMOImpl(IDeleteFeeSMO deleteFeeSMOImpl) {\n+        this.deleteFeeSMOImpl = deleteFeeSMOImpl;\n+    }\n+}\ndiff --git a/WebService/src/main/java/com/java110/web/components/fee/ParkingSpaceCreateFeeAddComponent.java b/WebService/src/main/java/com/java110/web/components/fee/ParkingSpaceCreateFeeAddComponent.java\nnew file mode 100644\nindex 000000000..8f505768e\n--- /dev/null\n+++ b/WebService/src/main/java/com/java110/web/components/fee/ParkingSpaceCreateFeeAddComponent.java\n@@ -0,0 +1,83 @@\n+package com.java110.web.components.fee;\n+\n+\n+import com.java110.core.context.IPageData;\n+import com.java110.web.smo.feeConfig.IListFeeConfigsSMO;\n+import com.java110.web.smo.feeConfig.IParkingSpaceCreateFeeSMO;\n+import com.java110.web.smo.feeConfig.IRoomCreateFeeSMO;\n+import com.java110.web.smo.parkingArea.IListParkingAreasSMO;\n+import org.springframework.beans.factory.annotation.Autowired;\n+import org.springframework.http.ResponseEntity;\n+import org.springframework.stereotype.Component;\n+\n+\n+/**\n+ * 费用项组件管理类\n+ * <p>\n+ * add by wuxw\n+ * <p>\n+ * 2019-06-29\n+ */\n+@Component("parkingSpaceCreateFeeAdd")\n+public class ParkingSpaceCreateFeeAddComponent {\n+\n+    @Autowired\n+    private IListFeeConfigsSMO listFeeConfigsSMOImpl;\n+\n+    @Autowired\n+    private IParkingSpaceCreateFeeSMO parkingSpaceCreateFeeSMOImpl;\n+\n+    @Autowired\n+    private IListParkingAreasSMO listParkingAreasSMOImpl;\n+\n+\n+\n+    /**\n+     * 查询费用项列表\n+     *\n+     * @param pd 页面数据封装\n+     * @return 返回 ResponseEntity 对象\n+     */\n+    public ResponseEntity<String> list(IPageData pd) {\n+        return listFeeConfigsSMOImpl.listFeeConfigs(pd);\n+    }\n+\n+\n+    public ResponseEntity<String> listParkingArea(IPageData pd){\n+        return listParkingAreasSMOImpl.listParkingAreas(pd);\n+    }\n+\n+    /**\n+     * 批量创建费用\n+     * @param pd\n+     * @return\n+     */\n+    public ResponseEntity<String> save(IPageData pd) {\n+        return parkingSpaceCreateFeeSMOImpl.createFee(pd);\n+    }\n+\n+    public IListFeeConfigsSMO getListFeeConfigsSMOImpl() {\n+        return listFeeConfigsSMOImpl;\n+    }\n+\n+    public void setListFeeConfigsSMOImpl(IListFeeConfigsSMO listFeeConfigsSMOImpl) {\n+        this.listFeeConfigsSMOImpl = listFeeConfigsSMOImpl;\n+    }\n+\n+    public IParkingSpaceCreateFeeSMO getParkingSpaceCreateFeeSMOImpl() {\n+        return parkingSpaceCreateFeeSMOImpl;\n+    }\n+\n+    public void setParkingSpaceCreateFeeSMOImpl(IParkingSpaceCreateFeeSMO parkingSpaceCreateFeeSMOImpl) {\n+        this.parkingSpaceCreateFeeSMOImpl = parkingSpaceCreateFeeSMOImpl;\n+    }\n+\n+    public IListParkingAreasSMO getListParkingAreasSMOImpl() {\n+        return listParkingAreasSMOImpl;\n+    }\n+\n+    public void setListParkingAreasSMOImpl(IListParkingAreasSMO listParkingAreasSMOImpl) {\n+        this.listParkingAreasSMOImpl = listParkingAreasSMOImpl;\n+    }\n+\n+}\ndiff --git a/WebService/src/main/java/com/java110/web/components/fee/ParkingSpaceCreateFeeComponent.java b/WebService/src/main/java/com/java110/web/components/fee/ParkingSpaceCreateFeeComponent.java\nindex 39dd6fd38..cc81bc5a2 100644\n--- a/WebService/src/main/java/com/java110/web/components/fee/ParkingSpaceCreateFeeComponent.java\n+++ b/WebService/src/main/java/com/java110/web/components/fee/ParkingSpaceCreateFeeComponent.java\n@@ -3,6 +3,7 @@ package com.java110.web.components.fee;\n import com.java110.core.context.IPageData;\n import com.java110.web.smo.IFloorServiceSMO;\n import com.java110.web.smo.IUnitServiceSMO;\n+import com.java110.web.smo.feeConfig.IListParkingSpacesWhereFeeSetSMO;\n import com.java110.web.smo.feeConfig.IListRoomsWhereFeeSetSMO;\n import org.springframework.beans.factory.annotation.Autowired;\n import org.springframework.http.ResponseEntity;\n@@ -26,11 +27,12 @@ public class ParkingSpaceCreateFeeComponent {\n     private IUnitServiceSMO unitServiceSMOImpl;\n \n     @Autowired\n-    private IListRoomsWhereFeeSetSMO listRoomsWhereFeeSetSMOImpl;\n+    private IListParkingSpacesWhereFeeSetSMO listParkingSpacesWhereFeeSetSMOImpl;\n \n-    public ResponseEntity<String> listParkingSpace(IPageData pd){\n-        return listRoomsWhereFeeSetSMOImpl.listRooms(pd);\n+    public ResponseEntity<String> listParkingSpace(IPageData pd) {\n+        return listParkingSpacesWhereFeeSetSMOImpl.listParkingSpaces(pd);\n     }\n+\n     /**\n      * 根据 floorId 查询单元信息\n      *\ndiff --git a/WebService/src/main/java/com/java110/web/smo/feeConfig/IParkingSpaceCreateFeeSMO.java b/WebService/src/main/java/com/java110/web/smo/feeConfig/IParkingSpaceCreateFeeSMO.java\nnew file mode 100644\nindex 000000000..83c4b5120\n--- /dev/null\n+++ b/WebService/src/main/java/com/java110/web/smo/feeConfig/IParkingSpaceCreateFeeSMO.java\n@@ -0,0 +1,22 @@\n+package com.java110.web.smo.feeConfig;\n+\n+import com.java110.core.context.IPageData;\n+import com.java110.utils.exception.SMOException;\n+import org.springframework.http.ResponseEntity;\n+\n+/**\n+ * 费用项管理服务接口类\n+ * <p>\n+ * add by wuxw 2019-06-29\n+ */\n+public interface IParkingSpaceCreateFeeSMO {\n+\n+    /**\n+     * 查询费用项信息\n+     *\n+     * @param pd 页面数据封装\n+     * @return ResponseEntity 对象数据\n+     * @throws SMOException 业务代码层\n+     */\n+    ResponseEntity<String> createFee(IPageData pd) throws SMOException;\n+}\ndiff --git a/WebService/src/main/java/com/java110/web/smo/feeConfig/impl/ParkingSpaceCreateFeeSMOImpl.java b/WebService/src/main/java/com/java110/web/smo/feeConfig/impl/ParkingSpaceCreateFeeSMOImpl.java\nnew file mode 100644\nindex 000000000..5db699494\n--- /dev/null\n+++ b/WebService/src/main/java/com/java110/web/smo/feeConfig/impl/ParkingSpaceCreateFeeSMOImpl.java\n@@ -0,0 +1,68 @@\n+package com.java110.web.smo.feeConfig.impl;\n+\n+import com.alibaba.fastjson.JSONObject;\n+import com.java110.core.component.AbstractComponentSMO;\n+import com.java110.core.context.IPageData;\n+import com.java110.entity.component.ComponentValidateResult;\n+import com.java110.utils.constant.ServiceConstant;\n+import com.java110.utils.exception.SMOException;\n+import com.java110.utils.util.Assert;\n+import com.java110.utils.util.BeanConvertUtil;\n+import com.java110.web.smo.feeConfig.IParkingSpaceCreateFeeSMO;\n+import com.java110.web.smo.feeConfig.IRoomCreateFeeSMO;\n+import org.springframework.beans.factory.annotation.Autowired;\n+import org.springframework.http.HttpMethod;\n+import org.springframework.http.ResponseEntity;\n+import org.springframework.stereotype.Service;\n+import org.springframework.web.client.RestTemplate;\n+\n+import java.util.Map;\n+\n+/**\n+ * 查询feeConfig服务类\n+ */\n+@Service("parkingSpaceCreateFeeSMOImpl")\n+public class ParkingSpaceCreateFeeSMOImpl extends AbstractComponentSMO implements IParkingSpaceCreateFeeSMO {\n+\n+    @Autowired\n+    private RestTemplate restTemplate;\n+\n+    @Override\n+    public ResponseEntity<String> createFee(IPageData pd) throws SMOException {\n+        return businessProcess(pd);\n+    }\n+\n+    @Override\n+    protected void validate(IPageData pd, JSONObject paramIn) {\n+        Assert.hasKeyAndValue(paramIn, "communityId", "未包含小区ID");\n+        Assert.hasKeyAndValue(paramIn, "locationTypeCd", "未包含收费范围");\n+        Assert.hasKeyAndValue(paramIn, "locationObjId", "未包含收费对象");\n+        Assert.hasKeyAndValue(paramIn, "configId", "未包含收费项目");\n+        Assert.hasKeyAndValue(paramIn, "billType", "未包含出账类型");\n+    }\n+\n+    @Override\n+    protected ResponseEntity<String> doBusinessProcess(IPageData pd, JSONObject paramIn) {\n+        ComponentValidateResult result = super.validateStoreStaffCommunityRelationship(pd, restTemplate);\n+\n+        Map paramMap = BeanConvertUtil.beanCovertMap(result);\n+        paramIn.putAll(paramMap);\n+\n+        String apiUrl = ServiceConstant.SERVICE_API_URL + "/api/fee.saveParkingSpaceCreateFee";\n+\n+\n+        ResponseEntity<String> responseEntity = this.callCenterService(restTemplate, pd, JSONObject.toJSONString(paramIn),\n+                apiUrl,\n+                HttpMethod.POST);\n+\n+        return responseEntity;\n+    }\n+\n+    public RestTemplate getRestTemplate() {\n+        return restTemplate;\n+    }\n+\n+    public void setRestTemplate(RestTemplate restTemplate) {\n+        this.restTemplate = restTemplate;\n+    }\n+}\ndiff --git a/WebService/src/main/resources/components/feePackage/delete-fee/deleteFee.js b/WebService/src/main/resources/components/feePackage/delete-fee/deleteFee.js\nindex de0e65c12..29acec4c9 100644\n--- a/WebService/src/main/resources/components/feePackage/delete-fee/deleteFee.js\n+++ b/WebService/src/main/resources/components/feePackage/delete-fee/deleteFee.js\n@@ -33,6 +33,7 @@\n                             //关闭model\n                             $(\'#deleteFeeModel\').modal(\'hide\');\n                             vc.emit(\'listRoomFee\',\'notify\',{});\n+                            vc.emit(\'listParkingSpaceFee\',\'notify\',{});\n                             vc.toast("删除费用成功");\n                             return ;\n                         }\ndiff --git a/WebService/src/main/resources/components/feePackage/listParkingSpaceFee/listParkingSpaceFee.html b/WebService/src/main/resources/components/feePackage/listParkingSpaceFee/listParkingSpaceFee.html\nnew file mode 100644\nindex 000000000..b06bc4e26\n--- /dev/null\n+++ b/WebService/src/main/resources/components/feePackage/listParkingSpaceFee/listParkingSpaceFee.html\n@@ -0,0 +1,63 @@\n+<div id="component">\n+    <div class="row">\n+        <div class="col-lg-12">\n+            <div class="ibox">\n+                <div class="ibox-title">\n+                    <h5>{{listParkingSpaceCreateFeeInfo.parkingSpaceName}}费用</h5>\n+                    <div class="ibox-tools" style="top:10px;">\n+                        <!--                        <button type="button" class="btn btn-primary btn-sm"-->\n+                        <!--                                style="margin-left:10px" v-on:click="_openParkingSpaceCreateFeeAddModal(null,true)">-->\n+                        <!--                            <i class="glyphicon glyphicon-plus"></i> 批量创建-->\n+                        <!--                        </button>-->\n+\n+                    </div>\n+                </div>\n+                <div class="ibox-content">\n+\n+                    <table class="footable table table-stripped toggle-arrow-tiny" style="margin-top:10px"\n+                           data-page-size="10">\n+\n+                        <thead>\n+                        <tr>\n+                            <th class="text-center">费用项ID</th>\n+                            <th class="text-center">费用标识</th>\n+                            <th class="text-center">费用类型</th>\n+                            <th class="text-center">费用项目</th>\n+                            <th class="text-center">开始时间</th>\n+                            <th class="text-center">到期时间</th>\n+                            <th class="text-center">状态</th>\n+                            <th class="text-center">操作</th>\n+                        </tr>\n+                        </thead>\n+                        <tbody>\n+                        <tr v-for="fee in listParkingSpaceCreateFeeInfo.fees">\n+                            <td class="text-center">{{fee.feeId}}</td>\n+                            <td class="text-center">{{fee.feeFlagName}}</td>\n+                            <td class="text-center">{{fee.feeTypeCdName}}</td>\n+                            <td class="text-center">{{fee.feeName}}</td>\n+                            <td class="text-center">{{fee.startTime}}</td>\n+                            <td class="text-center">{{fee.endTime}}</td>\n+                            <td class="text-center">{{fee.stateName}}</td>\n+                            <td class="text-right">\n+                                <button class="btn btn-link btn-xs"\n+                                        v-on:click="_payFee(fee)">缴费\n+                                </button>\n+                                <button class="btn btn-link btn-xs"\n+                                        v-on:click="_payFeeHis(fee)">缴费历史\n+                                </button>\n+                                <button class="btn btn-link btn-xs" v-if="fee.isDefault == \'F\'"\n+                                        v-on:click="_deleteFee(fee)">取消费用\n+                                </button>\n+                            </td>\n+                        </tr>\n+                        </tbody>\n+                    </table>\n+                    <!-- 分页 -->\n+                    <vc:create name="pagination"></vc:create>\n+\n+                </div>\n+            </div>\n+        </div>\n+    </div>\n+    <vc:create name="deleteFee"></vc:create>\n+</div>\ndiff --git a/WebService/src/main/resources/components/feePackage/listParkingSpaceFee/listParkingSpaceFee.js b/WebService/src/main/resources/components/feePackage/listParkingSpaceFee/listParkingSpaceFee.js\nnew file mode 100644\nindex 000000000..0f21afab9\n--- /dev/null\n+++ b/WebService/src/main/resources/components/feePackage/listParkingSpaceFee/listParkingSpaceFee.js\n@@ -0,0 +1,85 @@\n+(function(vc){\n+    var DEFAULT_PAGE = 1;\n+    var DEFAULT_ROWS = 10;\n+    vc.extends({\n+        data:{\n+            listParkingSpaceCreateFeeInfo:{\n+                fees:[],\n+                parkingSpaceName:\'\',\n+                psId:\'\',\n+                total: 0,\n+                records: 1,\n+            }\n+        },\n+        _initMethod:function(){\n+            if(vc.notNull(vc.getParam("num"))){\n+                  vc.component.listParkingSpaceCreateFeeInfo.parkingSpaceName = vc.getParam(\'areaNum\')+"号停车场"+vc.getParam(\'num\')+"号车位";\n+                  vc.component.listParkingSpaceCreateFeeInfo.psId = vc.getParam(\'psId\');\n+            };\n+            vc.component._loadListParkingSpaceCreateFeeInfo(1,10);\n+        },\n+        _initEvent:function(){\n+            vc.on(\'listParkingSpaceFee\',\'notify\',function(_param){\n+                vc.component._loadListParkingSpaceCreateFeeInfo(DEFAULT_PAGE, DEFAULT_ROWS);\n+            });\n+            vc.on(\'pagination\', \'page_event\',\n+                function(_currentPage) {\n+                    vc.component._loadListParkingSpaceCreateFeeInfo(_currentPage, DEFAULT_ROWS);\n+                });\n+        },\n+        methods:{\n+            _loadListParkingSpaceCreateFeeInfo:function(_page,_row){\n+                var param = {\n+                    params:{\n+                        page:_page,\n+                        row:_row,\n+                        communityId:vc.getCurrentCommunity().communityId,\n+                        payerObjId:vc.component.listParkingSpaceCreateFeeInfo.psId\n+                    }\n+                };\n+\n+                //发送get请求\n+               vc.http.get(\'listParkingSpaceFee\',\n+                            \'list\',\n+                             param,\n+                             function(json){\n+                                var _feeConfigInfo = JSON.parse(json);\n+                                vc.component.listParkingSpaceCreateFeeInfo.total = _feeConfigInfo.total;\n+                                vc.component.listParkingSpaceCreateFeeInfo.records = _feeConfigInfo.records;\n+                                vc.component.listParkingSpaceCreateFeeInfo.fees = _feeConfigInfo.fees;\n+                                vc.emit(\'pagination\', \'init\', {\n+                                    total: _feeConfigInfo.records,\n+                                    currentPage: _page\n+                                });\n+                             },function(){\n+                                console.log(\'请求失败处理\');\n+                             }\n+                           );\n+            },\n+            _payFee:function(_fee){\n+               vc.jumpToPage(\'/flow/payFeeOrderFlow?\'+vc.objToGetParam(_fee));\n+            },\n+            _payFeeHis:function(_fee){\n+               vc.jumpToPage(\'/flow/propertyFeeFlow?\'+vc.objToGetParam(_fee));\n+            },\n+            _deleteFee:function(_fee){\n+\n+                var dateA = new Date(_fee.startTime);\n+                var dateB = new Date();\n+                if(dateA.setHours(0, 0, 0, 0) != dateB.setHours(0, 0, 0, 0)){\n+                    vc.toast("只能取消当天添加的费用");\n+                    return;\n+                }\n+\n+                vc.emit(\'deleteFee\',\'openDeleteFeeModal\',{\n+                         communityId:vc.getCurrentCommunity().communityId,\n+                         feeId:_fee.feeId\n+                });\n+            },\n+            _refreshListParkingSpaceCreateFeeInfo:function(){\n+                vc.component.listParkingSpaceCreateFeeInfo._currentFeeConfigName = "";\n+            }\n+        }\n+\n+    });\n+})(window.vc);\ndiff --git a/WebService/src/main/resources/components/feePackage/parkingSpaceCreateFee/parkingSpaceCreateFee.html b/WebService/src/main/resources/components/feePackage/parkingSpaceCreateFee/parkingSpaceCreateFee.html\nindex b29b24ed4..e3525c25b 100644\n--- a/WebService/src/main/resources/components/feePackage/parkingSpaceCreateFee/parkingSpaceCreateFee.html\n+++ b/WebService/src/main/resources/components/feePackage/parkingSpaceCreateFee/parkingSpaceCreateFee.html\n@@ -5,9 +5,9 @@\n                 <div class="ibox-title">\n                     <h5>查询条件</h5>\n                     <div class="ibox-tools" style="top:10px;">\n-                        <button type="button" class="btn btn-link btn-sm" style="margin-right:10px;"\n-                                v-on:click="_moreCondition()">{{parkingSpaceCreateFeeInfo.moreCondition == true?\'隐藏\':\'更多\'}}\n-                        </button>\n+<!--                        <button type="button" class="btn btn-link btn-sm" style="margin-right:10px;"-->\n+<!--                                v-on:click="_moreCondition()">{{parkingSpaceCreateFeeInfo.moreCondition == true?\'隐藏\':\'更多\'}}-->\n+<!--                        </button>-->\n                     </div>\n                 </div>\n                 <div class="ibox-content">\n@@ -15,32 +15,23 @@\n \n                         <div class="col-sm-4">\n                             <div class="form-group input-group">\n-                                <input type="text" placeholder="请选择楼栋"\n-                                       v-model="parkingSpaceCreateFeeInfo.conditions.floorName" class=" form-control">\n-                                <div class="input-group-prepend">\n-                                    <button type="button" class="btn btn-primary btn-sm"\n-                                            v-on:click="_openChooseFloorMethod()"><i\n-                                            class="glyphicon glyphicon-search"></i> 选择\n-                                    </button>\n-                                </div>\n+                                    <input type="text" placeholder="请填写车位编码" class="form-control form-control-sm"\n+                                           v-model="parkingSpaceCreateFeeInfo.conditions.num">\n                             </div>\n \n                         </div>\n                         <div class="col-sm-3">\n                             <div class="form-group">\n-                                <select class="form-control-sm form-control input-s-sm inline"\n-                                        v-model="parkingSpaceCreateFeeInfo.conditions.unitId">\n-                                    <option selected value="">请选择单元</option>\n-                                    <option v-for="(unit,index) in parkingSpaceUnits" :key="index" v-bind:value="unit.unitId">\n-                                        {{unit.unitNum}}单元\n-                                    </option>\n-                                </select>\n+                                <div class="form-group">\n+                                    <input type="text" placeholder="请填写车牌号" class="form-control form-control-sm"\n+                                           v-model="parkingSpaceCreateFeeInfo.conditions.carNum">\n+                                </div>\n                             </div>\n                         </div>\n                         <div class="col-sm-4">\n                             <div class="form-group">\n-                                <input type="text" placeholder="请填写房屋编号" class="form-control form-control-sm"\n-                                       v-model="parkingSpaceCreateFeeInfo.conditions.parkingSpaceNum">\n+                                <input type="text" placeholder="请填写车位ID" class="form-control form-control-sm"\n+                                       v-model="parkingSpaceCreateFeeInfo.conditions.psId">\n                             </div>\n                         </div>\n                         <div class="col-sm-1">\n@@ -50,23 +41,6 @@\n                         </div>\n \n                     </div>\n-                    <div class="row" v-if="parkingSpaceCreateFeeInfo.moreCondition == true">\n-                        <div class="col-sm-4">\n-                            <div class="form-group">\n-                                <input type="text" placeholder="请填写房屋ID" class="form-control form-control-sm"\n-                                       v-model="parkingSpaceCreateFeeInfo.conditions.psId">\n-                            </div>\n-                        </div>\n-                        <div class="col-sm-3">\n-                            <input type="text" placeholder="请填写业主名称" class="form-control form-control-sm"\n-                                   v-model="parkingSpaceCreateFeeInfo.conditions.ownerName">\n-                        </div>\n-                        <div class="col-sm-4">\n-                            <input type="text" placeholder="请填写业主身份证号" class="form-control form-control-sm"\n-                                   v-model="parkingSpaceCreateFeeInfo.conditions.idCard">\n-                        </div>\n-                    </div>\n-\n                 </div>\n             </div>\n         </div>\n@@ -76,7 +50,7 @@\n         <div class="col-lg-12">\n             <div class="ibox">\n                 <div class="ibox-title">\n-                    <h5>房屋信息</h5>\n+                    <h5>车位信息</h5>\n                     <div class="ibox-tools" style="top:10px;">\n                         <button type="button" class="btn btn-primary btn-sm"\n                                 style="margin-left:10px" v-on:click="_openParkingSpaceCreateFeeAddModal(null,true)">\n@@ -96,6 +70,7 @@\n                         <tr>\n                             <th>车位ID</th>\n                             <th data-hide="phone">车位编号</th>\n+                            <th data-hide="phone">车牌号</th>\n                             <th data-hide="phone">业主ID</th>\n                             <th data-hide="phone">业主名称</th>\n                             <th data-hide="phone">业主身份证</th>\n@@ -111,6 +86,9 @@\n                             <td>\n                                 {{parkingSpace.areaNum}}号停车场{{parkingSpace.num}}号车位\n                             </td>\n+                            <td>\n+                                {{parkingSpace.carNum}}\n+                            </td>\n                             <td>\n                                 {{parkingSpace.ownerId}}\n                             </td>\n@@ -146,10 +124,6 @@\n             </div>\n         </div>\n     </div>\n-    <vc:create name="searchFloor"\n-               emitChooseFloor="parkingSpace"\n-               emitLoadData="parkingSpace"\n-    ></vc:create>\n \n     <vc:create name="parkingSpaceCreateFeeAdd"\n     ></vc:create>\ndiff --git a/WebService/src/main/resources/components/feePackage/parkingSpaceCreateFee/parkingSpaceCreateFee.js b/WebService/src/main/resources/components/feePackage/parkingSpaceCreateFee/parkingSpaceCreateFee.js\nindex 3b2dc40b9..034fda341 100644\n--- a/WebService/src/main/resources/components/feePackage/parkingSpaceCreateFee/parkingSpaceCreateFee.js\n+++ b/WebService/src/main/resources/components/feePackage/parkingSpaceCreateFee/parkingSpaceCreateFee.js\n@@ -14,31 +14,20 @@\n                 floorId:\'\',\n                 unitId:\'\',\n                 state:\'\',\n-                parkingSpaceNum:\'\',\n+                num:\'\',\n                 moreCondition:false,\n                 conditions:{\n-                    floorId:\'\',\n-                    floorName:\'\',\n-                    unitId:\'\',\n-                    parkingSpaceNum:\'\',\n                     psId:\'\',\n-                    state:\'\',\n-                    section:\'\'\n+                    num:\'\',\n+                    carNum:\'\'\n                 }\n             }\n         },\n         _initMethod:function(){\n-            vc.component.parkingSpaceCreateFeeInfo.conditions.floorId = vc.getParam("floorId");\n-            vc.component.parkingSpaceCreateFeeInfo.conditions.floorName = vc.getParam("floorName");\n             vc.component.listParkingSpace(DEFAULT_PAGE,DEFAULT_ROW);\n         },\n         _initEvent:function(){\n-            vc.on(\'parkingSpace\',\'chooseFloor\',function(_param){\n-                vc.component.parkingSpaceCreateFeeInfo.conditions.floorId = _param.floorId;\n-                vc.component.parkingSpaceCreateFeeInfo.conditions.floorName = _param.floorName;\n-                vc.component.loadUnits(_param.floorId);\n \n-            });\n             vc.on(\'pagination\',\'page_event\',function(_currentPage){\n                 vc.component.listParkingSpace(_currentPage,DEFAULT_ROW);\n             });\n@@ -84,87 +73,18 @@\n             _openViewParkingSpaceCreateFee:function(_parkingSpace){\n                  vc.jumpToPage("/flow/listParkingSpaceFeeFlow?"+vc.objToGetParam(_parkingSpace));\n             },\n-            /**\n-                根据楼ID加载房屋\n-            **/\n-            loadUnits:function(_floorId){\n-                vc.component.addParkingSpaceUnits = [];\n-                var param = {\n-                    params:{\n-                        floorId:_floorId,\n-                        communityId:vc.getCurrentCommunity().communityId\n-                    }\n-                }\n-                vc.http.get(\n-                    \'parkingSpaceCreateFee\',\n-                    \'loadUnits\',\n-                     param,\n-                     function(json,res){\n-                        //vm.menus = vm.refreshMenuActive(JSON.parse(json),0);\n-                        if(res.status == 200){\n-                            var tmpUnits = JSON.parse(json);\n-                            vc.component.parkingSpaceUnits = tmpUnits;\n-\n-                            return ;\n-                        }\n-                        vc.message(json);\n-                     },\n-                     function(errInfo,error){\n-                        console.log(\'请求失败处理\');\n-\n-                        vc.message(errInfo);\n-                     });\n-            },\n             _queryParkingSpaceMethod:function(){\n                 vc.component.listParkingSpace(DEFAULT_PAGE,DEFAULT_ROW);\n             },\n-            _loadDataByParam: function(){\n-                vc.component.parkingSpaceCreateFeeInfo.conditions.floorId = vc.getParam("floorId");\n-                vc.component.parkingSpaceCreateFeeInfo.conditions.floorId = vc.getParam("floorName");\n-                //如果 floodId 没有传 则，直接结束\n-               /* if(!vc.notNull(vc.component.parkingSpaceCreateFeeInfo.conditions.floorId)){\n-                    return ;\n-                }*/\n \n-                var param = {\n-                    params:{\n-                        communityId:vc.getCurrentCommunity().communityId,\n-                        floorId:vc.component.parkingSpaceCreateFeeInfo.conditions.floorId\n-                    }\n-                }\n-\n-                vc.http.get(\n-                    \'parkingSpaceCreateFee\',\n-                    \'loadFloor\',\n-                     param,\n-                     function(json,res){\n-                        if(res.status == 200){\n-                            var _floorInfo = JSON.parse(json);\n-                            var _tmpFloor = _floorInfo.apiFloorDataVoList[0];\n-                            /*vc.emit(\'parkingSpaceSelectFloor\',\'chooseFloor\', _tmpFloor);\n-                            */\n-\n-                            return ;\n-                        }\n-                        vc.message(json);\n-                     },\n-                     function(errInfo,error){\n-                        console.log(\'请求失败处理\');\n-\n-                        vc.message(errInfo);\n-                     });\n-\n-            },\n             _moreCondition:function(){\n                 if(vc.component.parkingSpaceCreateFeeInfo.moreCondition){\n                     vc.component.parkingSpaceCreateFeeInfo.moreCondition = false;\n                 }else{\n                     vc.component.parkingSpaceCreateFeeInfo.moreCondition = true;\n                 }\n-            },\n-            _openChooseFloorMethod:function(){\n-                vc.emit(\'searchFloor\',\'openSearchFloorModel\',{});\n             }\n+\n         }\n     });\n })(window.vc);\n\\ No newline at end of file\ndiff --git a/WebService/src/main/resources/components/feePackage/parkingSpaceCreateFeeAdd/parkingSpaceCreateFeeAdd.html b/WebService/src/main/resources/components/feePackage/parkingSpaceCreateFeeAdd/parkingSpaceCreateFeeAdd.html\nnew file mode 100644\nindex 000000000..129abee1a\n--- /dev/null\n+++ b/WebService/src/main/resources/components/feePackage/parkingSpaceCreateFeeAdd/parkingSpaceCreateFeeAdd.html\n@@ -0,0 +1,90 @@\n+<div id="parkingSpaceCreateFeeAddModel" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"\n+     aria-hidden="true">\n+    <div class="modal-dialog modal-lg">\n+        <div class="modal-content">\n+            <div class="modal-body">\n+                <h3 class="m-t-none m-b ">创建费用</h3>\n+                <div class="ibox-content">\n+                    <div>\n+                        <div>\n+                            <div class="form-group row">\n+                                <label class="col-sm-2 col-form-label">收费范围</label>\n+                                <div class="col-sm-10">\n+                                    <select class="custom-select" v-model="parkingSpaceCreateFeeAddInfo.locationTypeCd" v-if="parkingSpaceCreateFeeAddInfo.isMore == true">\n+                                        <option selected disabled value="">必填，请选择收费范围</option>\n+                                        <option value="1000">小区</option>\n+                                        <option value="2000">停车场</option>\n+                                    </select>\n+                                    <input v-model="parkingSpaceCreateFeeAddInfo.locationTypeCdName" v-if="parkingSpaceCreateFeeAddInfo.isMore == false" disabled = "disabled" type="text" placeholder="必填，请填写收费范围"\n+                                           class="form-control">\n+\n+                                </div>\n+                            </div>\n+                            <div class="form-group row" v-if="parkingSpaceCreateFeeAddInfo.locationTypeCd == \'2000\'">\n+                                <label class="col-sm-2 col-form-label">停车场</label>\n+                                <div class="col-sm-10">\n+                                    <select class="custom-select" v-model="parkingSpaceCreateFeeAddInfo.locationObjId" >\n+                                        <option selected disabled value="">必填，请选择停车场</option>\n+                                        <option v-for="(item,index) in parkingSpaceCreateFeeAddInfo.parkingAreas" :key="index"\n+                                                v-bind:value="item.paId">{{item.num}}号停车场\n+                                        </option>\n+                                    </select>\n+                                </div>\n+                            </div>\n+                            <div class="form-group row">\n+                                <label class="col-sm-2 col-form-label">费用类型</label>\n+                                <div class="col-sm-10">\n+                                    <select class="custom-select" v-model="parkingSpaceCreateFeeAddInfo.feeTypeCd" @change="_changeFeeTypeCd(parkingSpaceCreateFeeAddInfo.feeTypeCd)">\n+                                        <option selected disabled value="">必填，请选择费用类型</option>\n+                                        <option v-for="(item,index) in parkingSpaceCreateFeeAddInfo.feeTypeCds" :key="index"\n+                                                v-bind:value="item.statusCd">{{item.name}}\n+                                        </option>\n+                                    </select></div>\n+                            </div>\n+                            <div class="form-group row">\n+                                <label class="col-sm-2 col-form-label">收费项目</label>\n+                                <div class="col-sm-10">\n+                                    <select class="custom-select" v-model="parkingSpaceCreateFeeAddInfo.configId">\n+                                        <option selected disabled value="">必填，请选择收费项目</option>\n+                                        <option v-for="(item,index) in parkingSpaceCreateFeeAddInfo.feeConfigs" :key="index"\n+                                                v-bind:value="item.configId">{{item.feeName}}\n+                                        </option>\n+                                    </select></div>\n+                            </div>\n+                            <div class="form-group row" >\n+                                <label class="col-sm-2 col-form-label">出账类型</label>\n+                                <div class="col-sm-10">\n+                                    <select class="custom-select" v-model="parkingSpaceCreateFeeAddInfo.billType">\n+                                        <option selected disabled value="">必填，请选择出账类型</option>\n+                                        <option  value="001">每年1月1日</option>\n+                                        <option  value="002">每月1日</option>\n+                                        <option  value="003">每日</option>\n+                                    </select>\n+                                </div>\n+                            </div>\n+                            <div class="form-group row" >\n+                                <label class="col-sm-2 col-form-label">车位状态</label>\n+                                <div class="col-sm-10">\n+                                    <select class="custom-select" v-model="parkingSpaceCreateFeeAddInfo.parkingSpaceState">\n+                                        <option selected disabled value="">必填，请选择车位状态</option>\n+                                        <option  value="S">已售</option>\n+                                        <option  value="H">已出租</option>\n+                                        <option  value="F">空闲</option>\n+                                    </select>\n+                                </div>\n+                            </div>\n+                            <div class="ibox-content">\n+                                <button class="btn btn-primary float-right" type="button"\n+                                        v-on:click="saveParkingSpaceCreateFeeInfo()"><i class="fa fa-check"></i>&nbsp;提交\n+                                </button>\n+                                <button type="button" class="btn btn-warning float-right" style="margin-right:20px;"\n+                                        data-dismiss="modal">取消\n+                                </button>\n+                            </div>\n+                        </div>\n+                    </div>\n+                </div>\n+            </div>\n+        </div>\n+    </div>\n+</div>\ndiff --git a/WebService/src/main/resources/components/feePackage/parkingSpaceCreateFeeAdd/parkingSpaceCreateFeeAdd.js b/WebService/src/main/resources/components/feePackage/parkingSpaceCreateFeeAdd/parkingSpaceCreateFeeAdd.js\nnew file mode 100644\nindex 000000000..a10d45b9a\n--- /dev/null\n+++ b/WebService/src/main/resources/components/feePackage/parkingSpaceCreateFeeAdd/parkingSpaceCreateFeeAdd.js\n@@ -0,0 +1,204 @@\n+(function(vc) {\n+\n+    vc.extends({\n+        data: {\n+            parkingSpaceCreateFeeAddInfo: {\n+                feeTypeCds:[],\n+                feeConfigs:[],\n+                parkingAreas:[],\n+                locationTypeCd: \'\',\n+                locationObjId: \'\',\n+                psId: \'\',\n+                feeTypeCd:\'\',\n+                configId:\'\',\n+                billType:\'\',\n+                parkingSpaceState:\'\',\n+                isMore:false,\n+                locationTypeCdName:\'\',\n+            }\n+        },\n+        _initMethod: function() {\n+            vc.getDict(\'pay_fee_config\',"fee_type_cd",function(_data){\n+                vc.component.parkingSpaceCreateFeeAddInfo.feeTypeCds = _data;\n+            });\n+\n+            vc.component._loadParkingAreas();\n+\n+        },\n+        _initEvent: function() {\n+            vc.on(\'parkingSpaceCreateFeeAdd\', \'openParkingSpaceCreateFeeAddModal\',\n+            function(_parkingSpace) {\n+                vc.component.parkingSpaceCreateFeeAddInfo.isMore =_parkingSpace.isMore;\n+                if(!_parkingSpace.isMore){\n+                    vc.component.parkingSpaceCreateFeeAddInfo.locationTypeCd = \'3000\';\n+                    vc.component.parkingSpaceCreateFeeAddInfo.locationObjId = _parkingSpace.parkingSpace.psId;\n+                    vc.component.parkingSpaceCreateFeeAddInfo.psId = _parkingSpace.parkingSpace.psId;\n+                    var parkingSpace =  _parkingSpace.parkingSpace;\n+                    vc.component.parkingSpaceCreateFeeAddInfo.locationTypeCdName = parkingSpace.areaNum +\'号停车场\'+parkingSpace.num+\'号车位\';\n+                }\n+                $(\'#parkingSpaceCreateFeeAddModel\').modal(\'show\');\n+\n+            });\n+        },\n+        methods: {\n+\n+            parkingSpaceCreateFeeAddValidate() {\n+                return vc.validate.validate({\n+                    parkingSpaceCreateFeeAddInfo: vc.component.parkingSpaceCreateFeeAddInfo\n+                },\n+                {\n+                    \'parkingSpaceCreateFeeAddInfo.locationTypeCd\': [{\n+                        limit: "required",\n+                        param: "",\n+                        errInfo: "收费范围不能为空"\n+                    },\n+                    {\n+                        limit: "num",\n+                        param: "",\n+                        errInfo: "收费范围格式错误"\n+                    },\n+                    ],\n+                    \'parkingSpaceCreateFeeAddInfo.locationObjId\': [{\n+                        limit: "required",\n+                        param: "",\n+                        errInfo: "收费对象不能为空"\n+                    }\n+                    ],\n+                    \'parkingSpaceCreateFeeAddInfo.feeTypeCd\': [{\n+                        limit: "required",\n+                        param: "",\n+                        errInfo: "费用类型不能为空"\n+                    }\n+                    ],\n+                    \'parkingSpaceCreateFeeAddInfo.configId\': [{\n+                        limit: "required",\n+                        param: "",\n+                        errInfo: "费用项目不能为空"\n+                    }\n+                    ],\n+                    \'parkingSpaceCreateFeeAddInfo.billType\': [{\n+                        limit: "required",\n+                        param: "",\n+                        errInfo: "出账类型不能为空"\n+                    }\n+                    ],\n+                     \'parkingSpaceCreateFeeAddInfo.parkingSpaceState\': [{\n+                         limit: "required",\n+                         param: "",\n+                         errInfo: "出账类型不能为空"\n+                     }\n+                     ]\n+                });\n+            },\n+            saveParkingSpaceCreateFeeInfo: function() {\n+\n+                vc.component.parkingSpaceCreateFeeAddInfo.communityId = vc.getCurrentCommunity().communityId;\n+                if (vc.component.parkingSpaceCreateFeeAddInfo.locationTypeCd == \'1000\') { // 小区ID\n+                    vc.component.parkingSpaceCreateFeeAddInfo.locationObjId = vc.component.parkingSpaceCreateFeeAddInfo.communityId;\n+                } else if (vc.component.parkingSpaceCreateFeeAddInfo.locationTypeCd == \'2000\') {\n+                } else if (vc.component.parkingSpaceCreateFeeAddInfo.locationTypeCd == \'3000\') {\n+                    vc.component.parkingSpaceCreateFeeAddInfo.locationObjId = vc.component.parkingSpaceCreateFeeAddInfo.psId;\n+                } else {\n+                    vc.toast("收费范围错误");\n+                    return;\n+                }\n+\n+                if (!vc.component.parkingSpaceCreateFeeAddValidate()) {\n+                    vc.toast(vc.validate.errInfo);\n+                    return;\n+                }\n+\n+                vc.component.parkingSpaceCreateFeeAddInfo.communityId = vc.getCurrentCommunity().communityId;\n+\n+                vc.http.post(\'parkingSpaceCreateFeeAdd\', \'save\', JSON.stringify(vc.component.parkingSpaceCreateFeeAddInfo), {\n+                    emulateJSON: true\n+                },\n+                function(json, res) {\n+                    //vm.menus = vm.refreshMenuActive(JSON.parse(json),0);\n+                    if (res.status == 200) {\n+                        //关闭model\n+                        var _json = JSON.parse(json);\n+                        $(\'#parkingSpaceCreateFeeAddModel\').modal(\'hide\');\n+                        vc.component.clearAddFeeConfigInfo();\n+                        vc.toast("创建收费成功，总共["+_json.totalParkingSpace+"]车位，成功["+_json.successParkingSpace+"],失败["+_json.errorParkingSpace+"]",8000);\n+                        return;\n+                    }\n+                    vc.message(json);\n+\n+                },\n+                function(errInfo, error) {\n+                    console.log(\'请求失败处理\');\n+\n+                    vc.message(errInfo);\n+\n+                });\n+            },\n+            clearAddFeeConfigInfo: function() {\n+                var _feeTypeCds = vc.component.parkingSpaceCreateFeeAddInfo.feeTypeCds;\n+                var _parkingAreas = vc.component.parkingSpaceCreateFeeAddInfo.parkingAreas;\n+                vc.component.parkingSpaceCreateFeeAddInfo = {\n+                     feeTypeCds:[],\n+                    feeConfigs:[],\n+                    parkingAreas:[],\n+                    locationTypeCd: \'\',\n+                    locationObjId: \'\',\n+                    psId: \'\',\n+                    feeTypeCd:\'\',\n+                    configId:\'\',\n+                    billType:\'\',\n+                    parkingSpaceState:\'\',\n+                    isMore:false,\n+                    locationTypeCdName:\'\',\n+                };\n+\n+                vc.component.parkingSpaceCreateFeeAddInfo.feeTypeCds = _feeTypeCds;\n+                vc.component.parkingSpaceCreateFeeAddInfo.parkingAreas = _parkingAreas;\n+            },\n+            _changeFeeTypeCd:function(_feeTypeCd){\n+\n+                var param = {\n+                    params: {\n+                        page:1,\n+                        row:20,\n+                        communityId:vc.getCurrentCommunity().communityId,\n+                        feeTypeCd:_feeTypeCd,\n+                        isDefault:\'F\'\n+                    }\n+                };\n+\n+                //发送get请求\n+                vc.http.get(\'parkingSpaceCreateFeeAdd\', \'list\', param,\n+                function(json, res) {\n+                    var _feeConfigManageInfo = JSON.parse(json);\n+                    vc.component.parkingSpaceCreateFeeAddInfo.feeConfigs = _feeConfigManageInfo.feeConfigs;\n+                },\n+                function(errInfo, error) {\n+                    console.log(\'请求失败处理\');\n+                });\n+            },\n+            _loadParkingAreas:function(_feeTypeCd){\n+\n+                var param = {\n+                    params: {\n+                        page:1,\n+                        row:20,\n+                        communityId:vc.getCurrentCommunity().communityId,\n+                    }\n+                };\n+\n+                //发送get请求\n+                vc.http.get(\'parkingSpaceCreateFeeAdd\', \'listParkingArea\', param,\n+                function(json, res) {\n+                    if(res.status == 200){\n+                        var _parkingAreaInfo = JSON.parse(json);\n+                        vc.component.parkingSpaceCreateFeeAddInfo.parkingAreas = _parkingAreaInfo.parkingAreas;\n+                    }\n+                },\n+                function(errInfo, error) {\n+                    console.log(\'请求失败处理\');\n+                });\n+            }\n+        }\n+    });\n+\n+})(window.vc);\n\\ No newline at end of file\ndiff --git a/WebService/src/main/resources/components/ownerPackage/list-owner/listOwner.js b/WebService/src/main/resources/components/ownerPackage/list-owner/listOwner.js\nindex c7c6a2f3c..c09433b2e 100644\n--- a/WebService/src/main/resources/components/ownerPackage/list-owner/listOwner.js\n+++ b/WebService/src/main/resources/components/ownerPackage/list-owner/listOwner.js\n@@ -51,7 +51,7 @@\n             });\n \n             vc.on(\'listOwner\', \'chooseParkingSpace\', function (_parkingSpace) {\n-                vc.jumpToPage("/flow/parkingSpaceFeeFlow?ownerId=" + vc.component.listOwnerInfo._currentOwnerId + "&psId=" + _parkingSpace.psId);\n+                vc.jumpToPage("/flow/listParkingSpaceFeeFlow?" + vc.objToGetParam(_parkingSpace));\n             });\n \n             vc.on("listOwner", "notify", function (_param) {\n@@ -152,7 +152,7 @@\n                             vc.jumpToPage("/flow/ownerRepairFlow?ownerId=" + _owner.ownerId + "&roomId=" + rooms[0].roomId);\n                         } else if (rooms.length == 0) {\n                             //vc.message("当前业主未查询到房屋信息");\n-vc.toast("当前业主未查询到房屋信息");\n+                            vc.toast("当前业主未查询到房屋信息");\n                         } else {\n \n                             vc.emit(\'searchRoom\', \'showOwnerRooms\', rooms);\n@@ -179,7 +179,8 @@ vc.toast("当前业主未查询到房屋信息");\n                         var listRoomData = JSON.parse(json);\n                         var rooms = listRoomData.rooms;\n                         if (rooms.length == 1) {\n-                            vc.jumpToPage("/flow/propertyFeeFlow?ownerId=" + _owner.ownerId + "&roomId=" + rooms[0].roomId);\n+                            vc.jumpToPage("/flow/listRoomFeeFlow?" + vc.objToGetParam(rooms[0]));\n+\n                         } else if (rooms.length == 0) {\n                             //vc.message("当前业主未查询到房屋信息");\n                             vc.toast("当前业主未查询到房屋信息");\n@@ -209,7 +210,8 @@ vc.toast("当前业主未查询到房屋信息");\n                         var listParkingSpaceData = JSON.parse(json);\n                         var parkingSpaces = listParkingSpaceData.parkingSpaces;\n                         if (parkingSpaces.length == 1) {\n-                            vc.jumpToPage("/flow/parkingSpaceFeeFlow?ownerId=" + _owner.ownerId + "&psId=" + parkingSpaces[0].psId);\n+                            //vc.jumpToPage("/flow/parkingSpaceFeeFlow?ownerId=" + _owner.ownerId + "&psId=" + parkingSpaces[0].psId);\n+                            vc.jumpToPage("/flow/listParkingSpaceFeeFlow?" + vc.objToGetParam(parkingSpaces[0]));\n                         } else if (parkingSpaces.length == 0) {\n                             //vc.message("当前业主未查询到车位信息");\n                             vc.toast("当前业主未查询到车位信息");\ndiff --git a/WebService/src/main/resources/views/listParkingSpaceFeeFlow.html b/WebService/src/main/resources/views/listParkingSpaceFeeFlow.html\nnew file mode 100644\nindex 000000000..f7aa48bba\n--- /dev/null\n+++ b/WebService/src/main/resources/views/listParkingSpaceFeeFlow.html\n@@ -0,0 +1,37 @@\n+<!DOCTYPE html>\n+<html lang="en"\n+      xmlns="http://www.w3.org/1999/xhtml"\n+      xmlns:th="http://www.thymeleaf.org"\n+      xmlns:vc="http://www.thymeleaf.org">\n+<head>\n+    <meta charset="UTF-8"/>\n+    <title>车位费用|java110</title>\n+    <vc:create name="commonTop"></vc:create>\n+</head>\n+<body>\n+<vc:create name="bodyTop"></vc:create>\n+<div id="wrapper">\n+    <vc:create name="menu"></vc:create>\n+\n+\n+    <div id="page-wrapper" class="gray-bg dashbard-1">\n+        <div class="row border-bottom">\n+            <vc:create name="nav"></vc:create>\n+        </div>\n+        <div class="wrapper wrapper-content" style="padding-bottom: 0px;">\n+            <vc:create name="breadcrumb"></vc:create>\n+        </div>\n+        <!-- id="component" -->\n+        <div  class="wrapper wrapper-content animated fadeInRight">\n+            <vc:create name="listParkingSpaceFee"></vc:create>\n+        </div>\n+\n+\n+        <vc:create name="copyright"></vc:create>\n+\n+    </div>\n+</div>\n+\n+<vc:create name="commonBottom"></vc:create>\n+</body>\n+</html>\n\\ No newline at end of file\ndiff --git a/java110-bean/src/main/java/com/java110/dto/parking/ParkingSpaceDto.java b/java110-bean/src/main/java/com/java110/dto/parking/ParkingSpaceDto.java\nindex 756bfbf85..c7fee6e51 100644\n--- a/java110-bean/src/main/java/com/java110/dto/parking/ParkingSpaceDto.java\n+++ b/java110-bean/src/main/java/com/java110/dto/parking/ParkingSpaceDto.java\n@@ -41,6 +41,7 @@ public class ParkingSpaceDto extends PageDto implements Serializable {\n     private Date createTime;\n \n     private String statusCd = "0";\n+    private boolean withOwnerCar =false;\n \n \n     public String getArea() {\n@@ -212,4 +213,12 @@ public class ParkingSpaceDto extends PageDto implements Serializable {\n     public void setLink(String link) {\n         this.link = link;\n     }\n+\n+    public boolean isWithOwnerCar() {\n+        return withOwnerCar;\n+    }\n+\n+    public void setWithOwnerCar(boolean withOwnerCar) {\n+        this.withOwnerCar = withOwnerCar;\n+    }\n }\ndiff --git a/java110-db/src/main/resources/mapper/community/ParkingSpaceServiceDaoImplMapper.xml b/java110-db/src/main/resources/mapper/community/ParkingSpaceServiceDaoImplMapper.xml\nindex 9d47c8794..7d0f24acb 100644\n--- a/java110-db/src/main/resources/mapper/community/ParkingSpaceServiceDaoImplMapper.xml\n+++ b/java110-db/src/main/resources/mapper/community/ParkingSpaceServiceDaoImplMapper.xml\n@@ -114,6 +114,7 @@\n             pa.type_cd typeCd\n         FROM\n           parking_space t,t_dict td,parking_area pa\n+\n         <where>\n             t.state = td.status_cd\n             and td.table_name=\'parking_space\'\ndiff --git a/java110-db/src/main/resources/mapper/fee/FeeServiceDaoImplMapper.xml b/java110-db/src/main/resources/mapper/fee/FeeServiceDaoImplMapper.xml\nindex 767891c7b..677cb1815 100644\n--- a/java110-db/src/main/resources/mapper/fee/FeeServiceDaoImplMapper.xml\n+++ b/java110-db/src/main/resources/mapper/fee/FeeServiceDaoImplMapper.xml\n@@ -77,8 +77,8 @@\n         insert into pay_fee(\n         amount,income_obj_id,fee_type_cd,start_time,status_cd,end_time,community_id,b_id,fee_id,user_id,payer_obj_id,fee_flag,state,config_id,payer_obj_type\n         ) select\n-        t.amount,t.income_obj_id,t.fee_type_cd,t.start_time,\'0\',t.end_time,t.community_id,t.b_id,t.fee_id,t.user_id,t.payer_obj_id,t.payer_obj_type\n-        ,t.fee_flag,t.state,t.config_id\n+        t.amount,t.income_obj_id,t.fee_type_cd,t.start_time,\'0\',t.end_time,t.community_id,t.b_id,t.fee_id,t.user_id,t.payer_obj_id\n+        ,t.fee_flag,t.state,t.config_id,t.payer_obj_type\n         from business_pay_fee t where 1=1\n         <if test="amount !=null and amount != \'\'">\n             and t.amount= #{amount}\ndiff --git a/java110-utils/src/main/java/com/java110/utils/constant/ServiceCodeConstant.java b/java110-utils/src/main/java/com/java110/utils/constant/ServiceCodeConstant.java\nindex dac0107e6..f9c08019e 100644\n--- a/java110-utils/src/main/java/com/java110/utils/constant/ServiceCodeConstant.java\n+++ b/java110-utils/src/main/java/com/java110/utils/constant/ServiceCodeConstant.java\n@@ -499,6 +499,8 @@ public class ServiceCodeConstant {\n \n     //设置费用\n     public static final String SERVICE_CODE_SAVE_ROOM_CREATE_FEE = "fee.saveRoomCreateFee";\n+    //设置费用\n+    public static final String SERVICE_CODE_SAVE_PARKING_SPEC_CREATE_FEE = "fee.saveParkingSpaceCreateFee";\n \n     //设置房屋费用\n     public static final String SERVICE_CODE_DELETE_FEE = "fee.deleteFee";\n', 'commit_subject': '停车费功能开发完成', 'repo_name': 'java110/MicroCommunity', 'committer': {'name': 'wuxw', 'email': '75a186818c0bf2138372dfcfa3e032ffd96026e2@qq.com', 'time_sec': '1580632984', 'tz_offset': '480', 'date': {'seconds': '1580632984'}}, 'commit_tree': '620b509224b8b87c7a577ccf9e113d071efa386c', 'commit_message': '停车费功能开发完成\n', 'language_name': 'Java', 'license': 'apache-2.0', 'hunks': '@@ -499,6 +499,8 @@ public class ServiceCodeConstant {\n \n     //设置费用\n     public static final String SERVICE_CODE_SAVE_ROOM_CREATE_FEE = "fee.saveRoomCreateFee";\n+    //设置费用\n+    public static final String SERVICE_CODE_SAVE_PARKING_SPEC_CREATE_FEE = "fee.saveParkingSpaceCreateFee";\n \n     //设置房屋费用\n     public static final String SERVICE_CODE_DELETE_FEE = "fee.deleteFee";\n', 'addition_count': 2, 'deletion_count': 0, 'src_file': 'a/java110-utils/src/main/java/com/java110/utils/constant/ServiceCodeConstant.java', 'tgt_file': 'b/java110-utils/src/main/java/com/java110/utils/constant/ServiceCodeConstant.java', 'file_extension': '.java', 'before_file': 'package com.java110.utils.constant;\n\n/**\n * 服务数据状态常量\n * Created by wuxw on 2017/5/20.\n */\npublic class ServiceCodeConstant {\n\n    /**\n     * 查询菜单编码\n     */\n    public static final String SERVICE_CODE_QUERY_MENU_INFO = "query.menu.info";\n\n    /**\n     * 查询菜单编码名称\n     */\n    public static final String SERVICE_CODE_QUERY_MENU_INFO_NAME = "查询菜单";\n\n    /**\n     * 查询菜单编码\n     */\n    public static final String SERVICE_CODE_QUERY_USER_LOGIN = "query.user.loginInfo";\n\n    /**\n     * 查询菜单编码名称\n     */\n    public static final String SERVICE_CODE_QUERY_USER_LOGIN_NAME = "查询用户登录信息";\n\n\n    /**\n     * 查询菜单编码\n     */\n    public static final String SERVICE_CODE_QUERY_CONSOLE_TEMPLATE = "query.console.template";\n\n    /**\n     * 查询菜单编码名称\n     */\n    public static final String SERVICE_CODE_QUERY_CONSOLE_TEMPLATE_NAME = "查询模板信息";\n\n\n    /**\n     * 查询菜单编码\n     */\n    public static final String SERVICE_CODE_QUERY_CONSOLE_CACHE = "query.console.cache";\n\n    /**\n     * 查询菜单编码名称\n     */\n    public static final String SERVICE_CODE_QUERY_CONSOLE_CACHE_NAME = "查询单条缓存信息";\n\n\n    /**\n     * 查询菜单编码\n     */\n    public static final String SERVICE_CODE_QUERY_CONSOLE_TEMPLATE_COL = "query.console.templateCol";\n\n    /**\n     * 查询菜单编码名称\n     */\n    public static final String SERVICE_CODE_QUERY_CONSOLE_TEMPLATE_COL_NAME = "查询模板列信息";\n\n\n    public static final String SERVICE_CODE = "SERVICE_CODE";\n    public static final String SERVICE_CODE_NAME = "SERVICE_CODE_NAME";\n\n\n    /**\n     * 保存用户\n     */\n    public static final String SERVICE_CODE_SAVE_USER_INFO = "user.saveUser";\n\n    /**\n     * 修改用户信息\n     */\n    public static final String SERVICE_CODE_MODIFY_USER_INFO = "modify.user.info";\n\n    /**\n     * 停用用户信息\n     */\n    public static final String SERVICE_CODE_REMOVE_USER_INFO = "remove.user.info";\n\n    /**\n     * 恢复用户信息\n     */\n    public static final String SERVICE_CODE_RECOVER_USER_INFO = "recover.user.info";\n\n    /**\n     * 保存用户地址信息\n     */\n    public static final String SERVICE_CODE_SAVE_USER_ADDRESS = "save.user.address";\n\n    /**\n     * 用户打标\n     */\n    public static final String SERVICE_CODE_SAVE_USER_TAG = "save.user.tag";\n\n\n    /**\n     * 用户证件\n     */\n    public static final String SERVICE_CODE_SAVE_USER_CREDENTIALS = "save.user.credentials";\n\n    /**\n     * 保存用户默认权限\n     */\n    public static final String SERVICE_CODE_SAVE_USER_DEFAULT_PRIVILEGE = "save.user.defaultPrivilege";\n\n    /**\n     * 删除用户全部权限\n     */\n    public static final String SERVICE_CODE_DELETE_USER_ALL_PRIVILEGE = "delete.user.allPrivilege";\n\n\n    /**\n     * 保存用户默认权限\n     */\n    public static final String SERVICE_CODE_QUERY_USER_USERINFO = "query.user.userInfo";\n\n\n    /**\n     * 查询 用户私密信息\n     */\n    public static final String QUERY_USER_SECRET = "user.queryUserSecret";\n\n    /**\n     * 查询 用户\n     */\n    public static final String LIST_USERS = "user.listUsers";\n\n    /**\n     * 查询 组织管理\n     */\n    public static final String USER_SEND_SMS = "user.userSendSms";\n\n    /**\n     * 保存商户信息\n     */\n    public static final String SERVICE_CODE_SAVE_STORE_INFO = "save.store.info";\n\n    /**\n     * 保存商户信息\n     */\n    public static final String SERVICE_CODE_LIST_STORES_BY_COMMUNITY = "store.listStoresByCommunity";\n\n    /**\n     * 查询 商户\n     */\n    public static final String SERVICE_CODE_LIST_STORES = "store.listStores";\n\n    /**\n     * 修改商户信息\n     */\n    public static final String SERVICE_CODE_UPDATE_STORE_INFO = "update.store.info";\n\n    /**\n     * 删除商户信息\n     */\n    public static final String SERVICE_CODE_DELETE_STORE_INFO = "delete.store.info";\n\n    /**\n     * 添加商户员工\n     */\n    public static final String SERVICE_CODE_SAVE_STORE_USER = "save.store.user";\n\n\n    /**\n     * 删除商户员工\n     */\n    public static final String SERVICE_CODE_DELETE_STORE_USER = "delete.store.user";\n\n    /**\n     * 根据用户查询商户信息\n     */\n    public static final String SERVICE_CODE_QUERY_STORE_BYUSER = "query.store.byuser";\n\n    /**\n     * 根据商户用户信息\n     */\n    public static final String SERVICE_CODE_QUERY_STORE_USERS = "query.store.users";\n    /**\n     * 商户成员加入信息\n     */\n    public static final String SERVICE_CODE_MEMBER_JOINED_STORE = "member.joined.store";\n\n    /**\n     * 商户成员退出信息\n     */\n    public static final String SERVICE_CODE_MEMBER_QUIT_STORE = "member.quit.store";\n\n    /**\n     * 保存商品信息\n     */\n    public static final String SERVICE_CODE_SAVE_SHOP_INFO = "save.shop.info";\n\n    /**\n     * 修改商品信息\n     */\n    public static final String SERVICE_CODE_UPDATE_SHOP_INFO = "update.shop.info";\n\n    /**\n     * 删除商品信息\n     */\n    public static final String SERVICE_CODE_DELETE_SHOP_INFO = "delete.shop.info";\n\n    /**\n     * 购买商品\n     */\n    public static final String SERVICE_CODE_BUY_SHOP_INFO = "buy.shop.info";\n\n    /**\n     * 保存商品目录\n     */\n    public static final String SERVICE_CODE_SAVE_SHOP_CATALOG = "save.shop.catalog";\n\n    /**\n     * 修改商品目录\n     */\n    public static final String SERVICE_CODE_UPDATE_SHOP_CATALOG = "update.shop.catalog";\n\n\n    /**\n     * 修改商品目录\n     */\n    public static final String SERVICE_CODE_DELETE_SHOP_CATALOG = "delete.shop.catalog";\n\n    /**\n     * 保存评论\n     */\n    public static final String SERVICE_CODE_SAVE_COMMENT_INFO = "save.comment.info";\n\n    /**\n     * 删除评论\n     */\n    public static final String SERVICE_CODE_DELETE_COMMENT_INFO = "delete.comment.info";\n\n\n    /**\n     * 透传服务\n     */\n    public static final String SERVICE_CODE_DO_SERVICE_TRANSFER = "do.service.transfer";\n\n    /**\n     * 透传服务\n     */\n    public static final String SERVICE_CODE_SYSTEM_TRANSFER = "system.transfer";\n\n    /**\n     * cmd服务\n     */\n    public static final String SERVICE_CODE_SYSTEM_CMD = "system.cmd";\n\n    /**\n     * 订单类服务处理\n     */\n    public static final String SERVICE_CODE_DO_SERVICE_ORDER = "do.service.order";\n\n    /**\n     * 用户注册服务处理\n     */\n    public static final String SERVICE_CODE_USER_SERVICE_REGISTER = "user.service.register";\n\n    /**\n     * 用户登录服务处理\n     */\n    public static final String SERVICE_CODE_USER_SERVICE_LOGIN = "user.service.login";\n    /**\n     * 用户登录服务处理\n     */\n    public static final String SERVICE_CODE_PC_USER_LOGIN = "login.pcUserLogin";\n\n    /**\n     * 管理员免密登录\n     */\n    public static final String SERVICE_CODE_ADMIN_LOGIN_PROPERTY = "login.adminLoginProperty";\n\n    /**\n     * 用户登录服务处理\n     */\n    public static final String SERVICE_CODE_USER_LOGIN = "user.userLogin";\n\n    /**\n     * 用户退出登录服务处理\n     */\n    public static final String SERVICE_CODE_USER_SERVICE_LOGOUT = "user.service.logout";\n    /**\n     * 检查用户登录服务处理\n     */\n    public static final String SERVICE_CODE_CHECK_SERVICE_LOGIN = "check.service.login";\n\n    /**\n     * 检查用户登录服务处理\n     */\n    public static final String SERVICE_CODE_QUERY_USER_BY_NAME = "query.user.byName";\n\n\n    /**\n     * 查询出userIds 是商户员工ID的userId\n     */\n    public static final String SERVICE_CODE_QUERY_STOREUSER_BYUSERIDS = "query.storeUser.byUserIds";\n\n    /**\n     * 刷新缓存\n     */\n    public static final String SERVICE_CODE_CACHE_SERVICE_FLUSH = "cache.service.flush";\n\n\n    /**\n     * 添加员工 服务\n     */\n    public static final String SERVICE_CODE_USER_STAFF_ADD = "user.staff.add";\n\n\n\n    /**\n     * 添加员工 服务\n     */\n    public static final String SERVICE_CODE_USER_STAFF_MODIFY = "user.staff.modify";\n\n    /**\n     * 停用员工服务\n     */\n    public static final String SERVICE_CODE_USER_STAFF_DISABLE = "user.staff.disable";\n\n    /**\n     * 启用员工服务\n     */\n    public static final String SERVICE_CODE_USER_STAFF_ENABLE = "user.staff.enable";\n\n    /**\n     * 删除员工服务\n     */\n    public static final String SERVICE_CODE_USER_STAFF_DELETE = "user.staff.delete";\n\n    /**\n     * 查询 员工\n     */\n    public static final String SERVICE_CODE_QUERY_STAFF_INFOS = "query.staff.infos";\n\n    /**\n     * 查询 员工\n     */\n    public static final String SERVICE_CODE_QUERY_STAFF_BY_NAME = "query.staff.byName";\n\n    /**\n     * 修改员工密码\n     */\n    public static final String SERVICE_CODE_CHANGE_STAFF_PWD = "user.changeStaffPwd";\n\n    /**\n     * 修改重置密码\n     */\n    public static final String SERVICE_CODE_RESET_STAFF_PWD = "user.resetStaffPwd";\n\n    /**\n     * 保存商户信息\n     */\n    public static final String SERVICE_CODE_SAVE_COMMUNITY_INFO = "save.community.info";\n\n    /**\n     * 修改商户信息\n     */\n    public static final String SERVICE_CODE_UPDATE_COMMUNITY_INFO = "update.community.info";\n\n    /**\n     * 删除商户信息\n     */\n    public static final String SERVICE_CODE_DELETE_COMMUNITY_INFO = "delete.community.info";\n\n\n    /**\n     * 商户成员加入信息\n     */\n    public static final String SERVICE_CODE_MEMBER_JOINED_COMMUNITY = "member.join.community";\n\n    /**\n     * 商户成员退出信息\n     */\n    public static final String SERVICE_CODE_MEMBER_QUIT_COMMUNITY = "member.quit.community";\n\n\n    public static final String SERVICE_CODE_SAVE_PROPERTY_INFO = "save.property.info";\n    public static final String SERVICE_CODE_SAVE_PROPERTY_PHOTO = "save.property.photo";\n    public static final String SERVICE_CODE_SAVE_PROPERTY_CERDENTIALS = "save.property.cerdentials";\n    public static final String SERVICE_CODE_SAVE_PROPERTY_USER = "save.property.user";\n    public static final String SERVICE_CODE_SAVE_PROPERTY_FEE = "save.property.fee";\n    public static final String SERVICE_CODE_SAVE_PROPERTY_HOUSE = "save.property.house";\n    public static final String SERVICE_CODE_UPDATE_PROPERTY_INFO = "update.property.info";\n    public static final String SERVICE_CODE_UPDATE_PROPERTY_PHOTO = "update.property.photo";\n    public static final String SERVICE_CODE_UPDATE_PROPERTY_CERDENTIALS = "update.property.cerdentials";\n    public static final String SERVICE_CODE_UPDATE_PROPERTY_FEE = "update.property.fee";\n    public static final String SERVICE_CODE_UPDATE_PROPERTY_HOUSE = "update.property.house";\n    public static final String SERVICE_CODE_DELETE_PROPERTY_ATTR = "delete.property.attr";\n    public static final String SERVICE_CODE_DELETE_PROPERTY_PHOTO = "delete.property.photo";\n    public static final String SERVICE_CODE_DELETE_PROPERTY_CERDENTIALS = "delete.property.cerdentials";\n    public static final String SERVICE_CODE_DELETE_PROPERTY_USER = "delete.property.user";\n    public static final String SERVICE_CODE_DELETE_PROPERTY_HOUSE = "delete.property.house";\n    /**\n     * 用工是否有物业信息\n     */\n    public static final String SERVICE_CODE_CHECK_PROPERTY_STAFFHASPROPERTY = "check.property.staffHasProperty";\n\n\n    public static final String SERVICE_CODE_SAVE_AGENT_INFO = "save.agent.info";\n    public static final String SERVICE_CODE_SAVE_AGENT_PHOTO = "save.agent.photo";\n    public static final String SERVICE_CODE_SAVE_AGENT_CERDENTIALS = "save.agent.cerdentials";\n    public static final String SERVICE_CODE_SAVE_AGENT_USER = "save.agent.user";\n    public static final String SERVICE_CODE_UPDATE_AGENT_INFO = "update.agent.info";\n    public static final String SERVICE_CODE_UPDATE_AGENT_PHOTO = "update.agent.photo";\n    public static final String SERVICE_CODE_UPDATE_AGENT_CERDENTIALS = "update.agent.cerdentials";\n    public static final String SERVICE_CODE_DELETE_AGENT_ATTR = "delete.agent.attr";\n    public static final String SERVICE_CODE_DELETE_AGENT_PHOTO = "delete.agent.photo";\n    public static final String SERVICE_CODE_DELETE_AGENT_CERDENTIALS = "delete.agent.cerdentials";\n    public static final String SERVICE_CODE_DELETE_AGENT_USER = "delete.agent.user";\n\n\n    //检查用户是否有权限\n    public static final String SERVICE_CODE_CHECK_USER_HAS_PRIVILEGE = "check.user.hasPrivilege";\n\n    //检查用户是否有权限\n    public static final String SERVICE_CODE_CHECK_USER_HAS_RESOURCE = "basePrivilege.CheckUserHasResourceListener";\n\n\n    //查询小区楼\n    public static final String SERVICE_CODE_QUERY_FLOOR = "floor.queryFloors";\n\n    // 保存小区楼信息\n    public static final String SERVICE_CODE_SAVE_FLOOR = "floor.saveFloor";\n\n    // 编辑小区楼信息\n    public static final String SERVICE_CODE_EDIT_FLOOR = "floor.editFloor";\n\n    //删除小区楼信息\n    public static final String SERVICE_CODE_DELETE_FLOOR = "floor.deleteFloor";\n\n    //查询小区单元\n    public static final String SERVICE_CODE_QUERY_UNITS = "unit.queryUnits";\n\n    //保存小区单元\n    public static final String SERVICE_CODE_SAVE_UNIT = "unit.saveUnit";\n\n    //修改小区单元\n    public static final String SERVICE_CODE_UPDATE_UNIT = "unit.updateUnit";\n\n\n    //删除小区单元\n    public static final String SERVICE_CODE_DELETE_UNIT = "unit.deleteUnit";\n\n\n    //保存房屋\n    public static final String SERVICE_CODE_SAVE_ROOM = "room.saveRoom";\n\n\n    //保存商铺\n    public static final String SERVICE_CODE_SAVE_SHOPS = "room.saveShops";\n\n\n    //售卖房屋\n    public static final String SERVICE_CODE_SELL_ROOM = "room.sellRoom";\n    //绑定业主（租客） 和商铺关系\n    public static final String SERVICE_CODE_SAVE_OWNER_SHOPS = "room.saveOwnerShops";\n    //退房\n    public static final String SERVICE_CODE_EXIT_ROOM = "room.exitRoom";\n\n\n    //查询房屋信息\n    public static final String SERVICE_CODE_QUERY_ROOMS = "room.queryRooms";\n\n    //查询房屋信息\n    public static final String SERVICE_CODE_QUERY_ROOMS_BY_OWNER = "room.queryRoomsByOwner";\n\n    //查询房屋信息\n    public static final String SERVICE_CODE_QUERY_ROOMS_WITHOUT_SELL = "room.queryRoomsWithOutSell";\n\n    //查询房屋信息\n    public static final String SERVICE_CODE_QUERY_ROOMS_WITH_SELL = "room.queryRoomsWithSell";\n\n    //修改房屋信息\n    public static final String SERVICE_CODE_UPDATE_ROOMS = "room.updateRoom";\n\n    //修改房屋信息\n    public static final String SERVICE_CODE_DELETE_ROOMS = "room.deleteRoom";\n\n\n    //查询业主\n    public static final String SERVICE_CODE_QUERY_OWNER = "owner.queryOwners";\n\n    //查询业主车辆\n    public static final String SERVICE_CODE_QUERY_OWNER_CAR = "owner.queryOwnerCars";\n\n    //删除业主车辆\n    public static final String SERVICE_CODE_DELETE_OWNER_CAR = "owner.deleteOwnerCars";\n\n    //添加业主车辆\n    public static final String SERVICE_CODE_SAVE_OWNER_CAR = "owner.saveOwnerCar";\n\n    //添加业主车辆\n    public static final String SERVICE_CODE_SAVE_OWNER_CAR_MEMBER = "owner.saveOwnerCarMember";\n\n\n    //设置费用\n    public static final String SERVICE_CODE_SAVE_ROOM_CREATE_FEE = "fee.saveRoomCreateFee";\n\n    //设置房屋费用\n    public static final String SERVICE_CODE_DELETE_FEE = "fee.deleteFee";\n\n    //查询业主成员\n    public static final String SERVICE_CODE_QUERY_OWNER_MEMBER = "owner.queryOwnerMembers";\n\n    // 保存业主信息\n    public static final String SERVICE_CODE_SAVE_OWNER = "owner.saveOwner";\n\n    // App 用户绑定业主接口\n    public static final String SERVICE_CODE_APP_USER_BINDING_OWNER = "owner.appUserBindingOwner";\n\n    // App 业主注册接口\n    public static final String SERVICE_CODE_OWNER_REGISTER_WX_PHOTO = "owner.ownerRegisterWxPhoto";\n    // App 业主注册接口\n    public static final String SERVICE_CODE_OWNER_REGISTER = "owner.ownerRegister";\n\n\n    /**\n     * 查询 审核业主绑定\n     */\n    public static final String LIST_AUDIT_APPUSERBINDINGOWNERS = "owner.listAuditAppUserBindingOwners";\n\n    /**\n     * 查询 审核业主绑定\n     */\n    public static final String LIST_APPUSERBINDINGOWNERS = "owner.listAppUserBindingOwners";\n\n    /**\n     * 查询 业主门禁\n     */\n    public static final String LIST_OWNER_MACHINES = "owner.listOwnerMachines";\n\n\n    /**\n     * 修改 审核业主绑定\n     */\n    public static final String UPDATE_APPUSERBINDINGOWNER = "owner.updateAppUserBindingOwner";\n    public static final String DELETE_APPUSERBINDINGOWNER = "owner.deleteAppUserBindingOwner";\n    public static final String REFRESH_APP_USER_BINDING_OWNER_OPEN_ID = "owner.refreshAppUserBindingOwnerOpenId";\n\n\n    public static final String SERVICE_CODE_APPLICATION_KEY = "owner.applicationKey";\n\n    // 编辑业主信息\n    public static final String SERVICE_CODE_EDIT_OWNER = "owner.editOwner";\n\n    // 上传业主照片\n    public static final String SERVICE_CODE_UPLOAD_OWNER_PHOTO = "owner.uploadOwnerPhoto";\n\n    //删除业主信息\n    public static final String SERVICE_CODE_DELETE_OWNER = "owner.deleteOwner";\n\n    //查询费用配置\n    public static final String SERVICE_CODE_QUERY_FEE_CONFIG = "fee.queryFeeConfig";\n    public static final String SERVICE_CODE_QUERY_FEE_DETAIL = "fee.queryFeeDetail";\n    public static final String SERVICE_CODE_QUERY_FEE = "fee.queryFee";\n\n    //查询欠费数据\n    public static final String SERVICE_CODE_QUERY_ARREARS_FEE = "fee.queryArrearsFee";\n\n    //查询首页统计信息\n    public static final String SERVICE_CODE_QUERY_INDEX_STATISTIC = "index.queryIndexStatistic";\n\n    //查询首页待办\n    public static final String SERVICE_CODE_QUERY_INDEX_TODO_TASK = "index.queryIndexTodoTask";\n\n    //查询费用配置 根据停车位\n    public static final String SERVICE_CODE_QUERY_FEE_BY_PARKING_SPACE = "fee.queryFeeByParkingSpace";\n\n    //查询费用配置 根据车辆进出场\n    public static final String SERVICE_CODE_QUERY_FEE_BY_CAR_INOUT = "fee.queryFeeByCarInout";\n\n    //保存费用配置\n    public static final String SERVICE_CODE_SAVE_FEE_CONFIG = "fee.saveFeeConfig";\n\n    //修改费用配置\n    public static final String SERVICE_CODE_UPDATE_FEE_CONFIG = "fee.updateFeeConfig";\n\n    //缴费\n    public static final String SERVICE_CODE_PAY_FEE = "fee.payFee";\n\n    //欠费缴费\n    public static final String SERVICE_CODE_PAY_OWE_FEE = "fee.payOweFee";\n\n    //设置费用\n    public static final String SERVICE_CODE_SAVE_ROOM_CREATE_FEE = "fee.saveRoomCreateFee";\n    public static final String SERVICE_CODE_SAVE_CONTRACT_CREATE_FEE = "fee.saveContractCreateFee";\n    //设置费用\n    public static final String SERVICE_CODE_SAVE_PARKING_SPEC_CREATE_FEE = "fee.saveParkingSpaceCreateFee";\n\n    //设置房屋费用\n    public static final String SERVICE_CODE_DELETE_FEE = "fee.deleteFee";\n\n    //修改房屋费用\n    public static final String SERVICE_CODE_UPDATE_FEE = "fee.updateFee";\n\n    //修改房屋费用\n    public static final String SERVICE_CODE_FINISH_FEE = "fee.finishFee";\n\n    //预交费\n    public static final String SERVICE_CODE_PAY_FEE_PRE = "fee.payFeePre";\n    /**\n     * 临时停车费\n     */\n    public static final String SERVICE_CODE_PAY_FEE_PRE_TEMP_CAR_INOUT = "fee.payFeePreTempCarInout";\n\n    //交费通知\n    public static final String SERVICE_CODE_PAY_CONFIRM_PRE = "fee.payFeeConfirm";\n\n    //租赁服务费\n    public static final String SERVICE_CODE_RENTING_PAY_CONFIRM_PRE = "fee.rentingPayFeeConfirm";\n\n    //欠费\n    public static final String SERVICE_CODE_OWE_FEE_PAY_CONFIRM_PRE = "fee.oweFeePayFeeConfirm";\n\n\n    //查询停车位\n    public static final String SERVICE_CODE_QUERY_PARKING_SPACE = "parkingSpace.queryParkingSpaces";\n\n\n    //查询停车位\n    public static final String SERVICE_CODE_QUERY_PARKING_SPACE_BY_OWNER = "parkingSpace.queryParkingSpacesByOwner";\n\n\n    // 保存停车位信息\n    public static final String SERVICE_CODE_SAVE_PARKING_SPACE = "parkingSpace.saveParkingSpace";\n\n    // 编辑停车位信息\n    public static final String SERVICE_CODE_EDIT_PARKING_SPACE = "parkingSpace.editParkingSpace";\n\n    //删除停车位信息\n    public static final String SERVICE_CODE_DELETE_PARKING_SPACE = "parkingSpace.deleteParkingSpace";\n\n\n    // 保存停车位信息\n    public static final String SERVICE_CODE_SELL_PARKING_SPACE = "parkingSpace.sellParkingSpace";\n\n\n    // 保存停车位信息\n    public static final String SERVICE_CODE_EXIT_PARKING_SPACE = "parkingSpace.exitParkingSpace";\n\n    //查询用例配置\n    public static final String SERVICE_CODE_QUERY_DEMO_CONFIG = "demo.queryDemoConfig";\n\n    //保存用例配置\n    public static final String SERVICE_CODE_SAVE_DEMO_CONFIG = "demo.saveDemoConfig";\n\n\n    // 保存BUSINESSTYPE信息\n    public static final String SERVICE_CODE_EXIT_BUSINESSTYPE_SPACE = "business.exitBusinessTypeSpace";\n\n    //查询BUSINESSTYPE配置\n    public static final String SERVICE_CODE_QUERY_BUSINESSTYPE_CONFIG = "business.queryBusinessTypeConfig";\n\n    //保存BUSINESSTYPE配置\n    public static final String SERVICE_CODE_SAVE_BUSINESSTYPE_CONFIG = "business.saveBusinessTypeConfig";\n\n    /**\n     * 查询小区信息\n     */\n    public static final String SERVICE_CODE_LIST_COMMUNITYS = "community.listCommunitys";\n\n    /**\n     * 查询我的小区信息\n     */\n    public static final String SERVICE_CODE_LIST_MY_ENTERED_COMMUNITYS = "community.listMyEnteredCommunitys";\n\n\n    /**\n     * 查询需要审核入驻小区商户\n     */\n    public static final String SERVICE_CODE_LIST_AUDIT_ENTER_COMMUNITYS = "community.listAuditEnterCommunitys";\n\n    /**\n     * 保存小区\n     */\n    public static final String SERVICE_CODE_SAVE_COMMUNITY = "community.saveCommunity";\n\n\n    /**\n     * 修改小区\n     */\n    public static final String SERVICE_CODE_UPDATE_COMMUNITY = "community.updateCommunity";\n    /**\n     * 删除小区community.deleteCommunity\n     */\n    public static final String SERVICE_CODE_DELETE_COMMUNITY = "community.deleteCommunity";\n\n    public static final String SERVICE_CODE_AUDIT_COMMUNITY = "community.auditCommunity";\n    public static final String SERVICE_CODE_AUDIT_ENTER_COMMUNITY = "community.auditEnterCommunity";\n\n\n    /**\n     * 保存公告\n     */\n    public static final String SERVICE_CODE_SAVE_NOTICE = "notice.saveNotice";\n\n\n    /**\n     * 修改公告\n     */\n    public static final String SERVICE_CODE_UPDATE_NOTICE = "notice.updateNotice";\n    /**\n     * 删除公告community.deleteCommunity\n     */\n    public static final String SERVICE_CODE_DELETE_NOTICE = "notice.deleteNotice";\n\n    public static final String SERVICE_CODE_LIST_NOTICES = "notice.listNotices";\n\n    public static final String SERVICE_CODE_LIST_MSGS = "msg.listMsg";\n    public static final String SERVICE_CODE_READ_MSGS = "msg.readMsg";\n\n\n    //msg.readMsg\n\n    /**\n     * 查询数据字典\n     */\n    public static final String SERVICE_CODE_DICT_TYPE = "dict.queryDict";\n\n    /**\n     * 查询 地区\n     */\n    public static final String LIST_AREAS = "area.listAreas";\n\n\n    //查询停车位\n    public static final String SERVICE_CODE_QUERY_PARKING_SPACE_CAR = "parkingSpace.queryParkingSpaceCars";\n\n\n    /**\n     * 保存或修改用户属性\n     */\n    public static final String SERVICE_CODE_SAVE_UPDATE_USER_ATTR = "user.saveOrUpdateUserAttr";\n\n}\n', 'message': '停车费功能开发完成\n', 'author_name': 'wuxw', 'lang': 'java'}