wuxw
2020-01-30 8936415a62627e4552dc600e26d92039b26cedfa
加入费用项处理页面
3个文件已删除
31个文件已修改
3 文件已重命名
33个文件已添加
3576 ■■■■ 已修改文件
Api/src/main/java/com/java110/api/listener/carInout/ListCarInoutsListener.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Api/src/main/java/com/java110/api/listener/fee/DeleteFeeConfigListener.java 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Api/src/main/java/com/java110/api/listener/fee/ListFeeConfigsListener.java 91 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Api/src/main/java/com/java110/api/listener/fee/PayFeeConfirmListener.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Api/src/main/java/com/java110/api/listener/fee/PayFeeListener.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Api/src/main/java/com/java110/api/listener/fee/PayFeePreListener.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Api/src/main/java/com/java110/api/listener/fee/PayFeePreTempCarInoutListener.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Api/src/main/java/com/java110/api/listener/fee/QueryArrearsFeeListener.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Api/src/main/java/com/java110/api/listener/fee/QueryFeeByCarInoutListener.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Api/src/main/java/com/java110/api/listener/fee/QueryFeeByParkingSpaceListener.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Api/src/main/java/com/java110/api/listener/fee/QueryFeeConfigListener.java 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Api/src/main/java/com/java110/api/listener/fee/QueryFeeDetailListener.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Api/src/main/java/com/java110/api/listener/fee/QueryFeeListener.java 209 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Api/src/main/java/com/java110/api/listener/fee/SaveFeeConfigListener.java 148 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Api/src/main/java/com/java110/api/listener/fee/UpdateFeeConfigListener.java 152 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Api/src/main/java/com/java110/api/listener/machineTranslate/MachineGetFreeParkingSpaceListener.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Api/src/main/java/com/java110/api/listener/machineTranslate/MachineRoadGateOpenListener.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Api/src/main/java/com/java110/api/listener/parkingSpace/ExitParkingSpaceListener.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Api/src/main/java/com/java110/api/listener/parkingSpace/SellParkingSpaceListener.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Api/src/main/java/com/java110/api/listener/room/ExitRoomListener.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
CommonService/src/main/java/com/java110/common/smo/impl/ComplaintUserInnerServiceSMOImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FeeService/src/main/java/com/java110/fee/listener/config/AbstractFeeConfigBusinessServiceDataFlowListener.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
FeeService/src/main/java/com/java110/fee/smo/impl/FeeAttrInnerServiceSMOImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
FeeService/src/main/java/com/java110/fee/smo/impl/FeeConfigInnerServiceSMOImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
FeeService/src/main/java/com/java110/fee/smo/impl/FeeDetailInnerServiceSMOImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
FeeService/src/main/java/com/java110/fee/smo/impl/FeeInnerServiceSMOImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/java/com/java110/web/components/fee/AddFeeConfigComponent.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/java/com/java110/web/components/fee/ChooseFeeConfigComponent.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/java/com/java110/web/components/fee/DeleteFeeConfigComponent.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/java/com/java110/web/components/fee/EditFeeConfigComponent.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/java/com/java110/web/components/fee/FeeConfigManageComponent.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/java/com/java110/web/smo/feeConfig/IAddFeeConfigSMO.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/java/com/java110/web/smo/feeConfig/IDeleteFeeConfigSMO.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/java/com/java110/web/smo/feeConfig/IEditFeeConfigSMO.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/java/com/java110/web/smo/feeConfig/IListFeeConfigsSMO.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/java/com/java110/web/smo/feeConfig/impl/AddFeeConfigSMOImpl.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/java/com/java110/web/smo/feeConfig/impl/DeleteFeeConfigSMOImpl.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/java/com/java110/web/smo/feeConfig/impl/EditFeeConfigSMOImpl.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/java/com/java110/web/smo/feeConfig/impl/ListFeeConfigsSMOImpl.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/resources/components/feePackage/add-feeConfig/addFeeConfig.html 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/resources/components/feePackage/add-feeConfig/addFeeConfig.js 183 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/resources/components/feePackage/choose-feeConfig/chooseFeeConfig.html 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/resources/components/feePackage/choose-feeConfig/chooseFeeConfig.js 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/resources/components/feePackage/delete-feeConfig/deleteFeeConfig.html 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/resources/components/feePackage/delete-feeConfig/deleteFeeConfig.js 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/resources/components/feePackage/edit-feeConfig/editFeeConfig.html 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/resources/components/feePackage/edit-feeConfig/editFeeConfig.js 174 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/resources/components/feePackage/feeConfig-manage/feeConfigManage.html 127 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/resources/components/feePackage/feeConfig-manage/feeConfigManage.js 87 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/resources/components/feePackage/view-feeConfig-info/viewFeeConfigInfo.html 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/resources/components/feePackage/view-feeConfig-info/viewFeeConfigInfo.js 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/resources/components/pageFramePackage/common/commonTop.html 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/resources/views/feeConfigFlow.html 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/FeeConfigDto.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/fee/FeeAttrDto.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/fee/FeeConfigDto.java 140 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/fee/FeeDetailDto.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/dto/fee/FeeDto.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/vo/api/feeConfig/ApiFeeConfigDataVo.java 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-bean/src/main/java/com/java110/vo/api/feeConfig/ApiFeeConfigVo.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-code-generator/src/main/java/com/java110/PayFeeConfigGeneratorApplication.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-code-generator/src/main/resources/web/template_1.json 136 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-code-generator/src/main/resources/web/template_carInout.json 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-core/src/main/java/com/java110/core/smo/fee/IFeeAttrInnerServiceSMO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-core/src/main/java/com/java110/core/smo/fee/IFeeConfigInnerServiceSMO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-core/src/main/java/com/java110/core/smo/fee/IFeeDetailInnerServiceSMO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-core/src/main/java/com/java110/core/smo/fee/IFeeInnerServiceSMO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-db/src/main/resources/mapper/fee/FeeConfigServiceDaoImplMapper.xml 368 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-utils/src/main/java/com/java110/utils/constant/ServiceCodeFeeConfigConstant.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-utils/src/test/java/com/java110/utils/util/BeanConvertUtilTest.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Api/src/main/java/com/java110/api/listener/carInout/ListCarInoutsListener.java
@@ -7,8 +7,8 @@
import com.java110.core.smo.fee.IFeeConfigInnerServiceSMO;
import com.java110.core.smo.fee.IFeeInnerServiceSMO;
import com.java110.core.smo.hardwareAdapation.ICarInoutInnerServiceSMO;
import com.java110.dto.FeeConfigDto;
import com.java110.dto.FeeDto;
import com.java110.dto.fee.FeeConfigDto;
import com.java110.dto.fee.FeeDto;
import com.java110.dto.hardwareAdapation.CarInoutDto;
import com.java110.event.service.api.ServiceDataFlowEvent;
import com.java110.utils.constant.FeeTypeConstant;
Api/src/main/java/com/java110/api/listener/fee/DeleteFeeConfigListener.java
New file
@@ -0,0 +1,107 @@
package com.java110.api.listener.fee;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.java110.api.listener.AbstractServiceApiListener;
import com.java110.core.annotation.Java110Listener;
import com.java110.core.context.DataFlowContext;
import com.java110.core.smo.fee.IFeeConfigInnerServiceSMO;
import com.java110.dto.fee.FeeConfigDto;
import com.java110.entity.center.AppService;
import com.java110.event.service.api.ServiceDataFlowEvent;
import com.java110.utils.constant.BusinessTypeConstant;
import com.java110.utils.constant.CommonConstant;
import com.java110.utils.constant.ServiceCodeFeeConfigConstant;
import com.java110.utils.util.Assert;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
/**
 * 保存小区侦听
 * add by wuxw 2019-06-30
 */
@Java110Listener("deleteFeeConfigListener")
public class DeleteFeeConfigListener extends AbstractServiceApiListener {
    @Autowired
    private IFeeConfigInnerServiceSMO feeConfigInnerServiceSMOImpl;
    @Override
    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
        //Assert.hasKeyAndValue(reqJson, "xxx", "xxx");
        Assert.hasKeyAndValue(reqJson, "configId", "费用项ID不能为空");
        Assert.hasKeyAndValue(reqJson, "communityId", "未包含小区ID");
        FeeConfigDto feeConfigDto = new FeeConfigDto();
        feeConfigDto.setCommunityId(reqJson.getString("communityId"));
        feeConfigDto.setConfigId(reqJson.getString("configId"));
        feeConfigDto.setIsDefault("T");
        int feeCount = feeConfigInnerServiceSMOImpl.queryFeeConfigsCount(feeConfigDto);
        if (feeCount > 0) {
            throw new IllegalArgumentException("该费用项目不能删除");
        }
    }
    @Override
    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
        HttpHeaders header = new HttpHeaders();
        context.getRequestCurrentHeaders().put(CommonConstant.HTTP_ORDER_TYPE_CD, "D");
        JSONArray businesses = new JSONArray();
        AppService service = event.getAppService();
        //添加单元信息
        businesses.add(deleteFeeConfig(reqJson, context));
        JSONObject paramInObj = super.restToCenterProtocol(businesses, context.getRequestCurrentHeaders());
        //将 rest header 信息传递到下层服务中去
        super.freshHttpHeader(header, context.getRequestCurrentHeaders());
        ResponseEntity<String> responseEntity = this.callService(context, service.getServiceCode(), paramInObj);
        context.setResponseEntity(responseEntity);
    }
    @Override
    public String getServiceCode() {
        return ServiceCodeFeeConfigConstant.DELETE_FEECONFIG;
    }
    @Override
    public HttpMethod getHttpMethod() {
        return HttpMethod.POST;
    }
    @Override
    public int getOrder() {
        return DEFAULT_ORDER;
    }
    /**
     * 添加小区信息
     *
     * @param paramInJson     接口调用放传入入参
     * @param dataFlowContext 数据上下文
     * @return 订单服务能够接受的报文
     */
    private JSONObject deleteFeeConfig(JSONObject paramInJson, DataFlowContext dataFlowContext) {
        JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
        business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_DELETE_FEE_CONFIG);
        business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
        business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
        JSONObject businessFeeConfig = new JSONObject();
        businessFeeConfig.putAll(paramInJson);
        //计算 应收金额
        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessFeeConfig", businessFeeConfig);
        return business;
    }
}
Api/src/main/java/com/java110/api/listener/fee/ListFeeConfigsListener.java
New file
@@ -0,0 +1,91 @@
package com.java110.api.listener.fee;
import com.alibaba.fastjson.JSONObject;
import com.java110.api.listener.AbstractServiceApiListener;
import com.java110.core.annotation.Java110Listener;
import com.java110.core.context.DataFlowContext;
import com.java110.core.smo.fee.IFeeConfigInnerServiceSMO;
import com.java110.dto.fee.FeeConfigDto;
import com.java110.event.service.api.ServiceDataFlowEvent;
import com.java110.utils.constant.ServiceCodeFeeConfigConstant;
import com.java110.utils.util.Assert;
import com.java110.utils.util.BeanConvertUtil;
import com.java110.vo.api.feeConfig.ApiFeeConfigDataVo;
import com.java110.vo.api.feeConfig.ApiFeeConfigVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import java.util.ArrayList;
import java.util.List;
/**
 * 查询小区侦听类
 */
@Java110Listener("listFeeConfigsListener")
public class ListFeeConfigsListener extends AbstractServiceApiListener {
    @Autowired
    private IFeeConfigInnerServiceSMO feeConfigInnerServiceSMOImpl;
    @Override
    public String getServiceCode() {
        return ServiceCodeFeeConfigConstant.LIST_FEECONFIGS;
    }
    @Override
    public HttpMethod getHttpMethod() {
        return HttpMethod.GET;
    }
    @Override
    public int getOrder() {
        return DEFAULT_ORDER;
    }
    public IFeeConfigInnerServiceSMO getFeeConfigInnerServiceSMOImpl() {
        return feeConfigInnerServiceSMOImpl;
    }
    public void setFeeConfigInnerServiceSMOImpl(IFeeConfigInnerServiceSMO feeConfigInnerServiceSMOImpl) {
        this.feeConfigInnerServiceSMOImpl = feeConfigInnerServiceSMOImpl;
    }
    @Override
    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
        super.validatePageInfo(reqJson);
        Assert.hasKeyAndValue(reqJson, "communityId", "未包含小区ID");
    }
    @Override
    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
        FeeConfigDto feeConfigDto = BeanConvertUtil.covertBean(reqJson, FeeConfigDto.class);
        int count = feeConfigInnerServiceSMOImpl.queryFeeConfigsCount(feeConfigDto);
        List<ApiFeeConfigDataVo> feeConfigs = null;
        if (count > 0) {
            feeConfigs = BeanConvertUtil.covertBeanList(feeConfigInnerServiceSMOImpl.queryFeeConfigs(feeConfigDto), ApiFeeConfigDataVo.class);
        } else {
            feeConfigs = new ArrayList<>();
        }
        ApiFeeConfigVo apiFeeConfigVo = new ApiFeeConfigVo();
        apiFeeConfigVo.setTotal(count);
        apiFeeConfigVo.setRecords((int) Math.ceil((double) count / (double) reqJson.getInteger("row")));
        apiFeeConfigVo.setFeeConfigs(feeConfigs);
        ResponseEntity<String> responseEntity = new ResponseEntity<String>(JSONObject.toJSONString(apiFeeConfigVo), HttpStatus.OK);
        context.setResponseEntity(responseEntity);
    }
}
Api/src/main/java/com/java110/api/listener/fee/PayFeeConfirmListener.java
@@ -5,30 +5,17 @@
import com.java110.api.listener.AbstractServiceApiDataFlowListener;
import com.java110.core.annotation.Java110Listener;
import com.java110.core.context.DataFlowContext;
import com.java110.core.smo.fee.IFeeConfigInnerServiceSMO;
import com.java110.core.smo.fee.IFeeInnerServiceSMO;
import com.java110.core.smo.room.IRoomInnerServiceSMO;
import com.java110.dto.FeeConfigDto;
import com.java110.dto.FeeDto;
import com.java110.dto.RoomDto;
import com.java110.entity.center.AppService;
import com.java110.entity.order.Orders;
import com.java110.event.service.api.ServiceDataFlowEvent;
import com.java110.utils.constant.*;
import com.java110.utils.exception.ListenerExecuteException;
import com.java110.utils.util.Assert;
import com.java110.utils.util.BeanConvertUtil;
import com.java110.utils.util.DateUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
Api/src/main/java/com/java110/api/listener/fee/PayFeeListener.java
@@ -17,8 +17,8 @@
import com.java110.core.smo.fee.IFeeConfigInnerServiceSMO;
import com.java110.core.smo.fee.IFeeInnerServiceSMO;
import com.java110.core.smo.room.IRoomInnerServiceSMO;
import com.java110.dto.FeeConfigDto;
import com.java110.dto.FeeDto;
import com.java110.dto.fee.FeeConfigDto;
import com.java110.dto.fee.FeeDto;
import com.java110.dto.RoomDto;
import com.java110.entity.center.AppService;
import com.java110.event.service.api.ServiceDataFlowEvent;
Api/src/main/java/com/java110/api/listener/fee/PayFeePreListener.java
@@ -8,8 +8,8 @@
import com.java110.core.smo.fee.IFeeConfigInnerServiceSMO;
import com.java110.core.smo.fee.IFeeInnerServiceSMO;
import com.java110.core.smo.room.IRoomInnerServiceSMO;
import com.java110.dto.FeeConfigDto;
import com.java110.dto.FeeDto;
import com.java110.dto.fee.FeeConfigDto;
import com.java110.dto.fee.FeeDto;
import com.java110.dto.RoomDto;
import com.java110.entity.center.AppService;
import com.java110.entity.order.Orders;
Api/src/main/java/com/java110/api/listener/fee/PayFeePreTempCarInoutListener.java
@@ -9,16 +9,14 @@
import com.java110.core.smo.fee.IFeeInnerServiceSMO;
import com.java110.core.smo.hardwareAdapation.ICarInoutInnerServiceSMO;
import com.java110.core.smo.room.IRoomInnerServiceSMO;
import com.java110.dto.FeeConfigDto;
import com.java110.dto.FeeDto;
import com.java110.dto.RoomDto;
import com.java110.dto.fee.FeeConfigDto;
import com.java110.dto.fee.FeeDto;
import com.java110.dto.hardwareAdapation.CarInoutDto;
import com.java110.entity.center.AppService;
import com.java110.entity.order.Orders;
import com.java110.event.service.api.ServiceDataFlowEvent;
import com.java110.utils.constant.BusinessTypeConstant;
import com.java110.utils.constant.CommonConstant;
import com.java110.utils.constant.FeeTypeConstant;
import com.java110.utils.constant.ResponseConstant;
import com.java110.utils.constant.ServiceCodeConstant;
import com.java110.utils.exception.ListenerExecuteException;
@@ -33,7 +31,6 @@
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Map;
Api/src/main/java/com/java110/api/listener/fee/QueryArrearsFeeListener.java
@@ -16,7 +16,7 @@
import com.java110.core.smo.owner.IOwnerRoomRelInnerServiceSMO;
import com.java110.core.smo.room.IRoomInnerServiceSMO;
import com.java110.core.smo.unit.IUnitInnerServiceSMO;
import com.java110.dto.FeeDto;
import com.java110.dto.fee.FeeDto;
import com.java110.dto.owner.OwnerDto;
import com.java110.event.service.api.ServiceDataFlowEvent;
import com.java110.vo.api.ApiArrearsFeeDataVo;
Api/src/main/java/com/java110/api/listener/fee/QueryFeeByCarInoutListener.java
@@ -6,18 +6,13 @@
import com.java110.core.annotation.Java110Listener;
import com.java110.core.context.DataFlowContext;
import com.java110.core.smo.fee.IFeeInnerServiceSMO;
import com.java110.core.smo.owner.IOwnerCarInnerServiceSMO;
import com.java110.core.smo.parkingSpace.IParkingSpaceInnerServiceSMO;
import com.java110.dto.FeeDto;
import com.java110.dto.owner.OwnerCarDto;
import com.java110.dto.parking.ParkingSpaceDto;
import com.java110.dto.fee.FeeDto;
import com.java110.event.service.api.ServiceDataFlowEvent;
import com.java110.utils.constant.FeeTypeConstant;
import com.java110.utils.constant.ServiceCodeConstant;
import com.java110.utils.util.Assert;
import com.java110.utils.util.BeanConvertUtil;
import com.java110.vo.api.ApiMainFeeVo;
import com.java110.vo.api.ApiParkingSpaceFeeVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus;
Api/src/main/java/com/java110/api/listener/fee/QueryFeeByParkingSpaceListener.java
@@ -11,7 +11,7 @@
import com.java110.core.smo.fee.IFeeInnerServiceSMO;
import com.java110.core.smo.owner.IOwnerCarInnerServiceSMO;
import com.java110.core.smo.parkingSpace.IParkingSpaceInnerServiceSMO;
import com.java110.dto.FeeDto;
import com.java110.dto.fee.FeeDto;
import com.java110.dto.owner.OwnerCarDto;
import com.java110.dto.parking.ParkingSpaceDto;
import com.java110.event.service.api.ServiceDataFlowEvent;
Api/src/main/java/com/java110/api/listener/fee/QueryFeeConfigListener.java
File was deleted
Api/src/main/java/com/java110/api/listener/fee/QueryFeeDetailListener.java
@@ -10,7 +10,7 @@
import com.java110.core.annotation.Java110Listener;
import com.java110.core.context.DataFlowContext;
import com.java110.core.smo.fee.IFeeDetailInnerServiceSMO;
import com.java110.dto.FeeDetailDto;
import com.java110.dto.fee.FeeDetailDto;
import com.java110.event.service.api.ServiceDataFlowEvent;
import com.java110.vo.api.ApiFeeDetailDataVo;
import com.java110.vo.api.ApiFeeDetailVo;
Api/src/main/java/com/java110/api/listener/fee/QueryFeeListener.java
File was deleted
Api/src/main/java/com/java110/api/listener/fee/SaveFeeConfigListener.java
@@ -2,45 +2,67 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.java110.api.listener.AbstractServiceApiDataFlowListener;
import com.java110.utils.constant.BusinessTypeConstant;
import com.java110.utils.constant.CommonConstant;
import com.java110.utils.constant.ServiceCodeConstant;
import com.java110.utils.util.Assert;
import com.java110.api.listener.AbstractServiceApiListener;
import com.java110.core.annotation.Java110Listener;
import com.java110.core.context.DataFlowContext;
import com.java110.core.smo.fee.IFeeConfigInnerServiceSMO;
import com.java110.dto.FeeConfigDto;
import com.java110.entity.center.AppService;
import com.java110.event.service.api.ServiceDataFlowEvent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import com.java110.utils.constant.BusinessTypeConstant;
import com.java110.utils.constant.CommonConstant;
import com.java110.utils.constant.ServiceCodeFeeConfigConstant;
import com.java110.utils.util.Assert;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import java.util.List;
/**
 * @ClassName SaveFeeConfigListener
 * @Description TODO
 * @Author wuxw
 * @Date 2019/6/1 20:51
 * @Version 1.0
 * add by wuxw 2019/6/1
 **/
 * 保存小区侦听
 * add by wuxw 2019-06-30
 */
@Java110Listener("saveFeeConfigListener")
public class SaveFeeConfigListener extends AbstractServiceApiDataFlowListener {
    private static Logger logger = LoggerFactory.getLogger(SaveFeeConfigListener.class);
public class SaveFeeConfigListener extends AbstractServiceApiListener {
    @Override
    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
        //Assert.hasKeyAndValue(reqJson, "xxx", "xxx");
        Assert.hasKeyAndValue(reqJson, "feeTypeCd", "必填,请选择费用类型");
        Assert.hasKeyAndValue(reqJson, "feeName", "必填,请填写收费项目");
        Assert.hasKeyAndValue(reqJson, "feeFlag", "必填,请选择费用标识");
        Assert.hasKeyAndValue(reqJson, "startTime", "必填,请选择计费起始时间");
        Assert.hasKeyAndValue(reqJson, "endTime", "必填,请选择计费终止时间");
        Assert.hasKeyAndValue(reqJson, "computingFormula", "必填,请填写附加费用");
        Assert.hasKeyAndValue(reqJson, "squarePrice", "必填,请填写计费单价");
        Assert.hasKeyAndValue(reqJson, "additionalAmount", "必填,请填写附加费用");
        Assert.hasKeyAndValue(reqJson, "communityId", "未包含小区ID");
    @Autowired
    private IFeeConfigInnerServiceSMO feeConfigInnerServiceSMOImpl;
    }
    @Override
    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
        HttpHeaders header = new HttpHeaders();
        context.getRequestCurrentHeaders().put(CommonConstant.HTTP_ORDER_TYPE_CD, "D");
        JSONArray businesses = new JSONArray();
        AppService service = event.getAppService();
        //添加单元信息
        businesses.add(addFeeConfig(reqJson, context));
        JSONObject paramInObj = super.restToCenterProtocol(businesses, context.getRequestCurrentHeaders());
        //将 rest header 信息传递到下层服务中去
        super.freshHttpHeader(header, context.getRequestCurrentHeaders());
        ResponseEntity<String> responseEntity = this.callService(context, service.getServiceCode(), paramInObj);
        context.setResponseEntity(responseEntity);
    }
    @Override
    public String getServiceCode() {
        return ServiceCodeConstant.SERVICE_CODE_SAVE_FEE_CONFIG;
        return ServiceCodeFeeConfigConstant.ADD_FEECONFIG;
    }
    @Override
@@ -49,39 +71,13 @@
    }
    @Override
    public void soService(ServiceDataFlowEvent event) {
        logger.debug("ServiceDataFlowEvent : {}", event);
        DataFlowContext dataFlowContext = event.getDataFlowContext();
        AppService service = event.getAppService();
        String paramIn = dataFlowContext.getReqData();
        //校验数据
        validate(paramIn);
        JSONObject paramObj = JSONObject.parseObject(paramIn);
        HttpHeaders header = new HttpHeaders();
        dataFlowContext.getRequestCurrentHeaders().put(CommonConstant.HTTP_ORDER_TYPE_CD, "D");
        JSONArray businesses = new JSONArray();
        //添加单元信息
        businesses.add(addFeeConfig(paramObj, dataFlowContext));
        JSONObject paramInObj = super.restToCenterProtocol(businesses, dataFlowContext.getRequestCurrentHeaders());
        //将 rest header 信息传递到下层服务中去
        super.freshHttpHeader(header, dataFlowContext.getRequestCurrentHeaders());
        ResponseEntity<String> responseEntity = this.callService(dataFlowContext, service.getServiceCode(), paramInObj);
        dataFlowContext.setResponseEntity(responseEntity);
    public int getOrder() {
        return DEFAULT_ORDER;
    }
    /**
     * 添加小区楼信息
     * 添加小区信息
     *
     * @param paramInJson     接口调用放传入入参
     * @param dataFlowContext 数据上下文
@@ -97,49 +93,9 @@
        JSONObject businessFeeConfig = new JSONObject();
        businessFeeConfig.putAll(paramInJson);
        businessFeeConfig.put("configId", "-1");
        //计算 应收金额
        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessFeeConfig", businessFeeConfig);
        return business;
    }
    /**
     * 数据校验
     *
     * @param paramIn "communityId": "7020181217000001",
     *                "memberId": "3456789",
     *                "memberTypeCd": "390001200001"
     */
    private void validate(String paramIn) {
        Assert.jsonObjectHaveKey(paramIn, "communityId", "请求报文中未包含communityId节点");
        Assert.jsonObjectHaveKey(paramIn, "squarePrice", "请求报文中未包含squarePrice节点");
        Assert.jsonObjectHaveKey(paramIn, "additionalAmount", "请求报文中未包含additionalAmount节点");
        Assert.jsonObjectHaveKey(paramIn, "feeTypeCd", "请求报文中未包含feeTypeCd节点");
        JSONObject reqJson = JSONObject.parseObject(paramIn);
        Assert.isMoney(reqJson.getString("squarePrice"), "squarePrice不是有效金额格式");
        Assert.isMoney(reqJson.getString("additionalAmount"), "additionalAmount不是有效金额格式");
        FeeConfigDto feeConfigDto = new FeeConfigDto();
        feeConfigDto.setCommunityId(reqJson.getString("communityId"));
        feeConfigDto.setFeeTypeCd(reqJson.getString("feeTypeCd"));
        //校验小区楼ID和小区是否有对应关系
        List<FeeConfigDto> configDtos = feeConfigInnerServiceSMOImpl.queryFeeConfigs(feeConfigDto);
        if (configDtos != null && configDtos.size() > 0) {
            throw new IllegalArgumentException("已经存在费用配置信息");
        }
    }
    @Override
    public int getOrder() {
        return DEFAULT_ORDER;
    }
    public IFeeConfigInnerServiceSMO getFeeConfigInnerServiceSMOImpl() {
        return feeConfigInnerServiceSMOImpl;
    }
    public void setFeeConfigInnerServiceSMOImpl(IFeeConfigInnerServiceSMO feeConfigInnerServiceSMOImpl) {
        this.feeConfigInnerServiceSMOImpl = feeConfigInnerServiceSMOImpl;
    }
}
}
Api/src/main/java/com/java110/api/listener/fee/UpdateFeeConfigListener.java
@@ -2,45 +2,66 @@
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.java110.api.listener.AbstractServiceApiDataFlowListener;
import com.java110.utils.constant.BusinessTypeConstant;
import com.java110.utils.constant.CommonConstant;
import com.java110.utils.constant.ServiceCodeConstant;
import com.java110.utils.util.Assert;
import com.java110.api.listener.AbstractServiceApiListener;
import com.java110.core.annotation.Java110Listener;
import com.java110.core.context.DataFlowContext;
import com.java110.core.smo.fee.IFeeConfigInnerServiceSMO;
import com.java110.dto.FeeConfigDto;
import com.java110.entity.center.AppService;
import com.java110.event.service.api.ServiceDataFlowEvent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import com.java110.utils.constant.BusinessTypeConstant;
import com.java110.utils.constant.CommonConstant;
import com.java110.utils.constant.ServiceCodeFeeConfigConstant;
import com.java110.utils.util.Assert;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import java.util.List;
/**
 * @ClassName SaveFeeConfigListener
 * @Description TODO
 * @Author wuxw
 * @Date 2019/6/1 20:51
 * @Version 1.0
 * add by wuxw 2019/6/1
 **/
 * 保存费用项侦听
 * add by wuxw 2019-06-30
 */
@Java110Listener("updateFeeConfigListener")
public class UpdateFeeConfigListener extends AbstractServiceApiDataFlowListener {
    private static Logger logger = LoggerFactory.getLogger(UpdateFeeConfigListener.class);
public class UpdateFeeConfigListener extends AbstractServiceApiListener {
    @Override
    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
        Assert.hasKeyAndValue(reqJson, "configId", "费用项ID不能为空");
        Assert.hasKeyAndValue(reqJson, "feeTypeCd", "必填,请选择费用类型");
        Assert.hasKeyAndValue(reqJson, "feeName", "必填,请填写收费项目");
        Assert.hasKeyAndValue(reqJson, "feeFlag", "必填,请选择费用标识");
        Assert.hasKeyAndValue(reqJson, "startTime", "必填,请选择计费起始时间");
        Assert.hasKeyAndValue(reqJson, "endTime", "必填,请选择计费终止时间");
        Assert.hasKeyAndValue(reqJson, "computingFormula", "必填,请填写附加费用");
        Assert.hasKeyAndValue(reqJson, "squarePrice", "必填,请填写计费单价");
        Assert.hasKeyAndValue(reqJson, "additionalAmount", "必填,请填写附加费用");
        Assert.hasKeyAndValue(reqJson, "communityId", "未包含小区ID");
    @Autowired
    private IFeeConfigInnerServiceSMO feeConfigInnerServiceSMOImpl;
    }
    @Override
    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
        HttpHeaders header = new HttpHeaders();
        context.getRequestCurrentHeaders().put(CommonConstant.HTTP_ORDER_TYPE_CD, "D");
        JSONArray businesses = new JSONArray();
        AppService service = event.getAppService();
        //添加单元信息
        businesses.add(updateFeeConfig(reqJson, context));
        JSONObject paramInObj = super.restToCenterProtocol(businesses, context.getRequestCurrentHeaders());
        //将 rest header 信息传递到下层服务中去
        super.freshHttpHeader(header, context.getRequestCurrentHeaders());
        ResponseEntity<String> responseEntity = this.callService(context, service.getServiceCode(), paramInObj);
        context.setResponseEntity(responseEntity);
    }
    @Override
    public String getServiceCode() {
        return ServiceCodeConstant.SERVICE_CODE_UPDATE_FEE_CONFIG;
        return ServiceCodeFeeConfigConstant.UPDATE_FEECONFIG;
    }
    @Override
@@ -49,45 +70,19 @@
    }
    @Override
    public void soService(ServiceDataFlowEvent event) {
        logger.debug("ServiceDataFlowEvent : {}", event);
        DataFlowContext dataFlowContext = event.getDataFlowContext();
        AppService service = event.getAppService();
        String paramIn = dataFlowContext.getReqData();
        //校验数据
        validate(paramIn);
        JSONObject paramObj = JSONObject.parseObject(paramIn);
        HttpHeaders header = new HttpHeaders();
        dataFlowContext.getRequestCurrentHeaders().put(CommonConstant.HTTP_ORDER_TYPE_CD, "D");
        JSONArray businesses = new JSONArray();
        //添加单元信息
        businesses.add(modifyFeeConfig(paramObj, dataFlowContext));
        JSONObject paramInObj = super.restToCenterProtocol(businesses, dataFlowContext.getRequestCurrentHeaders());
        //将 rest header 信息传递到下层服务中去
        super.freshHttpHeader(header, dataFlowContext.getRequestCurrentHeaders());
        ResponseEntity<String> responseEntity = this.callService(dataFlowContext, service.getServiceCode(), paramInObj);
        dataFlowContext.setResponseEntity(responseEntity);
    public int getOrder() {
        return DEFAULT_ORDER;
    }
    /**
     * 添加小区楼信息
     * 添加费用项信息
     *
     * @param paramInJson     接口调用放传入入参
     * @param dataFlowContext 数据上下文
     * @return 订单服务能够接受的报文
     */
    private JSONObject modifyFeeConfig(JSONObject paramInJson, DataFlowContext dataFlowContext) {
    private JSONObject updateFeeConfig(JSONObject paramInJson, DataFlowContext dataFlowContext) {
        JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
@@ -96,52 +91,9 @@
        business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
        JSONObject businessFeeConfig = new JSONObject();
        businessFeeConfig.putAll(paramInJson);
        //计算 应收金额
        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessFeeConfig", businessFeeConfig);
        return business;
    }
    /**
     * 数据校验
     *
     * @param paramIn "communityId": "7020181217000001",
     *                "memberId": "3456789",
     *                "memberTypeCd": "390001200001"
     */
    private void validate(String paramIn) {
        Assert.jsonObjectHaveKey(paramIn, "communityId", "请求报文中未包含communityId节点");
        Assert.jsonObjectHaveKey(paramIn, "configId", "请求报文中未包含communityId节点");
        Assert.jsonObjectHaveKey(paramIn, "squarePrice", "请求报文中未包含squarePrice节点");
        Assert.jsonObjectHaveKey(paramIn, "additionalAmount", "请求报文中未包含additionalAmount节点");
        Assert.jsonObjectHaveKey(paramIn, "feeTypeCd", "请求报文中未包含feeTypeCd节点");
        JSONObject reqJson = JSONObject.parseObject(paramIn);
        Assert.isMoney(reqJson.getString("squarePrice"), "squarePrice不是有效金额格式");
        Assert.isMoney(reqJson.getString("additionalAmount"), "additionalAmount不是有效金额格式");
        Assert.hasLength(reqJson.getString("communityId"), "小区ID错误");
        Assert.hasLength(reqJson.getString("configId"), "configId错误");
        FeeConfigDto feeConfigDto = new FeeConfigDto();
        feeConfigDto.setCommunityId(reqJson.getString("communityId"));
        feeConfigDto.setFeeTypeCd(reqJson.getString("feeTypeCd"));
        //校验小区楼ID和小区是否有对应关系
        List<FeeConfigDto> configDtos = feeConfigInnerServiceSMOImpl.queryFeeConfigs(feeConfigDto);
        if (configDtos == null || configDtos.size() != 1) {
            throw new IllegalArgumentException("不存在改费用配置(" + JSONObject.toJSONString(feeConfigDto) + ")信息");
        }
    }
    @Override
    public int getOrder() {
        return DEFAULT_ORDER;
    }
    public IFeeConfigInnerServiceSMO getFeeConfigInnerServiceSMOImpl() {
        return feeConfigInnerServiceSMOImpl;
    }
    public void setFeeConfigInnerServiceSMOImpl(IFeeConfigInnerServiceSMO feeConfigInnerServiceSMOImpl) {
        this.feeConfigInnerServiceSMOImpl = feeConfigInnerServiceSMOImpl;
    }
}
}
Api/src/main/java/com/java110/api/listener/machineTranslate/MachineGetFreeParkingSpaceListener.java
@@ -1,49 +1,30 @@
package com.java110.api.listener.machineTranslate;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.java110.core.annotation.Java110Listener;
import com.java110.core.context.DataFlowContext;
import com.java110.core.factory.GenerateCodeFactory;
import com.java110.core.smo.community.ICommunityInnerServiceSMO;
import com.java110.core.smo.fee.IFeeConfigInnerServiceSMO;
import com.java110.core.smo.fee.IFeeInnerServiceSMO;
import com.java110.core.smo.hardwareAdapation.ICarBlackWhiteInnerServiceSMO;
import com.java110.core.smo.hardwareAdapation.ICarInoutInnerServiceSMO;
import com.java110.core.smo.hardwareAdapation.IMachineInnerServiceSMO;
import com.java110.core.smo.owner.IOwnerCarInnerServiceSMO;
import com.java110.core.smo.parkingSpace.IParkingSpaceInnerServiceSMO;
import com.java110.dto.CommunityMemberDto;
import com.java110.dto.FeeConfigDto;
import com.java110.dto.FeeDto;
import com.java110.dto.hardwareAdapation.CarBlackWhiteDto;
import com.java110.dto.fee.FeeDto;
import com.java110.dto.hardwareAdapation.CarInoutDto;
import com.java110.dto.hardwareAdapation.MachineDto;
import com.java110.dto.owner.OwnerCarDto;
import com.java110.dto.parking.ParkingSpaceDto;
import com.java110.entity.center.AppService;
import com.java110.event.service.api.ServiceDataFlowEvent;
import com.java110.utils.constant.BusinessTypeConstant;
import com.java110.utils.constant.CommonConstant;
import com.java110.utils.constant.CommunityMemberTypeConstant;
import com.java110.utils.constant.FeeTypeConstant;
import com.java110.utils.constant.ServiceCodeMachineTranslateConstant;
import com.java110.utils.util.Assert;
import com.java110.utils.util.BeanConvertUtil;
import com.java110.utils.util.DateUtil;
import com.java110.vo.api.machine.MachineResDataVo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * @ClassName MachineRoadGateOpenListener
Api/src/main/java/com/java110/api/listener/machineTranslate/MachineRoadGateOpenListener.java
@@ -13,8 +13,8 @@
import com.java110.core.smo.hardwareAdapation.IMachineInnerServiceSMO;
import com.java110.core.smo.owner.IOwnerCarInnerServiceSMO;
import com.java110.dto.CommunityMemberDto;
import com.java110.dto.FeeConfigDto;
import com.java110.dto.FeeDto;
import com.java110.dto.fee.FeeConfigDto;
import com.java110.dto.fee.FeeDto;
import com.java110.dto.hardwareAdapation.CarBlackWhiteDto;
import com.java110.dto.hardwareAdapation.CarInoutDto;
import com.java110.dto.hardwareAdapation.MachineDto;
Api/src/main/java/com/java110/api/listener/parkingSpace/ExitParkingSpaceListener.java
@@ -14,7 +14,7 @@
import com.java110.core.smo.fee.IFeeInnerServiceSMO;
import com.java110.core.smo.owner.IOwnerCarInnerServiceSMO;
import com.java110.core.smo.parkingSpace.IParkingSpaceInnerServiceSMO;
import com.java110.dto.FeeDto;
import com.java110.dto.fee.FeeDto;
import com.java110.dto.owner.OwnerCarDto;
import com.java110.dto.parking.ParkingSpaceDto;
import com.java110.entity.center.AppService;
Api/src/main/java/com/java110/api/listener/parkingSpace/SellParkingSpaceListener.java
@@ -13,7 +13,7 @@
import com.java110.core.factory.GenerateCodeFactory;
import com.java110.core.smo.fee.IFeeConfigInnerServiceSMO;
import com.java110.core.smo.parkingSpace.IParkingSpaceInnerServiceSMO;
import com.java110.dto.FeeConfigDto;
import com.java110.dto.fee.FeeConfigDto;
import com.java110.dto.parking.ParkingSpaceDto;
import com.java110.entity.center.AppService;
import com.java110.event.service.api.ServiceDataFlowEvent;
Api/src/main/java/com/java110/api/listener/room/ExitRoomListener.java
@@ -13,7 +13,7 @@
import com.java110.core.smo.community.ICommunityInnerServiceSMO;
import com.java110.core.smo.fee.IFeeInnerServiceSMO;
import com.java110.core.smo.owner.IOwnerRoomRelInnerServiceSMO;
import com.java110.dto.FeeDto;
import com.java110.dto.fee.FeeDto;
import com.java110.dto.owner.OwnerRoomRelDto;
import com.java110.entity.center.AppService;
import com.java110.event.service.api.ServiceDataFlowEvent;
CommonService/src/main/java/com/java110/common/smo/impl/ComplaintUserInnerServiceSMOImpl.java
@@ -4,7 +4,6 @@
import com.java110.core.base.smo.BaseServiceSMO;
import com.java110.core.smo.complaint.IComplaintInnerServiceSMO;
import com.java110.core.smo.complaintUser.IComplaintUserInnerServiceSMO;
import com.java110.dto.FeeDto;
import com.java110.dto.PageDto;
import com.java110.dto.auditMessage.AuditMessageDto;
import com.java110.dto.complaint.ComplaintDto;
@@ -14,7 +13,6 @@
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.history.HistoricActivityInstance;
import org.activiti.engine.history.HistoricProcessInstance;
import org.activiti.engine.history.HistoricTaskInstance;
import org.activiti.engine.impl.identity.Authentication;
FeeService/src/main/java/com/java110/fee/listener/config/AbstractFeeConfigBusinessServiceDataFlowListener.java
@@ -1,12 +1,12 @@
package com.java110.fee.listener.config;
import com.alibaba.fastjson.JSONObject;
import com.java110.utils.constant.ResponseConstant;
import com.java110.utils.constant.StatusConstant;
import com.java110.utils.exception.ListenerExecuteException;
import com.java110.entity.center.Business;
import com.java110.event.service.AbstractBusinessServiceDataFlowListener;
import com.java110.fee.dao.IFeeConfigServiceDao;
import com.java110.utils.constant.ResponseConstant;
import com.java110.utils.constant.StatusConstant;
import com.java110.utils.exception.ListenerExecuteException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -15,16 +15,16 @@
import java.util.Map;
/**
 *
 * 费用配置 服务侦听 父类
 * Created by wuxw on 2018/7/4.
 */
public abstract class AbstractFeeConfigBusinessServiceDataFlowListener extends AbstractBusinessServiceDataFlowListener{
public abstract class AbstractFeeConfigBusinessServiceDataFlowListener extends AbstractBusinessServiceDataFlowListener {
    private static Logger logger = LoggerFactory.getLogger(AbstractFeeConfigBusinessServiceDataFlowListener.class);
    /**
     * 获取 DAO工具类
     *
     * @return
     */
    public abstract IFeeConfigServiceDao getFeeConfigServiceDaoImpl();
@@ -32,53 +32,64 @@
    /**
     * 刷新 businessFeeConfigInfo 数据
     * 主要将 数据库 中字段和 接口传递字段建立关系
     *
     * @param businessFeeConfigInfo
     */
    protected void flushBusinessFeeConfigInfo(Map businessFeeConfigInfo,String statusCd){
    protected void flushBusinessFeeConfigInfo(Map businessFeeConfigInfo, String statusCd) {
        businessFeeConfigInfo.put("newBId", businessFeeConfigInfo.get("b_id"));
        businessFeeConfigInfo.put("squarePrice",businessFeeConfigInfo.get("square_price"));
businessFeeConfigInfo.put("operate",businessFeeConfigInfo.get("operate"));
businessFeeConfigInfo.put("feeTypeCd",businessFeeConfigInfo.get("fee_type_cd"));
businessFeeConfigInfo.put("configId",businessFeeConfigInfo.get("config_id"));
businessFeeConfigInfo.put("additionalAmount",businessFeeConfigInfo.get("additional_amount"));
businessFeeConfigInfo.put("communityId",businessFeeConfigInfo.get("community_id"));
businessFeeConfigInfo.remove("bId");
        businessFeeConfigInfo.put("feeTypeCd", businessFeeConfigInfo.get("fee_type_cd"));
        businessFeeConfigInfo.put("computingFormula", businessFeeConfigInfo.get("computing_formula"));
        businessFeeConfigInfo.put("additionalAmount", businessFeeConfigInfo.get("additional_amount"));
        businessFeeConfigInfo.put("squarePrice", businessFeeConfigInfo.get("square_price"));
        businessFeeConfigInfo.put("isDefault", businessFeeConfigInfo.get("is_default"));
        businessFeeConfigInfo.put("operate", businessFeeConfigInfo.get("operate"));
        businessFeeConfigInfo.put("configId", businessFeeConfigInfo.get("config_id"));
        businessFeeConfigInfo.put("feeFlag", businessFeeConfigInfo.get("fee_flag"));
        businessFeeConfigInfo.put("feeName", businessFeeConfigInfo.get("fee_name"));
        businessFeeConfigInfo.put("startTime", businessFeeConfigInfo.get("start_time"));
        businessFeeConfigInfo.put("endTime", businessFeeConfigInfo.get("end_time"));
        businessFeeConfigInfo.put("communityId", businessFeeConfigInfo.get("community_id"));
        businessFeeConfigInfo.remove("bId");
        businessFeeConfigInfo.put("statusCd", statusCd);
    }
    /**
     * 当修改数据时,查询instance表中的数据 自动保存删除数据到business中
     *
     * @param businessFeeConfig 费用配置信息
     */
    protected void autoSaveDelBusinessFeeConfig(Business business, JSONObject businessFeeConfig){
    protected void autoSaveDelBusinessFeeConfig(Business business, JSONObject businessFeeConfig) {
//自动插入DEL
        Map info = new HashMap();
        info.put("configId",businessFeeConfig.getString("configId"));
        info.put("statusCd",StatusConstant.STATUS_CD_VALID);
        info.put("configId", businessFeeConfig.getString("configId"));
        info.put("statusCd", StatusConstant.STATUS_CD_VALID);
        List<Map> currentFeeConfigInfos = getFeeConfigServiceDaoImpl().getFeeConfigInfo(info);
        if(currentFeeConfigInfos == null || currentFeeConfigInfos.size() != 1){
            throw new ListenerExecuteException(ResponseConstant.RESULT_PARAM_ERROR,"未找到需要修改数据信息,入参错误或数据有问题,请检查"+info);
        if (currentFeeConfigInfos == null || currentFeeConfigInfos.size() != 1) {
            throw new ListenerExecuteException(ResponseConstant.RESULT_PARAM_ERROR, "未找到需要修改数据信息,入参错误或数据有问题,请检查" + info);
        }
        Map currentFeeConfigInfo = currentFeeConfigInfos.get(0);
        currentFeeConfigInfo.put("bId",business.getbId());
        currentFeeConfigInfo.put("bId", business.getbId());
        currentFeeConfigInfo.put("squarePrice",currentFeeConfigInfo.get("square_price"));
currentFeeConfigInfo.put("operate",currentFeeConfigInfo.get("operate"));
currentFeeConfigInfo.put("feeTypeCd",currentFeeConfigInfo.get("fee_type_cd"));
currentFeeConfigInfo.put("configId",currentFeeConfigInfo.get("config_id"));
currentFeeConfigInfo.put("additionalAmount",currentFeeConfigInfo.get("additional_amount"));
currentFeeConfigInfo.put("communityId",currentFeeConfigInfo.get("community_id"));
        currentFeeConfigInfo.put("feeTypeCd", currentFeeConfigInfo.get("fee_type_cd"));
        currentFeeConfigInfo.put("computingFormula", currentFeeConfigInfo.get("computing_formula"));
        currentFeeConfigInfo.put("additionalAmount", currentFeeConfigInfo.get("additional_amount"));
        currentFeeConfigInfo.put("squarePrice", currentFeeConfigInfo.get("square_price"));
        currentFeeConfigInfo.put("isDefault", currentFeeConfigInfo.get("is_default"));
        currentFeeConfigInfo.put("operate", currentFeeConfigInfo.get("operate"));
        currentFeeConfigInfo.put("configId", currentFeeConfigInfo.get("config_id"));
        currentFeeConfigInfo.put("feeFlag", currentFeeConfigInfo.get("fee_flag"));
        currentFeeConfigInfo.put("feeName", currentFeeConfigInfo.get("fee_name"));
        currentFeeConfigInfo.put("startTime", currentFeeConfigInfo.get("start_time"));
        currentFeeConfigInfo.put("endTime", currentFeeConfigInfo.get("end_time"));
        currentFeeConfigInfo.put("communityId", currentFeeConfigInfo.get("community_id"));
        currentFeeConfigInfo.put("operate",StatusConstant.OPERATE_DEL);
        currentFeeConfigInfo.put("operate", StatusConstant.OPERATE_DEL);
        getFeeConfigServiceDaoImpl().saveBusinessFeeConfigInfo(currentFeeConfigInfo);
    }
}
FeeService/src/main/java/com/java110/fee/smo/impl/FeeAttrInnerServiceSMOImpl.java
@@ -7,7 +7,7 @@
import com.java110.core.smo.fee.IFeeAttrInnerServiceSMO;
import com.java110.core.smo.user.IUserInnerServiceSMO;
import com.java110.dto.PageDto;
import com.java110.dto.FeeAttrDto;
import com.java110.dto.fee.FeeAttrDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
FeeService/src/main/java/com/java110/fee/smo/impl/FeeConfigInnerServiceSMOImpl.java
@@ -7,7 +7,7 @@
import com.java110.core.smo.fee.IFeeConfigInnerServiceSMO;
import com.java110.core.smo.user.IUserInnerServiceSMO;
import com.java110.dto.PageDto;
import com.java110.dto.FeeConfigDto;
import com.java110.dto.fee.FeeConfigDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
FeeService/src/main/java/com/java110/fee/smo/impl/FeeDetailInnerServiceSMOImpl.java
@@ -7,7 +7,7 @@
import com.java110.core.smo.fee.IFeeDetailInnerServiceSMO;
import com.java110.core.smo.user.IUserInnerServiceSMO;
import com.java110.dto.PageDto;
import com.java110.dto.FeeDetailDto;
import com.java110.dto.fee.FeeDetailDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
FeeService/src/main/java/com/java110/fee/smo/impl/FeeInnerServiceSMOImpl.java
@@ -6,7 +6,7 @@
import com.java110.core.base.smo.BaseServiceSMO;
import com.java110.core.smo.fee.IFeeInnerServiceSMO;
import com.java110.core.smo.user.IUserInnerServiceSMO;
import com.java110.dto.FeeDto;
import com.java110.dto.fee.FeeDto;
import com.java110.dto.PageDto;
import com.java110.dto.user.UserDto;
import org.springframework.beans.factory.annotation.Autowired;
WebService/src/main/java/com/java110/web/components/fee/AddFeeConfigComponent.java
New file
@@ -0,0 +1,34 @@
package com.java110.web.components.fee;
import com.java110.core.context.IPageData;
import com.java110.web.smo.feeConfig.IAddFeeConfigSMO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
/**
 * 添加费用项组件
 */
@Component("addFeeConfig")
public class AddFeeConfigComponent {
    @Autowired
    private IAddFeeConfigSMO addFeeConfigSMOImpl;
    /**
     * 添加费用项数据
     * @param pd 页面数据封装
     * @return ResponseEntity 对象
     */
    public ResponseEntity<String> save(IPageData pd){
        return addFeeConfigSMOImpl.saveFeeConfig(pd);
    }
    public IAddFeeConfigSMO getAddFeeConfigSMOImpl() {
        return addFeeConfigSMOImpl;
    }
    public void setAddFeeConfigSMOImpl(IAddFeeConfigSMO addFeeConfigSMOImpl) {
        this.addFeeConfigSMOImpl = addFeeConfigSMOImpl;
    }
}
WebService/src/main/java/com/java110/web/components/fee/ChooseFeeConfigComponent.java
New file
@@ -0,0 +1,41 @@
package com.java110.web.components.fee;
import com.java110.core.context.IPageData;
import com.java110.web.smo.feeConfig.IListFeeConfigsSMO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
/**
 * 应用组件管理类
 * <p>
 * add by wuxw
 * <p>
 * 2019-06-29
 */
@Component("chooseFeeConfig")
public class ChooseFeeConfigComponent {
    @Autowired
    private IListFeeConfigsSMO listFeeConfigsSMOImpl;
    /**
     * 查询应用列表
     *
     * @param pd 页面数据封装
     * @return 返回 ResponseEntity 对象
     */
    public ResponseEntity<String> list(IPageData pd) {
        return listFeeConfigsSMOImpl.listFeeConfigs(pd);
    }
    public IListFeeConfigsSMO getListFeeConfigsSMOImpl() {
        return listFeeConfigsSMOImpl;
    }
    public void setListFeeConfigsSMOImpl(IListFeeConfigsSMO listFeeConfigsSMOImpl) {
        this.listFeeConfigsSMOImpl = listFeeConfigsSMOImpl;
    }
}
WebService/src/main/java/com/java110/web/components/fee/DeleteFeeConfigComponent.java
New file
@@ -0,0 +1,34 @@
package com.java110.web.components.fee;
import com.java110.core.context.IPageData;
import com.java110.web.smo.feeConfig.IDeleteFeeConfigSMO;
import org.springframework.beans.factory.annotation.Autowired;
        import org.springframework.http.ResponseEntity;
        import org.springframework.stereotype.Component;
/**
 * 添加费用项组件
 */
@Component("deleteFeeConfig")
public class DeleteFeeConfigComponent {
@Autowired
private IDeleteFeeConfigSMO deleteFeeConfigSMOImpl;
/**
 * 添加费用项数据
 * @param pd 页面数据封装
 * @return ResponseEntity 对象
 */
public ResponseEntity<String> delete(IPageData pd){
        return deleteFeeConfigSMOImpl.deleteFeeConfig(pd);
    }
public IDeleteFeeConfigSMO getDeleteFeeConfigSMOImpl() {
        return deleteFeeConfigSMOImpl;
    }
public void setDeleteFeeConfigSMOImpl(IDeleteFeeConfigSMO deleteFeeConfigSMOImpl) {
        this.deleteFeeConfigSMOImpl = deleteFeeConfigSMOImpl;
    }
            }
WebService/src/main/java/com/java110/web/components/fee/EditFeeConfigComponent.java
New file
@@ -0,0 +1,34 @@
package com.java110.web.components.fee;
import com.java110.core.context.IPageData;
import com.java110.web.smo.feeConfig.IEditFeeConfigSMO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
/**
 * 编辑小区组件
 */
@Component("editFeeConfig")
public class EditFeeConfigComponent {
    @Autowired
    private IEditFeeConfigSMO editFeeConfigSMOImpl;
    /**
     * 添加小区数据
     * @param pd 页面数据封装
     * @return ResponseEntity 对象
     */
    public ResponseEntity<String> update(IPageData pd){
        return editFeeConfigSMOImpl.updateFeeConfig(pd);
    }
    public IEditFeeConfigSMO getEditFeeConfigSMOImpl() {
        return editFeeConfigSMOImpl;
    }
    public void setEditFeeConfigSMOImpl(IEditFeeConfigSMO editFeeConfigSMOImpl) {
        this.editFeeConfigSMOImpl = editFeeConfigSMOImpl;
    }
}
WebService/src/main/java/com/java110/web/components/fee/FeeConfigManageComponent.java
New file
@@ -0,0 +1,41 @@
package com.java110.web.components.fee;
import com.java110.core.context.IPageData;
import com.java110.web.smo.feeConfig.IListFeeConfigsSMO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
/**
 * 费用项组件管理类
 * <p>
 * add by wuxw
 * <p>
 * 2019-06-29
 */
@Component("feeConfigManage")
public class FeeConfigManageComponent {
    @Autowired
    private IListFeeConfigsSMO listFeeConfigsSMOImpl;
    /**
     * 查询费用项列表
     *
     * @param pd 页面数据封装
     * @return 返回 ResponseEntity 对象
     */
    public ResponseEntity<String> list(IPageData pd) {
        return listFeeConfigsSMOImpl.listFeeConfigs(pd);
    }
    public IListFeeConfigsSMO getListFeeConfigsSMOImpl() {
        return listFeeConfigsSMOImpl;
    }
    public void setListFeeConfigsSMOImpl(IListFeeConfigsSMO listFeeConfigsSMOImpl) {
        this.listFeeConfigsSMOImpl = listFeeConfigsSMOImpl;
    }
}
WebService/src/main/java/com/java110/web/smo/feeConfig/IAddFeeConfigSMO.java
New file
@@ -0,0 +1,19 @@
package com.java110.web.smo.feeConfig;
import com.java110.core.context.IPageData;
import org.springframework.http.ResponseEntity;
/**
 * 添加费用项接口
 *
 * add by wuxw 2019-06-30
 */
public interface IAddFeeConfigSMO {
    /**
     * 添加费用项
     * @param pd 页面数据封装
     * @return ResponseEntity 对象
     */
    ResponseEntity<String> saveFeeConfig(IPageData pd);
}
WebService/src/main/java/com/java110/web/smo/feeConfig/IDeleteFeeConfigSMO.java
New file
@@ -0,0 +1,19 @@
package com.java110.web.smo.feeConfig;
import com.java110.core.context.IPageData;
import org.springframework.http.ResponseEntity;
/**
 * 添加费用项接口
 *
 * add by wuxw 2019-06-30
 */
public interface IDeleteFeeConfigSMO {
    /**
     * 添加费用项
     * @param pd 页面数据封装
     * @return ResponseEntity 对象
     */
    ResponseEntity<String> deleteFeeConfig(IPageData pd);
}
WebService/src/main/java/com/java110/web/smo/feeConfig/IEditFeeConfigSMO.java
New file
@@ -0,0 +1,19 @@
package com.java110.web.smo.feeConfig;
import com.java110.core.context.IPageData;
import org.springframework.http.ResponseEntity;
/**
 * 修改费用项接口
 *
 * add by wuxw 2019-06-30
 */
public interface IEditFeeConfigSMO {
    /**
     * 修改小区
     * @param pd 页面数据封装
     * @return ResponseEntity 对象
     */
    ResponseEntity<String> updateFeeConfig(IPageData pd);
}
WebService/src/main/java/com/java110/web/smo/feeConfig/IListFeeConfigsSMO.java
New file
@@ -0,0 +1,22 @@
package com.java110.web.smo.feeConfig;
import com.java110.core.context.IPageData;
import com.java110.utils.exception.SMOException;
import org.springframework.http.ResponseEntity;
/**
 * 费用项管理服务接口类
 * <p>
 * add by wuxw 2019-06-29
 */
public interface IListFeeConfigsSMO {
    /**
     * 查询费用项信息
     *
     * @param pd 页面数据封装
     * @return ResponseEntity 对象数据
     * @throws SMOException 业务代码层
     */
    ResponseEntity<String> listFeeConfigs(IPageData pd) throws SMOException;
}
WebService/src/main/java/com/java110/web/smo/feeConfig/impl/AddFeeConfigSMOImpl.java
New file
@@ -0,0 +1,70 @@
package com.java110.web.smo.feeConfig.impl;
import com.alibaba.fastjson.JSONObject;
import com.java110.core.component.AbstractComponentSMO;
import com.java110.core.context.IPageData;
import com.java110.utils.constant.ServiceConstant;
import com.java110.utils.util.Assert;
import com.java110.web.smo.feeConfig.IAddFeeConfigSMO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
/**
 * 添加小区服务实现类
 * add by wuxw 2019-06-30
 */
@Service("addFeeConfigSMOImpl")
public class AddFeeConfigSMOImpl extends AbstractComponentSMO implements IAddFeeConfigSMO {
    @Autowired
    private RestTemplate restTemplate;
    @Override
    protected void validate(IPageData pd, JSONObject paramIn) {
        //super.validatePageInfo(pd);
        //Assert.hasKeyAndValue(paramIn, "xxx", "xxx");
        Assert.hasKeyAndValue(paramIn, "feeTypeCd", "必填,请选择费用类型");
        Assert.hasKeyAndValue(paramIn, "feeName", "必填,请填写收费项目");
        Assert.hasKeyAndValue(paramIn, "feeFlag", "必填,请选择费用标识");
        Assert.hasKeyAndValue(paramIn, "startTime", "必填,请选择计费起始时间");
        Assert.hasKeyAndValue(paramIn, "endTime", "必填,请选择计费终止时间");
        Assert.hasKeyAndValue(paramIn, "computingFormula", "必填,请填写附加费用");
        Assert.hasKeyAndValue(paramIn, "squarePrice", "必填,请填写计费单价");
        Assert.hasKeyAndValue(paramIn, "additionalAmount", "必填,请填写附加费用");
        Assert.hasKeyAndValue(paramIn, "communityId", "未包含小区ID");
        //super.checkUserHasPrivilege(pd, restTemplate, PrivilegeCodeConstant.AGENT_HAS_LIST_FEECONFIG);
    }
    @Override
    protected ResponseEntity<String> doBusinessProcess(IPageData pd, JSONObject paramIn) {
        ResponseEntity<String> responseEntity = null;
        super.validateStoreStaffCommunityRelationship(pd, restTemplate);
        responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(),
                ServiceConstant.SERVICE_API_URL + "/api/feeConfig.saveFeeConfig",
                HttpMethod.POST);
        return responseEntity;
    }
    @Override
    public ResponseEntity<String> saveFeeConfig(IPageData pd) {
        return super.businessProcess(pd);
    }
    public RestTemplate getRestTemplate() {
        return restTemplate;
    }
    public void setRestTemplate(RestTemplate restTemplate) {
        this.restTemplate = restTemplate;
    }
}
WebService/src/main/java/com/java110/web/smo/feeConfig/impl/DeleteFeeConfigSMOImpl.java
New file
@@ -0,0 +1,64 @@
package com.java110.web.smo.feeConfig.impl;
import com.alibaba.fastjson.JSONObject;
import com.java110.core.component.AbstractComponentSMO;
import com.java110.core.context.IPageData;
import com.java110.utils.constant.ServiceConstant;
import com.java110.utils.util.Assert;
import com.java110.web.smo.feeConfig.IDeleteFeeConfigSMO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
/**
 * 添加小区服务实现类
 * delete by wuxw 2019-06-30
 */
@Service("deleteFeeConfigSMOImpl")
public class DeleteFeeConfigSMOImpl extends AbstractComponentSMO implements IDeleteFeeConfigSMO {
    @Autowired
    private RestTemplate restTemplate;
    @Override
    protected void validate(IPageData pd, JSONObject paramIn) {
        //super.validatePageInfo(pd);
        //Assert.hasKeyAndValue(paramIn, "xxx", "xxx");
        Assert.hasKeyAndValue(paramIn, "configId", "费用项ID不能为空");
        Assert.hasKeyAndValue(paramIn, "communityId", "未包含小区ID");
        //super.checkUserHasPrivilege(pd, restTemplate, PrivilegeCodeConstant.AGENT_HAS_LIST_FEECONFIG);
    }
    @Override
    protected ResponseEntity<String> doBusinessProcess(IPageData pd, JSONObject paramIn) {
        ResponseEntity<String> responseEntity = null;
        super.validateStoreStaffCommunityRelationship(pd, restTemplate);
        responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(),
                ServiceConstant.SERVICE_API_URL + "/api/feeConfig.deleteFeeConfig",
                HttpMethod.POST);
        return responseEntity;
    }
    @Override
    public ResponseEntity<String> deleteFeeConfig(IPageData pd) {
        return super.businessProcess(pd);
    }
    public RestTemplate getRestTemplate() {
        return restTemplate;
    }
    public void setRestTemplate(RestTemplate restTemplate) {
        this.restTemplate = restTemplate;
    }
}
WebService/src/main/java/com/java110/web/smo/feeConfig/impl/EditFeeConfigSMOImpl.java
New file
@@ -0,0 +1,69 @@
package com.java110.web.smo.feeConfig.impl;
import com.alibaba.fastjson.JSONObject;
import com.java110.core.component.AbstractComponentSMO;
import com.java110.core.context.IPageData;
import com.java110.utils.constant.ServiceConstant;
import com.java110.utils.util.Assert;
import com.java110.web.smo.feeConfig.IEditFeeConfigSMO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
/**
 * 添加费用项服务实现类
 * add by wuxw 2019-06-30
 */
@Service("eidtFeeConfigSMOImpl")
public class EditFeeConfigSMOImpl extends AbstractComponentSMO implements IEditFeeConfigSMO {
    @Autowired
    private RestTemplate restTemplate;
    @Override
    protected void validate(IPageData pd, JSONObject paramIn) {
        //super.validatePageInfo(pd);
        Assert.hasKeyAndValue(paramIn, "configId", "费用项ID不能为空");
        Assert.hasKeyAndValue(paramIn, "feeTypeCd", "必填,请选择费用类型");
        Assert.hasKeyAndValue(paramIn, "feeName", "必填,请填写收费项目");
        Assert.hasKeyAndValue(paramIn, "feeFlag", "必填,请选择费用标识");
        Assert.hasKeyAndValue(paramIn, "startTime", "必填,请选择计费起始时间");
        Assert.hasKeyAndValue(paramIn, "endTime", "必填,请选择计费终止时间");
        Assert.hasKeyAndValue(paramIn, "computingFormula", "必填,请填写附加费用");
        Assert.hasKeyAndValue(paramIn, "squarePrice", "必填,请填写计费单价");
        Assert.hasKeyAndValue(paramIn, "additionalAmount", "必填,请填写附加费用");
        Assert.hasKeyAndValue(paramIn, "communityId", "未包含小区ID");
        //super.checkUserHasPrivilege(pd, restTemplate, PrivilegeCodeConstant.AGENT_HAS_LIST__FEECONFIG);
    }
    @Override
    protected ResponseEntity<String> doBusinessProcess(IPageData pd, JSONObject paramIn) {
        ResponseEntity<String> responseEntity = null;
        super.validateStoreStaffCommunityRelationship(pd, restTemplate);
        responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(),
                ServiceConstant.SERVICE_API_URL + "/api/feeConfig.updateFeeConfig",
                HttpMethod.POST);
        return responseEntity;
    }
    @Override
    public ResponseEntity<String> updateFeeConfig(IPageData pd) {
        return super.businessProcess(pd);
    }
    public RestTemplate getRestTemplate() {
        return restTemplate;
    }
    public void setRestTemplate(RestTemplate restTemplate) {
        this.restTemplate = restTemplate;
    }
}
WebService/src/main/java/com/java110/web/smo/feeConfig/impl/ListFeeConfigsSMOImpl.java
New file
@@ -0,0 +1,66 @@
package com.java110.web.smo.feeConfig.impl;
import com.alibaba.fastjson.JSONObject;
import com.java110.core.component.AbstractComponentSMO;
import com.java110.core.context.IPageData;
import com.java110.entity.component.ComponentValidateResult;
import com.java110.utils.constant.ServiceConstant;
import com.java110.utils.exception.SMOException;
import com.java110.utils.util.Assert;
import com.java110.utils.util.BeanConvertUtil;
import com.java110.web.smo.feeConfig.IListFeeConfigsSMO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
import java.util.Map;
/**
 * 查询feeConfig服务类
 */
@Service("listFeeConfigsSMOImpl")
public class ListFeeConfigsSMOImpl extends AbstractComponentSMO implements IListFeeConfigsSMO {
    @Autowired
    private RestTemplate restTemplate;
    @Override
    public ResponseEntity<String> listFeeConfigs(IPageData pd) throws SMOException {
        return businessProcess(pd);
    }
    @Override
    protected void validate(IPageData pd, JSONObject paramIn) {
        super.validatePageInfo(pd);
        Assert.hasKeyAndValue(paramIn, "communityId", "未包含小区ID");
        //super.checkUserHasPrivilege(pd, restTemplate, PrivilegeCodeConstant.AGENT_HAS_LIST_FEECONFIG);
    }
    @Override
    protected ResponseEntity<String> doBusinessProcess(IPageData pd, JSONObject paramIn) {
        ComponentValidateResult result = super.validateStoreStaffCommunityRelationship(pd, restTemplate);
        Map paramMap = BeanConvertUtil.beanCovertMap(result);
        paramIn.putAll(paramMap);
        String apiUrl = ServiceConstant.SERVICE_API_URL + "/api/feeConfig.listFeeConfigs" + mapToUrlParam(paramIn);
        ResponseEntity<String> responseEntity = this.callCenterService(restTemplate, pd, "",
                apiUrl,
                HttpMethod.GET);
        return responseEntity;
    }
    public RestTemplate getRestTemplate() {
        return restTemplate;
    }
    public void setRestTemplate(RestTemplate restTemplate) {
        this.restTemplate = restTemplate;
    }
}
WebService/src/main/resources/components/feePackage/add-feeConfig/addFeeConfig.html
New file
@@ -0,0 +1,94 @@
<div id = "addFeeConfigModel" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true" >
    <div class="modal-dialog modal-lg">
        <div class="modal-content">
            <div class="modal-body">
                <h3 class="m-t-none m-b ">添加费用项</h3>
                <div class="ibox-content">
                    <div>
                        <div>
                            <!--<div class="form-group row">
                                <label class="col-sm-2 col-form-label">楼名称</label>
                                <div class="col-sm-10"><input v-model="addFloorInfo.name" type="text" placeholder="必填,请填写名称" class="form-control"></div>
                            </div>
                            <div class="form-group row">
                                <label class="col-sm-2 col-form-label">楼编号</label>
                                <div class="col-sm-10"><input v-model="addFloorInfo.floorNum" type="email" placeholder="必填,请填写编号" class="form-control"></div>
                            </div>
                            <div class="form-group row">
                                <label class="col-sm-2 col-form-label">备注</label>
                                <div class="col-sm-10"><input v-model="addFloorInfo.remark" type="tel" placeholder="可填,请填写备注" class="form-control"></div>
                            </div>-->
                            <div class="form-group row">
         <label class="col-sm-2 col-form-label">费用类型</label>
         <div class="col-sm-10">
<select class="custom-select" v-model="addFeeConfigInfo.feeTypeCd">
         <option selected  disabled value="">必填,请选择费用类型</option>
         <option  value="888800010001">物业费</option>
<option  value="888800010002">地上出售车位费</option>
<option  value="888800010003">地下出售车位费</option>
<option  value="888800010004">地上出租车位费</option>
<option  value="888800010005">地下出租车位费</option>
<option  value="888800010007">临时车费用</option>
  </select>         </div>
</div>
<div class="form-group row">
         <label class="col-sm-2 col-form-label">收费项目</label>
         <div class="col-sm-10">
           <input v-model="addFeeConfigInfo.feeName"                   type="text" placeholder="必填,请填写收费项目" class="form-control">
         </div>
</div>
<div class="form-group row">
         <label class="col-sm-2 col-form-label">费用标识</label>
         <div class="col-sm-10">
<select class="custom-select" v-model="addFeeConfigInfo.feeFlag">
         <option selected  disabled value="">必填,请选择费用标识</option>
         <option  value="1003006">周期性费用</option>
<option  value="2006012">一次性费用</option>
  </select>         </div>
</div>
<div class="form-group row">
         <label class="col-sm-2 col-form-label">计费起始时间</label>
         <div class="col-sm-10">
           <input v-model="addFeeConfigInfo.startTime"                   type="text" placeholder="必填,请填写计费起始时间" class="form-control">
         </div>
</div>
<div class="form-group row">
         <label class="col-sm-2 col-form-label">计费终止时间</label>
         <div class="col-sm-10">
           <input v-model="addFeeConfigInfo.endTime"                   type="text" placeholder="必填,请填写计费终止时间" class="form-control">
         </div>
</div>
<div class="form-group row">
         <label class="col-sm-2 col-form-label">计算公式</label>
         <div class="col-sm-10">
<select class="custom-select" v-model="addFeeConfigInfo.computingFormula">
         <option selected  disabled value="">必填,请选择计算公式</option>
         <option  value="1001">面积*单价+附加费</option>
<option  value="2002">固定费用</option>
  </select>         </div>
</div>
<div class="form-group row">
         <label class="col-sm-2 col-form-label">计费单价</label>
         <div class="col-sm-10">
           <input v-model="addFeeConfigInfo.squarePrice"                   type="text" placeholder="必填,请填写计费单价" class="form-control">
         </div>
</div>
<div class="form-group row">
         <label class="col-sm-2 col-form-label">附加费用</label>
         <div class="col-sm-10">
           <input v-model="addFeeConfigInfo.additionalAmount"                   type="text" placeholder="必填,请填写附加费用" class="form-control">
         </div>
</div>
                            <div class="ibox-content">
                                <button class="btn btn-primary float-right" type="button" v-on:click="saveFeeConfigInfo()" ><i class="fa fa-check"></i>&nbsp;保存</button>
                                <button type="button" class="btn btn-warning float-right" style="margin-right:20px;" data-dismiss="modal">取消</button>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
WebService/src/main/resources/components/feePackage/add-feeConfig/addFeeConfig.js
New file
@@ -0,0 +1,183 @@
(function(vc) {
    vc.extends({
        propTypes: {
            callBackListener: vc.propTypes.string,
            //父组件名称
            callBackFunction: vc.propTypes.string //父组件监听方法
        },
        data: {
            addFeeConfigInfo: {
                configId: '',
                feeTypeCd: '',
                feeName: '',
                feeFlag: '',
                startTime: '',
                endTime: '',
                computingFormula: '',
                squarePrice: '',
                additionalAmount: '',
            }
        },
        _initMethod: function() {
},
        _initEvent: function() {
            vc.on('addFeeConfig', 'openAddFeeConfigModal',
            function() {
                $('#addFeeConfigModel').modal('show');
            });
        },
        methods: {
            addFeeConfigValidate() {
                return vc.validate.validate({
                    addFeeConfigInfo: vc.component.addFeeConfigInfo
                },
                {
                    'addFeeConfigInfo.feeTypeCd': [{
                        limit: "required",
                        param: "",
                        errInfo: "费用类型不能为空"
                    },
                    {
                        limit: "num",
                        param: "",
                        errInfo: "费用类型格式错误"
                    },
                    ],
                    'addFeeConfigInfo.feeName': [{
                        limit: "required",
                        param: "",
                        errInfo: "收费项目不能为空"
                    },
                    {
                        limit: "maxin",
                        param: "1,100",
                        errInfo: "收费项目不能超过100位"
                    },
                    ],
                    'addFeeConfigInfo.feeFlag': [{
                        limit: "required",
                        param: "",
                        errInfo: "费用标识不能为空"
                    },
                    {
                        limit: "num",
                        param: "",
                        errInfo: "费用类型格式错误"
                    },
                    ],
                    'addFeeConfigInfo.startTime': [{
                        limit: "required",
                        param: "",
                        errInfo: "计费起始时间不能为空"
                    },
                    {
                        limit: "dateTime",
                        param: "",
                        errInfo: "计费起始时间不是有效的时间格式"
                    },
                    ],
                    'addFeeConfigInfo.endTime': [{
                        limit: "required",
                        param: "",
                        errInfo: "计费终止时间不能为空"
                    },
                    {
                        limit: "dateTime",
                        param: "",
                        errInfo: "计费终止时间不是有效的时间格式"
                    },
                    ],
                    'addFeeConfigInfo.computingFormula': [{
                        limit: "required",
                        param: "",
                        errInfo: "计算公式不能为空"
                    },
                    {
                        limit: "num",
                        param: "",
                        errInfo: "计算公式格式错误"
                    },
                    ],
                    'addFeeConfigInfo.squarePrice': [{
                        limit: "required",
                        param: "",
                        errInfo: "计费单价不能为空"
                    },
                    {
                        limit: "money",
                        param: "",
                        errInfo: "计费单价格式错误"
                    },
                    ],
                    'addFeeConfigInfo.additionalAmount': [{
                        limit: "required",
                        param: "",
                        errInfo: "附加费用不能为空"
                    },
                    {
                        limit: "money",
                        param: "",
                        errInfo: "附加费用格式错误"
                    },
                    ],
                });
            },
            saveFeeConfigInfo: function() {
                if (!vc.component.addFeeConfigValidate()) {
                    vc.toast(vc.validate.errInfo);
                    return;
                }
                vc.component.addFeeConfigInfo.communityId = vc.getCurrentCommunity().communityId;
                //不提交数据将数据 回调给侦听处理
                if (vc.notNull($props.callBackListener)) {
                    vc.emit($props.callBackListener, $props.callBackFunction, vc.component.addFeeConfigInfo);
                    $('#addFeeConfigModel').modal('hide');
                    return;
                }
                vc.http.post('addFeeConfig', 'save', JSON.stringify(vc.component.addFeeConfigInfo), {
                    emulateJSON: true
                },
                function(json, res) {
                    //vm.menus = vm.refreshMenuActive(JSON.parse(json),0);
                    if (res.status == 200) {
                        //关闭model
                        $('#addFeeConfigModel').modal('hide');
                        vc.component.clearAddFeeConfigInfo();
                        vc.emit('feeConfigManage', 'listFeeConfig', {});
                        return;
                    }
                    vc.message(json);
                },
                function(errInfo, error) {
                    console.log('请求失败处理');
                    vc.message(errInfo);
                });
            },
            clearAddFeeConfigInfo: function() {
                vc.component.addFeeConfigInfo = {
                    feeTypeCd: '',
                    feeName: '',
                    feeFlag: '',
                    startTime: '',
                    endTime: '',
                    computingFormula: '',
                    squarePrice: '',
                    additionalAmount: '',
                };
            }
        }
    });
})(window.vc);
WebService/src/main/resources/components/feePackage/choose-feeConfig/chooseFeeConfig.html
New file
@@ -0,0 +1,70 @@
<div id = "chooseFeeConfigModel" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="chooseFeeConfigModelLabel" aria-hidden="true" >
    <div class="modal-dialog modal-lg">
        <div class="modal-content">
            <div class="modal-header">
                <h3 class="modal-title" id="chooseFeeConfigModelLabel">选择费用项</h3>
                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                    <span aria-hidden="true">&times;</span>
                </button>
            </div>
            <div class="modal-body">
                <div class=" row">
                    <div class="col-lg-12">
                        <div class="ibox ">
                            <div class="row">
                                <div class="col-sm-7 m-b-xs">
                                </div>
                                <div class="col-sm-5">
                                    <div class="input-group">
                                        <input placeholder="输入费用项名称" type="text" v-model="chooseFeeConfigInfo._currentFeeConfigName" class="form-control form-control-sm">
                                        <span class="input-group-append">
                                                <button type="button" class="btn btn-sm btn-primary" v-on:click="queryFeeConfigs()">查询</button>
                                            </span>
                                    </div>
                                </div>
                            </div>
                            <div class="table-responsive" style="margin-top:15px">
                                <table class="table table-striped">
                                    <thead>
                                        <tr>
                                                                        <th class="text-center">费用项ID</th>
                            <th class="text-center">费用类型</th>
                            <th class="text-center">收费项目</th>
                            <th class="text-center">费用标识</th>
                            <th class="text-center">计费起始时间</th>
                            <th class="text-center">计费终止时间</th>
                            <th class="text-center">计算公式</th>
                            <th class="text-center">计费单价</th>
                            <th class="text-center">附加费用</th>
                            <th class="text-center">操作</th>
                                        </tr>
                                    </thead>
                                    <tbody>
                                        <tr v-for="feeConfig in chooseFeeConfigInfo.feeConfigs">
                                                                        <td class="text-center">{{feeConfig.configId}}</td>
                            <td class="text-center">{{feeConfig.feeTypeCd}}</td>
                            <td class="text-center">{{feeConfig.feeName}}</td>
                            <td class="text-center">{{feeConfig.feeFlag}}</td>
                            <td class="text-center">{{feeConfig.startTime}}</td>
                            <td class="text-center">{{feeConfig.endTime}}</td>
                            <td class="text-center">{{feeConfig.computingFormula}}</td>
                            <td class="text-center">{{feeConfig.squarePrice}}</td>
                            <td class="text-center">{{feeConfig.additionalAmount}}</td>
                                            <td>
                                                <button class="btn btn-primary btn-xs" v-on:click="chooseFeeConfig(feeConfig)">选择</button>
                                            </td>
                                        </tr>
                                    </tbody>
                                </table>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
WebService/src/main/resources/components/feePackage/choose-feeConfig/chooseFeeConfig.js
New file
@@ -0,0 +1,64 @@
(function(vc){
    vc.extends({
        propTypes: {
           emitChooseFeeConfig:vc.propTypes.string,
           emitLoadData:vc.propTypes.string
        },
        data:{
            chooseFeeConfigInfo:{
                feeConfigs:[],
                _currentFeeConfigName:'',
            }
        },
        _initMethod:function(){
        },
        _initEvent:function(){
            vc.on('chooseFeeConfig','openChooseFeeConfigModel',function(_param){
                $('#chooseFeeConfigModel').modal('show');
                vc.component._refreshChooseFeeConfigInfo();
                vc.component._loadAllFeeConfigInfo(1,10,'');
            });
        },
        methods:{
            _loadAllFeeConfigInfo:function(_page,_row,_name){
                var param = {
                    params:{
                        page:_page,
                        row:_row,
                        communityId:vc.getCurrentCommunity().communityId,
                        name:_name
                    }
                };
                //发送get请求
               vc.http.get('chooseFeeConfig',
                            'list',
                             param,
                             function(json){
                                var _feeConfigInfo = JSON.parse(json);
                                vc.component.chooseFeeConfigInfo.feeConfigs = _feeConfigInfo.feeConfigs;
                             },function(){
                                console.log('请求失败处理');
                             }
                           );
            },
            chooseFeeConfig:function(_feeConfig){
                if(_feeConfig.hasOwnProperty('name')){
                     _feeConfig.feeConfigName = _feeConfig.name;
                }
                vc.emit($props.emitChooseFeeConfig,'chooseFeeConfig',_feeConfig);
                vc.emit($props.emitLoadData,'listFeeConfigData',{
                    feeConfigId:_feeConfig.feeConfigId
                });
                $('#chooseFeeConfigModel').modal('hide');
            },
            queryFeeConfigs:function(){
                vc.component._loadAllFeeConfigInfo(1,10,vc.component.chooseFeeConfigInfo._currentFeeConfigName);
            },
            _refreshChooseFeeConfigInfo:function(){
                vc.component.chooseFeeConfigInfo._currentFeeConfigName = "";
            }
        }
    });
})(window.vc);
WebService/src/main/resources/components/feePackage/delete-feeConfig/deleteFeeConfig.html
New file
@@ -0,0 +1,19 @@
<div class="modal fade" id="deleteFeeConfigModel" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="exampleModalLabel">请确认您的操作!</h5>
                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                    <span aria-hidden="true">&times;</span>
                </button>
            </div>
            <div class="modal-body">
                <tr align="center"><th>确定删除费用项</th></tr>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-secondary" data-dismiss="modal" v-on:click="closeDeleteFeeConfigModel()">点错了</button>
                <button type="button" class="btn btn-primary" v-on:click="deleteFeeConfig()">确认删除</button>
            </div>
        </div>
    </div>
</div>
WebService/src/main/resources/components/feePackage/delete-feeConfig/deleteFeeConfig.js
New file
@@ -0,0 +1,52 @@
(function(vc,vm){
    vc.extends({
        data:{
            deleteFeeConfigInfo:{
            }
        },
         _initMethod:function(){
         },
         _initEvent:function(){
             vc.on('deleteFeeConfig','openDeleteFeeConfigModal',function(_params){
                vc.component.deleteFeeConfigInfo = _params;
                $('#deleteFeeConfigModel').modal('show');
            });
        },
        methods:{
            deleteFeeConfig:function(){
                vc.component.deleteFeeConfigInfo.communityId=vc.getCurrentCommunity().communityId;
                vc.http.post(
                    'deleteFeeConfig',
                    'delete',
                    JSON.stringify(vc.component.deleteFeeConfigInfo),
                    {
                        emulateJSON:true
                     },
                     function(json,res){
                        //vm.menus = vm.refreshMenuActive(JSON.parse(json),0);
                        if(res.status == 200){
                            //关闭model
                            $('#deleteFeeConfigModel').modal('hide');
                            vc.emit('feeConfigManage','listFeeConfig',{});
                            return ;
                        }
                        vc.message(json);
                     },
                     function(errInfo,error){
                        console.log('请求失败处理');
                        vc.message(json);
                     });
            },
            closeDeleteFeeConfigModel:function(){
                $('#deleteFeeConfigModel').modal('hide');
            }
        }
    });
})(window.vc,window.vc.component);
WebService/src/main/resources/components/feePackage/edit-feeConfig/editFeeConfig.html
New file
@@ -0,0 +1,81 @@
<div id = "editFeeConfigModel" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true" >
    <div class="modal-dialog modal-lg">
        <div class="modal-content">
            <div class="modal-body">
                <h3 class="m-t-none m-b ">修改费用项</h3>
                <div class="ibox-content">
                    <div>
                        <div>
                            <div class="form-group row">
         <label class="col-sm-2 col-form-label">费用类型</label>
         <div class="col-sm-10">
<select class="custom-select" v-model="editFeeConfigInfo.feeTypeCd">
         <option selected  disabled value="">必填,请选择费用类型</option>
         <option  value="888800010001">物业费</option>
<option  value="888800010002">地上出售车位费</option>
<option  value="888800010003">地下出售车位费</option>
<option  value="888800010004">地上出租车位费</option>
<option  value="888800010005">地下出租车位费</option>
<option  value="888800010007">临时车费用</option>
  </select>         </div>
</div>
<div class="form-group row">
         <label class="col-sm-2 col-form-label">收费项目</label>
         <div class="col-sm-10">
           <input v-model="editFeeConfigInfo.feeName"                   type="text" placeholder="必填,请填写收费项目" class="form-control">
         </div>
</div>
<div class="form-group row">
         <label class="col-sm-2 col-form-label">费用标识</label>
         <div class="col-sm-10">
<select class="custom-select" v-model="editFeeConfigInfo.feeFlag">
         <option selected  disabled value="">必填,请选择费用标识</option>
         <option  value="1003006">周期性费用</option>
<option  value="2006012">一次性费用</option>
  </select>         </div>
</div>
<div class="form-group row">
         <label class="col-sm-2 col-form-label">计费起始时间</label>
         <div class="col-sm-10">
           <input v-model="editFeeConfigInfo.startTime"                   type="text" placeholder="必填,请填写计费起始时间" class="form-control">
         </div>
</div>
<div class="form-group row">
         <label class="col-sm-2 col-form-label">计费终止时间</label>
         <div class="col-sm-10">
           <input v-model="editFeeConfigInfo.endTime"                   type="text" placeholder="必填,请填写计费终止时间" class="form-control">
         </div>
</div>
<div class="form-group row">
         <label class="col-sm-2 col-form-label">计算公式</label>
         <div class="col-sm-10">
<select class="custom-select" v-model="editFeeConfigInfo.computingFormula">
         <option selected  disabled value="">必填,请选择计算公式</option>
         <option  value="1001">面积*单价+附加费</option>
<option  value="2002">固定费用</option>
  </select>         </div>
</div>
<div class="form-group row">
         <label class="col-sm-2 col-form-label">计费单价</label>
         <div class="col-sm-10">
           <input v-model="editFeeConfigInfo.squarePrice"                   type="text" placeholder="必填,请填写计费单价" class="form-control">
         </div>
</div>
<div class="form-group row">
         <label class="col-sm-2 col-form-label">附加费用</label>
         <div class="col-sm-10">
           <input v-model="editFeeConfigInfo.additionalAmount"                   type="text" placeholder="必填,请填写附加费用" class="form-control">
         </div>
</div>
                            <div class="ibox-content">
                                <button class="btn btn-primary float-right" type="button" v-on:click="editFeeConfig()" ><i class="fa fa-check"></i>&nbsp;保存</button>
                                <button type="button" class="btn btn-warning float-right" style="margin-right:20px;" data-dismiss="modal">取消</button>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
WebService/src/main/resources/components/feePackage/edit-feeConfig/editFeeConfig.js
New file
@@ -0,0 +1,174 @@
(function(vc, vm) {
    vc.extends({
        data: {
            editFeeConfigInfo: {
                configId: '',
                feeTypeCd: '',
                feeName: '',
                feeFlag: '',
                startTime: '',
                endTime: '',
                computingFormula: '',
                squarePrice: '',
                additionalAmount: '0.00',
            }
        },
        _initMethod: function() {
},
        _initEvent: function() {
            vc.on('editFeeConfig', 'openEditFeeConfigModal',
            function(_params) {
                vc.component.refreshEditFeeConfigInfo();
                $('#editFeeConfigModel').modal('show');
                vc.copyObject(_params, vc.component.editFeeConfigInfo);
                vc.component.editFeeConfigInfo.communityId = vc.getCurrentCommunity().communityId;
            });
        },
        methods: {
            editFeeConfigValidate: function() {
                return vc.validate.validate({
                    editFeeConfigInfo: vc.component.editFeeConfigInfo
                },
                {
                    'editFeeConfigInfo.feeTypeCd': [{
                        limit: "required",
                        param: "",
                        errInfo: "费用类型不能为空"
                    },
                    {
                        limit: "num",
                        param: "",
                        errInfo: "费用类型格式错误"
                    },
                    ],
                    'editFeeConfigInfo.feeName': [{
                        limit: "required",
                        param: "",
                        errInfo: "收费项目不能为空"
                    },
                    {
                        limit: "maxin",
                        param: "1,100",
                        errInfo: "收费项目不能超过100位"
                    },
                    ],
                    'editFeeConfigInfo.feeFlag': [{
                        limit: "required",
                        param: "",
                        errInfo: "费用标识不能为空"
                    },
                    {
                        limit: "num",
                        param: "",
                        errInfo: "费用类型格式错误"
                    },
                    ],
                    'editFeeConfigInfo.startTime': [{
                        limit: "required",
                        param: "",
                        errInfo: "计费起始时间不能为空"
                    },
                    {
                        limit: "dateTime",
                        param: "",
                        errInfo: "计费起始时间不是有效的时间格式"
                    },
                    ],
                    'editFeeConfigInfo.endTime': [{
                        limit: "required",
                        param: "",
                        errInfo: "计费终止时间不能为空"
                    },
                    {
                        limit: "dateTime",
                        param: "",
                        errInfo: "计费终止时间不是有效的时间格式"
                    },
                    ],
                    'editFeeConfigInfo.computingFormula': [{
                        limit: "required",
                        param: "",
                        errInfo: "计算公式不能为空"
                    },
                    {
                        limit: "num",
                        param: "",
                        errInfo: "计算公式格式错误"
                    },
                    ],
                    'editFeeConfigInfo.squarePrice': [{
                        limit: "required",
                        param: "",
                        errInfo: "计费单价不能为空"
                    },
                    {
                        limit: "money",
                        param: "",
                        errInfo: "计费单价格式错误"
                    },
                    ],
                    'editFeeConfigInfo.additionalAmount': [{
                        limit: "required",
                        param: "",
                        errInfo: "附加费用不能为空"
                    },
                    {
                        limit: "money",
                        param: "",
                        errInfo: "附加费用格式错误"
                    },
                    ],
                    'editFeeConfigInfo.configId': [{
                        limit: "required",
                        param: "",
                        errInfo: "费用项ID不能为空"
                    }]
                });
            },
            editFeeConfig: function() {
                if (!vc.component.editFeeConfigValidate()) {
                    vc.toast(vc.validate.errInfo);
                    return;
                }
                vc.http.post('editFeeConfig', 'update', JSON.stringify(vc.component.editFeeConfigInfo), {
                    emulateJSON: true
                },
                function(json, res) {
                    //vm.menus = vm.refreshMenuActive(JSON.parse(json),0);
                    if (res.status == 200) {
                        //关闭model
                        $('#editFeeConfigModel').modal('hide');
                        vc.emit('feeConfigManage', 'listFeeConfig', {});
                        return;
                    }
                    vc.message(json);
                },
                function(errInfo, error) {
                    console.log('请求失败处理');
                    vc.message(errInfo);
                });
            },
            refreshEditFeeConfigInfo: function() {
                vc.component.editFeeConfigInfo = {
                    configId: '',
                    feeTypeCd: '',
                    feeName: '',
                    feeFlag: '',
                    startTime: '',
                    endTime: '',
                    computingFormula: '',
                    squarePrice: '',
                    additionalAmount: '',
                }
            }
        }
    });
})(window.vc, window.vc.component);
WebService/src/main/resources/components/feePackage/feeConfig-manage/feeConfigManage.html
New file
@@ -0,0 +1,127 @@
<div id="component" class="wrapper wrapper-content animated fadeInRight ecommerce">
    <div class="row">
        <div class="col-lg-12">
            <div class="ibox ">
                <div class="ibox-title">
                    <h5>查询条件</h5>
                    <div class="ibox-tools" style="top:10px;">
                    </div>
                </div>
                <div class="ibox-content">
                    <div class="row">
                        <div class="col-sm-4">
                            <select class="custom-select" v-model="feeConfigManageInfo.conditions.feeFlag">
                                <option selected value="">请选择费用标识</option>
                                <option value="1003006">周期性费用</option>
                                <option value="2006012">一次性费用</option>
                            </select></div>
                        <div class="col-sm-4">
                            <div class="form-group">
                                <input type="text" placeholder="请输入费用项目"
                                       v-model="feeConfigManageInfo.conditions.feeName" class=" form-control">
                            </div>
                        </div>
                        <div class="col-sm-3">
                            <select class="custom-select" v-model="feeConfigManageInfo.conditions.feeTypeCd">
                                <option selected value="">请选择费用类型</option>
                                <option value="888800010001">物业费</option>
                                <option value="888800010002">地上出售车位费</option>
                                <option value="888800010003">地下出售车位费</option>
                                <option value="888800010004">地上出租车位费</option>
                                <option value="888800010005">地下出租车位费</option>
                                <option value="888800010007">临时车费用</option>
                            </select></div>
                        <div class="col-sm-1">
                            <button type="button" class="btn btn-primary btn-sm" v-on:click="_queryFeeConfigMethod()">
                                <i class="glyphicon glyphicon-search"></i> 查询
                            </button>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <div class="row">
        <div class="col-lg-12">
            <div class="ibox">
                <div class="ibox-title">
                    <h5>费用项信息</h5>
                    <div class="ibox-tools" style="top:10px;">
                        <button type="button" class="btn btn-primary btn-sm" v-on:click="_openAddFeeConfigModal()">
                            <i class="glyphicon glyphicon-plus"></i>
                            添加费用项
                        </button>
                    </div>
                </div>
                <div class="ibox-content">
                    <table class="footable table table-stripped toggle-arrow-tiny"
                           data-page-size="15"
                    >
                        <thead>
                        <tr>
                            <th class="text-center">费用项ID</th>
                            <th class="text-center">费用类型</th>
                            <th class="text-center">收费项目</th>
                            <th class="text-center">费用标识</th>
                            <th class="text-center">计费起始时间</th>
                            <th class="text-center">计费终止时间</th>
                            <th class="text-center">计费单价</th>
                            <th class="text-center">附加费用</th>
                            <th class="text-center">操作</th>
                        </tr>
                        </thead>
                        <tbody>
                        <tr v-for="feeConfig in feeConfigManageInfo.feeConfigs">
                            <td class="text-center">{{feeConfig.configId}}</td>
                            <td class="text-center">{{feeConfig.feeTypeCd}}</td>
                            <td class="text-center">{{feeConfig.feeName}}</td>
                            <td class="text-center">{{feeConfig.feeFlag}}</td>
                            <td class="text-center">{{feeConfig.startTime}}</td>
                            <td class="text-center">{{feeConfig.endTime}}</td>
                            <td class="text-center">{{feeConfig.squarePrice}}</td>
                            <td class="text-center">{{feeConfig.additionalAmount}}</td>
                            <td class="text-center">
                                <div class="btn-group">
                                    <button class="btn-white btn btn-xs"
                                            v-on:click="_openEditFeeConfigModel(feeConfig)">修改
                                    </button>
                                </div>
                                <div class="btn-group" v-if="feeConfig.isDefault='F'">
                                    <button class="btn-white btn btn-xs"
                                            v-on:click="_openDeleteFeeConfigModel(feeConfig)">删除
                                    </button>
                                </div>
                            </td>
                        </tr>
                        </tbody>
                        <tfoot>
                        <tr>
                            <td colspan="7">
                                <ul class="pagination float-right"></ul>
                            </td>
                        </tr>
                        </tfoot>
                    </table>
                    <!-- 分页 -->
                    <vc:create name="pagination"></vc:create>
                </div>
            </div>
        </div>
    </div>
    <vc:create name="addFeeConfig"
               callBackListener=""
               callBackFunction=""
    ></vc:create>
    <vc:create name="editFeeConfig"></vc:create>
    <vc:create name="deleteFeeConfig"></vc:create>
</div>
WebService/src/main/resources/components/feePackage/feeConfig-manage/feeConfigManage.js
New file
@@ -0,0 +1,87 @@
/**
    入驻小区
**/
(function(vc) {
    var DEFAULT_PAGE = 1;
    var DEFAULT_ROWS = 10;
    vc.extends({
        data: {
            feeConfigManageInfo: {
                feeConfigs: [],
                total: 0,
                records: 1,
                moreCondition: false,
                feeName: '',
                conditions: {
                    feeFlag: '',
                    feeName: '',
                    feeTypeCd: '',
                }
            }
        },
        _initMethod: function() {
            vc.component._listFeeConfigs(DEFAULT_PAGE, DEFAULT_ROWS);
        },
        _initEvent: function() {
            vc.on('feeConfigManage', 'listFeeConfig',
            function(_param) {
                vc.component._listFeeConfigs(DEFAULT_PAGE, DEFAULT_ROWS);
            });
            vc.on('pagination', 'page_event',
            function(_currentPage) {
                vc.component._listFeeConfigs(_currentPage, DEFAULT_ROWS);
            });
        },
        methods: {
            _listFeeConfigs: function(_page, _rows) {
                vc.component.feeConfigManageInfo.conditions.page = _page;
                vc.component.feeConfigManageInfo.conditions.row = _rows;
                vc.component.feeConfigManageInfo.conditions.communityId = vc.getCurrentCommunity().communityId;
                var param = {
                    params: vc.component.feeConfigManageInfo.conditions
                };
                //发送get请求
                vc.http.get('feeConfigManage', 'list', param,
                function(json, res) {
                    var _feeConfigManageInfo = JSON.parse(json);
                    vc.component.feeConfigManageInfo.total = _feeConfigManageInfo.total;
                    vc.component.feeConfigManageInfo.records = _feeConfigManageInfo.records;
                    vc.component.feeConfigManageInfo.feeConfigs = _feeConfigManageInfo.feeConfigs;
                    vc.emit('pagination', 'init', {
                        total: vc.component.feeConfigManageInfo.records,
                        currentPage: _page
                    });
                },
                function(errInfo, error) {
                    console.log('请求失败处理');
                });
            },
            _openAddFeeConfigModal: function() {
                vc.emit('addFeeConfig', 'openAddFeeConfigModal', {});
            },
            _openEditFeeConfigModel: function(_feeConfig) {
                vc.emit('editFeeConfig', 'openEditFeeConfigModal', _feeConfig);
            },
            _openDeleteFeeConfigModel: function(_feeConfig) {
                vc.emit('deleteFeeConfig', 'openDeleteFeeConfigModal', _feeConfig);
            },
            _queryFeeConfigMethod: function() {
                vc.component._listFeeConfigs(DEFAULT_PAGE, DEFAULT_ROWS);
            },
            _moreCondition: function() {
                if (vc.component.feeConfigManageInfo.moreCondition) {
                    vc.component.feeConfigManageInfo.moreCondition = false;
                } else {
                    vc.component.feeConfigManageInfo.moreCondition = true;
                }
            }
        }
    });
})(window.vc);
WebService/src/main/resources/components/feePackage/view-feeConfig-info/viewFeeConfigInfo.html
New file
@@ -0,0 +1,84 @@
<div class="row">
    <div class="col-lg-12">
        <div class="ibox ">
            <div class="ibox-title">
                <h5>费用项信息</h5>
                <div class="ibox-tools" style="top:10px;">
                    <button type="button" v-if="viewFeeConfigInfo.index != 2" class="btn btn-primary btn-sm" style="margin-right:10px;"  v-on:click="_openSelectFeeConfigInfoModel()">
                        <i class="glyphicon glyphicon-search"></i> 选择费用项</button>
                    <button type="button" v-if="viewFeeConfigInfo.index != 2" class="btn btn-primary btn-sm" v-on:click="_openAddFeeConfigInfoModel()">
                        <i class="glyphicon glyphicon-plus"></i> 添加费用项</button>
                </div>
            </div>
            <div class="ibox-content">
                <div class="row">
<div class="col-sm-4">
                        <div class="form-group">
                            <label class="col-form-label" >费用类型:</label>
                            <label class="">{{viewFeeConfigInfo.feeTypeCd}}</label>
                        </div>
</div>
<div class="col-sm-4">
                        <div class="form-group">
                            <label class="col-form-label" >收费项目:</label>
                            <label class="">{{viewFeeConfigInfo.feeName}}</label>
                        </div>
</div>
<div class="col-sm-4">
                        <div class="form-group">
                            <label class="col-form-label" >费用标识:</label>
                            <label class="">{{viewFeeConfigInfo.feeFlag}}</label>
                        </div>
</div>
</div>
<div class="row">
<div class="col-sm-4">
                        <div class="form-group">
                            <label class="col-form-label" >计费起始时间:</label>
                            <label class="">{{viewFeeConfigInfo.startTime}}</label>
                        </div>
</div>
<div class="col-sm-4">
                        <div class="form-group">
                            <label class="col-form-label" >计费终止时间:</label>
                            <label class="">{{viewFeeConfigInfo.endTime}}</label>
                        </div>
</div>
<div class="col-sm-4">
                        <div class="form-group">
                            <label class="col-form-label" >计算公式:</label>
                            <label class="">{{viewFeeConfigInfo.computingFormula}}</label>
                        </div>
</div>
</div>
<div class="row">
<div class="col-sm-4">
                        <div class="form-group">
                            <label class="col-form-label" >计费单价:</label>
                            <label class="">{{viewFeeConfigInfo.squarePrice}}</label>
                        </div>
</div>
<div class="col-sm-4">
                        <div class="form-group">
                            <label class="col-form-label" >附加费用:</label>
                            <label class="">{{viewFeeConfigInfo.additionalAmount}}</label>
                        </div>
</div>
</div>
            </div>
        </div>
    </div>
    <vc:create name="addFeeConfig"
               callBackListener="viewFeeConfigInfo"
               callBackFunction="chooseFeeConfig"
    ></vc:create>
    <vc:create name="chooseFeeConfig"
               emitChooseFeeConfig="viewFeeConfigInfo"
               emitLoadData="viewFeeConfigInfo"
    ></vc:create>
</div>
WebService/src/main/resources/components/feePackage/view-feeConfig-info/viewFeeConfigInfo.js
New file
@@ -0,0 +1,55 @@
/**
    费用项 组件
**/
(function(vc){
    vc.extends({
        propTypes: {
           callBackListener:vc.propTypes.string, //父组件名称
           callBackFunction:vc.propTypes.string //父组件监听方法
        },
        data:{
            viewFeeConfigInfo:{
                index:0,
                flowComponent:'viewFeeConfigInfo',
                feeTypeCd:'',
feeName:'',
feeFlag:'',
startTime:'',
endTime:'',
computingFormula:'',
squarePrice:'',
additionalAmount:'',
            }
        },
        _initMethod:function(){
            //根据请求参数查询 查询 业主信息
            vc.component._loadFeeConfigInfoData();
        },
        _initEvent:function(){
            vc.on('viewFeeConfigInfo','chooseFeeConfig',function(_app){
                vc.copyObject(_app, vc.component.viewFeeConfigInfo);
                vc.emit($props.callBackListener,$props.callBackFunction,vc.component.viewFeeConfigInfo);
            });
            vc.on('viewFeeConfigInfo', 'onIndex', function(_index){
                vc.component.viewFeeConfigInfo.index = _index;
            });
        },
        methods:{
            _openSelectFeeConfigInfoModel(){
                vc.emit('chooseFeeConfig','openChooseFeeConfigModel',{});
            },
            _openAddFeeConfigInfoModel(){
                vc.emit('addFeeConfig','openAddFeeConfigModal',{});
            },
            _loadFeeConfigInfoData:function(){
            }
        }
    });
})(window.vc);
WebService/src/main/resources/components/pageFramePackage/common/commonTop.html
@@ -28,6 +28,7 @@
    console.log('############################################################');
    console.log('#   HC小区项目开源于https://gitee.com/wuxw7/MicroCommunity  #');
    console.log('#   HC智慧家园项目开源于https://gitee.com/wuxw7/MicroCommunity  #');
    console.log('#   欢迎star                                               #');
    console.log('#   java110团队宣                                          #');
    console.log('############################################################');
WebService/src/main/resources/views/feeConfigFlow.html
New file
@@ -0,0 +1,36 @@
<!DOCTYPE html>
<html lang="en"
      xmlns="http://www.w3.org/1999/xhtml"
      xmlns:th="http://www.thymeleaf.org"
      xmlns:vc="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8"/>
    <title>费用项设置|java110</title>
    <vc:create name="commonTop"></vc:create>
</head>
<body>
<vc:create name="bodyTop"></vc:create>
<div id="wrapper">
    <vc:create name="menu"></vc:create>
    <div id="page-wrapper" class="gray-bg dashbard-1">
        <div class="row border-bottom">
            <vc:create name="nav"></vc:create>
        </div>
        <div class="wrapper wrapper-content" style="padding-bottom: 0px;">
            <vc:create name="breadcrumb"></vc:create>
        </div>
        <!-- id="component" -->
        <div class="wrapper wrapper-content animated fadeInRight">
            <vc:create name="feeConfigManage"></vc:create>
        </div>
        <vc:create name="copyright"></vc:create>
    </div>
</div>
<vc:create name="commonBottom"></vc:create>
</body>
</html>
java110-bean/src/main/java/com/java110/dto/FeeConfigDto.java
File was deleted
java110-bean/src/main/java/com/java110/dto/fee/FeeAttrDto.java
File was renamed from java110-bean/src/main/java/com/java110/dto/FeeAttrDto.java
@@ -1,4 +1,6 @@
package com.java110.dto;
package com.java110.dto.fee;
import com.java110.dto.PageDto;
import java.io.Serializable;
import java.util.Date;
java110-bean/src/main/java/com/java110/dto/fee/FeeConfigDto.java
New file
@@ -0,0 +1,140 @@
package com.java110.dto.fee;
import com.java110.dto.PageDto;
import java.io.Serializable;
import java.util.Date;
/**
 * @ClassName FloorDto
 * @Description 费用配置数据层封装
 * @Author wuxw
 * @Date 2019/4/24 8:52
 * @Version 1.0
 * add by wuxw 2019/4/24
 **/
public class FeeConfigDto extends PageDto implements Serializable {
    private String feeTypeCd;
    private String computingFormula;
    private String additionalAmount;
    private String squarePrice;
    private String isDefault;
    private String configId;
    private String feeFlag;
    private String feeName;
    private String startTime;
    private String endTime;
    private String communityId;
    private Date createTime;
    private String statusCd = "0";
    public String getFeeTypeCd() {
        return feeTypeCd;
    }
    public void setFeeTypeCd(String feeTypeCd) {
        this.feeTypeCd = feeTypeCd;
    }
    public String getComputingFormula() {
        return computingFormula;
    }
    public void setComputingFormula(String computingFormula) {
        this.computingFormula = computingFormula;
    }
    public String getAdditionalAmount() {
        return additionalAmount;
    }
    public void setAdditionalAmount(String additionalAmount) {
        this.additionalAmount = additionalAmount;
    }
    public String getSquarePrice() {
        return squarePrice;
    }
    public void setSquarePrice(String squarePrice) {
        this.squarePrice = squarePrice;
    }
    public String getIsDefault() {
        return isDefault;
    }
    public void setIsDefault(String isDefault) {
        this.isDefault = isDefault;
    }
    public String getConfigId() {
        return configId;
    }
    public void setConfigId(String configId) {
        this.configId = configId;
    }
    public String getFeeFlag() {
        return feeFlag;
    }
    public void setFeeFlag(String feeFlag) {
        this.feeFlag = feeFlag;
    }
    public String getFeeName() {
        return feeName;
    }
    public void setFeeName(String feeName) {
        this.feeName = feeName;
    }
    public String getStartTime() {
        return startTime;
    }
    public void setStartTime(String startTime) {
        this.startTime = startTime;
    }
    public String getEndTime() {
        return endTime;
    }
    public void setEndTime(String endTime) {
        this.endTime = endTime;
    }
    public String getCommunityId() {
        return communityId;
    }
    public void setCommunityId(String communityId) {
        this.communityId = communityId;
    }
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public String getStatusCd() {
        return statusCd;
    }
    public void setStatusCd(String statusCd) {
        this.statusCd = statusCd;
    }
}
java110-bean/src/main/java/com/java110/dto/fee/FeeDetailDto.java
File was renamed from java110-bean/src/main/java/com/java110/dto/FeeDetailDto.java
@@ -1,4 +1,6 @@
package com.java110.dto;
package com.java110.dto.fee;
import com.java110.dto.PageDto;
import java.io.Serializable;
import java.util.Date;
java110-bean/src/main/java/com/java110/dto/fee/FeeDto.java
File was renamed from java110-bean/src/main/java/com/java110/dto/FeeDto.java
@@ -1,4 +1,6 @@
package com.java110.dto;
package com.java110.dto.fee;
import com.java110.dto.PageDto;
import java.io.Serializable;
import java.util.Date;
java110-bean/src/main/java/com/java110/vo/api/feeConfig/ApiFeeConfigDataVo.java
New file
@@ -0,0 +1,74 @@
package com.java110.vo.api.feeConfig;
import java.io.Serializable;
import java.util.Date;
public class ApiFeeConfigDataVo implements Serializable {
    private String configId;
private String feeTypeCd;
private String feeName;
private String feeFlag;
private String startTime;
private String endTime;
private String computingFormula;
private String squarePrice;
private String additionalAmount;
public String getConfigId() {
        return configId;
    }
public void setConfigId(String configId) {
        this.configId = configId;
    }
public String getFeeTypeCd() {
        return feeTypeCd;
    }
public void setFeeTypeCd(String feeTypeCd) {
        this.feeTypeCd = feeTypeCd;
    }
public String getFeeName() {
        return feeName;
    }
public void setFeeName(String feeName) {
        this.feeName = feeName;
    }
public String getFeeFlag() {
        return feeFlag;
    }
public void setFeeFlag(String feeFlag) {
        this.feeFlag = feeFlag;
    }
public String getStartTime() {
        return startTime;
    }
public void setStartTime(String startTime) {
        this.startTime = startTime;
    }
public String getEndTime() {
        return endTime;
    }
public void setEndTime(String endTime) {
        this.endTime = endTime;
    }
public String getComputingFormula() {
        return computingFormula;
    }
public void setComputingFormula(String computingFormula) {
        this.computingFormula = computingFormula;
    }
public String getSquarePrice() {
        return squarePrice;
    }
public void setSquarePrice(String squarePrice) {
        this.squarePrice = squarePrice;
    }
public String getAdditionalAmount() {
        return additionalAmount;
    }
public void setAdditionalAmount(String additionalAmount) {
        this.additionalAmount = additionalAmount;
    }
}
java110-bean/src/main/java/com/java110/vo/api/feeConfig/ApiFeeConfigVo.java
New file
@@ -0,0 +1,19 @@
package com.java110.vo.api.feeConfig;
import com.java110.vo.MorePageVo;
import java.io.Serializable;
import java.util.List;
public class ApiFeeConfigVo extends MorePageVo implements Serializable {
    List<ApiFeeConfigDataVo> feeConfigs;
    public List<ApiFeeConfigDataVo> getFeeConfigs() {
        return feeConfigs;
    }
    public void setFeeConfigs(List<ApiFeeConfigDataVo> feeConfigs) {
        this.feeConfigs = feeConfigs;
    }
}
java110-code-generator/src/main/java/com/java110/PayFeeConfigGeneratorApplication.java
@@ -53,6 +53,12 @@
        param.put("bId", "b_id");
        param.put("squarePrice", "square_price");
        param.put("additionalAmount", "additional_amount");
        param.put("isDefault", "is_default");
        param.put("startTime", "start_time");
        param.put("endTime", "end_time");
        param.put("feeFlag", "fee_flag");
        param.put("feeName", "fee_name");
        param.put("computingFormula", "computing_formula");
        param.put("statusCd", "status_cd");
        param.put("operate", "operate");
        data.setParams(param);
java110-code-generator/src/main/resources/web/template_1.json
@@ -1,93 +1,135 @@
{
  "templateName":"车辆进场",
  "templateCode":"carInout",
  "templateKey":"inoutId",
  "templateKeyName":"进出场ID",
  "searchCode": "carNum",
  "searchName": "车牌号",
  "templateName":"费用项",
  "templateCode":"feeConfig",
  "templateKey":"configId",
  "templateKeyName":"费用项ID",
  "searchCode": "feeName",
  "searchName": "费用项目",
  "conditions": [
    {
      "name": "车辆状态",
      "name": "费用标识",
      "inputType": "select",
      "selectValue":"100300,100400,100500,100600",
      "selectValueName":"进场状态,支付完成,离场状态,超时重新支付",
      "code": "state",
      "selectValue":"1003006,2006012",
      "selectValueName":"周期性费用,一次性费用",
      "code": "feeFlag",
      "whereCondition": "equal"
    },
    {
      "name": "车牌号",
      "name": "费用项目",
      "inputType": "input",
      "code": "carNum",
      "code": "feeName",
      "whereCondition": "equal"
    },
    {
      "name": "进出场ID",
      "inputType": "input",
      "code": "inoutId",
      "whereCondition": "equal"
    },
    {
      "name": "进场开始时间",
      "inputType": "input",
      "code": "startTime",
      "whereCondition": "equal"
    },
    {
      "name": "进场结束时间",
      "inputType": "input",
      "code": "endTime",
      "name": "费用类型",
      "inputType": "select",
      "selectValue":"888800010001,888800010002,888800010003,888800010004,888800010005,888800010007",
      "selectValueName":"物业费,地上出售车位费,地下出售车位费,地上出租车位费,地下出租车位费,临时车费用",
      "code": "feeTypeCd",
      "whereCondition": "equal"
    }
  ],
  "columns":[
    {
      "code":"state",
      "cnCode":"车辆状态",
      "desc":"必填,请填写车辆状态",
      "code":"feeTypeCd",
      "cnCode":"费用类型",
      "desc":"必填,请选择费用类型",
      "required":true,
      "hasDefaultValue":false,
      "inputType":"select",
      "selectValue":"1111,2222",
      "selectValueName":"黑名单,白名单",
      "inputType": "select",
      "selectValue":"888800010001,888800010002,888800010003,888800010004,888800010005,888800010007",
      "selectValueName":"物业费,地上出售车位费,地下出售车位费,地上出租车位费,地下出租车位费,临时车费用",
      "limit":"num",
      "limitParam":"",
      "limitErrInfo":"名单类型格式错误",
      "limitErrInfo":"费用类型格式错误",
      "show": true
    },
    {
      "code": "carNum",
      "cnCode":"车牌号",
      "desc":"必填,请填写车牌号",
      "code": "feeName",
      "cnCode":"收费项目",
      "desc":"必填,请填写收费项目",
      "required":true,
      "hasDefaultValue":false,
      "inputType": "input",
      "limit":"maxin",
      "limitParam":"1,12",
      "limitErrInfo":"车牌号大于12位",
      "limitParam":"1,100",
      "limitErrInfo":"收费项目不能超过100位",
      "show": true
    },
    {
      "code": "inTime",
      "cnCode":"进场时间",
      "desc":"必填,请选择进场时间",
      "code":"feeFlag",
      "cnCode":"费用标识",
      "desc":"必填,请选择费用标识",
      "required":true,
      "hasDefaultValue":false,
      "inputType": "select",
      "selectValue":"1003006,2006012",
      "selectValueName":"周期性费用,一次性费用",
      "limit":"num",
      "limitParam":"",
      "limitErrInfo":"费用类型格式错误",
      "show": true
    },
    {
      "code": "startTime",
      "cnCode":"计费起始时间",
      "desc":"必填,请选择计费起始时间",
      "required":true,
      "hasDefaultValue":false,
      "inputType": "input",
      "limit":"dateTime",
      "limitParam":"",
      "limitErrInfo":"不是有效的时间格式",
      "limitErrInfo":"计费起始时间不是有效的时间格式",
      "show": true
    },
    {
      "code": "outTime",
      "cnCode":"出场时间",
      "desc":"必填,请选择出场时间",
      "code": "endTime",
      "cnCode":"计费终止时间",
      "desc":"必填,请选择计费终止时间",
      "required":true,
      "hasDefaultValue":false,
      "inputType": "input",
      "limit":"dateTime",
      "limitParam":"",
      "limitErrInfo":"不是有效的时间格式",
      "limitErrInfo":"计费终止时间不是有效的时间格式",
      "show": true
    },
    {
      "code":"computingFormula",
      "cnCode":"计算公式",
      "desc":"必填,请填写附加费用",
      "required":true,
      "hasDefaultValue":false,
      "inputType": "select",
      "selectValue":"1001,2002",
      "selectValueName":"面积*单价+附加费,固定费用",
      "limit":"num",
      "limitParam":"",
      "limitErrInfo":"计算公式格式错误",
      "show": false
    },
    {
      "code":"squarePrice",
      "cnCode":"计费单价",
      "desc":"必填,请填写计费单价",
      "required":true,
      "hasDefaultValue":false,
      "inputType": "input",
      "limit":"money",
      "limitParam":"",
      "limitErrInfo":"计费单价格式错误",
      "show": true
    },
    {
      "code":"additionalAmount",
      "cnCode":"附加费用",
      "desc":"必填,请填写附加费用",
      "required":true,
      "hasDefaultValue":false,
      "inputType": "input",
      "limit":"money",
      "limitParam":"",
      "limitErrInfo":"附加费用格式错误",
      "show": true
    }
  ]
java110-code-generator/src/main/resources/web/template_carInout.json
New file
@@ -0,0 +1,94 @@
{
  "templateName":"车辆进场",
  "templateCode":"carInout",
  "templateKey":"inoutId",
  "templateKeyName":"进出场ID",
  "searchCode": "carNum",
  "searchName": "车牌号",
  "conditions": [
    {
      "name": "车辆状态",
      "inputType": "select",
      "selectValue":"100300,100400,100500,100600",
      "selectValueName":"进场状态,支付完成,离场状态,超时重新支付",
      "code": "state",
      "whereCondition": "equal"
    },
    {
      "name": "车牌号",
      "inputType": "input",
      "code": "carNum",
      "whereCondition": "equal"
    },
    {
      "name": "进出场ID",
      "inputType": "input",
      "code": "inoutId",
      "whereCondition": "equal"
    },
    {
      "name": "进场开始时间",
      "inputType": "input",
      "code": "startTime",
      "whereCondition": "equal"
    },
    {
      "name": "进场结束时间",
      "inputType": "input",
      "code": "endTime",
      "whereCondition": "equal"
    }
  ],
  "columns":[
    {
      "code":"state",
      "cnCode":"车辆状态",
      "desc":"必填,请填写车辆状态",
      "required":true,
      "hasDefaultValue":false,
      "inputType":"select",
      "selectValue":"1111,2222",
      "selectValueName":"黑名单,白名单",
      "limit":"num",
      "limitParam":"",
      "limitErrInfo":"名单类型格式错误",
      "show": true
    },
    {
      "code": "carNum",
      "cnCode":"车牌号",
      "desc":"必填,请填写车牌号",
      "required":true,
      "hasDefaultValue":false,
      "inputType": "input",
      "limit":"maxin",
      "limitParam":"1,12",
      "limitErrInfo":"车牌号大于12位",
      "show": true
    },
    {
      "code": "inTime",
      "cnCode":"进场时间",
      "desc":"必填,请选择进场时间",
      "required":true,
      "hasDefaultValue":false,
      "inputType": "input",
      "limit":"dateTime",
      "limitParam":"",
      "limitErrInfo":"不是有效的时间格式",
      "show": true
    },
    {
      "code": "outTime",
      "cnCode":"出场时间",
      "desc":"必填,请选择出场时间",
      "required":true,
      "hasDefaultValue":false,
      "inputType": "input",
      "limit":"dateTime",
      "limitParam":"",
      "limitErrInfo":"不是有效的时间格式",
      "show": true
    }
  ]
}
java110-core/src/main/java/com/java110/core/smo/fee/IFeeAttrInnerServiceSMO.java
@@ -1,7 +1,7 @@
package com.java110.core.smo.fee;
import com.java110.core.feign.FeignConfiguration;
import com.java110.dto.FeeAttrDto;
import com.java110.dto.fee.FeeAttrDto;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
java110-core/src/main/java/com/java110/core/smo/fee/IFeeConfigInnerServiceSMO.java
@@ -1,7 +1,7 @@
package com.java110.core.smo.fee;
import com.java110.core.feign.FeignConfiguration;
import com.java110.dto.FeeConfigDto;
import com.java110.dto.fee.FeeConfigDto;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
java110-core/src/main/java/com/java110/core/smo/fee/IFeeDetailInnerServiceSMO.java
@@ -1,7 +1,7 @@
package com.java110.core.smo.fee;
import com.java110.core.feign.FeignConfiguration;
import com.java110.dto.FeeDetailDto;
import com.java110.dto.fee.FeeDetailDto;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
java110-core/src/main/java/com/java110/core/smo/fee/IFeeInnerServiceSMO.java
@@ -1,7 +1,7 @@
package com.java110.core.smo.fee;
import com.java110.core.feign.FeignConfiguration;
import com.java110.dto.FeeDto;
import com.java110.dto.fee.FeeDto;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
java110-db/src/main/resources/mapper/fee/FeeConfigServiceDaoImplMapper.xml
@@ -5,167 +5,263 @@
<mapper namespace="feeConfigServiceDaoImpl">
    <!-- 保存费用配置信息 add by wuxw 2018-07-03 -->
       <insert id="saveBusinessFeeConfigInfo" parameterType="Map">
           insert into business_pay_fee_config(
square_price,operate,fee_type_cd,config_id,additional_amount,community_id,b_id
) values (
#{squarePrice},#{operate},#{feeTypeCd},#{configId},#{additionalAmount},#{communityId},#{bId}
)
       </insert>
    <insert id="saveBusinessFeeConfigInfo" parameterType="Map">
        insert into business_pay_fee_config(
        fee_type_cd,computing_formula,additional_amount,square_price,is_default,operate,config_id,fee_flag,fee_name,start_time,end_time,community_id,b_id
        ) values (
        #{feeTypeCd},#{computingFormula},#{additionalAmount},#{squarePrice},#{isDefault},#{operate},#{configId},#{feeFlag},#{feeName},#{startTime},#{endTime},#{communityId},#{bId}
        )
    </insert>
       <!-- 查询费用配置信息(Business) add by wuxw 2018-07-03 -->
       <select id="getBusinessFeeConfigInfo" parameterType="Map" resultType="Map">
           select  t.square_price,t.square_price squarePrice,t.operate,t.fee_type_cd,t.fee_type_cd feeTypeCd,t.config_id,t.config_id configId,t.additional_amount,t.additional_amount additionalAmount,t.community_id,t.community_id communityId,t.b_id,t.b_id bId
from business_pay_fee_config t
where 1 =1
<if test="squarePrice !=null and squarePrice != ''">
   and t.square_price= #{squarePrice}
</if>
<if test="operate !=null and operate != ''">
   and t.operate= #{operate}
</if>
<if test="feeTypeCd !=null and feeTypeCd != ''">
   and t.fee_type_cd= #{feeTypeCd}
</if>
<if test="configId !=null and configId != ''">
   and t.config_id= #{configId}
</if>
<if test="additionalAmount !=null and additionalAmount != ''">
   and t.additional_amount= #{additionalAmount}
</if>
<if test="communityId !=null and communityId != ''">
   and t.community_id= #{communityId}
</if>
<if test="bId !=null and bId != ''">
   and t.b_id= #{bId}
</if>
    <!-- 查询费用配置信息(Business) add by wuxw 2018-07-03 -->
    <select id="getBusinessFeeConfigInfo" parameterType="Map" resultType="Map">
        select t.fee_type_cd,t.fee_type_cd feeTypeCd,t.computing_formula,t.computing_formula
        computingFormula,t.additional_amount,t.additional_amount additionalAmount,t.square_price,t.square_price
        squarePrice,t.is_default,t.is_default isDefault,t.operate,t.config_id,t.config_id configId,t.fee_flag,t.fee_flag
        feeFlag,t.fee_name,t.fee_name feeName,t.start_time,t.start_time startTime,t.end_time,t.end_time
        endTime,t.community_id,t.community_id communityId,t.b_id,t.b_id bId
        from business_pay_fee_config t
        where 1 =1
        <if test="feeTypeCd !=null and feeTypeCd != ''">
            and t.fee_type_cd= #{feeTypeCd}
        </if>
        <if test="computingFormula !=null and computingFormula != ''">
            and t.computing_formula= #{computingFormula}
        </if>
        <if test="additionalAmount !=null and additionalAmount != ''">
            and t.additional_amount= #{additionalAmount}
        </if>
        <if test="squarePrice !=null and squarePrice != ''">
            and t.square_price= #{squarePrice}
        </if>
        <if test="isDefault !=null and isDefault != ''">
            and t.is_default= #{isDefault}
        </if>
        <if test="operate !=null and operate != ''">
            and t.operate= #{operate}
        </if>
        <if test="configId !=null and configId != ''">
            and t.config_id= #{configId}
        </if>
        <if test="feeFlag !=null and feeFlag != ''">
            and t.fee_flag= #{feeFlag}
        </if>
        <if test="feeName !=null and feeName != ''">
            and t.fee_name= #{feeName}
        </if>
        <if test="startTime !=null and startTime != ''">
            and t.start_time= #{startTime}
        </if>
        <if test="endTime !=null and endTime != ''">
            and t.end_time= #{endTime}
        </if>
        <if test="communityId !=null and communityId != ''">
            and t.community_id= #{communityId}
        </if>
        <if test="bId !=null and bId != ''">
            and t.b_id= #{bId}
        </if>
       </select>
    </select>
    <!-- 保存费用配置信息至 instance表中 add by wuxw 2018-07-03 -->
    <insert id="saveFeeConfigInfoInstance" parameterType="Map">
        insert into pay_fee_config(
square_price,fee_type_cd,config_id,additional_amount,status_cd,community_id,b_id
) select t.square_price,t.fee_type_cd,t.config_id,t.additional_amount,'0',t.community_id,t.b_id from business_pay_fee_config t where 1=1
<if test="squarePrice !=null and squarePrice != ''">
   and t.square_price= #{squarePrice}
</if>
   and t.operate= 'ADD'
<if test="feeTypeCd !=null and feeTypeCd != ''">
   and t.fee_type_cd= #{feeTypeCd}
</if>
<if test="configId !=null and configId != ''">
   and t.config_id= #{configId}
</if>
<if test="additionalAmount !=null and additionalAmount != ''">
   and t.additional_amount= #{additionalAmount}
</if>
<if test="communityId !=null and communityId != ''">
   and t.community_id= #{communityId}
</if>
<if test="bId !=null and bId != ''">
   and t.b_id= #{bId}
</if>
        fee_type_cd,computing_formula,additional_amount,status_cd,square_price,is_default,config_id,fee_flag,fee_name,start_time,end_time,community_id,b_id
        ) select
        t.fee_type_cd,t.computing_formula,t.additional_amount,'0',t.square_price,t.is_default,t.config_id,t.fee_flag,t.fee_name,t.start_time,t.end_time,t.community_id,t.b_id
        from business_pay_fee_config t where 1=1
        <if test="feeTypeCd !=null and feeTypeCd != ''">
            and t.fee_type_cd= #{feeTypeCd}
        </if>
        <if test="computingFormula !=null and computingFormula != ''">
            and t.computing_formula= #{computingFormula}
        </if>
        <if test="additionalAmount !=null and additionalAmount != ''">
            and t.additional_amount= #{additionalAmount}
        </if>
        <if test="squarePrice !=null and squarePrice != ''">
            and t.square_price= #{squarePrice}
        </if>
        <if test="isDefault !=null and isDefault != ''">
            and t.is_default= #{isDefault}
        </if>
        and t.operate= 'ADD'
        <if test="configId !=null and configId != ''">
            and t.config_id= #{configId}
        </if>
        <if test="feeFlag !=null and feeFlag != ''">
            and t.fee_flag= #{feeFlag}
        </if>
        <if test="feeName !=null and feeName != ''">
            and t.fee_name= #{feeName}
        </if>
        <if test="startTime !=null and startTime != ''">
            and t.start_time= #{startTime}
        </if>
        <if test="endTime !=null and endTime != ''">
            and t.end_time= #{endTime}
        </if>
        <if test="communityId !=null and communityId != ''">
            and t.community_id= #{communityId}
        </if>
        <if test="bId !=null and bId != ''">
            and t.b_id= #{bId}
        </if>
    </insert>
    <!-- 查询费用配置信息 add by wuxw 2018-07-03 -->
    <select id="getFeeConfigInfo" parameterType="Map" resultType="Map">
        select  t.square_price,t.square_price squarePrice,t.fee_type_cd,t.fee_type_cd feeTypeCd,t.config_id,t.config_id configId,t.additional_amount,t.additional_amount additionalAmount,t.status_cd,t.status_cd statusCd,t.community_id,t.community_id communityId,t.b_id,t.b_id bId
from pay_fee_config t
where 1 =1
<if test="squarePrice !=null and squarePrice != ''">
   and t.square_price= #{squarePrice}
</if>
<if test="feeTypeCd !=null and feeTypeCd != ''">
   and t.fee_type_cd= #{feeTypeCd}
</if>
<if test="configId !=null and configId != ''">
   and t.config_id= #{configId}
</if>
<if test="additionalAmount !=null and additionalAmount != ''">
   and t.additional_amount= #{additionalAmount}
</if>
<if test="statusCd !=null and statusCd != ''">
   and t.status_cd= #{statusCd}
</if>
<if test="communityId !=null and communityId != ''">
   and t.community_id= #{communityId}
</if>
<if test="bId !=null and bId != ''">
   and t.b_id= #{bId}
</if>
<if test="page != -1 and page != null ">
   limit #{page}, #{row}
</if>
        select t.fee_type_cd,t.fee_type_cd feeTypeCd,t.computing_formula,t.computing_formula
        computingFormula,t.additional_amount,t.additional_amount additionalAmount,t.status_cd,t.status_cd
        statusCd,t.square_price,t.square_price squarePrice,t.is_default,t.is_default isDefault,t.config_id,t.config_id
        configId,t.fee_flag,t.fee_flag feeFlag,t.fee_name,t.fee_name feeName,t.start_time,t.start_time
        startTime,t.end_time,t.end_time endTime,t.community_id,t.community_id communityId,t.b_id,t.b_id bId
        from pay_fee_config t
        where 1 =1
        <if test="feeTypeCd !=null and feeTypeCd != ''">
            and t.fee_type_cd= #{feeTypeCd}
        </if>
        <if test="computingFormula !=null and computingFormula != ''">
            and t.computing_formula= #{computingFormula}
        </if>
        <if test="additionalAmount !=null and additionalAmount != ''">
            and t.additional_amount= #{additionalAmount}
        </if>
        <if test="statusCd !=null and statusCd != ''">
            and t.status_cd= #{statusCd}
        </if>
        <if test="squarePrice !=null and squarePrice != ''">
            and t.square_price= #{squarePrice}
        </if>
        <if test="isDefault !=null and isDefault != ''">
            and t.is_default= #{isDefault}
        </if>
        <if test="configId !=null and configId != ''">
            and t.config_id= #{configId}
        </if>
        <if test="feeFlag !=null and feeFlag != ''">
            and t.fee_flag= #{feeFlag}
        </if>
        <if test="feeName !=null and feeName != ''">
            and t.fee_name= #{feeName}
        </if>
        <if test="startTime !=null and startTime != ''">
            and t.start_time= #{startTime}
        </if>
        <if test="endTime !=null and endTime != ''">
            and t.end_time= #{endTime}
        </if>
        <if test="communityId !=null and communityId != ''">
            and t.community_id= #{communityId}
        </if>
        <if test="bId !=null and bId != ''">
            and t.b_id= #{bId}
        </if>
        order by t.create_time desc
        <if test="page != -1 and page != null ">
            limit #{page}, #{row}
        </if>
    </select>
    <!-- 修改费用配置信息 add by wuxw 2018-07-03 -->
    <update id="updateFeeConfigInfoInstance" parameterType="Map">
        update  pay_fee_config t set t.status_cd = #{statusCd}
<if test="newBId != null and newBId != ''">
,t.b_id = #{newBId}
</if>
<if test="squarePrice !=null and squarePrice != ''">
, t.square_price= #{squarePrice}
</if>
<if test="feeTypeCd !=null and feeTypeCd != ''">
, t.fee_type_cd= #{feeTypeCd}
</if>
<if test="additionalAmount !=null and additionalAmount != ''">
, t.additional_amount= #{additionalAmount}
</if>
<if test="communityId !=null and communityId != ''">
, t.community_id= #{communityId}
</if>
 where 1=1 <if test="configId !=null and configId != ''">
and t.config_id= #{configId}
</if>
<if test="bId !=null and bId != ''">
and t.b_id= #{bId}
</if>
        update pay_fee_config t set t.status_cd = #{statusCd}
        <if test="newBId != null and newBId != ''">
            ,t.b_id = #{newBId}
        </if>
        <if test="feeTypeCd !=null and feeTypeCd != ''">
            , t.fee_type_cd= #{feeTypeCd}
        </if>
        <if test="computingFormula !=null and computingFormula != ''">
            , t.computing_formula= #{computingFormula}
        </if>
        <if test="additionalAmount !=null and additionalAmount != ''">
            , t.additional_amount= #{additionalAmount}
        </if>
        <if test="squarePrice !=null and squarePrice != ''">
            , t.square_price= #{squarePrice}
        </if>
        <if test="isDefault !=null and isDefault != ''">
            , t.is_default= #{isDefault}
        </if>
        <if test="feeFlag !=null and feeFlag != ''">
            , t.fee_flag= #{feeFlag}
        </if>
        <if test="feeName !=null and feeName != ''">
            , t.fee_name= #{feeName}
        </if>
        <if test="startTime !=null and startTime != ''">
            , t.start_time= #{startTime}
        </if>
        <if test="endTime !=null and endTime != ''">
            , t.end_time= #{endTime}
        </if>
        <if test="communityId !=null and communityId != ''">
            , t.community_id= #{communityId}
        </if>
        where 1=1
        <if test="configId !=null and configId != ''">
            and t.config_id= #{configId}
        </if>
        <if test="bId !=null and bId != ''">
            and t.b_id= #{bId}
        </if>
    </update>
    <!-- 查询费用配置数量 add by wuxw 2018-07-03 -->
     <select id="queryFeeConfigsCount" parameterType="Map" resultType="Map">
        select  count(1) count
from pay_fee_config t
where 1 =1
<if test="squarePrice !=null and squarePrice != ''">
   and t.square_price= #{squarePrice}
</if>
<if test="feeTypeCd !=null and feeTypeCd != ''">
   and t.fee_type_cd= #{feeTypeCd}
</if>
<if test="configId !=null and configId != ''">
   and t.config_id= #{configId}
</if>
<if test="additionalAmount !=null and additionalAmount != ''">
   and t.additional_amount= #{additionalAmount}
</if>
<if test="statusCd !=null and statusCd != ''">
   and t.status_cd= #{statusCd}
</if>
<if test="communityId !=null and communityId != ''">
   and t.community_id= #{communityId}
</if>
<if test="bId !=null and bId != ''">
   and t.b_id= #{bId}
</if>
    <select id="queryFeeConfigsCount" parameterType="Map" resultType="Map">
        select count(1) count
        from pay_fee_config t
        where 1 =1
        <if test="feeTypeCd !=null and feeTypeCd != ''">
            and t.fee_type_cd= #{feeTypeCd}
        </if>
        <if test="computingFormula !=null and computingFormula != ''">
            and t.computing_formula= #{computingFormula}
        </if>
        <if test="additionalAmount !=null and additionalAmount != ''">
            and t.additional_amount= #{additionalAmount}
        </if>
        <if test="statusCd !=null and statusCd != ''">
            and t.status_cd= #{statusCd}
        </if>
        <if test="squarePrice !=null and squarePrice != ''">
            and t.square_price= #{squarePrice}
        </if>
        <if test="isDefault !=null and isDefault != ''">
            and t.is_default= #{isDefault}
        </if>
        <if test="configId !=null and configId != ''">
            and t.config_id= #{configId}
        </if>
        <if test="feeFlag !=null and feeFlag != ''">
            and t.fee_flag= #{feeFlag}
        </if>
        <if test="feeName !=null and feeName != ''">
            and t.fee_name= #{feeName}
        </if>
        <if test="startTime !=null and startTime != ''">
            and t.start_time= #{startTime}
        </if>
        <if test="endTime !=null and endTime != ''">
            and t.end_time= #{endTime}
        </if>
        <if test="communityId !=null and communityId != ''">
            and t.community_id= #{communityId}
        </if>
        <if test="bId !=null and bId != ''">
            and t.b_id= #{bId}
        </if>
     </select>
    </select>
</mapper>
java110-utils/src/main/java/com/java110/utils/constant/ServiceCodeFeeConfigConstant.java
New file
@@ -0,0 +1,31 @@
package com.java110.utils.constant;
/**
 * 费用项常量类
 * Created by wuxw on 2017/5/20.
 */
public class ServiceCodeFeeConfigConstant {
    /**
     * 添加 费用项
     */
    public static final String ADD_FEECONFIG = "feeConfig.saveFeeConfig";
    /**
     * 修改 费用项
     */
    public static final String UPDATE_FEECONFIG = "feeConfig.updateFeeConfig";
    /**
     * 删除 费用项
     */
    public static final String DELETE_FEECONFIG = "feeConfig.deleteFeeConfig";
    /**
     * 查询 费用项
     */
    public static final String LIST_FEECONFIGS = "feeConfig.listFeeConfigs";
}
java110-utils/src/test/java/com/java110/utils/util/BeanConvertUtilTest.java
@@ -1,12 +1,7 @@
package com.java110.utils.util;
import com.alibaba.fastjson.JSONObject;
import com.java110.dto.CommunityMemberDto;
import com.java110.dto.FeeDetailDto;
import com.java110.dto.FeeDto;
import com.java110.vo.api.ApiFeeVo;
import junit.framework.TestCase;
import org.apache.commons.beanutils.BeanUtils;
import java.lang.reflect.InvocationTargetException;
import java.util.Date;