Bladeren bron

设备相关功能处理完成

java110 3 jaren geleden
bovenliggende
commit
c55dba8a81
17 gewijzigde bestanden met toevoegingen van 737 en 1082 verwijderingen
  1. 0 53
      service-api/src/main/java/com/java110/api/listener/machineTranslate/DeleteMachineTranslateListener.java
  2. 0 218
      service-api/src/main/java/com/java110/api/listener/machineTranslate/MachineHeartbeatListener.java
  3. 0 185
      service-api/src/main/java/com/java110/api/listener/machineTranslate/MachineUploadFaceLogListener.java
  4. 0 63
      service-api/src/main/java/com/java110/api/listener/machineTranslate/SaveMachineTranslateListener.java
  5. 0 62
      service-api/src/main/java/com/java110/api/listener/machineTranslate/UpdateMachineTranslateListener.java
  6. 13 14
      service-api/src/main/java/com/java110/api/listener/machineTranslate/BaseMachineListener.java
  7. 37 0
      service-common/src/main/java/com/java110/common/cmd/machineTranslate/DeleteMachineTranslateCmd.java
  8. 12 43
      service-api/src/main/java/com/java110/api/listener/machineTranslate/ListMachineTranslatesListener.java
  9. 25 92
      service-api/src/main/java/com/java110/api/listener/machineTranslate/MachineCmdResultListener.java
  10. 20 56
      service-api/src/main/java/com/java110/api/listener/machineTranslate/MachineGetFreeParkingSpaceListener.java
  11. 14 86
      service-api/src/main/java/com/java110/api/listener/machineTranslate/MachineGetTaskInfoListener.java
  12. 98 0
      service-common/src/main/java/com/java110/common/cmd/machineTranslate/MachineHeartbeatCmd.java
  13. 52 125
      service-api/src/main/java/com/java110/api/listener/machineTranslate/MachineQueryUserInfoListener.java
  14. 177 85
      service-api/src/main/java/com/java110/api/listener/machineTranslate/MachineRoadGateOpenListener.java
  15. 193 0
      service-common/src/main/java/com/java110/common/cmd/machineTranslate/MachineUploadFaceLogCmd.java
  16. 48 0
      service-common/src/main/java/com/java110/common/cmd/machineTranslate/SaveMachineTranslateCmd.java
  17. 48 0
      service-common/src/main/java/com/java110/common/cmd/machineTranslate/UpdateMachineTranslateCmd.java

+ 0 - 53
service-api/src/main/java/com/java110/api/listener/machineTranslate/DeleteMachineTranslateListener.java

@@ -1,53 +0,0 @@
-package com.java110.api.listener.machineTranslate;
-
-import com.alibaba.fastjson.JSONObject;
-import com.java110.api.bmo.machineTranslate.IMachineTranslateBMO;
-import com.java110.api.listener.AbstractServiceApiPlusListener;
-import com.java110.core.annotation.Java110Listener;
-import com.java110.core.context.DataFlowContext;
-import com.java110.core.event.service.api.ServiceDataFlowEvent;
-import com.java110.utils.constant.ServiceCodeMachineTranslateConstant;
-import com.java110.utils.util.Assert;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpMethod;
-
-/**
- * 保存小区侦听
- * add by wuxw 2019-06-30
- */
-@Java110Listener("deleteMachineTranslateListener")
-public class DeleteMachineTranslateListener extends AbstractServiceApiPlusListener {
-
-    @Autowired
-    private IMachineTranslateBMO machineTranslateBMOImpl;
-
-    @Override
-    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
-        //Assert.hasKeyAndValue(reqJson, "xxx", "xxx");
-
-        Assert.hasKeyAndValue(reqJson, "machineTranslateId", "同步ID不能为空");
-
-    }
-
-    @Override
-    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
-
-        machineTranslateBMOImpl.deleteMachineTranslate(reqJson, context);
-    }
-
-    @Override
-    public String getServiceCode() {
-        return ServiceCodeMachineTranslateConstant.DELETE_MACHINETRANSLATE;
-    }
-
-    @Override
-    public HttpMethod getHttpMethod() {
-        return HttpMethod.POST;
-    }
-
-    @Override
-    public int getOrder() {
-        return DEFAULT_ORDER;
-    }
-
-}

+ 0 - 218
service-api/src/main/java/com/java110/api/listener/machineTranslate/MachineHeartbeatListener.java

@@ -1,218 +0,0 @@
-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.intf.community.ICommunityInnerServiceSMO;
-import com.java110.intf.common.IFileInnerServiceSMO;
-import com.java110.intf.common.IFileRelInnerServiceSMO;
-import com.java110.intf.common.IMachineInnerServiceSMO;
-import com.java110.intf.common.IMachineTranslateInnerServiceSMO;
-import com.java110.intf.user.IOwnerInnerServiceSMO;
-import com.java110.core.event.service.api.ServiceDataFlowEvent;
-import com.java110.core.event.service.api.ServiceDataFlowEventPublishing;
-import com.java110.core.event.service.api.ServiceDataFlowListener;
-import com.java110.utils.constant.CommonConstant;
-import com.java110.utils.constant.ServiceCodeMachineTranslateConstant;
-import com.java110.utils.util.Assert;
-import com.java110.utils.util.StringUtil;
-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.text.ParseException;
-import java.util.List;
-import java.util.Map;
-
-/**
- * 调用地址
- * http://api.demo.winqi.cn/api/machineTranslate.machineHeartbeart?app_id=992019111002270001&communityId=7020181217000001&transaction_id=-1&req_time=20181113225612&user_id=-1
- * 硬件心跳检测类
- */
-@Java110Listener("machineHeartbeatListener")
-public class MachineHeartbeatListener extends BaseMachineListener {
-
-    @Autowired
-    private IMachineTranslateInnerServiceSMO machineTranslateInnerServiceSMOImpl;
-
-    @Autowired
-    private IMachineInnerServiceSMO machineInnerServiceSMOImpl;
-
-    @Autowired
-    private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
-
-    @Autowired
-    private ICommunityInnerServiceSMO communityInnerServiceSMOImpl;
-
-    @Autowired
-    private IFileRelInnerServiceSMO fileRelInnerServiceSMOImpl;
-
-    @Autowired
-    private IFileInnerServiceSMO fileInnerServiceSMOImpl;
-
-    /**
-     * {
-     * "machineCode":"test-MachineCode",
-     * "devGroup":"default",
-     * "name":"dev1",
-     * "authCode":"ab2324f12ca2312b213133bfac",
-     * "ip":"192.168.100.33",
-     * "mac":"00:00:00:00","remarks":"test",
-     * "faceNum":0,
-     * "lastOnTime":15328329,
-     * "statCode":1,
-     * "deviceType":1,
-     * "versionCode":114
-     * }
-     *
-     * @param event   事件对象
-     * @param reqJson 请求报文数据
-     */
-    @Override
-    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
-       /* Assert.hasKeyAndValue(reqJson, "machineCode", "请求报文中未包含设备编码");
-        //Assert.hasKeyAndValue(reqJson, "communityId", "请求报文中未包含小区信息");
-        Assert.hasKeyAndValue(reqJson, "authCode", "请求报文中未包含设备鉴权码");*/
-        DataFlowContext context = event.getDataFlowContext();
-        Map<String, String> reqHeader = context.getRequestHeaders();
-
-        //设备通用校验
-        //super.validateMachineHeader(event, reqJson);
-
-        if (StringUtil.isEmpty(reqHeader.get("command"))) {
-            reqHeader.put("command", "gettask");
-        }
-
-    }
-
-    @Override
-    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) throws ParseException {
-
-        Map<String, String> reqHeader = context.getRequestHeaders();
-
-        String command = reqHeader.get("command");
-        String serviceCode = "";
-        //校验报文格式信息, 不做判断 让下游判断
-        /*if (!validateMachineBody(event, context, reqJson, machineInnerServiceSMOImpl)) {
-            return;
-        }*/
-        //获取任务
-        if ("gettask".equals(command)) {
-            serviceCode = ServiceCodeMachineTranslateConstant.MACHINE_GET_TASK_INFO;
-        } else if ("getface".equals(command)) {
-            serviceCode = ServiceCodeMachineTranslateConstant.MACHINE_QUERY_USER_INFO;
-        } else if ("record".equals(command)) {
-            serviceCode = ServiceCodeMachineTranslateConstant.MACHINE_UPLOAD_FACE_LOG;
-        } else if ("report".equals(command)) {
-            //this.report(event, context, reqJson, reqHeader, headers);
-            // return;
-            serviceCode = ServiceCodeMachineTranslateConstant.MACHINE_CMD_RESULT;
-        } else {
-            JSONObject outParam = new JSONObject();
-            outParam.put("code", -1);
-            outParam.put("message", "当前不支持该命令" + command);
-            ResponseEntity<String> responseEntity = new ResponseEntity<>(outParam.toJSONString(), HttpStatus.OK);
-            context.setResponseEntity(responseEntity);
-            return;
-        }
-        //获取下游侦听处理类
-        List<ServiceDataFlowListener> listeners = ServiceDataFlowEventPublishing.getListeners(serviceCode, CommonConstant.HTTP_METHOD_POST);
-        Assert.listOnlyOne(listeners, "存在多个侦听来处理门禁对接,是不允许的");
-
-        //调用相应侦听来处理业务逻辑
-        ServiceDataFlowListener listener = listeners.get(0);
-        listener.soService(event);
-
-
-    }
-
-    /**
-     * 执行结果上报
-     *
-     * @param event
-     * @param context
-     * @param reqJson
-     * @param reqHeader
-     * @param headers
-     */
-    private void report(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson, Map<String, String> reqHeader, HttpHeaders headers) {
-        JSONObject outParam = null;
-        ResponseEntity<String> responseEntity = null;
-
-        outParam = new JSONObject();
-        outParam.put("code", 0);
-        outParam.put("message", "success");
-        JSONArray data = null;
-        String communityId = reqJson.containsKey("communityId") ? reqJson.getString("communityId") : reqHeader.get("communityId");
-        outParam.put("data", data);
-
-        responseEntity = new ResponseEntity<>(outParam.toJSONString(), headers, HttpStatus.OK);
-        context.setResponseEntity(responseEntity);
-    }
-
-    @Override
-    public String getServiceCode() {
-        return ServiceCodeMachineTranslateConstant.MACHINE_HEARTBEAT;
-    }
-
-    @Override
-    public HttpMethod getHttpMethod() {
-        return HttpMethod.POST;
-    }
-
-    @Override
-    public int getOrder() {
-        return 0;
-    }
-
-    public IMachineTranslateInnerServiceSMO getMachineTranslateInnerServiceSMOImpl() {
-        return machineTranslateInnerServiceSMOImpl;
-    }
-
-    public void setMachineTranslateInnerServiceSMOImpl(IMachineTranslateInnerServiceSMO machineTranslateInnerServiceSMOImpl) {
-        this.machineTranslateInnerServiceSMOImpl = machineTranslateInnerServiceSMOImpl;
-    }
-
-    public IMachineInnerServiceSMO getMachineInnerServiceSMOImpl() {
-        return machineInnerServiceSMOImpl;
-    }
-
-    public void setMachineInnerServiceSMOImpl(IMachineInnerServiceSMO machineInnerServiceSMOImpl) {
-        this.machineInnerServiceSMOImpl = machineInnerServiceSMOImpl;
-    }
-
-    public IOwnerInnerServiceSMO getOwnerInnerServiceSMOImpl() {
-        return ownerInnerServiceSMOImpl;
-    }
-
-    public void setOwnerInnerServiceSMOImpl(IOwnerInnerServiceSMO ownerInnerServiceSMOImpl) {
-        this.ownerInnerServiceSMOImpl = ownerInnerServiceSMOImpl;
-    }
-
-    public ICommunityInnerServiceSMO getCommunityInnerServiceSMOImpl() {
-        return communityInnerServiceSMOImpl;
-    }
-
-    public void setCommunityInnerServiceSMOImpl(ICommunityInnerServiceSMO communityInnerServiceSMOImpl) {
-        this.communityInnerServiceSMOImpl = communityInnerServiceSMOImpl;
-    }
-
-    public IFileRelInnerServiceSMO getFileRelInnerServiceSMOImpl() {
-        return fileRelInnerServiceSMOImpl;
-    }
-
-    public void setFileRelInnerServiceSMOImpl(IFileRelInnerServiceSMO fileRelInnerServiceSMOImpl) {
-        this.fileRelInnerServiceSMOImpl = fileRelInnerServiceSMOImpl;
-    }
-
-    public IFileInnerServiceSMO getFileInnerServiceSMOImpl() {
-        return fileInnerServiceSMOImpl;
-    }
-
-    public void setFileInnerServiceSMOImpl(IFileInnerServiceSMO fileInnerServiceSMOImpl) {
-        this.fileInnerServiceSMOImpl = fileInnerServiceSMOImpl;
-    }
-}

+ 0 - 185
service-api/src/main/java/com/java110/api/listener/machineTranslate/MachineUploadFaceLogListener.java

@@ -1,185 +0,0 @@
-package com.java110.api.listener.machineTranslate;
-
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-import com.java110.api.bmo.machineTranslate.IMachineTranslateBMO;
-import com.java110.core.annotation.Java110Listener;
-import com.java110.core.context.DataFlowContext;
-import com.java110.core.factory.GenerateCodeFactory;
-import com.java110.intf.community.ICommunityInnerServiceSMO;
-import com.java110.intf.common.IFileInnerServiceSMO;
-import com.java110.intf.common.IFileRelInnerServiceSMO;
-import com.java110.intf.common.IApplicationKeyInnerServiceSMO;
-import com.java110.intf.common.IMachineInnerServiceSMO;
-import com.java110.intf.common.IMachineTranslateInnerServiceSMO;
-import com.java110.intf.user.IOwnerInnerServiceSMO;
-import com.java110.core.event.service.api.ServiceDataFlowEvent;
-import com.java110.utils.constant.ResponseConstant;
-import com.java110.utils.constant.ServiceCodeMachineTranslateConstant;
-import com.java110.utils.exception.ListenerExecuteException;
-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.HttpStatus;
-import org.springframework.http.ResponseEntity;
-
-import java.util.Map;
-
-/**
- * 调用地址
- * http://api.demo.winqi.cn/api/machineTranslate.machineUploadFaceLog?app_id=992019111002270001&communityId=7020181217000001&transaction_id=-1&req_time=20181113225612&user_id=-1
- * 硬件获取用户信息
- */
-@Java110Listener("machineUploadFaceLogListener")
-public class MachineUploadFaceLogListener extends BaseMachineListener {
-
-    @Autowired
-    private IMachineTranslateInnerServiceSMO machineTranslateInnerServiceSMOImpl;
-
-    @Autowired
-    private IMachineTranslateBMO machineTranslateBMOImpl;
-
-    @Autowired
-    private IMachineInnerServiceSMO machineInnerServiceSMOImpl;
-
-    @Autowired
-    private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
-
-    @Autowired
-    private ICommunityInnerServiceSMO communityInnerServiceSMOImpl;
-
-    @Autowired
-    private IFileRelInnerServiceSMO fileRelInnerServiceSMOImpl;
-
-    @Autowired
-    private IFileInnerServiceSMO fileInnerServiceSMOImpl;
-
-    @Autowired
-    private IApplicationKeyInnerServiceSMO applicationKeyInnerServiceSMOImpl;
-
-    /**
-     * @param event   事件对象
-     * @param reqJson 请求报文数据
-     */
-    @Override
-    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
-        // Assert.hasKeyAndValue(reqJson, "faceid", "请求报文中未包含用户ID");
-        super.validateMachineHeader(event, reqJson);
-        Assert.hasKeyAndValue(reqJson, "machineCode", "必填,请填写设备编码");
-        if (reqJson.containsKey("userID")) {
-            Assert.hasKeyAndValue(reqJson, "userID", "必填,请填写用户信息"); // 为了兼容锐目
-        } else {
-            Assert.hasKeyAndValue(reqJson, "userId", "必填,请填写用户信息");
-        }
-        // Assert.hasKeyAndValue(reqJson, "openTypeCd", "必填,请选择开门方式");
-        Assert.hasKeyAndValue(reqJson, "photo", "必填,请填写用户照片信息");
-        //Assert.hasKeyAndValue(reqJson, "idCard", "必填,请填写身份证");
-    }
-
-    @Override
-    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
-        ResponseEntity<String> responseEntity = null;
-        JSONObject outParam = null;
-
-        try {
-            Map<String, String> reqHeader = context.getRequestHeaders();
-            //判断是否是心跳类过来的
-            if (!super.validateMachineBody(event, context, reqJson, machineInnerServiceSMOImpl)) {
-                return;
-            }
-            outParam = new JSONObject();
-            outParam.put("code", 0);
-            outParam.put("message", "success");
-            JSONArray data = null;
-            reqJson.put("communityId", reqJson.containsKey("communityId") ? reqJson.getString("communityId") : reqHeader.get("communityId"));
-            HttpHeaders httpHeaders = super.getHeader(context);
-
-            reqJson.put("fileId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_file_id));
-
-            //添加单元信息
-            machineTranslateBMOImpl.addMachineRecord(reqJson, context);
-            //保存文件信息
-            machineTranslateBMOImpl.savePhoto(reqJson, context);
-            commit(context);
-            responseEntity = context.getResponseEntity();
-            if (responseEntity.getStatusCode() != HttpStatus.OK) {
-                throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_ERROR, "上报记录失败" + responseEntity);
-            }
-            outParam = new JSONObject();
-            outParam.put("code", 0);
-            outParam.put("message", "success");
-            outParam.put("data", data);
-            responseEntity = new ResponseEntity<>(outParam.toJSONString(), httpHeaders, HttpStatus.OK);
-            context.setResponseEntity(responseEntity);
-        } catch (Exception e) {
-            outParam.put("code", -1);
-            outParam.put("message", e.getMessage());
-            responseEntity = new ResponseEntity<>(outParam.toJSONString(), HttpStatus.OK);
-            context.setResponseEntity(responseEntity);
-        }
-    }
-
-    @Override
-    public String getServiceCode() {
-        return ServiceCodeMachineTranslateConstant.MACHINE_UPLOAD_FACE_LOG;
-    }
-
-    @Override
-    public HttpMethod getHttpMethod() {
-        return HttpMethod.POST;
-    }
-
-    @Override
-    public int getOrder() {
-        return 0;
-    }
-
-    public IMachineTranslateInnerServiceSMO getMachineTranslateInnerServiceSMOImpl() {
-        return machineTranslateInnerServiceSMOImpl;
-    }
-
-    public void setMachineTranslateInnerServiceSMOImpl(IMachineTranslateInnerServiceSMO machineTranslateInnerServiceSMOImpl) {
-        this.machineTranslateInnerServiceSMOImpl = machineTranslateInnerServiceSMOImpl;
-    }
-
-    public IMachineInnerServiceSMO getMachineInnerServiceSMOImpl() {
-        return machineInnerServiceSMOImpl;
-    }
-
-    public void setMachineInnerServiceSMOImpl(IMachineInnerServiceSMO machineInnerServiceSMOImpl) {
-        this.machineInnerServiceSMOImpl = machineInnerServiceSMOImpl;
-    }
-
-    public IOwnerInnerServiceSMO getOwnerInnerServiceSMOImpl() {
-        return ownerInnerServiceSMOImpl;
-    }
-
-    public void setOwnerInnerServiceSMOImpl(IOwnerInnerServiceSMO ownerInnerServiceSMOImpl) {
-        this.ownerInnerServiceSMOImpl = ownerInnerServiceSMOImpl;
-    }
-
-    public ICommunityInnerServiceSMO getCommunityInnerServiceSMOImpl() {
-        return communityInnerServiceSMOImpl;
-    }
-
-    public void setCommunityInnerServiceSMOImpl(ICommunityInnerServiceSMO communityInnerServiceSMOImpl) {
-        this.communityInnerServiceSMOImpl = communityInnerServiceSMOImpl;
-    }
-
-    public IFileRelInnerServiceSMO getFileRelInnerServiceSMOImpl() {
-        return fileRelInnerServiceSMOImpl;
-    }
-
-    public void setFileRelInnerServiceSMOImpl(IFileRelInnerServiceSMO fileRelInnerServiceSMOImpl) {
-        this.fileRelInnerServiceSMOImpl = fileRelInnerServiceSMOImpl;
-    }
-
-    public IFileInnerServiceSMO getFileInnerServiceSMOImpl() {
-        return fileInnerServiceSMOImpl;
-    }
-
-    public void setFileInnerServiceSMOImpl(IFileInnerServiceSMO fileInnerServiceSMOImpl) {
-        this.fileInnerServiceSMOImpl = fileInnerServiceSMOImpl;
-    }
-}

+ 0 - 63
service-api/src/main/java/com/java110/api/listener/machineTranslate/SaveMachineTranslateListener.java

@@ -1,63 +0,0 @@
-package com.java110.api.listener.machineTranslate;
-
-import com.alibaba.fastjson.JSONObject;
-import com.java110.api.bmo.machineTranslate.IMachineTranslateBMO;
-import com.java110.api.listener.AbstractServiceApiPlusListener;
-import com.java110.utils.util.Assert;
-import com.java110.core.context.DataFlowContext;
-import com.java110.core.event.service.api.ServiceDataFlowEvent;
-import com.java110.utils.constant.ServiceCodeMachineTranslateConstant;
-
-
-import com.java110.core.annotation.Java110Listener;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpMethod;
-
-/**
- * 保存小区侦听
- * add by wuxw 2019-06-30
- */
-@Java110Listener("saveMachineTranslateListener")
-public class SaveMachineTranslateListener extends AbstractServiceApiPlusListener {
-
-    @Autowired
-    private IMachineTranslateBMO machineTranslateBMOImpl;
-    @Override
-    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
-        //Assert.hasKeyAndValue(reqJson, "xxx", "xxx");
-
-        Assert.hasKeyAndValue(reqJson, "machineCode", "必填,请填写设备编码");
-        Assert.hasKeyAndValue(reqJson, "machineId", "必填,请填写设备版本号");
-        Assert.hasKeyAndValue(reqJson, "typeCd", "必填,请选择对象类型");
-        Assert.hasKeyAndValue(reqJson, "objName", "必填,请填写设备名称");
-        Assert.hasKeyAndValue(reqJson, "objId", "必填,请填写对象Id");
-        Assert.hasKeyAndValue(reqJson, "state", "必填,请选择状态");
-
-    }
-
-    @Override
-    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
-
-
-
-        //添加单元信息
-        machineTranslateBMOImpl.addMachineTranslate(reqJson, context);
-
-
-    }
-
-    @Override
-    public String getServiceCode() {
-        return ServiceCodeMachineTranslateConstant.ADD_MACHINETRANSLATE;
-    }
-
-    @Override
-    public HttpMethod getHttpMethod() {
-        return HttpMethod.POST;
-    }
-
-    @Override
-    public int getOrder() {
-        return DEFAULT_ORDER;
-    }
-}

+ 0 - 62
service-api/src/main/java/com/java110/api/listener/machineTranslate/UpdateMachineTranslateListener.java

@@ -1,62 +0,0 @@
-package com.java110.api.listener.machineTranslate;
-
-import com.alibaba.fastjson.JSONObject;
-import com.java110.api.bmo.machineTranslate.IMachineTranslateBMO;
-import com.java110.api.listener.AbstractServiceApiPlusListener;
-import com.java110.core.annotation.Java110Listener;
-import com.java110.core.context.DataFlowContext;
-import com.java110.core.event.service.api.ServiceDataFlowEvent;
-import com.java110.utils.constant.ServiceCodeMachineTranslateConstant;
-import com.java110.utils.util.Assert;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpMethod;
-
-/**
- * 保存设备同步侦听
- * add by wuxw 2019-06-30
- */
-@Java110Listener("updateMachineTranslateListener")
-public class UpdateMachineTranslateListener extends AbstractServiceApiPlusListener {
-
-    @Autowired
-    private IMachineTranslateBMO machineTranslateBMOImpl;
-    @Override
-    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
-
-        Assert.hasKeyAndValue(reqJson, "machineTranslateId", "同步ID不能为空");
-        Assert.hasKeyAndValue(reqJson, "machineCode", "必填,请填写设备编码");
-        Assert.hasKeyAndValue(reqJson, "machineId", "必填,请填写设备版本号");
-        Assert.hasKeyAndValue(reqJson, "typeCd", "必填,请选择对象类型");
-        Assert.hasKeyAndValue(reqJson, "objName", "必填,请填写设备名称");
-        Assert.hasKeyAndValue(reqJson, "objId", "必填,请填写对象Id");
-        Assert.hasKeyAndValue(reqJson, "state", "必填,请选择状态");
-
-    }
-
-    @Override
-    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
-
-
-
-        //添加单元信息
-        machineTranslateBMOImpl.updateMachineTranslate(reqJson, context);
-
-
-    }
-
-    @Override
-    public String getServiceCode() {
-        return ServiceCodeMachineTranslateConstant.UPDATE_MACHINETRANSLATE;
-    }
-
-    @Override
-    public HttpMethod getHttpMethod() {
-        return HttpMethod.POST;
-    }
-
-    @Override
-    public int getOrder() {
-        return DEFAULT_ORDER;
-    }
-
-}

+ 13 - 14
service-api/src/main/java/com/java110/api/listener/machineTranslate/BaseMachineListener.java

@@ -1,12 +1,14 @@
-package com.java110.api.listener.machineTranslate;
+package com.java110.common.cmd.machineTranslate;
 
 import com.alibaba.fastjson.JSONObject;
 import com.aliyuncs.utils.StringUtils;
-import com.java110.api.listener.AbstractServiceApiPlusListener;
 import com.java110.core.context.DataFlowContext;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
 import com.java110.core.event.service.api.ServiceDataFlowEvent;
-import com.java110.intf.common.IMachineInnerServiceSMO;
 import com.java110.dto.machine.MachineDto;
+import com.java110.intf.common.IMachineInnerServiceSMO;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.StringUtil;
 import com.java110.vo.ResultVo;
@@ -17,10 +19,7 @@ import org.springframework.http.ResponseEntity;
 import java.util.List;
 import java.util.Map;
 
-/**
- * 设备侦听 父类
- */
-public abstract class BaseMachineListener extends AbstractServiceApiPlusListener {
+public abstract class BaseMachineCmd extends Cmd {
 
     /**
      * 校验头部信息
@@ -28,9 +27,9 @@ public abstract class BaseMachineListener extends AbstractServiceApiPlusListener
      * @param event
      * @param reqJson
      */
-    protected void validateMachineHeader(ServiceDataFlowEvent event, JSONObject reqJson) {
-        DataFlowContext context = event.getDataFlowContext();
-        Map<String, String> reqHeader = context.getRequestHeaders();
+    protected void validateMachineHeader(CmdEvent event, JSONObject reqJson) {
+        ICmdDataFlowContext context = event.getCmdDataFlowContext();
+        Map<String, String> reqHeader = context.getReqHeaders();
         Assert.hasKeyAndValue(reqHeader, "machinecode", "请求报文中未包含设备编码");
 //        Assert.hasKeyAndValue(reqHeader, "communityId", "请求报文中未包含小区信息");
     }
@@ -42,12 +41,12 @@ public abstract class BaseMachineListener extends AbstractServiceApiPlusListener
      * @param context
      * @param reqJson
      */
-    protected boolean validateMachineBody(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson,
+    protected boolean validateMachineBody(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson,
                                           IMachineInnerServiceSMO machineInnerServiceSMOImpl) {
 
         ResponseEntity<String> responseEntity = null;
         ResultVo resultVo = null;
-        Map<String, String> reqHeader = context.getRequestHeaders();
+        Map<String, String> reqHeader = context.getReqHeaders();
         HttpHeaders headers = new HttpHeaders();
         String communityId = reqJson.containsKey("communityId") ? reqJson.getString("communityId") : reqHeader.get("communityId");
         if (StringUtil.isEmpty(communityId)) {
@@ -101,8 +100,8 @@ public abstract class BaseMachineListener extends AbstractServiceApiPlusListener
         return true;
     }
 
-    protected HttpHeaders getHeader(DataFlowContext context) {
-        Map<String, String> reqHeader = context.getRequestHeaders();
+    protected HttpHeaders getHeader(ICmdDataFlowContext context) {
+        Map<String, String> reqHeader = context.getReqHeaders();
 
         HttpHeaders headers = new HttpHeaders();
 

+ 37 - 0
service-common/src/main/java/com/java110/common/cmd/machineTranslate/DeleteMachineTranslateCmd.java

@@ -0,0 +1,37 @@
+package com.java110.common.cmd.machineTranslate;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.intf.common.IMachineTranslateV1InnerServiceSMO;
+import com.java110.po.machine.MachineTranslatePo;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.text.ParseException;
+
+@Java110Cmd(serviceCode = "machineTranslate.deleteMachineTranslate")
+public class DeleteMachineTranslateCmd extends Cmd {
+
+    @Autowired
+    private IMachineTranslateV1InnerServiceSMO machineTranslateV1InnerServiceSMOImpl;
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
+        Assert.hasKeyAndValue(reqJson, "machineTranslateId", "同步ID不能为空");
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+        MachineTranslatePo machineTranslatePo = BeanConvertUtil.covertBean(reqJson, MachineTranslatePo.class);
+
+        int flag = machineTranslateV1InnerServiceSMOImpl.deleteMachineTranslate(machineTranslatePo);
+
+        if(flag <1){
+            throw new CmdException("删除失败");
+        }
+    }
+}

+ 12 - 43
service-api/src/main/java/com/java110/api/listener/machineTranslate/ListMachineTranslatesListener.java

@@ -1,70 +1,40 @@
-package com.java110.api.listener.machineTranslate;
+package com.java110.common.cmd.machineTranslate;
 
 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.intf.common.IMachineTranslateInnerServiceSMO;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
 import com.java110.dto.machine.MachineTranslateDto;
-import com.java110.core.event.service.api.ServiceDataFlowEvent;
-import com.java110.utils.constant.ServiceCodeMachineTranslateConstant;
+import com.java110.intf.common.IMachineTranslateInnerServiceSMO;
+import com.java110.utils.exception.CmdException;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
 import com.java110.vo.api.machineTranslate.ApiMachineTranslateDataVo;
 import com.java110.vo.api.machineTranslate.ApiMachineTranslateVo;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpMethod;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 
+import java.text.ParseException;
 import java.util.ArrayList;
 import java.util.List;
 
-
-/**
- * 查询小区侦听类
- */
-@Java110Listener("listMachineTranslatesListener")
-public class ListMachineTranslatesListener extends AbstractServiceApiListener {
+@Java110Cmd(serviceCode = "machineTranslate.listMachineTranslates")
+public class ListMachineTranslatesCmd extends Cmd {
 
     @Autowired
     private IMachineTranslateInnerServiceSMO machineTranslateInnerServiceSMOImpl;
 
-    @Override
-    public String getServiceCode() {
-        return ServiceCodeMachineTranslateConstant.LIST_MACHINETRANSLATES;
-    }
-
-    @Override
-    public HttpMethod getHttpMethod() {
-        return HttpMethod.GET;
-    }
-
-
-    @Override
-    public int getOrder() {
-        return DEFAULT_ORDER;
-    }
-
-
-    public IMachineTranslateInnerServiceSMO getMachineTranslateInnerServiceSMOImpl() {
-        return machineTranslateInnerServiceSMOImpl;
-    }
-
-    public void setMachineTranslateInnerServiceSMOImpl(IMachineTranslateInnerServiceSMO machineTranslateInnerServiceSMOImpl) {
-        this.machineTranslateInnerServiceSMOImpl = machineTranslateInnerServiceSMOImpl;
-    }
 
     @Override
-    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
         super.validatePageInfo(reqJson);
         Assert.jsonObjectHaveKey(reqJson,"communityId","请求报文中未包含小区信息");
-
     }
 
     @Override
-    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
-
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
         MachineTranslateDto machineTranslateDto = BeanConvertUtil.covertBean(reqJson, MachineTranslateDto.class);
 
         int count = machineTranslateInnerServiceSMOImpl.queryMachineTranslatesCount(machineTranslateDto);
@@ -86,6 +56,5 @@ public class ListMachineTranslatesListener extends AbstractServiceApiListener {
         ResponseEntity<String> responseEntity = new ResponseEntity<String>(JSONObject.toJSONString(apiMachineTranslateVo), HttpStatus.OK);
 
         context.setResponseEntity(responseEntity);
-
     }
 }

+ 25 - 92
service-api/src/main/java/com/java110/api/listener/machineTranslate/MachineCmdResultListener.java

@@ -1,43 +1,44 @@
-package com.java110.api.listener.machineTranslate;
+package com.java110.common.cmd.machineTranslate;
 
 import com.alibaba.fastjson.JSONObject;
 import com.aliyuncs.utils.StringUtils;
-import com.java110.api.listener.AbstractServiceApiListener;
-import com.java110.core.annotation.Java110Listener;
-import com.java110.core.context.DataFlowContext;
-import com.java110.core.event.service.api.ServiceDataFlowEvent;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.core.log.LoggerFactory;
+import com.java110.dto.machine.MachineDto;
+import com.java110.dto.machine.MachineTranslateDto;
 import com.java110.intf.common.IFileInnerServiceSMO;
 import com.java110.intf.common.IFileRelInnerServiceSMO;
 import com.java110.intf.common.IMachineInnerServiceSMO;
 import com.java110.intf.common.IMachineTranslateInnerServiceSMO;
 import com.java110.intf.community.ICommunityInnerServiceSMO;
 import com.java110.intf.user.IOwnerInnerServiceSMO;
-import com.java110.dto.machine.MachineDto;
-import com.java110.dto.machine.MachineTranslateDto;
-import com.java110.utils.constant.ServiceCodeMachineTranslateConstant;
+import com.java110.utils.exception.CmdException;
 import com.java110.utils.kafka.KafkaFactory;
 import com.java110.utils.util.StringUtil;
 import com.java110.vo.ResultVo;
 import org.slf4j.Logger;
-import com.java110.core.log.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.text.ParseException;
 import java.util.Map;
 
-/**
- * 调用地址
- * http://api.demo.winqi.cn/api/machineTranslate.machineCmdResult?app_id=992019111002270001&communityId=7020181217000001&transaction_id=-1&req_time=20181113225612&user_id=-1
- * 硬件执行结果上报
- */
-@Java110Listener("machineCmdResultListener")
-public class MachineCmdResultListener extends AbstractServiceApiListener {
-    private final static Logger logger = LoggerFactory.getLogger(MachineCmdResultListener.class);
+@Java110Cmd(serviceCode = "machineTranslate.machineCmdResult")
+public class MachineCmdResultCmd extends Cmd {
+    private final static Logger logger = LoggerFactory.getLogger(MachineCmdResultCmd.class);
+
 
     public static final String FRONT_KAFKA_TOPIC = "webSentMessageTopic";
+    public static final String STATE_NO_TRANSLATE = "10000";//待同步
+    public static final String STATE_TRANSLATEED = "20000";//同步完成
+    public static final String STATE_TRANSLATEING = "30000";//同步中
+    public static final String STATE_CMD_SUCCESS = "40000";//命令执行成功
+    public static final String STATE_CMD_ERROR = "50000";//命令执行失败
 
     @Autowired
     private IMachineTranslateInnerServiceSMO machineTranslateInnerServiceSMOImpl;
@@ -57,22 +58,17 @@ public class MachineCmdResultListener extends AbstractServiceApiListener {
     @Autowired
     private IFileInnerServiceSMO fileInnerServiceSMOImpl;
 
-    /**
-     * @param event   事件对象
-     * @param reqJson 请求报文数据
-     */
     @Override
-    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
-        // Assert.hasKeyAndValue(reqJson, "faceid", "请求报文中未包含用户ID");
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
+
     }
 
     @Override
-    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
-
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
         ResponseEntity<String> responseEntity = null;
         ResultVo resultVo = null;
 
-        Map<String, String> reqHeader = context.getRequestHeaders();
+        Map<String, String> reqHeader = context.getReqHeaders();
 
         HttpHeaders headers = new HttpHeaders();
         String communityId = reqJson.containsKey("communityId") ? reqJson.getString("communityId") : reqHeader.get("communityId");
@@ -125,11 +121,11 @@ public class MachineCmdResultListener extends AbstractServiceApiListener {
         tmpMtDto.setCommunityId(communityId);
         ResultVo frontResultVo = null;
         if (ResultVo.CODE_MACHINE_OK != code) {
-            tmpMtDto.setState(MachineGetTaskInfoListener.STATE_CMD_ERROR);
+            tmpMtDto.setState(STATE_CMD_ERROR);
             tmpMtDto.setRemark(reqJson.getString("msg"));
             frontResultVo = new ResultVo(ResultVo.CODE_ERROR, reqJson.getString("msg"));
         } else {
-            tmpMtDto.setState(MachineGetTaskInfoListener.STATE_CMD_SUCCESS);
+            tmpMtDto.setState(STATE_CMD_SUCCESS);
             frontResultVo = new ResultVo(ResultVo.CODE_OK, reqJson.getString("msg"));
 
         }
@@ -144,67 +140,4 @@ public class MachineCmdResultListener extends AbstractServiceApiListener {
         responseEntity = new ResponseEntity<>(resultVo.toString(), headers, HttpStatus.OK);
         context.setResponseEntity(responseEntity);
     }
-
-    @Override
-    public String getServiceCode() {
-        return ServiceCodeMachineTranslateConstant.MACHINE_CMD_RESULT;
-    }
-
-    @Override
-    public HttpMethod getHttpMethod() {
-        return HttpMethod.POST;
-    }
-
-    @Override
-    public int getOrder() {
-        return 0;
-    }
-
-    public IMachineTranslateInnerServiceSMO getMachineTranslateInnerServiceSMOImpl() {
-        return machineTranslateInnerServiceSMOImpl;
-    }
-
-    public void setMachineTranslateInnerServiceSMOImpl(IMachineTranslateInnerServiceSMO machineTranslateInnerServiceSMOImpl) {
-        this.machineTranslateInnerServiceSMOImpl = machineTranslateInnerServiceSMOImpl;
-    }
-
-    public IMachineInnerServiceSMO getMachineInnerServiceSMOImpl() {
-        return machineInnerServiceSMOImpl;
-    }
-
-    public void setMachineInnerServiceSMOImpl(IMachineInnerServiceSMO machineInnerServiceSMOImpl) {
-        this.machineInnerServiceSMOImpl = machineInnerServiceSMOImpl;
-    }
-
-    public IOwnerInnerServiceSMO getOwnerInnerServiceSMOImpl() {
-        return ownerInnerServiceSMOImpl;
-    }
-
-    public void setOwnerInnerServiceSMOImpl(IOwnerInnerServiceSMO ownerInnerServiceSMOImpl) {
-        this.ownerInnerServiceSMOImpl = ownerInnerServiceSMOImpl;
-    }
-
-    public ICommunityInnerServiceSMO getCommunityInnerServiceSMOImpl() {
-        return communityInnerServiceSMOImpl;
-    }
-
-    public void setCommunityInnerServiceSMOImpl(ICommunityInnerServiceSMO communityInnerServiceSMOImpl) {
-        this.communityInnerServiceSMOImpl = communityInnerServiceSMOImpl;
-    }
-
-    public IFileRelInnerServiceSMO getFileRelInnerServiceSMOImpl() {
-        return fileRelInnerServiceSMOImpl;
-    }
-
-    public void setFileRelInnerServiceSMOImpl(IFileRelInnerServiceSMO fileRelInnerServiceSMOImpl) {
-        this.fileRelInnerServiceSMOImpl = fileRelInnerServiceSMOImpl;
-    }
-
-    public IFileInnerServiceSMO getFileInnerServiceSMOImpl() {
-        return fileInnerServiceSMOImpl;
-    }
-
-    public void setFileInnerServiceSMOImpl(IFileInnerServiceSMO fileInnerServiceSMOImpl) {
-        this.fileInnerServiceSMOImpl = fileInnerServiceSMOImpl;
-    }
 }

+ 20 - 56
service-api/src/main/java/com/java110/api/listener/machineTranslate/MachineGetFreeParkingSpaceListener.java

@@ -1,44 +1,29 @@
-package com.java110.api.listener.machineTranslate;
+package com.java110.common.cmd.machineTranslate;
 
 import com.alibaba.fastjson.JSONObject;
-import com.java110.core.annotation.Java110Listener;
-import com.java110.core.context.DataFlowContext;
-import com.java110.intf.community.ICommunityInnerServiceSMO;
-import com.java110.intf.fee.IFeeInnerServiceSMO;
-import com.java110.intf.common.ICarInoutInnerServiceSMO;
-import com.java110.intf.common.IMachineInnerServiceSMO;
-import com.java110.intf.user.IOwnerCarInnerServiceSMO;
-import com.java110.intf.community.IParkingSpaceInnerServiceSMO;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.CmdEvent;
 import com.java110.dto.fee.FeeDto;
 import com.java110.dto.machine.CarInoutDto;
 import com.java110.dto.owner.OwnerCarDto;
 import com.java110.dto.parking.ParkingSpaceDto;
-import com.java110.core.event.service.api.ServiceDataFlowEvent;
-import com.java110.utils.constant.ServiceCodeMachineTranslateConstant;
+import com.java110.intf.common.ICarInoutInnerServiceSMO;
+import com.java110.intf.common.IMachineInnerServiceSMO;
+import com.java110.intf.community.ICommunityInnerServiceSMO;
+import com.java110.intf.community.IParkingSpaceInnerServiceSMO;
+import com.java110.intf.fee.IFeeInnerServiceSMO;
+import com.java110.intf.user.IOwnerCarInnerServiceSMO;
+import com.java110.utils.exception.CmdException;
 import com.java110.utils.util.Assert;
 import com.java110.vo.api.machine.MachineResDataVo;
-import org.slf4j.Logger;
-import com.java110.core.log.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpMethod;
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @ClassName MachineRoadGateOpenListener
- * @Description 查询空闲车位
- * @Author wuxw
- * @Date 2020/1/25 21:50
- * @Version 1.0
- * add by wuxw 2020/1/25
- **/
-@Java110Listener("machineGetFreeParkingSpaceListener")
-public class MachineGetFreeParkingSpaceListener extends BaseMachineListener {
-    private static Logger logger = LoggerFactory.getLogger(MachineGetFreeParkingSpaceListener.class);
+
+import java.text.ParseException;
+import java.util.*;
+
+@Java110Cmd(serviceCode = "machineTranslate.machineGetFreeParkingSpace")
+public class MachineGetFreeParkingSpaceCmd extends BaseMachineCmd {
 
 
     private static final String MACHINE_DIRECTION_IN = "3306"; // 进入
@@ -73,18 +58,13 @@ public class MachineGetFreeParkingSpaceListener extends BaseMachineListener {
     private ICommunityInnerServiceSMO communityInnerServiceSMOImpl;
 
     @Override
-    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
-
-        //super.validateMachineHeader(event, reqJson);
-
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
         Assert.hasKeyAndValue(reqJson, "communityId", "请求报文中未包含小区信息");
-
     }
 
     @Override
-    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
-
-        //JSONObject outParam = null;
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+//JSONObject outParam = null;
         String communityId = reqJson.getString("communityId");
 
         //查询出小区内车位状态为空闲的数量
@@ -142,20 +122,4 @@ public class MachineGetFreeParkingSpaceListener extends BaseMachineListener {
         context.setResponseEntity(MachineResDataVo.getResData(MachineResDataVo.CODE_SUCCESS, "成功", realFreeParkingSpace));
 
     }
-
-
-    @Override
-    public String getServiceCode() {
-        return ServiceCodeMachineTranslateConstant.MACHINE_GET_FREE_PARKING_SPACE;
-    }
-
-    @Override
-    public HttpMethod getHttpMethod() {
-        return HttpMethod.GET;
-    }
-
-    @Override
-    public int getOrder() {
-        return DEFAULT_ORDER;
-    }
 }

+ 14 - 86
service-api/src/main/java/com/java110/api/listener/machineTranslate/MachineGetTaskInfoListener.java

@@ -1,37 +1,34 @@
-package com.java110.api.listener.machineTranslate;
+package com.java110.common.cmd.machineTranslate;
 
 import com.alibaba.fastjson.JSONObject;
-import com.java110.core.annotation.Java110Listener;
-import com.java110.core.context.DataFlowContext;
-import com.java110.core.event.service.api.ServiceDataFlowEvent;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.dto.machine.MachineTranslateDto;
 import com.java110.intf.common.IFileInnerServiceSMO;
 import com.java110.intf.common.IFileRelInnerServiceSMO;
 import com.java110.intf.common.IMachineInnerServiceSMO;
 import com.java110.intf.common.IMachineTranslateInnerServiceSMO;
 import com.java110.intf.community.ICommunityInnerServiceSMO;
 import com.java110.intf.user.IOwnerInnerServiceSMO;
-import com.java110.dto.machine.MachineTranslateDto;
-import com.java110.utils.constant.ServiceCodeMachineTranslateConstant;
 import com.java110.utils.constant.StatusConstant;
+import com.java110.utils.exception.CmdException;
 import com.java110.vo.MachineTaskVo;
 import com.java110.vo.ResultVo;
 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.text.ParseException;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
-/**
- * 调用地址
- * http://api.demo.winqi.cn/api/machineTranslate.machineQueryUserInfo?app_id=992019111002270001&communityId=7020181217000001&transaction_id=-1&req_time=20181113225612&user_id=-1
- * 硬件获取用户信息
- */
-@Java110Listener("machineGetTaskInfoListener")
-public class MachineGetTaskInfoListener extends BaseMachineListener {
+@Java110Cmd(serviceCode = "machineTranslate.machineGetTaskInfo")
+public class MachineGetTaskInfoCmd extends BaseMachineCmd {
+
 
     public static final String STATE_NO_TRANSLATE = "10000";//待同步
     public static final String STATE_TRANSLATEED = "20000";//同步完成
@@ -58,23 +55,17 @@ public class MachineGetTaskInfoListener extends BaseMachineListener {
     @Autowired
     private IFileInnerServiceSMO fileInnerServiceSMOImpl;
 
-
-    /**
-     * @param event   事件对象
-     * @param reqJson 请求报文数据
-     */
     @Override
-    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
         super.validateMachineHeader(event, reqJson);
         //Assert.hasKeyAndValue(reqJson, "faceid", "请求报文中未包含用户ID");
     }
 
     @Override
-    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
-
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
         ResultVo resultVo = null;
         ResponseEntity<String> responseEntity = null;
-        Map<String, String> reqHeader = context.getRequestHeaders();
+        Map<String, String> reqHeader = context.getReqHeaders();
         //判断是否是心跳类过来的
         if (!super.validateMachineBody(event, context, reqJson, machineInnerServiceSMOImpl)) {
             return;
@@ -106,67 +97,4 @@ public class MachineGetTaskInfoListener extends BaseMachineListener {
         responseEntity = new ResponseEntity<>(resultVo.toString(), httpHeaders, HttpStatus.OK);
         context.setResponseEntity(responseEntity);
     }
-
-    @Override
-    public String getServiceCode() {
-        return ServiceCodeMachineTranslateConstant.MACHINE_GET_TASK_INFO;
-    }
-
-    @Override
-    public HttpMethod getHttpMethod() {
-        return HttpMethod.POST;
-    }
-
-    @Override
-    public int getOrder() {
-        return 0;
-    }
-
-    public IMachineTranslateInnerServiceSMO getMachineTranslateInnerServiceSMOImpl() {
-        return machineTranslateInnerServiceSMOImpl;
-    }
-
-    public void setMachineTranslateInnerServiceSMOImpl(IMachineTranslateInnerServiceSMO machineTranslateInnerServiceSMOImpl) {
-        this.machineTranslateInnerServiceSMOImpl = machineTranslateInnerServiceSMOImpl;
-    }
-
-    public IMachineInnerServiceSMO getMachineInnerServiceSMOImpl() {
-        return machineInnerServiceSMOImpl;
-    }
-
-    public void setMachineInnerServiceSMOImpl(IMachineInnerServiceSMO machineInnerServiceSMOImpl) {
-        this.machineInnerServiceSMOImpl = machineInnerServiceSMOImpl;
-    }
-
-    public IOwnerInnerServiceSMO getOwnerInnerServiceSMOImpl() {
-        return ownerInnerServiceSMOImpl;
-    }
-
-    public void setOwnerInnerServiceSMOImpl(IOwnerInnerServiceSMO ownerInnerServiceSMOImpl) {
-        this.ownerInnerServiceSMOImpl = ownerInnerServiceSMOImpl;
-    }
-
-    public ICommunityInnerServiceSMO getCommunityInnerServiceSMOImpl() {
-        return communityInnerServiceSMOImpl;
-    }
-
-    public void setCommunityInnerServiceSMOImpl(ICommunityInnerServiceSMO communityInnerServiceSMOImpl) {
-        this.communityInnerServiceSMOImpl = communityInnerServiceSMOImpl;
-    }
-
-    public IFileRelInnerServiceSMO getFileRelInnerServiceSMOImpl() {
-        return fileRelInnerServiceSMOImpl;
-    }
-
-    public void setFileRelInnerServiceSMOImpl(IFileRelInnerServiceSMO fileRelInnerServiceSMOImpl) {
-        this.fileRelInnerServiceSMOImpl = fileRelInnerServiceSMOImpl;
-    }
-
-    public IFileInnerServiceSMO getFileInnerServiceSMOImpl() {
-        return fileInnerServiceSMOImpl;
-    }
-
-    public void setFileInnerServiceSMOImpl(IFileInnerServiceSMO fileInnerServiceSMOImpl) {
-        this.fileInnerServiceSMOImpl = fileInnerServiceSMOImpl;
-    }
 }

+ 98 - 0
service-common/src/main/java/com/java110/common/cmd/machineTranslate/MachineHeartbeatCmd.java

@@ -0,0 +1,98 @@
+package com.java110.common.cmd.machineTranslate;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.core.event.service.api.ServiceDataFlowEventPublishing;
+import com.java110.core.event.service.api.ServiceDataFlowListener;
+import com.java110.intf.common.IFileInnerServiceSMO;
+import com.java110.intf.common.IFileRelInnerServiceSMO;
+import com.java110.intf.common.IMachineInnerServiceSMO;
+import com.java110.intf.common.IMachineTranslateInnerServiceSMO;
+import com.java110.intf.community.ICommunityInnerServiceSMO;
+import com.java110.intf.user.IOwnerInnerServiceSMO;
+import com.java110.utils.constant.CommonConstant;
+import com.java110.utils.constant.ServiceCodeMachineTranslateConstant;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.StringUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+
+import java.text.ParseException;
+import java.util.List;
+import java.util.Map;
+
+@Java110Cmd(serviceCode = "machineTranslate.machineHeartbeart")
+public class MachineHeartbeatCmd extends BaseMachineCmd{
+
+    @Autowired
+    private IMachineTranslateInnerServiceSMO machineTranslateInnerServiceSMOImpl;
+
+    @Autowired
+    private IMachineInnerServiceSMO machineInnerServiceSMOImpl;
+
+    @Autowired
+    private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
+
+    @Autowired
+    private ICommunityInnerServiceSMO communityInnerServiceSMOImpl;
+
+    @Autowired
+    private IFileRelInnerServiceSMO fileRelInnerServiceSMOImpl;
+
+    @Autowired
+    private IFileInnerServiceSMO fileInnerServiceSMOImpl;
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
+        Map<String, String> reqHeader = context.getReqHeaders();
+
+        //设备通用校验
+        //super.validateMachineHeader(event, reqJson);
+
+        if (StringUtil.isEmpty(reqHeader.get("command"))) {
+            reqHeader.put("command", "gettask");
+        }
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+        Map<String, String> reqHeader = context.getReqHeaders();
+
+        String command = reqHeader.get("command");
+        String serviceCode = "";
+        //校验报文格式信息, 不做判断 让下游判断
+        /*if (!validateMachineBody(event, context, reqJson, machineInnerServiceSMOImpl)) {
+            return;
+        }*/
+        //获取任务
+        if ("gettask".equals(command)) {
+            serviceCode = ServiceCodeMachineTranslateConstant.MACHINE_GET_TASK_INFO;
+        } else if ("getface".equals(command)) {
+            serviceCode = ServiceCodeMachineTranslateConstant.MACHINE_QUERY_USER_INFO;
+        } else if ("record".equals(command)) {
+            serviceCode = ServiceCodeMachineTranslateConstant.MACHINE_UPLOAD_FACE_LOG;
+        } else if ("report".equals(command)) {
+            //this.report(event, context, reqJson, reqHeader, headers);
+            // return;
+            serviceCode = ServiceCodeMachineTranslateConstant.MACHINE_CMD_RESULT;
+        } else {
+            JSONObject outParam = new JSONObject();
+            outParam.put("code", -1);
+            outParam.put("message", "当前不支持该命令" + command);
+            ResponseEntity<String> responseEntity = new ResponseEntity<>(outParam.toJSONString(), HttpStatus.OK);
+            context.setResponseEntity(responseEntity);
+            return;
+        }
+        //获取下游侦听处理类
+//        List<ServiceDataFlowListener> listeners = ServiceDataFlowEventPublishing.getListeners(serviceCode, CommonConstant.HTTP_METHOD_POST);
+//        Assert.listOnlyOne(listeners, "存在多个侦听来处理门禁对接,是不允许的");
+//
+//        //调用相应侦听来处理业务逻辑
+//        ServiceDataFlowListener listener = listeners.get(0);
+//        listener.soService(event);
+    }
+}

+ 52 - 125
service-api/src/main/java/com/java110/api/listener/machineTranslate/MachineQueryUserInfoListener.java

@@ -1,101 +1,91 @@
-package com.java110.api.listener.machineTranslate;
+package com.java110.common.cmd.machineTranslate;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
-import com.java110.api.bmo.machineTranslate.IApplicationKeyMachineTranslateBMO;
-import com.java110.api.bmo.machineTranslate.IOwnerCarMachineTranslateBMO;
-import com.java110.api.bmo.machineTranslate.IOwnerMachineTranslateBMO;
-import com.java110.api.bmo.machineTranslate.IStaffMachineTranslateBMO;
-import com.java110.api.bmo.machineTranslate.IVisitMachineTranslateBMO;
-import com.java110.core.annotation.Java110Listener;
+import com.java110.core.annotation.Java110Cmd;
 import com.java110.core.context.DataFlowContext;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.CmdEvent;
 import com.java110.core.event.service.api.ServiceDataFlowEvent;
 import com.java110.dto.community.CommunityDto;
 import com.java110.dto.machine.CarResultDto;
 import com.java110.dto.machine.MachineTranslateDto;
 import com.java110.dto.machine.MachineUserResultDto;
-import com.java110.intf.common.IApplicationKeyInnerServiceSMO;
-import com.java110.intf.common.IFileInnerServiceSMO;
-import com.java110.intf.common.IFileRelInnerServiceSMO;
-import com.java110.intf.common.IMachineInnerServiceSMO;
-import com.java110.intf.common.IMachineTranslateInnerServiceSMO;
-import com.java110.intf.community.ICommunityInnerServiceSMO;
-import com.java110.utils.constant.ServiceCodeMachineTranslateConstant;
+import com.java110.utils.exception.CmdException;
 import com.java110.utils.util.Assert;
 import com.java110.vo.ResultVo;
-import org.slf4j.Logger;
-import com.java110.core.log.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 org.springframework.web.client.RestTemplate;
 
+import java.text.ParseException;
 import java.util.List;
 import java.util.Map;
 
-/**
- * 调用地址
- * http://api.demo.winqi.cn/api/machineTranslate.machineQueryUserInfo?app_id=992019111002270001&communityId=7020181217000001&transaction_id=-1&req_time=20181113225612&user_id=-1
- * 硬件获取用户信息
- */
-@Java110Listener("machineQueryUserInfoListener")
-public class MachineQueryUserInfoListener extends BaseMachineListener {
+@Java110Cmd(serviceCode = "machineTranslate.machineQueryUserInfo")
+public class MachineQueryUserInfoCmd extends BaseMachineCmd {
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
 
-    private static Logger logger = LoggerFactory.getLogger(MachineQueryUserInfoListener.class);
+    }
 
-    public static final String TYPE_OWNER = "8899";//业主人脸
-    public static final String TYPE_APPLICATION_KEY = "7788";//申请钥匙
-    public static final String TYPE_VISIT = "6677";//访客人脸
-    public static final String TYPE_STAFF = "5566";//员工人脸
-    public static final String TYPE_OWNER_CAR = "4455";//业主车辆
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
 
+    }
 
-    private static final String DEFAULT_DOMAIN = "YUNLUN";
+    /**
+     *
+     private static Logger logger = LoggerFactory.getLogger(MachineQueryUserInfoListener.class);
 
-    @Autowired
-    private IMachineTranslateInnerServiceSMO machineTranslateInnerServiceSMOImpl;
+     public static final String TYPE_OWNER = "8899";//业主人脸
+     public static final String TYPE_APPLICATION_KEY = "7788";//申请钥匙
+     public static final String TYPE_VISIT = "6677";//访客人脸
+     public static final String TYPE_STAFF = "5566";//员工人脸
+     public static final String TYPE_OWNER_CAR = "4455";//业主车辆
 
-    @Autowired
-    private IMachineInnerServiceSMO machineInnerServiceSMOImpl;
 
+     private static final String DEFAULT_DOMAIN = "YUNLUN";
 
-    @Autowired
-    private ICommunityInnerServiceSMO communityInnerServiceSMOImpl;
+     @Autowired
+     private IMachineTranslateInnerServiceSMO machineTranslateInnerServiceSMOImpl;
 
-    @Autowired
-    private IFileRelInnerServiceSMO fileRelInnerServiceSMOImpl;
+     @Autowired
+     private IMachineInnerServiceSMO machineInnerServiceSMOImpl;
 
-    @Autowired
-    private IFileInnerServiceSMO fileInnerServiceSMOImpl;
 
-    @Autowired
-    private RestTemplate outRestTemplate;
+     @Autowired
+     private ICommunityInnerServiceSMO communityInnerServiceSMOImpl;
 
-    @Autowired
-    private IApplicationKeyInnerServiceSMO applicationKeyInnerServiceSMOImpl;
+     @Autowired
+     private IFileRelInnerServiceSMO fileRelInnerServiceSMOImpl;
 
+     @Autowired
+     private IFileInnerServiceSMO fileInnerServiceSMOImpl;
 
-    @Autowired
-    private IOwnerMachineTranslateBMO ownerMachineTranslateBMOImpl;
+     @Autowired
+     private RestTemplate outRestTemplate;
 
-    @Autowired
-    private IApplicationKeyMachineTranslateBMO applicationKeyMachineTranslateBMOImpl;
+     @Autowired
+     private IApplicationKeyInnerServiceSMO applicationKeyInnerServiceSMOImpl;
 
-    @Autowired
-    private IVisitMachineTranslateBMO visitMachineTranslateBMOImpl;
 
-    @Autowired
-    private IStaffMachineTranslateBMO staffMachineTranslateBMOImpl;
+     @Autowired
+     private IOwnerMachineTranslateBMO ownerMachineTranslateBMOImpl;
+
+     @Autowired
+     private IApplicationKeyMachineTranslateBMO applicationKeyMachineTranslateBMOImpl;
+
+     @Autowired
+     private IVisitMachineTranslateBMO visitMachineTranslateBMOImpl;
+
+     @Autowired
+     private IStaffMachineTranslateBMO staffMachineTranslateBMOImpl;
+
+     @Autowired
+     private IOwnerCarMachineTranslateBMO ownerCarMachineTranslateBMOImpl;
 
-    @Autowired
-    private IOwnerCarMachineTranslateBMO ownerCarMachineTranslateBMOImpl;
 
-    /**
-     * @param event   事件对象
-     * @param reqJson 请求报文数据
-     */
     @Override
     protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
         super.validateMachineHeader(event, reqJson);
@@ -194,68 +184,5 @@ public class MachineQueryUserInfoListener extends BaseMachineListener {
         responseEntity = new ResponseEntity<>(JSONObject.toJSONString(resultVo), httpHeaders, HttpStatus.OK);
         context.setResponseEntity(responseEntity);
     }
-
-    @Override
-    public String getServiceCode() {
-        return ServiceCodeMachineTranslateConstant.MACHINE_QUERY_USER_INFO;
-    }
-
-    @Override
-    public HttpMethod getHttpMethod() {
-        return HttpMethod.POST;
-    }
-
-    @Override
-    public int getOrder() {
-        return 0;
-    }
-
-    public IMachineTranslateInnerServiceSMO getMachineTranslateInnerServiceSMOImpl() {
-        return machineTranslateInnerServiceSMOImpl;
-    }
-
-    public void setMachineTranslateInnerServiceSMOImpl(IMachineTranslateInnerServiceSMO machineTranslateInnerServiceSMOImpl) {
-        this.machineTranslateInnerServiceSMOImpl = machineTranslateInnerServiceSMOImpl;
-    }
-
-    public IMachineInnerServiceSMO getMachineInnerServiceSMOImpl() {
-        return machineInnerServiceSMOImpl;
-    }
-
-    public void setMachineInnerServiceSMOImpl(IMachineInnerServiceSMO machineInnerServiceSMOImpl) {
-        this.machineInnerServiceSMOImpl = machineInnerServiceSMOImpl;
-    }
-
-
-    public ICommunityInnerServiceSMO getCommunityInnerServiceSMOImpl() {
-        return communityInnerServiceSMOImpl;
-    }
-
-    public void setCommunityInnerServiceSMOImpl(ICommunityInnerServiceSMO communityInnerServiceSMOImpl) {
-        this.communityInnerServiceSMOImpl = communityInnerServiceSMOImpl;
-    }
-
-    public IFileRelInnerServiceSMO getFileRelInnerServiceSMOImpl() {
-        return fileRelInnerServiceSMOImpl;
-    }
-
-    public void setFileRelInnerServiceSMOImpl(IFileRelInnerServiceSMO fileRelInnerServiceSMOImpl) {
-        this.fileRelInnerServiceSMOImpl = fileRelInnerServiceSMOImpl;
-    }
-
-    public IFileInnerServiceSMO getFileInnerServiceSMOImpl() {
-        return fileInnerServiceSMOImpl;
-    }
-
-    public void setFileInnerServiceSMOImpl(IFileInnerServiceSMO fileInnerServiceSMOImpl) {
-        this.fileInnerServiceSMOImpl = fileInnerServiceSMOImpl;
-    }
-
-    public IApplicationKeyInnerServiceSMO getApplicationKeyInnerServiceSMOImpl() {
-        return applicationKeyInnerServiceSMOImpl;
-    }
-
-    public void setApplicationKeyInnerServiceSMOImpl(IApplicationKeyInnerServiceSMO applicationKeyInnerServiceSMOImpl) {
-        this.applicationKeyInnerServiceSMOImpl = applicationKeyInnerServiceSMOImpl;
-    }
+     */
 }

+ 177 - 85
service-api/src/main/java/com/java110/api/listener/machineTranslate/MachineRoadGateOpenListener.java

@@ -1,17 +1,14 @@
-package com.java110.api.listener.machineTranslate;
+package com.java110.common.cmd.machineTranslate;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
-import com.java110.api.bmo.machineTranslate.IMachineTranslateBMO;
-import com.java110.core.annotation.Java110Listener;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.annotation.Java110Transactional;
 import com.java110.core.context.DataFlowContext;
-import com.java110.intf.community.ICommunityInnerServiceSMO;
-import com.java110.intf.fee.IFeeConfigInnerServiceSMO;
-import com.java110.intf.fee.IFeeInnerServiceSMO;
-import com.java110.intf.common.ICarBlackWhiteInnerServiceSMO;
-import com.java110.intf.common.ICarInoutInnerServiceSMO;
-import com.java110.intf.common.IMachineInnerServiceSMO;
-import com.java110.intf.user.IOwnerCarInnerServiceSMO;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.core.log.LoggerFactory;
 import com.java110.dto.CommunityMemberDto;
 import com.java110.dto.fee.FeeConfigDto;
 import com.java110.dto.fee.FeeDto;
@@ -20,41 +17,36 @@ import com.java110.dto.machine.CarInoutDto;
 import com.java110.dto.machine.MachineDto;
 import com.java110.dto.owner.OwnerCarDto;
 import com.java110.entity.center.AppService;
-import com.java110.core.event.service.api.ServiceDataFlowEvent;
+import com.java110.intf.common.*;
+import com.java110.intf.community.ICommunityInnerServiceSMO;
+import com.java110.intf.fee.IFeeConfigInnerServiceSMO;
+import com.java110.intf.fee.IFeeInnerServiceSMO;
+import com.java110.intf.fee.IPayFeeV1InnerServiceSMO;
+import com.java110.intf.user.IOwnerCarInnerServiceSMO;
+import com.java110.po.car.CarInoutDetailPo;
+import com.java110.po.car.CarInoutPo;
 import com.java110.po.fee.PayFeePo;
-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.constant.*;
+import com.java110.utils.exception.CmdException;
+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 com.java110.vo.api.machine.MachineResDataVo;
 import org.slf4j.Logger;
-import com.java110.core.log.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.text.ParseException;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
-/**
- * @ClassName MachineRoadGateOpenListener
- * @Description 道闸开门侦听类
- * @Author wuxw
- * @Date 2020/1/25 21:50
- * @Version 1.0
- * add by wuxw 2020/1/25
- **/
-@Java110Listener("machineRoadGateOpenListener")
-public class MachineRoadGateOpenListener extends BaseMachineListener {
-    private static Logger logger = LoggerFactory.getLogger(MachineRoadGateOpenListener.class);
-
+@Java110Cmd(serviceCode = "machineTranslate.machineRoadGateOpen")
+public class MachineRoadGateOpenCmd extends BaseMachineCmd {
+    private static Logger logger = LoggerFactory.getLogger(MachineRoadGateOpenCmd.class);
 
     private static final String MACHINE_DIRECTION_IN = "3306"; // 进入
 
@@ -65,9 +57,6 @@ public class MachineRoadGateOpenListener extends BaseMachineListener {
     private static final String CAR_BLACK = "1111"; // 车辆黑名单
     private static final String CAR_WHITE = "2222"; // 车辆白名单
 
-    @Autowired
-    private IMachineTranslateBMO machineTranslateBMOImpl;
-
     @Autowired
     private IMachineInnerServiceSMO machineInnerServiceSMOImpl;
 
@@ -89,21 +78,29 @@ public class MachineRoadGateOpenListener extends BaseMachineListener {
     @Autowired
     private ICommunityInnerServiceSMO communityInnerServiceSMOImpl;
 
+    @Autowired
+    private ICarInoutV1InnerServiceSMO carInoutV1InnerServiceSMOImpl;
+
+    @Autowired
+    private ICarInoutDetailV1InnerServiceSMO carInoutDetailV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IPayFeeV1InnerServiceSMO payFeeV1InnerServiceSMOImpl;
+
     @Override
-    protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
 
         super.validateMachineHeader(event, reqJson);
 
         Assert.hasKeyAndValue(reqJson, "carNum", "请求报文中未包含车牌号");
-
     }
 
     @Override
-    protected void doSoService(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson) {
-
-        //JSONObject outParam = null;
+    @Java110Transactional
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+//JSONObject outParam = null;
         ResponseEntity<String> responseEntity = null;
-        Map<String, String> reqHeader = context.getRequestHeaders();
+        Map<String, String> reqHeader = context.getReqHeaders();
         String communityId = reqJson.containsKey("communityId") ? reqJson.getString("communityId") : reqHeader.get("communityId");
         String machineCode = reqHeader.get("machinecode");
         HttpHeaders headers = new HttpHeaders();
@@ -143,7 +140,7 @@ public class MachineRoadGateOpenListener extends BaseMachineListener {
      * @param machineDto
      * @param communityId
      */
-    private void dealCarOut(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson, MachineDto machineDto, String communityId) {
+    private void dealCarOut(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson, MachineDto machineDto, String communityId) {
 
         //首先查询是否车辆有进场
         CarInoutDto carInoutDto = new CarInoutDto();
@@ -194,7 +191,7 @@ public class MachineRoadGateOpenListener extends BaseMachineListener {
      * @param machineDto
      * @return
      */
-    private boolean judgeCarOutTimeOut(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson, CarInoutDto tmpCarInoutDto, MachineDto machineDto) {
+    private boolean judgeCarOutTimeOut(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson, CarInoutDto tmpCarInoutDto, MachineDto machineDto) {
         CommunityMemberDto communityMemberDto = new CommunityMemberDto();
         communityMemberDto.setCommunityId(machineDto.getCommunityId());
         communityMemberDto.setMemberTypeCd(CommunityMemberTypeConstant.PROPERTY);
@@ -227,22 +224,83 @@ public class MachineRoadGateOpenListener extends BaseMachineListener {
         }
 
         //重新插入 一条 收费记录 收费
-
-        HttpHeaders header = new HttpHeaders();
-        context.getRequestCurrentHeaders().put(CommonConstant.HTTP_ORDER_TYPE_CD, "D");
-        JSONArray businesses = new JSONArray();
-        AppService service = event.getAppService();
         //添加单元信息
-        machineTranslateBMOImpl.modifyCarInout(reqJson, context, tmpCarInoutDto, "100600", null);
-        machineTranslateBMOImpl.addCarInoutFee(reqJson, context, tmpCarInoutDto.getCommunityId(), DateUtil.getFormatTimeString(tmpFeeDto.getEndTime(), DateUtil.DATE_FORMATE_STRING_A));
+        modifyCarInout(reqJson, tmpCarInoutDto, "100600", null);
+        addCarInoutFee(reqJson, tmpCarInoutDto.getCommunityId(), DateUtil.getFormatTimeString(tmpFeeDto.getEndTime(), DateUtil.DATE_FORMATE_STRING_A));
 
-        ResponseEntity<String> responseEntity = machineTranslateBMOImpl.callService(context, service.getServiceCode(), businesses);
-        context.setResponseEntity(responseEntity);
         reqJson.put("feeRestartTime", tmpFeeDto.getEndTime());
 
         return true;
     }
 
+    /**
+     * 添加物业费用
+     *
+     * @param paramInJson     接口调用放传入入参
+     * @return 订单服务能够接受的报文
+     */
+    public void addCarInoutFee(JSONObject paramInJson,  String communityId) {
+        addCarInoutFee(paramInJson, communityId, DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+    }
+
+    public void addCarInoutFee(JSONObject paramInJson, String communityId, String startTime) {
+        CommunityMemberDto communityMemberDto = new CommunityMemberDto();
+        communityMemberDto.setCommunityId(communityId);
+        communityMemberDto.setMemberTypeCd(CommunityMemberTypeConstant.PROPERTY);
+        List<CommunityMemberDto> communityMemberDtos = communityInnerServiceSMOImpl.getCommunityMembers(communityMemberDto);
+        String storeId = "-1";
+        if (communityMemberDtos != null && communityMemberDtos.size() > 0) {
+            storeId = communityMemberDtos.get(0).getMemberId();
+        }
+
+        FeeConfigDto feeConfigDto = new FeeConfigDto();
+        feeConfigDto.setFeeTypeCd(FeeTypeConstant.FEE_TYPE_TEMP_DOWN_PARKING_SPACE);
+        feeConfigDto.setIsDefault("T");
+        feeConfigDto.setCommunityId(communityId);
+        List<FeeConfigDto> feeConfigDtos = feeConfigInnerServiceSMOImpl.queryFeeConfigs(feeConfigDto);
+        if (feeConfigDtos == null || feeConfigDtos.size() != 1) {
+            throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_ERROR, "未查到费用配置信息,查询多条数据");
+        }
+
+        feeConfigDto = feeConfigDtos.get(0);
+
+        JSONObject businessUnit = new JSONObject();
+        businessUnit.put("feeId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_feeId));
+        businessUnit.put("configId", feeConfigDto.getConfigId());
+        businessUnit.put("feeTypeCd", FeeTypeConstant.FEE_TYPE_TEMP_DOWN_PARKING_SPACE);
+        businessUnit.put("incomeObjId", storeId);
+        businessUnit.put("amount", "-1.00");
+        businessUnit.put("startTime", startTime);
+        businessUnit.put("endTime", DateUtil.getLastTime()); // 临时车将结束时间刷成2038年
+        businessUnit.put("communityId", communityId);
+        businessUnit.put("payerObjId", paramInJson.getString("inoutId"));
+        businessUnit.put("payerObjType", "9999");
+        businessUnit.put("feeFlag", "2006012"); // 一次性费用
+        businessUnit.put("state", "2008001"); // 收费中
+        businessUnit.put("userId", "-1");
+        PayFeePo payFeePo = BeanConvertUtil.covertBean(businessUnit, PayFeePo.class);
+        int flag = payFeeV1InnerServiceSMOImpl.savePayFee(payFeePo);
+        if (flag < 1) {
+            throw new CmdException("保存费用失败");
+        }
+    }
+
+
+    public void modifyCarInout(JSONObject reqJson, CarInoutDto carInoutDto, String state, String endTime) {
+
+        JSONObject businessCarInout = new JSONObject();
+        businessCarInout.putAll(BeanConvertUtil.beanCovertMap(carInoutDto));
+        businessCarInout.put("state", state);
+        businessCarInout.put("outTime", endTime);
+        CarInoutPo carInoutPo = BeanConvertUtil.covertBean(businessCarInout, CarInoutPo.class);
+        int flag = carInoutV1InnerServiceSMOImpl.updateCarInout(carInoutPo);
+
+        if (flag < 1) {
+            throw new CmdException("修改车辆进出记录");
+        }
+    }
+
+
     /**
      * 处理车辆未完成支付出场处理
      *
@@ -251,7 +309,7 @@ public class MachineRoadGateOpenListener extends BaseMachineListener {
      * @param tmpCarInoutDto
      * @param machineDto
      */
-    private void dealCarOutIncomplete(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson, CarInoutDto tmpCarInoutDto, MachineDto machineDto) {
+    private void dealCarOutIncomplete(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson, CarInoutDto tmpCarInoutDto, MachineDto machineDto) {
         //判断车辆是否在白名单中
         String carNum = reqJson.getString("carNum");
         CarBlackWhiteDto carBlackWhiteDto = new CarBlackWhiteDto();
@@ -347,23 +405,53 @@ public class MachineRoadGateOpenListener extends BaseMachineListener {
         return data;
     }
 
-    private void modifyCarInoutInfo(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson, CarInoutDto tmpCarInoutDto, MachineDto machineDto) {
+    private void modifyCarInoutInfo(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson, CarInoutDto tmpCarInoutDto, MachineDto machineDto) {
         modifyCarInoutInfo(event, context, reqJson, tmpCarInoutDto, machineDto, "");
     }
 
-    private void modifyCarInoutInfo(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson, CarInoutDto tmpCarInoutDto, MachineDto machineDto, String from) {
+    private void modifyCarInoutInfo(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson, CarInoutDto tmpCarInoutDto, MachineDto machineDto, String from) {
 
         //添加单元信息
-        machineTranslateBMOImpl.modifyCarInout(reqJson, context, tmpCarInoutDto);
+        modifyCarInout(reqJson, tmpCarInoutDto);
         reqJson.put("inoutId", tmpCarInoutDto.getInoutId());
-        machineTranslateBMOImpl.addCarInoutDetail(reqJson, context, tmpCarInoutDto.getCommunityId(), machineDto);
+        addCarInoutDetail(reqJson, tmpCarInoutDto.getCommunityId(), machineDto);
         if (HIRE_SELL_OUT.equals(from)) {
-            modifyCarInoutFee(reqJson, context, tmpCarInoutDto.getCommunityId(), machineDto);
+            modifyCarInoutFee(reqJson, tmpCarInoutDto.getCommunityId(), machineDto);
 
         }
 
     }
 
+    /**
+     * 添加小区信息
+     *
+     * @param paramInJson     接口调用放传入入参
+     * @return 订单服务能够接受的报文
+     */
+    public void addCarInoutDetail(JSONObject paramInJson, String communityId, MachineDto machineDto) {
+
+        JSONObject businessCarInoutDetail = new JSONObject();
+        businessCarInoutDetail.put("carNum", paramInJson.getString("carNum"));
+        businessCarInoutDetail.put("inoutId", paramInJson.getString("inoutId"));
+        businessCarInoutDetail.put("communityId", communityId);
+        businessCarInoutDetail.put("machineId", machineDto.getMachineId());
+        businessCarInoutDetail.put("machineCode", machineDto.getMachineCode());
+        businessCarInoutDetail.put("carInout", machineDto.getDirection());
+        businessCarInoutDetail.put("detailId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_detailId));
+        paramInJson.put("detailId",businessCarInoutDetail.getString("detailId"));
+        CarInoutDetailPo carInoutDetailPo = BeanConvertUtil.covertBean(businessCarInoutDetail, CarInoutDetailPo.class);
+        int flag = carInoutDetailV1InnerServiceSMOImpl.saveCarInoutDetail(carInoutDetailPo);
+        if(flag < 1){
+            throw new CmdException("保存明细");
+        }
+
+    }
+
+    public void modifyCarInout(JSONObject reqJson, CarInoutDto carInoutDto) {
+        modifyCarInout(reqJson, carInoutDto, "100500", DateUtil.getFormatTimeString(new Date(), DateUtil.DATE_FORMATE_STRING_A));
+    }
+
+
     /**
      * 处理车辆进入
      *
@@ -371,7 +459,7 @@ public class MachineRoadGateOpenListener extends BaseMachineListener {
      * @param machineDto
      * @param communityId
      */
-    private void dealCarIn(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson, MachineDto machineDto, String communityId) {
+    private void dealCarIn(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson, MachineDto machineDto, String communityId) {
         //车辆是否黑名单 车辆
         String carNum = reqJson.getString("carNum");
         CarBlackWhiteDto carBlackWhiteDto = new CarBlackWhiteDto();
@@ -385,23 +473,40 @@ public class MachineRoadGateOpenListener extends BaseMachineListener {
         }
 
         HttpHeaders header = new HttpHeaders();
-        context.getRequestCurrentHeaders().put(CommonConstant.HTTP_ORDER_TYPE_CD, "D");
+        context.getReqHeaders().put(CommonConstant.HTTP_ORDER_TYPE_CD, "D");
         JSONArray businesses = new JSONArray();
 
-        AppService service = event.getAppService();
 
         //添加单元信息
-        machineTranslateBMOImpl.addCarInout(reqJson, context, communityId);
-        machineTranslateBMOImpl.addCarInoutDetail(reqJson, context, communityId, machineDto);
-        machineTranslateBMOImpl.addCarInoutFee(reqJson, context, communityId);
+        addCarInout(reqJson, communityId);
+        addCarInoutDetail(reqJson, communityId, machineDto);
+        addCarInoutFee(reqJson, communityId);
 
+        context.setResponseEntity(MachineResDataVo.getResData(MachineResDataVo.CODE_SUCCESS, "成功"));
+    }
 
-        ResponseEntity<String> responseEntity = machineTranslateBMOImpl.callService(context, service.getServiceCode(), businesses);
-        if (responseEntity.getStatusCode() != HttpStatus.OK) {
-            context.setResponseEntity(MachineResDataVo.getResData(MachineResDataVo.CODE_ERROR, responseEntity.getBody()));
-            return;
+    /**
+     * 添加小区信息
+     *
+     * @param paramInJson     接口调用放传入入参
+     * @return 订单服务能够接受的报文
+     */
+    public void addCarInout(JSONObject paramInJson,  String communityId) {
+
+        if (!paramInJson.containsKey("inoutId") || "-1".equals(paramInJson.getString("inoutId"))) {
+            paramInJson.put("inoutId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_inoutId));
+        }
+        JSONObject businessCarInout = new JSONObject();
+        businessCarInout.put("carNum", paramInJson.getString("carNum"));
+        businessCarInout.put("inoutId", paramInJson.getString("inoutId"));
+        businessCarInout.put("communityId", communityId);
+        businessCarInout.put("state", "100300");
+        businessCarInout.put("inTime", DateUtil.getFormatTimeString(new Date(), DateUtil.DATE_FORMATE_STRING_A));
+        CarInoutPo carInoutPo = BeanConvertUtil.covertBean(businessCarInout, CarInoutPo.class);
+        int flag = carInoutV1InnerServiceSMOImpl.saveCarInout(carInoutPo);
+        if(flag < 1){
+            throw new CmdException("保存明细失败");
         }
-        context.setResponseEntity(MachineResDataVo.getResData(MachineResDataVo.CODE_SUCCESS, "成功"));
     }
 
 
@@ -409,12 +514,11 @@ public class MachineRoadGateOpenListener extends BaseMachineListener {
      * 出租或出售 车辆出场
      *
      * @param reqJson
-     * @param context
      * @param communityId
      * @param machineDto
      * @return
      */
-    private void modifyCarInoutFee(JSONObject reqJson, DataFlowContext context, String communityId, MachineDto machineDto) {
+    private void modifyCarInoutFee(JSONObject reqJson, String communityId, MachineDto machineDto) {
 
         CommunityMemberDto communityMemberDto = new CommunityMemberDto();
         communityMemberDto.setCommunityId(communityId);
@@ -446,23 +550,11 @@ public class MachineRoadGateOpenListener extends BaseMachineListener {
         businessUnit.put("state", "2009001"); // 收费中
 
         PayFeePo payFeePo = BeanConvertUtil.covertBean(businessUnit, PayFeePo.class);
-        super.update(context, payFeePo, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_FEE_INFO);
-
-    }
+        int flag = payFeeV1InnerServiceSMOImpl.updatePayFee(payFeePo);
 
+        if(flag < 1){
+            throw new CmdException("修改费用失败");
+        }
 
-    @Override
-    public String getServiceCode() {
-        return ServiceCodeMachineTranslateConstant.MACHINE_ROAD_GATE_OPEN;
-    }
-
-    @Override
-    public HttpMethod getHttpMethod() {
-        return HttpMethod.POST;
-    }
-
-    @Override
-    public int getOrder() {
-        return DEFAULT_ORDER;
     }
 }

+ 193 - 0
service-common/src/main/java/com/java110/common/cmd/machineTranslate/MachineUploadFaceLogCmd.java

@@ -0,0 +1,193 @@
+package com.java110.common.cmd.machineTranslate;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.java110.common.smo.impl.MachineRecordV1InnerServiceSMOImpl;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.annotation.Java110Transactional;
+import com.java110.core.context.DataFlowContext;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.dto.file.FileDto;
+import com.java110.dto.machine.ApplicationKeyDto;
+import com.java110.dto.owner.OwnerDto;
+import com.java110.intf.common.*;
+import com.java110.intf.community.ICommunityInnerServiceSMO;
+import com.java110.intf.user.IOwnerInnerServiceSMO;
+import com.java110.po.file.FileRelPo;
+import com.java110.po.machine.MachineRecordPo;
+import com.java110.utils.constant.BusinessTypeConstant;
+import com.java110.utils.constant.ResponseConstant;
+import com.java110.utils.exception.CmdException;
+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.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+
+import java.text.ParseException;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+@Java110Cmd(serviceCode = "machineTranslate.machineUploadFaceLog")
+public class MachineUploadFaceLogCmd extends BaseMachineCmd {
+
+
+    @Autowired
+    private IMachineTranslateInnerServiceSMO machineTranslateInnerServiceSMOImpl;
+
+
+    @Autowired
+    private IMachineInnerServiceSMO machineInnerServiceSMOImpl;
+
+    @Autowired
+    private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
+
+    @Autowired
+    private ICommunityInnerServiceSMO communityInnerServiceSMOImpl;
+
+    @Autowired
+    private IFileRelInnerServiceSMO fileRelInnerServiceSMOImpl;
+
+    @Autowired
+    private IFileInnerServiceSMO fileInnerServiceSMOImpl;
+
+    @Autowired
+    private IApplicationKeyInnerServiceSMO applicationKeyInnerServiceSMOImpl;
+
+    @Autowired
+    private MachineRecordV1InnerServiceSMOImpl machineRecordV1InnerServiceSMOImpl;
+
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
+        // Assert.hasKeyAndValue(reqJson, "faceid", "请求报文中未包含用户ID");
+        super.validateMachineHeader(event, reqJson);
+        Assert.hasKeyAndValue(reqJson, "machineCode", "必填,请填写设备编码");
+        if (reqJson.containsKey("userID")) {
+            Assert.hasKeyAndValue(reqJson, "userID", "必填,请填写用户信息"); // 为了兼容锐目
+        } else {
+            Assert.hasKeyAndValue(reqJson, "userId", "必填,请填写用户信息");
+        }
+        // Assert.hasKeyAndValue(reqJson, "openTypeCd", "必填,请选择开门方式");
+        Assert.hasKeyAndValue(reqJson, "photo", "必填,请填写用户照片信息");
+    }
+
+    @Override
+    @Java110Transactional
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+        ResponseEntity<String> responseEntity = null;
+        JSONObject outParam = null;
+
+        try {
+            Map<String, String> reqHeader = context.getReqHeaders();
+            //判断是否是心跳类过来的
+            if (!super.validateMachineBody(event, context, reqJson, machineInnerServiceSMOImpl)) {
+                return;
+            }
+            outParam = new JSONObject();
+            outParam.put("code", 0);
+            outParam.put("message", "success");
+            JSONArray data = null;
+            reqJson.put("communityId", reqJson.containsKey("communityId") ? reqJson.getString("communityId") : reqHeader.get("communityId"));
+            HttpHeaders httpHeaders = super.getHeader(context);
+
+            reqJson.put("fileId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_file_id));
+
+            //添加单元信息
+            addMachineRecord(reqJson);
+            //保存文件信息
+            savePhoto(reqJson);
+
+            outParam = new JSONObject();
+            outParam.put("code", 0);
+            outParam.put("message", "success");
+            outParam.put("data", data);
+            responseEntity = new ResponseEntity<>(outParam.toJSONString(), httpHeaders, HttpStatus.OK);
+            context.setResponseEntity(responseEntity);
+        } catch (Exception e) {
+            outParam.put("code", -1);
+            outParam.put("message", e.getMessage());
+            responseEntity = new ResponseEntity<>(outParam.toJSONString(), HttpStatus.OK);
+            context.setResponseEntity(responseEntity);
+        }
+    }
+
+    public void savePhoto(JSONObject reqJson) {
+        FileDto fileDto = new FileDto();
+        fileDto.setCommunityId(reqJson.getString("communityId"));
+        fileDto.setFileId(reqJson.getString("fileId"));
+        fileDto.setFileName(reqJson.getString("fileId"));
+        fileDto.setContext(reqJson.getString("photo"));
+        fileDto.setSuffix("jpeg");
+        String fileName = fileInnerServiceSMOImpl.saveFile(fileDto);
+        JSONObject businessUnit = new JSONObject();
+        businessUnit.put("fileRelId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_fileRelId));
+        businessUnit.put("relTypeCd", reqJson.getString("relTypeCd"));
+        businessUnit.put("saveWay", "table");
+        businessUnit.put("objId", reqJson.getString("machineRecordId"));
+        businessUnit.put("fileRealName", reqJson.getString("fileId"));
+        businessUnit.put("fileSaveName", fileName);
+        FileRelPo fileRelPo = BeanConvertUtil.covertBean(businessUnit, FileRelPo.class);
+        int flag = fileRelInnerServiceSMOImpl.saveFileRel(fileRelPo);
+        if(flag <1){
+            throw new CmdException("保存记录失败");
+        }
+    }
+
+    public void addMachineRecord(JSONObject paramInJson) {
+
+        if (!paramInJson.containsKey("openTypeCd")) {
+            paramInJson.put("openTypeCd", "1000");
+        }
+
+        if (!paramInJson.containsKey("recordTypeCd")) {
+            paramInJson.put("openTypeCd", "8888");
+        }
+        paramInJson.put("fileTime", DateUtil.getFormatTimeString(new Date(), DateUtil.DATE_FORMATE_STRING_A));
+
+        paramInJson.put("machineRecordId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_machineRecordId));
+
+        String objId = paramInJson.getString("userId");
+        //这里objId 可能是 业主ID 也可能是钥匙ID
+        //先根据业主ID去查询
+        OwnerDto ownerDto = new OwnerDto();
+        ownerDto.setCommunityId(paramInJson.getString("communityId"));
+        ownerDto.setMemberId(objId);
+        List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwnerMembers(ownerDto);
+
+        if (ownerDtos != null && ownerDtos.size() > 0) {
+            Assert.listOnlyOne(ownerDtos, "根据业主ID查询到多条记录");
+            paramInJson.put("name", ownerDtos.get(0).getName());
+            paramInJson.put("tel", ownerDtos.get(0).getLink());
+            paramInJson.put("idCard", ownerDtos.get(0).getIdCard());
+            paramInJson.put("relTypeCd", "60000");
+        } else { //钥匙申请ID
+            ApplicationKeyDto applicationKeyDto = new ApplicationKeyDto();
+            applicationKeyDto.setCommunityId(paramInJson.getString("communityId"));
+            applicationKeyDto.setApplicationKeyId(objId);
+            List<ApplicationKeyDto> applicationKeyDtos = applicationKeyInnerServiceSMOImpl.queryApplicationKeys(applicationKeyDto);
+
+            Assert.listOnlyOne(applicationKeyDtos, "根据钥匙ID未查询到记录或查询到多条记录");
+
+            paramInJson.put("name", applicationKeyDtos.get(0).getName());
+            paramInJson.put("tel", applicationKeyDtos.get(0).getTel());
+            paramInJson.put("idCard", applicationKeyDtos.get(0).getIdCard());
+            paramInJson.put("relTypeCd", "60000");
+
+        }
+
+        //计算 应收金额
+        MachineRecordPo machineRecordPo = BeanConvertUtil.covertBean(paramInJson, MachineRecordPo.class);
+        int flag = machineRecordV1InnerServiceSMOImpl.saveMachineRecord(machineRecordPo);
+        if(flag <1){
+            throw new CmdException("保存记录失败");
+        }
+    }
+}

+ 48 - 0
service-common/src/main/java/com/java110/common/cmd/machineTranslate/SaveMachineTranslateCmd.java

@@ -0,0 +1,48 @@
+package com.java110.common.cmd.machineTranslate;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.intf.common.IMachineTranslateV1InnerServiceSMO;
+import com.java110.po.machine.MachineTranslatePo;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.text.ParseException;
+
+@Java110Cmd(serviceCode = "machineTranslate.saveMachineTranslate")
+public class SaveMachineTranslateCmd extends Cmd {
+
+    @Autowired
+    private IMachineTranslateV1InnerServiceSMO machineTranslateV1InnerServiceSMOImpl;
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
+
+        Assert.hasKeyAndValue(reqJson, "machineCode", "必填,请填写设备编码");
+        Assert.hasKeyAndValue(reqJson, "machineId", "必填,请填写设备版本号");
+        Assert.hasKeyAndValue(reqJson, "typeCd", "必填,请选择对象类型");
+        Assert.hasKeyAndValue(reqJson, "objName", "必填,请填写设备名称");
+        Assert.hasKeyAndValue(reqJson, "objId", "必填,请填写对象Id");
+        Assert.hasKeyAndValue(reqJson, "state", "必填,请选择状态");
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+        MachineTranslatePo machineTranslatePo = BeanConvertUtil.covertBean(reqJson, MachineTranslatePo.class);
+        machineTranslatePo.setMachineTranslateId(GenerateCodeFactory.getGeneratorId("11"));
+        int flag = machineTranslateV1InnerServiceSMOImpl.saveMachineTranslate(machineTranslatePo);
+
+        if (flag < 1) {
+            throw new CmdException("保存数据失败");
+        }
+
+        context.setResponseEntity(ResultVo.success());
+    }
+}

+ 48 - 0
service-common/src/main/java/com/java110/common/cmd/machineTranslate/UpdateMachineTranslateCmd.java

@@ -0,0 +1,48 @@
+package com.java110.common.cmd.machineTranslate;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.context.ICmdDataFlowContext;
+import com.java110.core.event.cmd.Cmd;
+import com.java110.core.event.cmd.CmdEvent;
+import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.intf.common.IMachineTranslateV1InnerServiceSMO;
+import com.java110.po.machine.MachineTranslatePo;
+import com.java110.utils.exception.CmdException;
+import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.vo.ResultVo;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.text.ParseException;
+
+@Java110Cmd(serviceCode = "machineTranslate.updateMachineTranslate")
+public class UpdateMachineTranslateCmd extends Cmd {
+
+    @Autowired
+    private IMachineTranslateV1InnerServiceSMO machineTranslateV1InnerServiceSMOImpl;
+
+    @Override
+    public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
+
+        Assert.hasKeyAndValue(reqJson, "machineTranslateId", "同步ID不能为空");
+        Assert.hasKeyAndValue(reqJson, "machineCode", "必填,请填写设备编码");
+        Assert.hasKeyAndValue(reqJson, "machineId", "必填,请填写设备版本号");
+        Assert.hasKeyAndValue(reqJson, "typeCd", "必填,请选择对象类型");
+        Assert.hasKeyAndValue(reqJson, "objName", "必填,请填写设备名称");
+        Assert.hasKeyAndValue(reqJson, "objId", "必填,请填写对象Id");
+        Assert.hasKeyAndValue(reqJson, "state", "必填,请选择状态");
+    }
+
+    @Override
+    public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
+        MachineTranslatePo machineTranslatePo = BeanConvertUtil.covertBean(reqJson, MachineTranslatePo.class);
+        int flag = machineTranslateV1InnerServiceSMOImpl.updateMachineTranslate(machineTranslatePo);
+
+        if (flag < 1) {
+            throw new CmdException("修改数据失败");
+        }
+
+        context.setResponseEntity(ResultVo.success());
+    }
+}