Procházet zdrojové kódy

加入进场记录

wuxw před 6 roky
rodič
revize
eb569d4a08

+ 90 - 0
Api/src/main/java/com/java110/api/listener/carInout/ListCarInoutsListener.java

@@ -0,0 +1,90 @@
+package com.java110.api.listener.carInout;
+
+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.hardwareAdapation.ICarInoutInnerServiceSMO;
+import com.java110.dto.hardwareAdapation.CarInoutDto;
+import com.java110.event.service.api.ServiceDataFlowEvent;
+import com.java110.utils.constant.ServiceCodeCarInoutConstant;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.vo.api.carInout.ApiCarInoutDataVo;
+import com.java110.vo.api.carInout.ApiCarInoutVo;
+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("listCarInoutsListener")
+public class ListCarInoutsListener extends AbstractServiceApiListener {
+
+    @Autowired
+    private ICarInoutInnerServiceSMO carInoutInnerServiceSMOImpl;
+
+    @Override
+    public String getServiceCode() {
+        return ServiceCodeCarInoutConstant.LIST_CARINOUTS;
+    }
+
+    @Override
+    public HttpMethod getHttpMethod() {
+        return HttpMethod.GET;
+    }
+
+
+    @Override
+    public int getOrder() {
+        return DEFAULT_ORDER;
+    }
+
+
+    public ICarInoutInnerServiceSMO getCarInoutInnerServiceSMOImpl() {
+        return carInoutInnerServiceSMOImpl;
+    }
+
+    public void setCarInoutInnerServiceSMOImpl(ICarInoutInnerServiceSMO carInoutInnerServiceSMOImpl) {
+        this.carInoutInnerServiceSMOImpl = carInoutInnerServiceSMOImpl;
+    }
+
+    @Override
+    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
+        Assert.hasKeyAndValue(reqJson, "communityId", "必填,请填写小区信息");
+        super.validatePageInfo(reqJson);
+    }
+
+    @Override
+    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
+
+        CarInoutDto carInoutDto = BeanConvertUtil.covertBean(reqJson, CarInoutDto.class);
+
+        int count = carInoutInnerServiceSMOImpl.queryCarInoutsCount(carInoutDto);
+
+        List<ApiCarInoutDataVo> carInouts = null;
+
+        if (count > 0) {
+            carInouts = BeanConvertUtil.covertBeanList(carInoutInnerServiceSMOImpl.queryCarInouts(carInoutDto), ApiCarInoutDataVo.class);
+        } else {
+            carInouts = new ArrayList<>();
+        }
+
+        ApiCarInoutVo apiCarInoutVo = new ApiCarInoutVo();
+
+        apiCarInoutVo.setTotal(count);
+        apiCarInoutVo.setRecords((int) Math.ceil((double) count / (double) reqJson.getInteger("row")));
+        apiCarInoutVo.setCarInouts(carInouts);
+
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(JSONObject.toJSONString(apiCarInoutVo), HttpStatus.OK);
+
+        context.setResponseEntity(responseEntity);
+
+    }
+}

+ 99 - 0
Api/src/main/java/com/java110/api/listener/carInout/SaveCarInoutListener.java

@@ -0,0 +1,99 @@
+package com.java110.api.listener.carInout;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.java110.api.listener.AbstractServiceApiListener;
+import com.java110.utils.util.Assert;
+import com.java110.core.context.DataFlowContext;
+import com.java110.entity.center.AppService;
+import com.java110.event.service.api.ServiceDataFlowEvent;
+import com.java110.utils.constant.CommonConstant;
+import com.java110.utils.constant.ServiceCodeConstant;
+import com.java110.utils.constant.BusinessTypeConstant;
+import com.java110.utils.constant.ServiceCodeCarInoutConstant;
+
+
+import com.java110.core.annotation.Java110Listener;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+
+/**
+ * 保存小区侦听
+ * add by wuxw 2019-06-30
+ */
+@Java110Listener("saveCarInoutListener")
+public class SaveCarInoutListener extends AbstractServiceApiListener {
+    @Override
+    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
+        //Assert.hasKeyAndValue(reqJson, "xxx", "xxx");
+
+        Assert.hasKeyAndValue(reqJson, "state", "必填,请填写车辆状态");
+        Assert.hasKeyAndValue(reqJson, "communityId", "必填,请填写小区信息");
+        Assert.hasKeyAndValue(reqJson, "carNum", "必填,请填写车牌号");
+        Assert.hasKeyAndValue(reqJson, "inTime", "必填,请选择进场时间");
+        Assert.hasKeyAndValue(reqJson, "outTime", "必填,请选择出场时间");
+
+    }
+
+    @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(addCarInout(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 ServiceCodeCarInoutConstant.ADD_CARINOUT;
+    }
+
+    @Override
+    public HttpMethod getHttpMethod() {
+        return HttpMethod.POST;
+    }
+
+    @Override
+    public int getOrder() {
+        return DEFAULT_ORDER;
+    }
+
+
+    /**
+     * 添加小区信息
+     *
+     * @param paramInJson     接口调用放传入入参
+     * @param dataFlowContext 数据上下文
+     * @return 订单服务能够接受的报文
+     */
+    private JSONObject addCarInout(JSONObject paramInJson, DataFlowContext dataFlowContext) {
+
+
+        JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
+        business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_CAR_INOUT);
+        business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
+        business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
+        JSONObject businessCarInout = new JSONObject();
+        businessCarInout.putAll(paramInJson);
+        businessCarInout.put("inoutId", "-1");
+        //计算 应收金额
+        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessCarInout", businessCarInout);
+        return business;
+    }
+
+}

+ 96 - 0
Api/src/main/java/com/java110/api/listener/carInout/UpdateCarInoutListener.java

@@ -0,0 +1,96 @@
+package com.java110.api.listener.carInout;
+
+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.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.ServiceCodeCarInoutConstant;
+import com.java110.utils.util.Assert;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+
+/**
+ * 保存车辆进场侦听
+ * add by wuxw 2019-06-30
+ */
+@Java110Listener("updateCarInoutListener")
+public class UpdateCarInoutListener extends AbstractServiceApiListener {
+    @Override
+    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
+
+        Assert.hasKeyAndValue(reqJson, "inoutId", "进出场ID不能为空");
+        Assert.hasKeyAndValue(reqJson, "communityId", "必填,请填写小区信息");
+
+        Assert.hasKeyAndValue(reqJson, "state", "必填,请填写车辆状态");
+        Assert.hasKeyAndValue(reqJson, "carNum", "必填,请填写车牌号");
+        Assert.hasKeyAndValue(reqJson, "inTime", "必填,请选择进场时间");
+        Assert.hasKeyAndValue(reqJson, "outTime", "必填,请选择出场时间");
+
+    }
+
+    @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(updateCarInout(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 ServiceCodeCarInoutConstant.UPDATE_CARINOUT;
+    }
+
+    @Override
+    public HttpMethod getHttpMethod() {
+        return HttpMethod.POST;
+    }
+
+    @Override
+    public int getOrder() {
+        return DEFAULT_ORDER;
+    }
+
+
+    /**
+     * 添加车辆进场信息
+     *
+     * @param paramInJson     接口调用放传入入参
+     * @param dataFlowContext 数据上下文
+     * @return 订单服务能够接受的报文
+     */
+    private JSONObject updateCarInout(JSONObject paramInJson, DataFlowContext dataFlowContext) {
+
+
+        JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
+        business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_CAR_INOUT);
+        business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
+        business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
+        JSONObject businessCarInout = new JSONObject();
+        businessCarInout.putAll(paramInJson);
+        //计算 应收金额
+        business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessCarInout", businessCarInout);
+        return business;
+    }
+
+}

+ 40 - 0
WebService/src/main/java/com/java110/web/components/carInout/CarInoutManageComponent.java

@@ -0,0 +1,40 @@
+package com.java110.web.components.carInout;
+
+
+import com.java110.core.context.IPageData;
+import com.java110.web.smo.carInout.IListCarInoutsSMO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Component;
+
+
+/**
+ * 车辆进场组件管理类
+ *
+ * add by wuxw
+ *
+ * 2019-06-29
+ */
+@Component("carInoutManage")
+public class CarInoutManageComponent {
+
+    @Autowired
+    private IListCarInoutsSMO listCarInoutsSMOImpl;
+
+    /**
+     * 查询车辆进场列表
+     * @param pd 页面数据封装
+     * @return 返回 ResponseEntity 对象
+     */
+    public ResponseEntity<String> list(IPageData pd){
+        return listCarInoutsSMOImpl.listCarInouts(pd);
+    }
+
+    public IListCarInoutsSMO getListCarInoutsSMOImpl() {
+        return listCarInoutsSMOImpl;
+    }
+
+    public void setListCarInoutsSMOImpl(IListCarInoutsSMO listCarInoutsSMOImpl) {
+        this.listCarInoutsSMOImpl = listCarInoutsSMOImpl;
+    }
+}

+ 21 - 0
WebService/src/main/java/com/java110/web/smo/carInout/IListCarInoutsSMO.java

@@ -0,0 +1,21 @@
+package com.java110.web.smo.carInout;
+
+import com.java110.utils.exception.SMOException;
+import com.java110.core.context.IPageData;
+import org.springframework.http.ResponseEntity;
+
+/**
+ * 车辆进场管理服务接口类
+ *
+ * add by wuxw 2019-06-29
+ */
+public interface IListCarInoutsSMO {
+
+    /**
+     * 查询车辆进场信息
+     * @param pd 页面数据封装
+     * @return ResponseEntity 对象数据
+     * @throws SMOException 业务代码层
+     */
+    ResponseEntity<String> listCarInouts(IPageData pd) throws SMOException;
+}

+ 65 - 0
WebService/src/main/java/com/java110/web/smo/carInout/impl/ListCarInoutsSMOImpl.java

@@ -0,0 +1,65 @@
+package com.java110.web.smo.carInout.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.BeanConvertUtil;
+import com.java110.web.smo.carInout.IListCarInoutsSMO;
+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;
+
+/**
+ * 查询carInout服务类
+ */
+@Service("listCarInoutsSMOImpl")
+public class ListCarInoutsSMOImpl extends AbstractComponentSMO implements IListCarInoutsSMO {
+
+    @Autowired
+    private RestTemplate restTemplate;
+
+    @Override
+    public ResponseEntity<String> listCarInouts(IPageData pd) throws SMOException {
+        return businessProcess(pd);
+    }
+
+    @Override
+    protected void validate(IPageData pd, JSONObject paramIn) {
+
+        super.validatePageInfo(pd);
+
+        //super.checkUserHasPrivilege(pd, restTemplate, PrivilegeCodeConstant.AGENT_HAS_LIST_CARINOUT);
+    }
+
+    @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/carInout.listCarInouts" + 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;
+    }
+}

+ 107 - 0
WebService/src/main/resources/components/carInoutPackage/carInout-manage/carInoutManage.html

@@ -0,0 +1,107 @@
+<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;">
+                        <button type="button" class="btn btn-link btn-sm" style="margin-right:10px;"
+                                v-on:click="_moreCondition()">{{carInoutManageInfo.moreCondition == true?'隐藏':'更多'}}
+                        </button>
+                    </div>
+                </div>
+                <div class="ibox-content">
+                    <div class="row">
+                        <div class="col-sm-4">
+                            <select class="custom-select" v-model="carInoutManageInfo.conditions.state">
+                                <option selected value="">请选择车辆状态</option>
+                                <option value="100300">进场状态</option>
+                                <option value="100400">支付完成</option>
+                                <option value="100500">离场状态</option>
+                                <option value="100600">超时重新支付</option>
+                            </select></div>
+                        <div class="col-sm-4">
+                            <div class="form-group">
+                                <input type="text" placeholder="请输入车牌号" v-model="carInoutManageInfo.conditions.carNum"
+                                       class=" form-control">
+                            </div>
+                        </div>
+                        <div class="col-sm-3">
+                            <div class="form-group">
+                                <input type="text" placeholder="请输入进出场ID"
+                                       v-model="carInoutManageInfo.conditions.inoutId" class=" form-control">
+                            </div>
+                        </div>
+                        <div class="col-sm-1">
+                            <button type="button" class="btn btn-primary btn-sm" v-on:click="_queryCarInoutMethod()">
+                                <i class="glyphicon glyphicon-search"></i> 查询
+                            </button>
+                        </div>
+                    </div>
+                    <div class="row">
+                        <div class="col-sm-4" v-if="carInoutManageInfo.moreCondition == true">
+                            <div class="form-group">
+                                <input type="text" placeholder="请输入进场开始时间"
+                                       v-model="carInoutManageInfo.conditions.startTime" class=" form-control">
+                            </div>
+                        </div>
+                        <div class="col-sm-4" v-if="carInoutManageInfo.moreCondition == true">
+                            <div class="form-group">
+                                <input type="text" placeholder="请输入进场结束时间"
+                                       v-model="carInoutManageInfo.conditions.endTime" class=" form-control">
+                            </div>
+                        </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;">
+                    </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>
+                        </tr>
+                        </thead>
+                        <tbody>
+                        <tr v-for="carInout in carInoutManageInfo.carInouts">
+                            <td class="text-center">{{carInout.inoutId}}</td>
+                            <td class="text-center">{{carInout.state}}</td>
+                            <td class="text-center">{{carInout.carNum}}</td>
+                            <td class="text-center">{{carInout.inTime}}</td>
+                            <td class="text-center">{{carInout.outTime}}</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>
+
+
+</div>

+ 88 - 0
WebService/src/main/resources/components/carInoutPackage/carInout-manage/carInoutManage.js

@@ -0,0 +1,88 @@
+/**
+    入驻小区
+**/
+(function(vc){
+    var DEFAULT_PAGE = 1;
+    var DEFAULT_ROWS = 10;
+    vc.extends({
+        data:{
+            carInoutManageInfo:{
+                carInouts:[],
+                total:0,
+                records:1,
+                moreCondition:false,
+                carNum:'',
+                conditions:{
+                    state:'',
+carNum:'',
+inoutId:'',
+startTime:'',
+endTime:'',
+
+                }
+            }
+        },
+        _initMethod:function(){
+            vc.component._listCarInouts(DEFAULT_PAGE, DEFAULT_ROWS);
+        },
+        _initEvent:function(){
+            
+            vc.on('carInoutManage','listCarInout',function(_param){
+                  vc.component._listCarInouts(DEFAULT_PAGE, DEFAULT_ROWS);
+            });
+             vc.on('pagination','page_event',function(_currentPage){
+                vc.component._listCarInouts(_currentPage,DEFAULT_ROWS);
+            });
+        },
+        methods:{
+            _listCarInouts:function(_page, _rows){
+
+                vc.component.carInoutManageInfo.conditions.page = _page;
+                vc.component.carInoutManageInfo.conditions.row = _rows;
+                var param = {
+                    params:vc.component.carInoutManageInfo.conditions
+               };
+
+               //发送get请求
+               vc.http.get('carInoutManage',
+                            'list',
+                             param,
+                             function(json,res){
+                                var _carInoutManageInfo=JSON.parse(json);
+                                vc.component.carInoutManageInfo.total = _carInoutManageInfo.total;
+                                vc.component.carInoutManageInfo.records = _carInoutManageInfo.records;
+                                vc.component.carInoutManageInfo.carInouts = _carInoutManageInfo.carInouts;
+                                vc.emit('pagination','init',{
+                                     total:vc.component.carInoutManageInfo.records,
+                                     currentPage:_page
+                                 });
+                             },function(errInfo,error){
+                                console.log('请求失败处理');
+                             }
+                           );
+            },
+            _openAddCarInoutModal:function(){
+                vc.emit('addCarInout','openAddCarInoutModal',{});
+            },
+            _openEditCarInoutModel:function(_carInout){
+                vc.emit('editCarInout','openEditCarInoutModal',_carInout);
+            },
+            _openDeleteCarInoutModel:function(_carInout){
+                vc.emit('deleteCarInout','openDeleteCarInoutModal',_carInout);
+            },
+            _queryCarInoutMethod:function(){
+                vc.component._listCarInouts(DEFAULT_PAGE, DEFAULT_ROWS);
+
+            },
+            _moreCondition:function(){
+                if(vc.component.carInoutManageInfo.moreCondition){
+                    vc.component.carInoutManageInfo.moreCondition = false;
+                }else{
+                    vc.component.carInoutManageInfo.moreCondition = true;
+                }
+            }
+
+             
+        }
+    });
+})(window.vc);

+ 36 - 0
WebService/src/main/resources/views/carInoutFlow.html

@@ -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="carInoutManage"></vc:create>
+        </div>
+
+        <vc:create name="copyright"></vc:create>
+
+    </div>
+</div>
+
+<vc:create name="commonBottom"></vc:create>
+</body>
+</html>

+ 46 - 0
java110-bean/src/main/java/com/java110/vo/api/carInout/ApiCarInoutDataVo.java

@@ -0,0 +1,46 @@
+package com.java110.vo.api.carInout;
+
+import java.io.Serializable;
+import java.util.Date;
+
+public class ApiCarInoutDataVo implements Serializable {
+
+    private String inoutId;
+private String state;
+private String carNum;
+private String inTime;
+private String outTime;
+public String getInoutId() {
+        return inoutId;
+    }
+public void setInoutId(String inoutId) {
+        this.inoutId = inoutId;
+    }
+public String getState() {
+        return state;
+    }
+public void setState(String state) {
+        this.state = state;
+    }
+public String getCarNum() {
+        return carNum;
+    }
+public void setCarNum(String carNum) {
+        this.carNum = carNum;
+    }
+public String getInTime() {
+        return inTime;
+    }
+public void setInTime(String inTime) {
+        this.inTime = inTime;
+    }
+public String getOutTime() {
+        return outTime;
+    }
+public void setOutTime(String outTime) {
+        this.outTime = outTime;
+    }
+
+
+
+}

+ 19 - 0
java110-bean/src/main/java/com/java110/vo/api/carInout/ApiCarInoutVo.java

@@ -0,0 +1,19 @@
+package com.java110.vo.api.carInout;
+
+import com.java110.vo.MorePageVo;
+
+import java.io.Serializable;
+import java.util.List;
+
+public class ApiCarInoutVo extends MorePageVo implements Serializable {
+    List<ApiCarInoutDataVo> carInouts;
+
+
+    public List<ApiCarInoutDataVo> getCarInouts() {
+        return carInouts;
+    }
+
+    public void setCarInouts(List<ApiCarInoutDataVo> carInouts) {
+        this.carInouts = carInouts;
+    }
+}

+ 31 - 19
java110-code-generator/src/main/resources/web/template_1.json

@@ -1,17 +1,17 @@
 {
-  "templateName":"黑白名单",
-  "templateCode":"carBlackWhite",
-  "templateKey":"bwId",
-  "templateKeyName":"黑白名单ID",
+  "templateName":"车辆进场",
+  "templateCode":"carInout",
+  "templateKey":"inoutId",
+  "templateKeyName":"进出场ID",
   "searchCode": "carNum",
   "searchName": "车牌号",
   "conditions": [
     {
-      "name": "名单类型",
+      "name": "车辆状态",
       "inputType": "select",
-      "selectValue":"1111,2222",
-      "selectValueName":"黑名单,白名单",
-      "code": "blackWhite",
+      "selectValue":"100300,100400,100500,100600",
+      "selectValueName":"进场状态,支付完成,离场状态,超时重新支付",
+      "code": "state",
       "whereCondition": "equal"
     },
     {
@@ -21,17 +21,29 @@
       "whereCondition": "equal"
     },
     {
-      "name": "名单ID",
+      "name": "进出场ID",
+      "inputType": "input",
+      "code": "inoutId",
+      "whereCondition": "equal"
+    },
+    {
+      "name": "进场开始时间",
+      "inputType": "input",
+      "code": "startTime",
+      "whereCondition": "equal"
+    },
+    {
+      "name": "进场结束时间",
       "inputType": "input",
-      "code": "bwId",
+      "code": "endTime",
       "whereCondition": "equal"
     }
   ],
   "columns":[
     {
-      "code":"blackWhite",
-      "cnCode":"名单类型",
-      "desc":"必填,请填写名单类型",
+      "code":"state",
+      "cnCode":"车辆状态",
+      "desc":"必填,请填写车辆状态",
       "required":true,
       "hasDefaultValue":false,
       "inputType":"select",
@@ -55,9 +67,9 @@
       "show": true
     },
     {
-      "code": "startTime",
-      "cnCode":"开始时间",
-      "desc":"必填,请选择开始时间",
+      "code": "inTime",
+      "cnCode":"进场时间",
+      "desc":"必填,请选择进场时间",
       "required":true,
       "hasDefaultValue":false,
       "inputType": "input",
@@ -67,9 +79,9 @@
       "show": true
     },
     {
-      "code": "endTime",
-      "cnCode":"结束时间",
-      "desc":"必填,请选择结束时间",
+      "code": "outTime",
+      "cnCode":"出场时间",
+      "desc":"必填,请选择出场时间",
       "required":true,
       "hasDefaultValue":false,
       "inputType": "input",

+ 82 - 0
java110-code-generator/src/main/resources/web/template_carBlackWhite.json

@@ -0,0 +1,82 @@
+{
+  "templateName":"黑白名单",
+  "templateCode":"carBlackWhite",
+  "templateKey":"bwId",
+  "templateKeyName":"黑白名单ID",
+  "searchCode": "carNum",
+  "searchName": "车牌号",
+  "conditions": [
+    {
+      "name": "名单类型",
+      "inputType": "select",
+      "selectValue":"1111,2222",
+      "selectValueName":"黑名单,白名单",
+      "code": "blackWhite",
+      "whereCondition": "equal"
+    },
+    {
+      "name": "车牌号",
+      "inputType": "input",
+      "code": "carNum",
+      "whereCondition": "equal"
+    },
+    {
+      "name": "名单ID",
+      "inputType": "input",
+      "code": "bwId",
+      "whereCondition": "equal"
+    }
+  ],
+  "columns":[
+    {
+      "code":"blackWhite",
+      "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": "startTime",
+      "cnCode":"开始时间",
+      "desc":"必填,请选择开始时间",
+      "required":true,
+      "hasDefaultValue":false,
+      "inputType": "input",
+      "limit":"dateTime",
+      "limitParam":"",
+      "limitErrInfo":"不是有效的时间格式",
+      "show": true
+    },
+    {
+      "code": "endTime",
+      "cnCode":"结束时间",
+      "desc":"必填,请选择结束时间",
+      "required":true,
+      "hasDefaultValue":false,
+      "inputType": "input",
+      "limit":"dateTime",
+      "limitParam":"",
+      "limitErrInfo":"不是有效的时间格式",
+      "show": true
+    }
+  ]
+}

+ 1 - 1
java110-utils/src/main/java/com/java110/utils/constant/BusinessTypeConstant.java

@@ -330,7 +330,7 @@ public class BusinessTypeConstant {
     public static final String BUSINESS_TYPE_DELETE_PARKING_SPACE = "540100050001";
 
     /**
-     * 增加车位
+     * 添加进场记录
      */
     public static final String BUSINESS_TYPE_SAVE_CAR_INOUT = "541110030001";
 

+ 31 - 0
java110-utils/src/main/java/com/java110/utils/constant/ServiceCodeCarInoutConstant.java

@@ -0,0 +1,31 @@
+package com.java110.utils.constant;
+
+/**
+ * 车辆进场常量类
+ * Created by wuxw on 2017/5/20.
+ */
+public class ServiceCodeCarInoutConstant {
+
+    /**
+     * 添加 车辆进场
+     */
+    public static final String ADD_CARINOUT = "carInout.saveCarInout";
+
+
+    /**
+     * 修改 车辆进场
+     */
+    public static final String UPDATE_CARINOUT = "carInout.updateCarInout";
+//    /**
+//     * 删除 车辆进场
+//     */
+//    public static final String DELETE_CARINOUT = "carInout.deleteCarInout";
+
+
+    /**
+     * 查询 车辆进场
+     */
+    public static final String LIST_CARINOUTS = "carInout.listCarInouts";
+
+
+}