java110 лет назад: 4
Родитель
Сommit
36c0dfe99d

+ 30 - 16
java110-bean/src/main/java/com/java110/dto/businessTableHis/BusinessTableHisDto.java

@@ -1,6 +1,7 @@
 package com.java110.dto.businessTableHis;
 
 import com.java110.dto.PageDto;
+
 import java.io.Serializable;
 import java.util.Date;
 
@@ -14,12 +15,14 @@ import java.util.Date;
  **/
 public class BusinessTableHisDto extends PageDto implements Serializable {
 
+    public static final String ACTION_OBJ_HIS_NO = "NO";
+
     private String actionObj;
-private String businessTypeCd;
-private String hisId;
-private String action;
-private String remark;
-private String actionObjHis;
+    private String businessTypeCd;
+    private String hisId;
+    private String action;
+    private String remark;
+    private String actionObjHis;
 
 
     private Date createTime;
@@ -30,37 +33,48 @@ private String actionObjHis;
     public String getActionObj() {
         return actionObj;
     }
-public void setActionObj(String actionObj) {
+
+    public void setActionObj(String actionObj) {
         this.actionObj = actionObj;
     }
-public String getBusinessTypeCd() {
+
+    public String getBusinessTypeCd() {
         return businessTypeCd;
     }
-public void setBusinessTypeCd(String businessTypeCd) {
+
+    public void setBusinessTypeCd(String businessTypeCd) {
         this.businessTypeCd = businessTypeCd;
     }
-public String getHisId() {
+
+    public String getHisId() {
         return hisId;
     }
-public void setHisId(String hisId) {
+
+    public void setHisId(String hisId) {
         this.hisId = hisId;
     }
-public String getAction() {
+
+    public String getAction() {
         return action;
     }
-public void setAction(String action) {
+
+    public void setAction(String action) {
         this.action = action;
     }
-public String getRemark() {
+
+    public String getRemark() {
         return remark;
     }
-public void setRemark(String remark) {
+
+    public void setRemark(String remark) {
         this.remark = remark;
     }
-public String getActionObjHis() {
+
+    public String getActionObjHis() {
         return actionObjHis;
     }
-public void setActionObjHis(String actionObjHis) {
+
+    public void setActionObjHis(String actionObjHis) {
         this.actionObjHis = actionObjHis;
     }
 

+ 1 - 0
java110-bean/src/main/java/com/java110/dto/machine/MachineTranslateDto.java

@@ -39,6 +39,7 @@ public class MachineTranslateDto extends PageDto implements Serializable {
     public static final String CMD_ADD_PARKING_AREA = "601";
     public static final String CMD_UPDATE_PARKING_AREA = "602";
     public static final String CMD_DELETE_PARKING_AREA = "603";
+    public static final String CMD_ADD_PARKING_AREA_TEXT = "604";
     public static final String CMD_ADD_OWNER_CAR = "701";
     public static final String CMD_UPDATE_OWNER_CAR = "702";
     public static final String CMD_DELETE_OWNER_CAR = "703";

+ 3 - 0
service-job/src/main/java/com/java110/job/adapt/hcIot/IotConstant.java

@@ -59,6 +59,9 @@ public class IotConstant {
     //删除停车场
     public static final String DELETE_PARKING_AREA_URL = "/extApi/parkingArea/deleteParkingArea";
 
+    //添加停车场问候语
+    public static final String ADD_PARKING_AREA_TEXT_URL = "/extApi/parkingAreaText/addParkingAreaText";
+
     //添加车辆
     public static final String ADD_OWNER_CAR_URL = "/extApi/car/addCar";
     //修改车辆

+ 6 - 0
service-job/src/main/java/com/java110/job/adapt/hcIot/asyn/IIotSendAsyn.java

@@ -158,4 +158,10 @@ public interface IIotSendAsyn {
     void deleteAttendance(JSONObject postParameters);
 
     void deleteAttendanceStaff(JSONObject postParameters);
+
+    /**
+     * 添加 道闸问候语
+     * @param postParameters
+     */
+    void addParkingAreaText(JSONObject postParameters);
 }

+ 46 - 0
service-job/src/main/java/com/java110/job/adapt/hcIot/asyn/impl/IotSendAsynImpl.java

@@ -1210,6 +1210,52 @@ public class IotSendAsynImpl implements IIotSendAsyn {
         }
     }
 
+    @Override
+    public void addParkingAreaText(JSONObject postParameters) {
+        MachineTranslateDto machineTranslateDto = getMachineTranslateDto(postParameters, MachineTranslateDto.CMD_ADD_PARKING_AREA_TEXT,
+                DEFAULT_MACHINE_CODE,
+                DEFAULT_MACHINE_ID,
+                "extPaId",
+                "textId",
+                MachineTranslateDto.TYPE_PARKING_AREA);
+        ResponseEntity<String> responseEntity = null;
+        String url = IotConstant.getUrl(IotConstant.ADD_PARKING_AREA_TEXT_URL);
+        try {
+            postParameters.put("taskId", machineTranslateDto.getMachineTranslateId());
+            HttpEntity httpEntity = new HttpEntity(postParameters.toJSONString(), getHeaders());
+            responseEntity = outRestTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class);
+
+            logger.debug("调用HC IOT信息:" + responseEntity);
+
+            if (responseEntity.getStatusCode() != HttpStatus.OK) {
+                machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR);
+                machineTranslateDto.setRemark(responseEntity.getBody());
+                saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url);
+                return;
+            }
+            JSONObject tokenObj = JSONObject.parseObject(responseEntity.getBody());
+
+            if (!tokenObj.containsKey("code") || ResultVo.CODE_OK != tokenObj.getInteger("code")) {
+                machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR);
+                machineTranslateDto.setRemark(tokenObj.getString("msg"));
+                //保存 失败报文
+                saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url);
+
+                return;
+            }
+        } catch (Exception e) {
+            machineTranslateDto.setState(MachineTranslateDto.STATE_ERROR);
+            machineTranslateDto.setRemark(e.getLocalizedMessage());
+            //保存 失败报文
+            saveTranslateError(machineTranslateDto, postParameters.toJSONString(), responseEntity != null ? responseEntity.getBody() : "", url);
+
+            return;
+        } finally {
+            saveTranslateLog(machineTranslateDto);
+            refreshAccessToken(responseEntity);
+        }
+    }
+
     @Override
     @Async
     public void updateAttendance(JSONObject postParameters) {

+ 114 - 0
service-job/src/main/java/com/java110/job/adapt/hcIot/parkingArea/AddParkingAreaTextToIotAdapt.java

@@ -0,0 +1,114 @@
+/*
+ * Copyright 2017-2020 吴学文 and java110 team.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.java110.job.adapt.hcIot.parkingArea;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.java110.dto.parkingAreaText.ParkingAreaTextDto;
+import com.java110.entity.order.Business;
+import com.java110.intf.community.IParkingAreaTextV1InnerServiceSMO;
+import com.java110.intf.user.IOwnerInnerServiceSMO;
+import com.java110.job.adapt.DatabusAdaptImpl;
+import com.java110.job.adapt.hcIot.asyn.IIotSendAsyn;
+import com.java110.po.parkingAreaText.ParkingAreaTextPo;
+import com.java110.utils.util.Assert;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * HC iot 停车场问候语同步适配器
+ * <p>
+ * 接口协议地址: https://gitee.com/java110/MicroCommunityThings/blob/master/back/docs/api.md
+ *
+ * @desc add by 吴学文 18:58
+ */
+@Component(value = "addParkingAreaTextToIotAdapt")
+public class AddParkingAreaTextToIotAdapt extends DatabusAdaptImpl {
+
+    @Autowired
+    private IIotSendAsyn hcParkingAreaTextAsynImpl;
+
+
+    @Autowired
+    private IParkingAreaTextV1InnerServiceSMO parkingAreaTextInnerServiceSMOImpl;
+
+
+    @Autowired
+    private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
+
+
+    /**
+     * accessToken={access_token}
+     * &extCommunityUuid=01000
+     * &extCommunityId=1
+     * &devSn=111111111
+     * &name=设备名称
+     * &positionType=0
+     * &positionUuid=1
+     *
+     * @param business   当前处理业务
+     * @param businesses 所有业务信息
+     */
+    @Override
+    public void execute(Business business, List<Business> businesses) {
+        JSONObject data = business.getData();
+        if (data.containsKey(ParkingAreaTextPo.class.getSimpleName())) {
+            Object bObj = data.get(ParkingAreaTextPo.class.getSimpleName());
+            JSONArray businessParkingAreaTexts = null;
+            if (bObj instanceof JSONObject) {
+                businessParkingAreaTexts = new JSONArray();
+                businessParkingAreaTexts.add(bObj);
+            } else if (bObj instanceof List) {
+                businessParkingAreaTexts = JSONArray.parseArray(JSONObject.toJSONString(bObj));
+            } else {
+                businessParkingAreaTexts = (JSONArray) bObj;
+            }
+            //JSONObject businessParkingAreaText = data.getJSONObject("businessParkingAreaText");
+            for (int bParkingAreaTextIndex = 0; bParkingAreaTextIndex < businessParkingAreaTexts.size(); bParkingAreaTextIndex++) {
+                JSONObject businessParkingAreaText = businessParkingAreaTexts.getJSONObject(bParkingAreaTextIndex);
+                doSendParkingAreaText(business, businessParkingAreaText);
+            }
+        }
+    }
+
+    private void doSendParkingAreaText(Business business, JSONObject businessParkingAreaText) {
+
+        if (!businessParkingAreaText.containsKey("textId")) {
+            return;
+        }
+
+        ParkingAreaTextDto parkingAreaTextDto = new ParkingAreaTextDto();
+        parkingAreaTextDto.setTextId(businessParkingAreaText.getString("textId"));
+        parkingAreaTextDto.setCommunityId(businessParkingAreaText.getString("communityId"));
+        List<ParkingAreaTextDto> parkingAreaTextDtos = parkingAreaTextInnerServiceSMOImpl.queryParkingAreaTexts(parkingAreaTextDto);
+
+        Assert.listOnlyOne(parkingAreaTextDtos, "未包含问候语");
+
+        JSONObject postParameters = new JSONObject();
+
+        postParameters.put("typeCd", parkingAreaTextDtos.get(0).getTypeCd());
+        postParameters.put("text1", parkingAreaTextDtos.get(0).getText1());
+        postParameters.put("text2", parkingAreaTextDtos.get(0).getText2());
+        postParameters.put("text3", parkingAreaTextDtos.get(0).getText3());
+        postParameters.put("text4", parkingAreaTextDtos.get(0).getText4());
+        postParameters.put("voice", parkingAreaTextDtos.get(0).getVoice());
+        postParameters.put("extPaId", parkingAreaTextDtos.get(0).getPaId());
+        postParameters.put("extCommunityId", parkingAreaTextDtos.get(0).getCommunityId());
+        hcParkingAreaTextAsynImpl.addParkingAreaText(postParameters);
+    }
+}

+ 6 - 14
service-order/src/main/java/com/java110/order/smo/impl/OIdServiceSMOImpl.java

@@ -4,19 +4,13 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.client.RestTemplate;
 import com.java110.core.factory.GenerateCodeFactory;
-import com.java110.dto.businessDatabus.BusinessDatabusDto;
 import com.java110.dto.businessTableHis.BusinessTableHisDto;
 import com.java110.dto.order.OrderDto;
 import com.java110.dto.order.OrderItemDto;
-import com.java110.entity.order.Business;
-import com.java110.intf.job.IDataBusInnerServiceSMO;
 import com.java110.order.dao.ICenterServiceDAO;
 import com.java110.order.smo.IAsynNotifySubService;
 import com.java110.order.smo.IOIdServiceSMO;
 import com.java110.utils.cache.BusinessTableHisCache;
-import com.java110.utils.cache.DatabusCache;
-import com.java110.utils.cache.MappingCache;
-import com.java110.utils.constant.DomainContant;
 import com.java110.utils.constant.StatusConstant;
 import com.java110.utils.util.BeanConvertUtil;
 import com.java110.utils.util.DateUtil;
@@ -49,7 +43,6 @@ public class OIdServiceSMOImpl implements IOIdServiceSMO {
     public static final String SERVICE_NAME = "SERVICE_NAME";
 
 
-
     @Autowired
     private ICenterServiceDAO centerServiceDAOImpl;
 
@@ -60,8 +53,6 @@ public class OIdServiceSMOImpl implements IOIdServiceSMO {
     private IAsynNotifySubService asynNotifySubServiceImpl;
 
 
-
-
     @Override
     public ResponseEntity<String> createOId(OrderDto orderDto) {
 
@@ -341,10 +332,12 @@ public class OIdServiceSMOImpl implements IOIdServiceSMO {
         business.put("bId", orderItemDto.getbId());
         centerServiceDAOImpl.saveBusiness(business);
 
-        //通知子服务生成 business 数据
-        doNoticeServiceGeneratorBusiness(orderItemDto, businessTableHisDto);
-
+        //通知子服务生成 business 数据,如果配置NO 不通知生成 business 数据
+        if (BusinessTableHisDto.ACTION_OBJ_HIS_NO.equals(businessTableHisDto.getActionObjHis())) {
+            return ResultVo.createResponseEntity(ResultVo.CODE_OK, ResultVo.MSG_OK);
+        }
 
+        doNoticeServiceGeneratorBusiness(orderItemDto, businessTableHisDto);
         return ResultVo.createResponseEntity(ResultVo.CODE_OK, ResultVo.MSG_OK);
     }
 
@@ -395,11 +388,10 @@ public class OIdServiceSMOImpl implements IOIdServiceSMO {
         //删除 事务日志
         //centerServiceDAOImpl.deleteUnItemLog(info);
 
-        asynNotifySubServiceImpl.notifyDatabus(orderItemMaps,orderDto);
+        asynNotifySubServiceImpl.notifyDatabus(orderItemMaps, orderDto);
 
         return ResultVo.createResponseEntity(ResultVo.CODE_OK, ResultVo.MSG_OK);
     }
 
 
-
 }