From 80324c33a1553aecf672a58f249207b7eb66dfdc Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期日, 26 一月 2020 00:45:28 +0800
Subject: [PATCH] 开发 道闸 开门接口 未开发完成
---
Api/src/main/java/com/java110/api/listener/machineTranslate/MachineRoadGateOpenListener.java | 191 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 188 insertions(+), 3 deletions(-)
diff --git a/Api/src/main/java/com/java110/api/listener/machineTranslate/MachineRoadGateOpenListener.java b/Api/src/main/java/com/java110/api/listener/machineTranslate/MachineRoadGateOpenListener.java
index 6118793..e2bfd50 100644
--- a/Api/src/main/java/com/java110/api/listener/machineTranslate/MachineRoadGateOpenListener.java
+++ b/Api/src/main/java/com/java110/api/listener/machineTranslate/MachineRoadGateOpenListener.java
@@ -1,15 +1,24 @@
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.core.factory.GenerateCodeFactory;
import com.java110.core.smo.hardwareAdapation.ICarBlackWhiteInnerServiceSMO;
+import com.java110.core.smo.hardwareAdapation.ICarInoutInnerServiceSMO;
import com.java110.core.smo.hardwareAdapation.IMachineInnerServiceSMO;
import com.java110.dto.hardwareAdapation.CarBlackWhiteDto;
+import com.java110.dto.hardwareAdapation.CarInoutDto;
import com.java110.dto.hardwareAdapation.MachineDto;
+import com.java110.entity.center.AppService;
import com.java110.event.service.api.ServiceDataFlowEvent;
+import com.java110.utils.constant.BusinessTypeConstant;
+import com.java110.utils.constant.CommonConstant;
import com.java110.utils.constant.ServiceCodeMachineTranslateConstant;
import com.java110.utils.util.Assert;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.DateUtil;
import com.java110.utils.util.StringUtil;
import com.java110.vo.api.machine.MachineResDataVo;
import org.springframework.beans.factory.annotation.Autowired;
@@ -18,6 +27,7 @@
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
+import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -41,6 +51,9 @@
@Autowired
private IMachineInnerServiceSMO machineInnerServiceSMOImpl;
+
+ @Autowired
+ private ICarInoutInnerServiceSMO carInoutInnerServiceSMOImpl;
@Autowired
private ICarBlackWhiteInnerServiceSMO carBlackWhiteInnerServiceSMOImpl;
@@ -86,9 +99,110 @@
//杩涘叆
if (MACHINE_DIRECTION_IN.equals(direction)) {
- dealCarIn(context, reqJson, machineDtos.get(0), communityId, machineCode);
+ dealCarIn(event, context, reqJson, machineDtos.get(0), communityId);
+ } else {
+ dealCarOut(event, context, reqJson, machineDtos.get(0), communityId);
+ }
+ }
+
+ /**
+ * 杞﹁締鍑哄満
+ *
+ * @param event
+ * @param context
+ * @param reqJson
+ * @param machineDto
+ * @param communityId
+ */
+ private void dealCarOut(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson, MachineDto machineDto, String communityId) {
+
+ //棣栧厛鏌ヨ鏄惁杞﹁締鏈夎繘鍦�
+ CarInoutDto carInoutDto = new CarInoutDto();
+ carInoutDto.setStates(new String[]{"100300", "100400", "100600"});
+ carInoutDto.setCommunityId(communityId);
+ carInoutDto.setCarNum(reqJson.getString("carNum"));
+ List<CarInoutDto> carInoutDtos = carInoutInnerServiceSMOImpl.queryCarInouts(carInoutDto);
+
+ if (carInoutDtos == null || carInoutDtos.size() < 1) {//鏁版嵁鏈夐棶棰橈紝 鐩存帴鍑哄満
+ context.setResponseEntity(MachineResDataVo.getResData(MachineResDataVo.CODE_SUCCESS, "鏁版嵁鏈夐棶棰橈紝鏈煡鍒板叆鍦鸿褰曪紝鐩存帴鏀捐"));
+ return;
}
+ CarInoutDto tmpCarInoutDto = carInoutDtos.get(0);
+ reqJson.put("inoutId", tmpCarInoutDto.getInoutId());
+
+ if (!"100400".equals(tmpCarInoutDto.getState())) {
+
+ dealCarOutIncomplete(event, context, reqJson, tmpCarInoutDto, machineDto);
+ return;
+ }
+
+ modifyCarInoutInfo(event, context, reqJson, tmpCarInoutDto, machineDto);
+ ResponseEntity<String> responseEntity = context.getResponseEntity();
+
+ if (responseEntity.getStatusCode() != HttpStatus.OK) {
+ context.setResponseEntity(MachineResDataVo.getResData(MachineResDataVo.CODE_ERROR, "鍚庡彴澶勭悊鏁版嵁寮傚父" + responseEntity.getBody()));
+ return;
+ }
+ context.setResponseEntity(MachineResDataVo.getResData(MachineResDataVo.CODE_SUCCESS, "鎴愬姛"));
+ }
+
+ /**
+ * 澶勭悊杞﹁締鏈畬鎴愭敮浠樺嚭鍦哄鐞�
+ *
+ * @param event
+ * @param context
+ * @param tmpCarInoutDto
+ * @param machineDto
+ */
+ private void dealCarOutIncomplete(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson, CarInoutDto tmpCarInoutDto, MachineDto machineDto) {
+ //鍒ゆ柇杞﹁締鏄惁鍦ㄧ櫧鍚嶅崟涓�
+ String carNum = reqJson.getString("carNum");
+ CarBlackWhiteDto carBlackWhiteDto = new CarBlackWhiteDto();
+ carBlackWhiteDto.setCommunityId(tmpCarInoutDto.getCommunityId());
+ carBlackWhiteDto.setCarNum(carNum);
+ carBlackWhiteDto.setBlackWhite(CAR_WHITE);
+ int count = carBlackWhiteInnerServiceSMOImpl.queryCarBlackWhitesCount(carBlackWhiteDto);
+ if (count > 0) {
+ modifyCarInoutInfo(event, context, reqJson, tmpCarInoutDto, machineDto);
+ context.setResponseEntity(MachineResDataVo.getResData(MachineResDataVo.CODE_SUCCESS, "鐧藉悕鍗曚腑鐩存帴鏀捐"));
+ return;
+ }
+
+ //鍒ゆ柇杞﹁締鍑虹鍜屽嚭鍞� 鏃堕棿鏄惁鍒版湡
+
+
+ context.setResponseEntity(MachineResDataVo.getResData(MachineResDataVo.CODE_ERROR, "杞﹁締鏈敮浠橈紝璇峰厛鏀粯"));
+ }
+
+ private void modifyCarInoutInfo(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson, CarInoutDto tmpCarInoutDto, MachineDto machineDto) {
+ HttpHeaders header = new HttpHeaders();
+ context.getRequestCurrentHeaders().put(CommonConstant.HTTP_ORDER_TYPE_CD, "D");
+ JSONArray businesses = new JSONArray();
+ AppService service = event.getAppService();
+ //娣诲姞鍗曞厓淇℃伅
+ businesses.add(modifyCarInout(reqJson, context, tmpCarInoutDto));
+ reqJson.put("inoutId", tmpCarInoutDto.getInoutId());
+ businesses.add(addCarInoutDetail(reqJson, context, tmpCarInoutDto.getCommunityId(), machineDto));
+ JSONObject paramInObj = super.restToCenterProtocol(businesses, context.getRequestCurrentHeaders());
+ //灏� rest header 淇℃伅浼犻�掑埌涓嬪眰鏈嶅姟涓幓
+ super.freshHttpHeader(header, context.getRequestCurrentHeaders());
+ ResponseEntity<String> responseEntity = this.callService(context, service.getServiceCode(), paramInObj);
+ context.setResponseEntity(responseEntity);
+ }
+
+ private Object modifyCarInout(JSONObject reqJson, DataFlowContext context, CarInoutDto carInoutDto) {
+ JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
+ business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_UPDATE_CAR_INOUT);
+ business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
+ business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
+ JSONObject businessCarInout = new JSONObject();
+ businessCarInout.putAll(BeanConvertUtil.beanCovertMap(carInoutDto));
+ businessCarInout.put("state", "100500");
+ businessCarInout.put("outTime", DateUtil.getFormatTimeString(new Date(), DateUtil.DATE_FORMATE_STRING_A));
+ //璁$畻 搴旀敹閲戦
+ business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessCarInout", businessCarInout);
+ return business;
}
/**
@@ -97,9 +211,8 @@
* @param reqJson
* @param machineDto
* @param communityId
- * @param machineCode
*/
- private void dealCarIn(DataFlowContext context, JSONObject reqJson, MachineDto machineDto, String communityId, String machineCode) {
+ private void dealCarIn(ServiceDataFlowEvent event, DataFlowContext context, JSONObject reqJson, MachineDto machineDto, String communityId) {
//杞﹁締鏄惁榛戝悕鍗� 杞﹁締
String carNum = reqJson.getString("carNum");
CarBlackWhiteDto carBlackWhiteDto = new CarBlackWhiteDto();
@@ -112,8 +225,80 @@
return;
}
+ HttpHeaders header = new HttpHeaders();
+ context.getRequestCurrentHeaders().put(CommonConstant.HTTP_ORDER_TYPE_CD, "D");
+ JSONArray businesses = new JSONArray();
+
+ AppService service = event.getAppService();
+
+ //娣诲姞鍗曞厓淇℃伅
+ businesses.add(addCarInout(reqJson, context, communityId));
+ businesses.add(addCarInoutDetail(reqJson, context, communityId, machineDto));
+
+ JSONObject paramInObj = super.restToCenterProtocol(businesses, context.getRequestCurrentHeaders());
+
+ //灏� rest header 淇℃伅浼犻�掑埌涓嬪眰鏈嶅姟涓幓
+ super.freshHttpHeader(header, context.getRequestCurrentHeaders());
+
+ ResponseEntity<String> responseEntity = this.callService(context, service.getServiceCode(), paramInObj);
+ if (responseEntity.getStatusCode() != HttpStatus.OK) {
+ context.setResponseEntity(MachineResDataVo.getResData(MachineResDataVo.CODE_ERROR, responseEntity.getBody()));
+ return;
+ }
+ context.setResponseEntity(MachineResDataVo.getResData(MachineResDataVo.CODE_SUCCESS, "鎴愬姛"));
+ }
+ /**
+ * 娣诲姞灏忓尯淇℃伅
+ *
+ * @param paramInJson 鎺ュ彛璋冪敤鏀句紶鍏ュ叆鍙�
+ * @param dataFlowContext 鏁版嵁涓婁笅鏂�
+ * @return 璁㈠崟鏈嶅姟鑳藉鎺ュ彈鐨勬姤鏂�
+ */
+ private JSONObject addCarInout(JSONObject paramInJson, DataFlowContext dataFlowContext, String communityId) {
+
+ paramInJson.put("inoutId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_inoutId));
+ JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
+ business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_CAR_INOUT);
+ business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
+ business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
+ JSONObject businessCarInout = new JSONObject();
+ businessCarInout.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));
+ //璁$畻 搴旀敹閲戦
+ business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessCarInout", businessCarInout);
+ return business;
+ }
+
+ /**
+ * 娣诲姞灏忓尯淇℃伅
+ *
+ * @param paramInJson 鎺ュ彛璋冪敤鏀句紶鍏ュ叆鍙�
+ * @param dataFlowContext 鏁版嵁涓婁笅鏂�
+ * @return 璁㈠崟鏈嶅姟鑳藉鎺ュ彈鐨勬姤鏂�
+ */
+ private JSONObject addCarInoutDetail(JSONObject paramInJson, DataFlowContext dataFlowContext, String communityId, MachineDto machineDto) {
+
+
+ JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
+ business.put(CommonConstant.HTTP_BUSINESS_TYPE_CD, BusinessTypeConstant.BUSINESS_TYPE_SAVE_CAR_INOUT);
+ business.put(CommonConstant.HTTP_SEQ, DEFAULT_SEQ);
+ business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
+ JSONObject 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", "-1");
+ //璁$畻 搴旀敹閲戦
+ business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessCarInoutDetail", businessCarInoutDetail);
+ return business;
}
@Override
--
Gitblit v1.8.0