Browse Source

加入手工送databus 功能

java110 5 years ago
parent
commit
3a63bde28d

+ 50 - 0
java110-bean/src/main/java/com/java110/dto/businessDatabus/CustomBusinessDatabusDto.java

@@ -0,0 +1,50 @@
+package com.java110.dto.businessDatabus;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.dto.PageDto;
+
+import java.io.Serializable;
+
+/**
+ * @ClassName 自定义databus
+ * @Description 业务数据同步数据层封装
+ * @Author wuxw
+ * @Date 2019/4/24 8:52
+ * @Version 1.0
+ * add by wuxw 2019/4/24
+ **/
+public class CustomBusinessDatabusDto extends PageDto implements Serializable {
+
+    private String businessTypeCd;
+
+    private JSONObject data;
+
+    public CustomBusinessDatabusDto() {
+    }
+
+    public CustomBusinessDatabusDto(String businessTypeCd, JSONObject data) {
+        this.businessTypeCd = businessTypeCd;
+        this.data = data;
+    }
+
+    public static CustomBusinessDatabusDto getInstance(String businessTypeCd, JSONObject data) {
+        return new CustomBusinessDatabusDto(businessTypeCd, data);
+    }
+
+
+    public String getBusinessTypeCd() {
+        return businessTypeCd;
+    }
+
+    public void setBusinessTypeCd(String businessTypeCd) {
+        this.businessTypeCd = businessTypeCd;
+    }
+
+    public JSONObject getData() {
+        return data;
+    }
+
+    public void setData(JSONObject data) {
+        this.data = data;
+    }
+}

+ 11 - 0
java110-interface/src/main/java/com/java110/intf/job/IDataBusInnerServiceSMO.java

@@ -2,8 +2,10 @@ package com.java110.intf.job;
 
 import com.alibaba.fastjson.JSONObject;
 import com.java110.config.feign.FeignConfiguration;
+import com.java110.dto.businessDatabus.CustomBusinessDatabusDto;
 import com.java110.dto.tempCarFeeConfig.TempCarPayOrderDto;
 import com.java110.entity.order.Business;
+import com.java110.po.machine.MachineRecordPo;
 import com.java110.vo.ResultVo;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -72,4 +74,13 @@ public interface IDataBusInnerServiceSMO {
 
     @RequestMapping(value = "/notifyTempCarFeeOrder", method = RequestMethod.POST)
     ResultVo notifyTempCarFeeOrder(@RequestBody TempCarPayOrderDto tempCarPayOrderDto);
+
+
+    /**
+     * 自定义databus 数据 传输
+     * @param customBusinessDatabusDto
+     * @return
+     */
+    @RequestMapping(value = "/customExchange", method = RequestMethod.POST)
+    void customExchange(@RequestBody CustomBusinessDatabusDto customBusinessDatabusDto);
 }

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

@@ -1427,6 +1427,9 @@ public class BusinessTypeConstant {
      */
     public static final String BUSINESS_TYPE_DELETE_MACHINE_AUTH="661100050004";
 
-
+    /**
+     * 开门记录 送databus
+     */
+    public static final String BUSINESS_TYPE_DATABUS_SEND_OPEN_LOG = "990000060001";
 
 }

+ 12 - 0
java110-utils/src/main/java/com/java110/utils/util/BeanConvertUtil.java

@@ -1,6 +1,7 @@
 package com.java110.utils.util;
 
 
+import com.alibaba.fastjson.JSONObject;
 import org.apache.commons.beanutils.BeanUtils;
 import org.apache.commons.beanutils.ConvertUtils;
 import org.apache.commons.beanutils.Converter;
@@ -169,6 +170,17 @@ public final class BeanConvertUtil {
         return map;
     }
 
+    /**
+     * bean转换为map对象
+     *
+     * @param orgBean 原始bean
+     * @return map对象
+     */
+    public static JSONObject beanCovertJson(Object orgBean) {
+
+        return JSONObject.parseObject(JSONObject.toJSONString(orgBean));
+    }
+
 
     /**
      * bean集合转换为map对象集合

+ 14 - 3
service-common/src/main/java/com/java110/common/bmo/machine/impl/SaveMachineRecordBMOImpl.java

@@ -15,8 +15,10 @@
  */
 package com.java110.common.bmo.machine.impl;
 
+import com.alibaba.fastjson.JSONObject;
 import com.java110.common.bmo.machine.ISaveMachineRecordBMO;
 import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.dto.businessDatabus.CustomBusinessDatabusDto;
 import com.java110.dto.file.FileDto;
 import com.java110.dto.machine.MachineDto;
 import com.java110.dto.machine.MachineRecordDto;
@@ -24,8 +26,10 @@ import com.java110.intf.common.IFileInnerServiceSMO;
 import com.java110.intf.common.IFileRelInnerServiceSMO;
 import com.java110.intf.common.IMachineInnerServiceSMO;
 import com.java110.intf.common.IMachineRecordInnerServiceSMO;
+import com.java110.intf.job.IDataBusInnerServiceSMO;
 import com.java110.po.file.FileRelPo;
 import com.java110.po.machine.MachineRecordPo;
+import com.java110.utils.constant.BusinessTypeConstant;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
 import com.java110.utils.util.DateUtil;
@@ -58,6 +62,10 @@ public class SaveMachineRecordBMOImpl implements ISaveMachineRecordBMO {
     @Autowired
     private IMachineInnerServiceSMO machineInnerServiceSMOImpl;
 
+    @Autowired
+    private IDataBusInnerServiceSMO dataBusInnerServiceSMOImpl;
+
+
     @Override
     public ResponseEntity<String> saveRecord(MachineRecordDto machineRecordDto) {
         machineRecordDto.setMachineRecordId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_machineRecordId));
@@ -97,9 +105,12 @@ public class SaveMachineRecordBMOImpl implements ISaveMachineRecordBMO {
 
         int count = machineRecordInnerServiceSMOImpl.saveMachineRecords(machineRecordPos);
 
-        if (count > 0) {
-            return ResultVo.success();
+        if (count < 1) {
+            return ResultVo.error("上传记录失败");
         }
-        return ResultVo.error("上传记录失败");
+        //传送databus
+        dataBusInnerServiceSMOImpl.customExchange(CustomBusinessDatabusDto.getInstance(
+                BusinessTypeConstant.BUSINESS_TYPE_DATABUS_SEND_OPEN_LOG, BeanConvertUtil.beanCovertJson(machineRecordPo)));
+        return ResultVo.success();
     }
 }

+ 10 - 0
service-job/src/main/java/com/java110/job/adapt/DatabusAdaptImpl.java

@@ -17,9 +17,11 @@ package com.java110.job.adapt;
 
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.client.RestTemplate;
+import com.java110.dto.businessDatabus.CustomBusinessDatabusDto;
 import com.java110.dto.tempCarFeeConfig.TempCarPayOrderDto;
 import com.java110.entity.order.Business;
 import com.java110.job.adapt.hcIot.GetToken;
+import com.java110.po.machine.MachineRecordPo;
 import com.java110.vo.ResultVo;
 import org.springframework.http.HttpHeaders;
 
@@ -86,6 +88,7 @@ public abstract class DatabusAdaptImpl implements IDatabusAdapt {
     public ResultVo getTempCarFeeOrder(TempCarPayOrderDto tempCarPayOrderDto) {
         return new ResultVo(ResultVo.CODE_OK, ResultVo.MSG_OK);
     }
+
     /**
      * 查询 临时车待支付订单
      *
@@ -107,5 +110,12 @@ public abstract class DatabusAdaptImpl implements IDatabusAdapt {
     @Override
     public void execute(Business business, List<Business> businesses) throws Exception {
 
+    }
+    /**
+     * 手工 送数据
+     * @param customBusinessDatabusDto
+     */
+    public void customExchange(CustomBusinessDatabusDto customBusinessDatabusDto){
+
     }
 }

+ 9 - 0
service-job/src/main/java/com/java110/job/adapt/IDatabusAdapt.java

@@ -16,8 +16,10 @@
 package com.java110.job.adapt;
 
 import com.alibaba.fastjson.JSONObject;
+import com.java110.dto.businessDatabus.CustomBusinessDatabusDto;
 import com.java110.dto.tempCarFeeConfig.TempCarPayOrderDto;
 import com.java110.entity.order.Business;
+import com.java110.po.machine.MachineRecordPo;
 import com.java110.vo.ResultVo;
 
 import java.util.List;
@@ -58,4 +60,11 @@ public interface IDatabusAdapt {
     ResultVo getTempCarFeeOrder(TempCarPayOrderDto tempCarPayOrderDto);
 
     ResultVo notifyTempCarFeeOrder(TempCarPayOrderDto tempCarPayOrderDto);
+
+
+    /**
+     * 手工 送数据
+     * @param customBusinessDatabusDto
+     */
+    void customExchange(CustomBusinessDatabusDto customBusinessDatabusDto);
 }

+ 24 - 0
service-job/src/main/java/com/java110/job/smo/impl/DataBusInnerServiceSMOImpl.java

@@ -4,6 +4,7 @@ package com.java110.job.smo.impl;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.base.smo.BaseServiceSMO;
 import com.java110.dto.businessDatabus.BusinessDatabusDto;
+import com.java110.dto.businessDatabus.CustomBusinessDatabusDto;
 import com.java110.dto.tempCarFeeConfig.TempCarPayOrderDto;
 import com.java110.entity.order.Business;
 import com.java110.intf.job.IDataBusInnerServiceSMO;
@@ -35,6 +36,7 @@ public class DataBusInnerServiceSMOImpl extends BaseServiceSMO implements IDataB
     public static final String DEFAULT_RESEND_IOT_PROTOCOL = "reSendIotAdapt";//重新送数据
     public static final String DEFAULT_GET_TEMP_CAR_FEE_ORDER_PROTOCOL = "getTempCarFeeOrderAdapt";//重新送数据
     public static final String DEFAULT_NOTIFY_TEMP_CAR_FEE_ORDER_PROTOCOL = "notifyTempCarFeeOrderAdapt";//重新送数据
+    public static final String DEFAULT_DEFAULT_SEND_MACHINE_RECORD = "defaultSendMachineRecordAdapt";//默认设备记录适配器
 
 
     @Override
@@ -79,6 +81,28 @@ public class DataBusInnerServiceSMOImpl extends BaseServiceSMO implements IDataB
         return databusAdaptImpl.notifyTempCarFeeOrder(tempCarPayOrderDto);
     }
 
+    /**
+     * 门禁开门记录
+     *
+     * @param customBusinessDatabusDto
+     * @return
+     */
+    @Override
+    public void customExchange(@RequestBody CustomBusinessDatabusDto customBusinessDatabusDto) {
+        IDatabusAdapt databusAdaptImpl = null;
+        List<BusinessDatabusDto> databusDtos = DatabusCache.getDatabuss();
+        for (BusinessDatabusDto databusDto : databusDtos) {
+            try {
+                if (customBusinessDatabusDto.getBusinessTypeCd().equals(databusDto.getBusinessTypeCd())) {
+                    databusAdaptImpl = ApplicationContextFactory.getBean(databusDto.getBeanName(), IDatabusAdapt.class);
+                    databusAdaptImpl.customExchange(customBusinessDatabusDto);
+                }
+            } catch (Exception e) {
+                logger.error("执行databus失败", e);
+            }
+        }
+    }
+
     /**
      * 处理业务类
      *