Explorar el Código

加入车位页面

wuxw hace 6 años
padre
commit
f8c1cc7550

+ 200 - 0
Api/src/main/java/com/java110/api/listener/fee/ListParkingSpacesWhereFeeSetListener.java

@@ -0,0 +1,200 @@
+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.owner.IOwnerCarInnerServiceSMO;
+import com.java110.core.smo.owner.IOwnerInnerServiceSMO;
+import com.java110.core.smo.owner.IOwnerRoomRelInnerServiceSMO;
+import com.java110.core.smo.parkingSpace.IParkingSpaceInnerServiceSMO;
+import com.java110.core.smo.room.IRoomInnerServiceSMO;
+import com.java110.dto.owner.OwnerCarDto;
+import com.java110.dto.parking.ParkingSpaceDto;
+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.ApiParkingSpaceDataVo;
+import com.java110.vo.api.ApiParkingSpaceVo;
+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("listParkingSpacesWhereFeeSetListener")
+public class ListParkingSpacesWhereFeeSetListener extends AbstractServiceApiListener {
+
+
+    @Autowired
+    private IParkingSpaceInnerServiceSMO parkingSpaceInnerServiceSMOImpl;
+
+    @Autowired
+    private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
+
+    @Autowired
+    private IOwnerCarInnerServiceSMO ownerCarInnerServiceSMOImpl;
+
+    @Autowired
+    private IOwnerRoomRelInnerServiceSMO ownerRoomRelInnerServiceSMOImpl;
+
+    @Override
+    public String getServiceCode() {
+        return ServiceCodeFeeConfigConstant.LIST_PARKING_SPACE_WHERE_FEE_SET;
+    }
+
+    @Override
+    public HttpMethod getHttpMethod() {
+        return HttpMethod.GET;
+    }
+
+
+    @Override
+    public int getOrder() {
+        return DEFAULT_ORDER;
+    }
+
+
+    @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) {
+
+        ApiParkingSpaceVo apiParkingSpaceVo = new ApiParkingSpaceVo();
+        //根据 业主来定位房屋信息
+        if (reqJson.containsKey("carNum")) {
+            queryParkingSpaceByCarInfo(apiParkingSpaceVo, reqJson, context);
+
+            return;
+        }
+
+        ParkingSpaceDto parkingSpaceDto = BeanConvertUtil.covertBean(reqJson, ParkingSpaceDto.class);
+        //查询总记录数
+        int total = parkingSpaceInnerServiceSMOImpl.queryParkingSpacesCount(BeanConvertUtil.covertBean(reqJson, ParkingSpaceDto.class));
+        apiParkingSpaceVo.setTotal(total);
+        if (total > 0) {
+            List<ParkingSpaceDto> parkingSpaceDtos = parkingSpaceInnerServiceSMOImpl.queryParkingSpaces(parkingSpaceDto);
+
+            refreshParkingSpaceOwners(reqJson.getString("communityId"), parkingSpaceDtos);
+
+            apiParkingSpaceVo.setParkingSpaces(BeanConvertUtil.covertBeanList(parkingSpaceDtos, ApiParkingSpaceDataVo.class));
+        }
+        int row = reqJson.getInteger("row");
+        apiParkingSpaceVo.setRecords((int) Math.ceil((double) total / (double) row));
+
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(JSONObject.toJSONString(apiParkingSpaceVo), HttpStatus.OK);
+        context.setResponseEntity(responseEntity);
+
+    }
+
+    /**
+     * 根据业主查询 房屋信息
+     *
+     * @param apiParkingSpaceVo
+     * @param reqJson
+     */
+    private void queryParkingSpaceByCarInfo(ApiParkingSpaceVo apiParkingSpaceVo, JSONObject reqJson, DataFlowContext context) {
+
+        OwnerCarDto ownerCarDto = BeanConvertUtil.covertBean(reqJson, OwnerCarDto.class);
+        //ownerCarDto.setByOwnerInfo(true);
+        int total = ownerCarInnerServiceSMOImpl.queryOwnerCarsCount(ownerCarDto);
+
+        apiParkingSpaceVo.setTotal(total);
+        if (total > 0) {
+            List<OwnerCarDto> ownerCarDtos = ownerCarInnerServiceSMOImpl.queryOwnerCars(ownerCarDto);
+            List<ParkingSpaceDto> parkingSpaceDtos = null;
+
+            parkingSpaceDtos = refreshCarParkingSpaces(reqJson.getString("communityId"), ownerCarDtos);
+
+            apiParkingSpaceVo.setParkingSpaces(BeanConvertUtil.covertBeanList(parkingSpaceDtos, ApiParkingSpaceDataVo.class));
+        }
+        int row = reqJson.getInteger("row");
+        apiParkingSpaceVo.setRecords((int) Math.ceil((double) total / (double) row));
+
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(JSONObject.toJSONString(apiParkingSpaceVo), HttpStatus.OK);
+        context.setResponseEntity(responseEntity);
+    }
+
+    private List<ParkingSpaceDto> refreshCarParkingSpaces(String communityId,  List<OwnerCarDto> ownerCarDtos) {
+
+        List<String> psIds = new ArrayList<>();
+
+        for (OwnerCarDto ownerCarDto : ownerCarDtos) {
+            psIds.add(ownerCarDto.getPsId());
+        }
+        ParkingSpaceDto parkingSpaceDto = new ParkingSpaceDto();
+        parkingSpaceDto.setCommunityId(communityId);
+        parkingSpaceDto.setPsIds(psIds.toArray(new String[psIds.size()]));
+        List<ParkingSpaceDto> parkingSpaceDtos = parkingSpaceInnerServiceSMOImpl.queryParkingSpaces(parkingSpaceDto);
+
+        for (ParkingSpaceDto tmpParkingSpaceDto : parkingSpaceDtos) {
+            for (OwnerCarDto ownerCarDto : ownerCarDtos) {
+                if (tmpParkingSpaceDto.getPsId().equals(ownerCarDto.getPsId())) {
+                    tmpParkingSpaceDto.setOwnerId(ownerCarDto.getOwnerId());
+                    tmpParkingSpaceDto.setOwnerName(ownerCarDto.getOwnerName());
+                    tmpParkingSpaceDto.setIdCard(ownerCarDto.getIdCard());
+                    tmpParkingSpaceDto.setLink(ownerCarDto.getLink());
+                }
+            }
+        }
+
+        return parkingSpaceDtos;
+    }
+
+    /**
+     * 刷入车位业主信息
+     *
+     * @param parkingSpaceDtos
+     */
+    private void refreshParkingSpaceOwners(String communityId, List<ParkingSpaceDto> parkingSpaceDtos) {
+
+        List<String> psIds = new ArrayList<>();
+        for (ParkingSpaceDto parkingSpaceDto : parkingSpaceDtos) {
+            psIds.add(parkingSpaceDto.getPsId());
+        }
+        OwnerCarDto ownerCarDto = new OwnerCarDto();
+        ownerCarDto.setCommunityId(communityId);
+        ownerCarDto.setPsIds(psIds.toArray(new String[psIds.size()]));
+        ownerCarDto.setWithOwner(true);
+        List<OwnerCarDto> ownerCarDtos = ownerCarInnerServiceSMOImpl.queryOwnerCars(ownerCarDto);
+
+        for (OwnerCarDto tmp : ownerCarDtos) {
+            for (ParkingSpaceDto tmpParkingSpaceDto : parkingSpaceDtos) {
+                if (tmpParkingSpaceDto.getPsId().equals(tmp.getPsId())) {
+                    tmpParkingSpaceDto.setOwnerId(tmp.getOwnerId());
+                    tmpParkingSpaceDto.setOwnerName(tmp.getOwnerName());
+                    tmpParkingSpaceDto.setIdCard(tmp.getIdCard());
+                    tmpParkingSpaceDto.setLink(tmp.getLink());
+                }
+            }
+        }
+    }
+
+
+    public IOwnerInnerServiceSMO getOwnerInnerServiceSMOImpl() {
+        return ownerInnerServiceSMOImpl;
+    }
+
+    public void setOwnerInnerServiceSMOImpl(IOwnerInnerServiceSMO ownerInnerServiceSMOImpl) {
+        this.ownerInnerServiceSMOImpl = ownerInnerServiceSMOImpl;
+    }
+
+    public IOwnerRoomRelInnerServiceSMO getOwnerRoomRelInnerServiceSMOImpl() {
+        return ownerRoomRelInnerServiceSMOImpl;
+    }
+
+    public void setOwnerRoomRelInnerServiceSMOImpl(IOwnerRoomRelInnerServiceSMO ownerRoomRelInnerServiceSMOImpl) {
+        this.ownerRoomRelInnerServiceSMOImpl = ownerRoomRelInnerServiceSMOImpl;
+    }
+}

+ 53 - 0
WebService/src/main/java/com/java110/web/components/fee/ParkingSpaceCreateFeeComponent.java

@@ -0,0 +1,53 @@
+package com.java110.web.components.fee;
+
+import com.java110.core.context.IPageData;
+import com.java110.web.smo.IFloorServiceSMO;
+import com.java110.web.smo.IUnitServiceSMO;
+import com.java110.web.smo.feeConfig.IListRoomsWhereFeeSetSMO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Component;
+
+/**
+ * @ClassName RoomCreateFeeComponent
+ * @Description TODO 房屋创建费用
+ * @Author wuxw
+ * @Date 2020/1/30 21:35
+ * @Version 1.0
+ * add by wuxw 2020/1/30
+ **/
+@Component("parkingSpaceCreateFee")
+public class ParkingSpaceCreateFeeComponent {
+
+    @Autowired
+    private IFloorServiceSMO floorServiceSMOImpl;
+
+    @Autowired
+    private IUnitServiceSMO unitServiceSMOImpl;
+
+    @Autowired
+    private IListRoomsWhereFeeSetSMO listRoomsWhereFeeSetSMOImpl;
+
+    public ResponseEntity<String> listParkingSpace(IPageData pd){
+        return listRoomsWhereFeeSetSMOImpl.listRooms(pd);
+    }
+    /**
+     * 根据 floorId 查询单元信息
+     *
+     * @param pd 包含floorId 和小区ID 页面封装对象
+     * @return 单元信息
+     */
+    public ResponseEntity<String> loadFloor(IPageData pd) {
+        return floorServiceSMOImpl.getFloor(pd);
+    }
+
+    /**
+     * 根据 floorId 查询单元信息
+     *
+     * @param pd 包含floorId 和小区ID 页面封装对象
+     * @return 单元信息
+     */
+    public ResponseEntity<String> loadUnits(IPageData pd) {
+        return unitServiceSMOImpl.listUnits(pd);
+    }
+}

+ 17 - 0
WebService/src/main/java/com/java110/web/smo/feeConfig/IListParkingSpacesWhereFeeSetSMO.java

@@ -0,0 +1,17 @@
+package com.java110.web.smo.feeConfig;
+
+import com.java110.core.context.IPageData;
+import org.springframework.http.ResponseEntity;
+
+/**
+ * @ClassName IListRoomsWhereFeeSet
+ * @Description TODO 查询将要设置费用的房屋
+ * @Author wuxw
+ * @Date 2020/1/30 21:47
+ * @Version 1.0
+ * add by wuxw 2020/1/30
+ **/
+public interface IListParkingSpacesWhereFeeSetSMO {
+
+    ResponseEntity<String> listParkingSpaces(IPageData pd);
+}

+ 67 - 0
WebService/src/main/java/com/java110/web/smo/feeConfig/impl/ListParkingSpacesWhereFeeSetSMOImpl.java

@@ -0,0 +1,67 @@
+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.IListParkingSpacesWhereFeeSetSMO;
+import com.java110.web.smo.feeConfig.IListRoomsWhereFeeSetSMO;
+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;
+
+/**
+ * 查询设置费用房屋
+ */
+@Service("listParkingSpacesWhereFeeSetSMOImpl")
+public class ListParkingSpacesWhereFeeSetSMOImpl extends AbstractComponentSMO implements IListParkingSpacesWhereFeeSetSMO {
+
+    @Autowired
+    private RestTemplate restTemplate;
+
+    @Override
+    public ResponseEntity<String> listParkingSpaces(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/fee.listParkingSpacesWhereFeeSet" + 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;
+    }
+}

+ 156 - 0
WebService/src/main/resources/components/feePackage/parkingSpaceCreateFee/parkingSpaceCreateFee.html

@@ -0,0 +1,156 @@
+<div id="component">
+    <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-link btn-sm" style="margin-right:10px;"
+                                v-on:click="_moreCondition()">{{parkingSpaceCreateFeeInfo.moreCondition == true?'隐藏':'更多'}}
+                        </button>
+                    </div>
+                </div>
+                <div class="ibox-content">
+                    <div class="row">
+
+                        <div class="col-sm-4">
+                            <div class="form-group input-group">
+                                <input type="text" placeholder="请选择楼栋"
+                                       v-model="parkingSpaceCreateFeeInfo.conditions.floorName" class=" form-control">
+                                <div class="input-group-prepend">
+                                    <button type="button" class="btn btn-primary btn-sm"
+                                            v-on:click="_openChooseFloorMethod()"><i
+                                            class="glyphicon glyphicon-search"></i> 选择
+                                    </button>
+                                </div>
+                            </div>
+
+                        </div>
+                        <div class="col-sm-3">
+                            <div class="form-group">
+                                <select class="form-control-sm form-control input-s-sm inline"
+                                        v-model="parkingSpaceCreateFeeInfo.conditions.unitId">
+                                    <option selected value="">请选择单元</option>
+                                    <option v-for="(unit,index) in parkingSpaceUnits" :key="index" v-bind:value="unit.unitId">
+                                        {{unit.unitNum}}单元
+                                    </option>
+                                </select>
+                            </div>
+                        </div>
+                        <div class="col-sm-4">
+                            <div class="form-group">
+                                <input type="text" placeholder="请填写房屋编号" class="form-control form-control-sm"
+                                       v-model="parkingSpaceCreateFeeInfo.conditions.parkingSpaceNum">
+                            </div>
+                        </div>
+                        <div class="col-sm-1">
+                            <button type="button" class="btn btn-primary btn-sm" v-on:click="_queryParkingSpaceMethod()"><i
+                                    class="glyphicon glyphicon-search"></i> 查询
+                            </button>
+                        </div>
+
+                    </div>
+                    <div class="row" v-if="parkingSpaceCreateFeeInfo.moreCondition == true">
+                        <div class="col-sm-4">
+                            <div class="form-group">
+                                <input type="text" placeholder="请填写房屋ID" class="form-control form-control-sm"
+                                       v-model="parkingSpaceCreateFeeInfo.conditions.psId">
+                            </div>
+                        </div>
+                        <div class="col-sm-3">
+                            <input type="text" placeholder="请填写业主名称" class="form-control form-control-sm"
+                                   v-model="parkingSpaceCreateFeeInfo.conditions.ownerName">
+                        </div>
+                        <div class="col-sm-4">
+                            <input type="text" placeholder="请填写业主身份证号" class="form-control form-control-sm"
+                                   v-model="parkingSpaceCreateFeeInfo.conditions.idCard">
+                        </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"
+                                style="margin-left:10px" v-on:click="_openParkingSpaceCreateFeeAddModal(null,true)">
+                            <i class="glyphicon glyphicon-plus"></i> 批量创建
+                        </button>
+<!--                        <button type="button" class="btn btn-primary btn-sm"-->
+<!--                                style="margin-left:10px" v-on:click="_openAddParkingSpace()">-->
+<!--                            <i class="glyphicon glyphicon-plus"></i> 批量取消收费-->
+<!--                        </button>-->
+                    </div>
+                </div>
+                <div class="ibox-content">
+
+                    <table class="footable table table-stripped toggle-arrow-tiny" style="margin-top:10px"
+                           data-page-size="10">
+                        <thead>
+                        <tr>
+                            <th>车位ID</th>
+                            <th data-hide="phone">车位编号</th>
+                            <th data-hide="phone">业主ID</th>
+                            <th data-hide="phone">业主名称</th>
+                            <th data-hide="phone">业主身份证</th>
+                            <th class="text-right">操作</th>
+
+                        </tr>
+                        </thead>
+                        <tbody>
+                        <tr v-for="parkingSpace in parkingSpaceCreateFeeInfo.parkingSpaces">
+                            <td>
+                                {{parkingSpace.psId}}
+                            </td>
+                            <td>
+                                {{parkingSpace.areaNum}}号停车场{{parkingSpace.num}}号车位
+                            </td>
+                            <td>
+                                {{parkingSpace.ownerId}}
+                            </td>
+                            <td>
+                                {{parkingSpace.ownerName}}
+                            </td>
+                            <td>
+                                {{parkingSpace.idCard}}
+                            </td>
+                            <td class="text-right">
+                                <div class="btn-group">
+                                    <button class="btn-white btn btn-xs" v-on:click="_openParkingSpaceCreateFeeAddModal(parkingSpace,false)">创建收费
+                                    </button>
+                                </div>
+                                <div class="btn-group">
+                                    <button class="btn-white btn btn-xs" v-on:click="_openViewParkingSpaceCreateFee(parkingSpace)">查看收费
+                                    </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="searchFloor"
+               emitChooseFloor="parkingSpace"
+               emitLoadData="parkingSpace"
+    ></vc:create>
+
+    <vc:create name="parkingSpaceCreateFeeAdd"
+    ></vc:create>
+</div>

+ 170 - 0
WebService/src/main/resources/components/feePackage/parkingSpaceCreateFee/parkingSpaceCreateFee.js

@@ -0,0 +1,170 @@
+/**
+    入驻小区
+**/
+(function(vc){
+    var DEFAULT_PAGE = 1;
+    var DEFAULT_ROW = 10;
+    vc.extends({
+        data:{
+            parkingSpaceUnits:[],
+            parkingSpaceCreateFeeInfo:{
+                parkingSpaces:[],
+                total:0,
+                records:1,
+                floorId:'',
+                unitId:'',
+                state:'',
+                parkingSpaceNum:'',
+                moreCondition:false,
+                conditions:{
+                    floorId:'',
+                    floorName:'',
+                    unitId:'',
+                    parkingSpaceNum:'',
+                    psId:'',
+                    state:'',
+                    section:''
+                }
+            }
+        },
+        _initMethod:function(){
+            vc.component.parkingSpaceCreateFeeInfo.conditions.floorId = vc.getParam("floorId");
+            vc.component.parkingSpaceCreateFeeInfo.conditions.floorName = vc.getParam("floorName");
+            vc.component.listParkingSpace(DEFAULT_PAGE,DEFAULT_ROW);
+        },
+        _initEvent:function(){
+            vc.on('parkingSpace','chooseFloor',function(_param){
+                vc.component.parkingSpaceCreateFeeInfo.conditions.floorId = _param.floorId;
+                vc.component.parkingSpaceCreateFeeInfo.conditions.floorName = _param.floorName;
+                vc.component.loadUnits(_param.floorId);
+
+            });
+            vc.on('pagination','page_event',function(_currentPage){
+                vc.component.listParkingSpace(_currentPage,DEFAULT_ROW);
+            });
+        },
+        methods:{
+
+            listParkingSpace:function(_page,_row){
+
+                vc.component.parkingSpaceCreateFeeInfo.conditions.page=_page;
+                vc.component.parkingSpaceCreateFeeInfo.conditions.row=_row;
+                vc.component.parkingSpaceCreateFeeInfo.conditions.communityId = vc.getCurrentCommunity().communityId;
+                var param = {
+                    params:vc.component.parkingSpaceCreateFeeInfo.conditions
+                };
+
+               //发送get请求
+               vc.http.get('parkingSpaceCreateFee',
+                            'listParkingSpace',
+                             param,
+                             function(json,res){
+                                var listParkingSpaceData =JSON.parse(json);
+
+                                vc.component.parkingSpaceCreateFeeInfo.total = listParkingSpaceData.total;
+                                vc.component.parkingSpaceCreateFeeInfo.records = listParkingSpaceData.records;
+                                vc.component.parkingSpaceCreateFeeInfo.parkingSpaces = listParkingSpaceData.parkingSpaces;
+
+                                vc.emit('pagination','init',{
+                                    total:vc.component.parkingSpaceCreateFeeInfo.records,
+                                    dataCount: vc.component.parkingSpaceCreateFeeInfo.total,
+                                    currentPage:_page
+                                });
+                             },function(errInfo,error){
+                                console.log('请求失败处理');
+                             }
+                           );
+            },
+            _openParkingSpaceCreateFeeAddModal:function(_parkingSpace,_isMore){
+                vc.emit('parkingSpaceCreateFeeAdd', 'openParkingSpaceCreateFeeAddModal',{
+                    isMore:_isMore,
+                    parkingSpace:_parkingSpace
+                });
+            },
+            _openViewParkingSpaceCreateFee:function(_parkingSpace){
+                 vc.jumpToPage("/flow/listParkingSpaceFeeFlow?"+vc.objToGetParam(_parkingSpace));
+            },
+            /**
+                根据楼ID加载房屋
+            **/
+            loadUnits:function(_floorId){
+                vc.component.addParkingSpaceUnits = [];
+                var param = {
+                    params:{
+                        floorId:_floorId,
+                        communityId:vc.getCurrentCommunity().communityId
+                    }
+                }
+                vc.http.get(
+                    'parkingSpaceCreateFee',
+                    'loadUnits',
+                     param,
+                     function(json,res){
+                        //vm.menus = vm.refreshMenuActive(JSON.parse(json),0);
+                        if(res.status == 200){
+                            var tmpUnits = JSON.parse(json);
+                            vc.component.parkingSpaceUnits = tmpUnits;
+
+                            return ;
+                        }
+                        vc.message(json);
+                     },
+                     function(errInfo,error){
+                        console.log('请求失败处理');
+
+                        vc.message(errInfo);
+                     });
+            },
+            _queryParkingSpaceMethod:function(){
+                vc.component.listParkingSpace(DEFAULT_PAGE,DEFAULT_ROW);
+            },
+            _loadDataByParam: function(){
+                vc.component.parkingSpaceCreateFeeInfo.conditions.floorId = vc.getParam("floorId");
+                vc.component.parkingSpaceCreateFeeInfo.conditions.floorId = vc.getParam("floorName");
+                //如果 floodId 没有传 则,直接结束
+               /* if(!vc.notNull(vc.component.parkingSpaceCreateFeeInfo.conditions.floorId)){
+                    return ;
+                }*/
+
+                var param = {
+                    params:{
+                        communityId:vc.getCurrentCommunity().communityId,
+                        floorId:vc.component.parkingSpaceCreateFeeInfo.conditions.floorId
+                    }
+                }
+
+                vc.http.get(
+                    'parkingSpaceCreateFee',
+                    'loadFloor',
+                     param,
+                     function(json,res){
+                        if(res.status == 200){
+                            var _floorInfo = JSON.parse(json);
+                            var _tmpFloor = _floorInfo.apiFloorDataVoList[0];
+                            /*vc.emit('parkingSpaceSelectFloor','chooseFloor', _tmpFloor);
+                            */
+
+                            return ;
+                        }
+                        vc.message(json);
+                     },
+                     function(errInfo,error){
+                        console.log('请求失败处理');
+
+                        vc.message(errInfo);
+                     });
+
+            },
+            _moreCondition:function(){
+                if(vc.component.parkingSpaceCreateFeeInfo.moreCondition){
+                    vc.component.parkingSpaceCreateFeeInfo.moreCondition = false;
+                }else{
+                    vc.component.parkingSpaceCreateFeeInfo.moreCondition = true;
+                }
+            },
+            _openChooseFloorMethod:function(){
+                vc.emit('searchFloor','openSearchFloorModel',{});
+            }
+        }
+    });
+})(window.vc);

+ 0 - 1
WebService/src/main/resources/components/parkingSpacePackage/list-parking-space/listParkingSpace.html

@@ -77,7 +77,6 @@
                             </div>
                         </form>
 
-
                     </div>
                 </div>
                 <div class="ibox-content">

+ 37 - 0
WebService/src/main/resources/views/parkingSpaceCreateFeeFlow.html

@@ -0,0 +1,37 @@
+<!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="parkingSpaceCreateFee"></vc:create>
+        </div>
+
+
+        <vc:create name="copyright"></vc:create>
+
+    </div>
+</div>
+
+<vc:create name="commonBottom"></vc:create>
+</body>
+</html>

+ 1 - 1
WebService/src/main/resources/views/roomCreateFeeFlow.html

@@ -22,7 +22,7 @@
             <vc:create name="breadcrumb"></vc:create>
         </div>
         <!-- id="component" -->
-        <div  class="wrapper wrapper-content animated fadeInRight">
+        <div class="wrapper wrapper-content animated fadeInRight">
             <vc:create name="roomCreateFee"></vc:create>
         </div>
 

+ 45 - 0
java110-bean/src/main/java/com/java110/dto/owner/OwnerCarDto.java

@@ -23,10 +23,15 @@ public class OwnerCarDto extends PageDto implements Serializable {
     private String[] carNums;
     private String communityId;
     private String psId;
+    private String[] psIds;
     private String remark;
     private String ownerId;
     private String userId;
     private String carId;
+    private boolean withOwner =false;
+    private String ownerName;
+    private String idCard;
+    private String link;
 
 
     private Date createTime;
@@ -146,4 +151,44 @@ public class OwnerCarDto extends PageDto implements Serializable {
     public void setCarNums(String[] carNums) {
         this.carNums = carNums;
     }
+
+    public String[] getPsIds() {
+        return psIds;
+    }
+
+    public void setPsIds(String[] psIds) {
+        this.psIds = psIds;
+    }
+
+    public boolean isWithOwner() {
+        return withOwner;
+    }
+
+    public void setWithOwner(boolean withOwner) {
+        this.withOwner = withOwner;
+    }
+
+    public String getOwnerName() {
+        return ownerName;
+    }
+
+    public void setOwnerName(String ownerName) {
+        this.ownerName = ownerName;
+    }
+
+    public String getIdCard() {
+        return idCard;
+    }
+
+    public void setIdCard(String idCard) {
+        this.idCard = idCard;
+    }
+
+    public String getLink() {
+        return link;
+    }
+
+    public void setLink(String link) {
+        this.link = link;
+    }
 }

+ 45 - 0
java110-bean/src/main/java/com/java110/dto/parking/ParkingSpaceDto.java

@@ -27,6 +27,11 @@ public class ParkingSpaceDto extends PageDto implements Serializable {
     private String communityId;
     private String userId;
     private String areaNum;
+    private String carNum;
+    private String ownerId;
+    private String ownerName;
+    private String idCard;
+    private String link;
 
     private String[] psIds;
 
@@ -167,4 +172,44 @@ public class ParkingSpaceDto extends PageDto implements Serializable {
     public void setAreaNum(String areaNum) {
         this.areaNum = areaNum;
     }
+
+    public String getCarNum() {
+        return carNum;
+    }
+
+    public void setCarNum(String carNum) {
+        this.carNum = carNum;
+    }
+
+    public String getOwnerId() {
+        return ownerId;
+    }
+
+    public void setOwnerId(String ownerId) {
+        this.ownerId = ownerId;
+    }
+
+    public String getOwnerName() {
+        return ownerName;
+    }
+
+    public void setOwnerName(String ownerName) {
+        this.ownerName = ownerName;
+    }
+
+    public String getIdCard() {
+        return idCard;
+    }
+
+    public void setIdCard(String idCard) {
+        this.idCard = idCard;
+    }
+
+    public String getLink() {
+        return link;
+    }
+
+    public void setLink(String link) {
+        this.link = link;
+    }
 }

+ 36 - 0
java110-bean/src/main/java/com/java110/vo/api/ApiParkingSpaceDataVo.java

@@ -38,6 +38,10 @@ public class ApiParkingSpaceDataVo extends Vo {
     private String carType;
     private String carTypeName;
     private String areaNum;
+    private String ownerId;
+    private String ownerName;
+    private String idCard;
+    private String link;
 
     public String getArea() {
         return area;
@@ -190,4 +194,36 @@ public class ApiParkingSpaceDataVo extends Vo {
     public void setAreaNum(String areaNum) {
         this.areaNum = areaNum;
     }
+
+    public String getOwnerId() {
+        return ownerId;
+    }
+
+    public void setOwnerId(String ownerId) {
+        this.ownerId = ownerId;
+    }
+
+    public String getOwnerName() {
+        return ownerName;
+    }
+
+    public void setOwnerName(String ownerName) {
+        this.ownerName = ownerName;
+    }
+
+    public String getIdCard() {
+        return idCard;
+    }
+
+    public void setIdCard(String idCard) {
+        this.idCard = idCard;
+    }
+
+    public String getLink() {
+        return link;
+    }
+
+    public void setLink(String link) {
+        this.link = link;
+    }
 }

+ 19 - 3
java110-db/src/main/resources/mapper/user/OwnerCarServiceDaoImplMapper.xml

@@ -18,7 +18,8 @@
     <select id="getBusinessOwnerCarInfo" parameterType="Map" resultType="Map">
         select t.car_color,t.car_color carColor,t.car_brand,t.car_brand carBrand,t.car_type,t.car_type
         carType,t.operate,t.car_num,t.car_num carNum,t.ps_id,t.ps_id psId,t.remark,t.owner_id,t.owner_id
-        ownerId,t.b_id,t.b_id bId,t.user_id,t.user_id userId,t.car_id,t.car_id carId,t.community_id,t.community_id communityId
+        ownerId,t.b_id,t.b_id bId,t.user_id,t.user_id userId,t.car_id,t.car_id carId,t.community_id,t.community_id
+        communityId
         from business_owner_car t
         where 1 =1
         <if test="carColor !=null and carColor != ''">
@@ -65,7 +66,8 @@
     <insert id="saveOwnerCarInfoInstance" parameterType="Map">
         insert into owner_car(
         car_color,car_brand,car_type,car_num,ps_id,remark,status_cd,owner_id,b_id,user_id,car_id,community_id
-        ) select t.car_color,t.car_brand,t.car_type,t.car_num,t.ps_id,t.remark,'0',t.owner_id,t.b_id,t.user_id,t.car_id,t.community_id
+        ) select
+        t.car_color,t.car_brand,t.car_type,t.car_num,t.ps_id,t.remark,'0',t.owner_id,t.b_id,t.user_id,t.car_id,t.community_id
         from business_owner_car t where 1=1
         <if test="carColor !=null and carColor != ''">
             and t.car_color= #{carColor}
@@ -111,7 +113,21 @@
         t.car_num,t.car_num carNum,t.ps_id,t.ps_id psId,t.remark,t.status_cd,t.status_cd statusCd,t.owner_id,
         t.owner_id ownerId,t.b_id,t.b_id bId,t.user_id,t.user_id userId,t.car_id,t.car_id carId ,t.create_time
         createTime,t.community_id communityId
-        from owner_car t,t_dict t1 where t.car_type=t1.status_cd and t1.table_name='owner_car'
+        <if test="withOwner == true">
+            ,bow.name ownerName,bow.id_card idCard,bow.link
+        </if>
+        from owner_car t,t_dict t1
+        <if test="withOwner == true">
+            ,building_owner bow
+        </if>
+        where
+        t.car_type=t1.status_cd
+        and t1.table_name='owner_car'
+        <if test="withOwner == true">
+            and t.owner_id = bow.owner_id
+            and bow.status_cd = '0'
+        </if>
+
         <if test="carColor !=null and carColor != ''">
             and t.car_color= #{carColor}
         </if>

+ 6 - 0
java110-utils/src/main/java/com/java110/utils/constant/ServiceCodeFeeConfigConstant.java

@@ -33,6 +33,12 @@ public class ServiceCodeFeeConfigConstant {
      */
     public static final String LIST_ROOMS_WHERE_FEE_SET = "fee.listRoomsWhereFeeSet";
 
+
+    /**
+     * 查询  需要设置费用房屋
+     */
+    public static final String LIST_PARKING_SPACE_WHERE_FEE_SET = "fee.listParkingSpacesWhereFeeSet";
+
     /**
      * 查询 费用项
      */