From 0b04f664887c73e90bf684a4e69c0fdbfe26349d Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期三, 29 三月 2023 13:35:20 +0800
Subject: [PATCH] Merge branch 'master' of http://git.homecommunity.cn/supervip/MicroCommunity
---
service-community/src/main/java/com/java110/community/cmd/visit/SaveVisitCmd.java | 389 ++++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 295 insertions(+), 94 deletions(-)
diff --git a/service-community/src/main/java/com/java110/community/cmd/visit/SaveVisitCmd.java b/service-community/src/main/java/com/java110/community/cmd/visit/SaveVisitCmd.java
index d514b4d..c0b33dd 100644
--- a/service-community/src/main/java/com/java110/community/cmd/visit/SaveVisitCmd.java
+++ b/service-community/src/main/java/com/java110/community/cmd/visit/SaveVisitCmd.java
@@ -9,28 +9,16 @@
import com.java110.core.factory.CommunitySettingFactory;
import com.java110.core.factory.GenerateCodeFactory;
import com.java110.core.smo.IPhotoSMO;
-import com.java110.dto.file.FileDto;
-import com.java110.dto.machine.CarBlackWhiteDto;
-import com.java110.dto.owner.OwnerCarDto;
+import com.java110.dto.oaWorkflow.OaWorkflowDto;
+import com.java110.dto.oaWorkflowXml.OaWorkflowXmlDto;
import com.java110.dto.parking.ParkingSpaceDto;
import com.java110.dto.visit.VisitDto;
import com.java110.dto.visitSetting.VisitSettingDto;
-import com.java110.intf.common.ICarBlackWhiteInnerServiceSMO;
-import com.java110.intf.common.IFileInnerServiceSMO;
-import com.java110.intf.common.IFileRelInnerServiceSMO;
-import com.java110.intf.community.IParkingSpaceInnerServiceSMO;
-import com.java110.intf.community.IVisitInnerServiceSMO;
-import com.java110.intf.community.IVisitSettingV1InnerServiceSMO;
-import com.java110.intf.community.IVisitV1InnerServiceSMO;
-import com.java110.intf.user.ICarBlackWhiteV1InnerServiceSMO;
-import com.java110.intf.user.IOwnerCarAttrInnerServiceSMO;
-import com.java110.intf.user.IOwnerCarInnerServiceSMO;
-import com.java110.intf.user.IOwnerCarV1InnerServiceSMO;
-import com.java110.po.car.CarBlackWhitePo;
-import com.java110.po.car.OwnerCarPo;
-import com.java110.po.file.FileRelPo;
+import com.java110.intf.common.*;
+import com.java110.intf.community.*;
+import com.java110.intf.oa.IOaWorkflowInnerServiceSMO;
+import com.java110.intf.oa.IOaWorkflowXmlInnerServiceSMO;
import com.java110.po.owner.VisitPo;
-import com.java110.po.ownerCarAttr.OwnerCarAttrPo;
import com.java110.po.parking.ParkingSpacePo;
import com.java110.utils.exception.CmdException;
import com.java110.utils.util.Assert;
@@ -38,15 +26,18 @@
import com.java110.utils.util.DateUtil;
import com.java110.utils.util.StringUtil;
import com.java110.vo.ResultVo;
-import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.List;
-import java.util.Random;
+import java.text.ParseException;
+import java.util.*;
+/**
+ * 璁垮鐧昏
+ *
+ * @author fqz
+ * @date 2023-02-27 10:23
+ */
@Java110Cmd(serviceCode = "visit.saveVisit")
public class SaveVisitCmd extends Cmd {
@@ -63,20 +54,18 @@
private IParkingSpaceInnerServiceSMO parkingSpaceInnerServiceSMOImpl;
@Autowired
- private IOwnerCarV1InnerServiceSMO ownerCarV1InnerServiceSMOImpl;
-
- @Autowired
- private IOwnerCarAttrInnerServiceSMO ownerCarAttrInnerServiceSMOImpl;
-
- @Autowired
- private IOwnerCarInnerServiceSMO ownerCarInnerServiceSMOImpl;
-
- @Autowired
private IVisitSettingV1InnerServiceSMO visitSettingV1InnerServiceSMOImpl;
@Autowired
- private ICarBlackWhiteV1InnerServiceSMO carBlackWhiteV1InnerServiceSMOImpl;
+ private IOaWorkflowInnerServiceSMO oaWorkflowInnerServiceSMOImpl;
+ @Autowired
+ private IOaWorkflowActivitiInnerServiceSMO oaWorkflowActivitiInnerServiceSMOImpl;
+
+ @Autowired
+ private IOaWorkflowXmlInnerServiceSMO oaWorkflowXmlInnerServiceSMOImpl;
+
+ public static final String CODE_PREFIX_ID = "10";
//閿�
public static final String IS_NEED_REVIEW = "IS_NEED_REVIEW";
@@ -100,8 +89,9 @@
@Override
@Java110Transactional
- public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
+ public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException, ParseException {
String userId = context.getReqHeaders().get("user-id");
+ String storeId = context.getReqHeaders().get("store-id");
reqJson.put("vId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_vId));
//闅忚浜烘暟
if (StringUtil.isEmpty(reqJson.getString("entourage"))) {
@@ -116,64 +106,99 @@
throw new CmdException("淇濆瓨璁垮澶辫触");
}
photoSMOImpl.savePhoto(reqJson, reqJson.getString("vId"), reqJson.getString("communityId"));
-
- // 鏄惁闇�瑕佸鏍�
- if (hasAuditVisit(visitPo, reqJson)) {
+ // 璁垮璁板綍鏄惁闇�瑕佸鏍�
+ if (hasAuditVisit(visitPo, reqJson, storeId, userId)) {
return; // 闇�瑕佸鏍哥粨鏉燂紝瀹℃牳鏃跺鐞� 鐩稿簲 閫佸浘鐗� 鍜岃溅鐗屾暟鎹�
}
-
- String faceWay = "Y";
- String carNumWay = "N";
-
- // 鏌ヨ璁垮璁剧疆
+ //鏌ヨ璁垮閰嶇疆淇℃伅
VisitSettingDto visitSettingDto = new VisitSettingDto();
visitSettingDto.setCommunityId(reqJson.getString("communityId"));
List<VisitSettingDto> visitSettingDtos = visitSettingV1InnerServiceSMOImpl.queryVisitSettings(visitSettingDto);
-
- if (visitSettingDtos != null && visitSettingDtos.size() > 0) {
- faceWay = visitSettingDtos.get(0).getFaceWay();
- carNumWay = visitSettingDtos.get(0).getCarNumWay();
- // 鍚屾杞︾墝 杩欓噷闇�瑕佸仠杞﹀満锛屾墍浠ユ病鏈夐厤缃瀹㈣缃紝涓嶅悓姝�
- synchronizedVisitCarNum(visitPo, carNumWay, visitSettingDtos.get(0));
+ //鏈夎溅杈嗕俊鎭殑鎯呭喌涓嬪垽鏂溅杈嗘槸鍚﹂渶瑕佸鏍�
+ if (reqJson.containsKey("carNum") && !StringUtil.isEmpty(reqJson.getString("carNum"))) { //鏈夎溅杈�
+ if (visitSettingDtos != null && visitSettingDtos.size() == 1 && visitSettingDtos.get(0).getCarNumWay().equals("Y")) { //杞﹁締鍚屾 Y 鏄� N 鍚�
+ //鑾峰彇棰勭害杞﹁締鍋滆溅鍦篒D銆侀绾﹁溅杈嗗厤璐规椂闀裤�侀绾﹁溅闄愬埗娆℃暟銆侀绾﹁溅鏄惁瀹℃牳
+ JSONObject visitJson = getVisitCarOperate(reqJson);
+ //杞﹁締鏄惁闇�瑕佸鏍�
+// String isNeedReview = CommunitySettingFactory.getValue(reqJson.getString("communityId"), IS_NEED_REVIEW); //鑾峰彇灏忓尯閰嶇疆閲岃溅杈嗘槸鍚﹂渶瑕佸鏍哥殑鍊�
+ String isNeedReview = visitJson.getString("isNeedReview"); //鑾峰彇杞﹁締鏄惁闇�瑕佸鏍哥殑鍊�
+ if (!StringUtil.isEmpty(isNeedReview) && isNeedReview.equals("0")) { //0琛ㄧず闇�瑕佸鏍� 1琛ㄧず涓嶉渶瑕佸鏍�
+ visitPo = new VisitPo();
+ visitPo.setCarState(VisitDto.CAR_STATE_W); //杞﹁締鐘舵�佷负寰呭鏍哥姸鎬�
+ visitPo.setState(VisitDto.STATE_C); //璁垮璁板綍涓哄鏍搁�氳繃鐘舵��
+ visitPo.setvId(reqJson.getString("vId"));
+ visitPo.setCommunityId(reqJson.getString("communityId"));
+ flag = visitV1InnerServiceSMOImpl.updateVisit(visitPo);
+ if (flag < 1) {
+ throw new CmdException("淇敼璁垮鐘舵�佸け璐�");
+ }
+ } else { //鍏朵粬鎯呭喌榛樿涓鸿溅杈嗗鏍搁�氳繃
+ visitPo = new VisitPo();
+ visitPo.setState(VisitDto.STATE_C); //璁垮璁板綍鐘舵�佸彉涓哄鏍搁�氳繃
+ visitPo.setvId(reqJson.getString("vId"));
+ visitPo.setCommunityId(reqJson.getString("communityId"));
+ JSONObject param = dealVisitorRegistrationTimes(visitJson); //鍒ゆ柇鏄惁瓒呰繃璁垮鐧昏娆℃暟
+ if (param.containsKey("specifiedTimes") && !StringUtil.isEmpty(param.getString("specifiedTimes")) && param.getString("specifiedTimes").equals("true")) { //瓒呰繃杞﹁締鐧昏娆℃暟
+ visitPo.setStateRemark("璁垮淇℃伅鐧昏鎴愬姛,鎮ㄥ凡缁忚秴杩囬绾﹁溅杈嗙櫥璁版鏁伴檺鍒讹紝杞﹁締灏嗘棤娉曞鏍革紒");
+ visitPo.setCarStateRemark("璁垮淇℃伅鐧昏鎴愬姛,鎮ㄥ凡缁忚秴杩囬绾﹁溅杈嗙櫥璁版鏁伴檺鍒讹紝杞﹁締灏嗘棤娉曞鏍革紒");
+ visitPo.setCarState(VisitDto.CAR_STATE_F); //杞﹁締鐘舵�佸彉涓哄鏍告嫆缁�
+ ResponseEntity<String> responseEntity = ResultVo.createResponseEntity(ResultVo.CODE_OK, "璁垮淇℃伅鐧昏鎴愬姛,鎮ㄥ凡缁忚秴杩囬绾﹁溅杈嗙櫥璁版鏁伴檺鍒讹紝杞﹁締灏嗘棤娉曡嚜鍔ㄥ鏍革紒");
+ context.setResponseEntity(responseEntity);
+ flag = visitV1InnerServiceSMOImpl.updateVisit(visitPo);
+ if (flag < 1) {
+ throw new CmdException("淇濆瓨璁垮澶辫触");
+ }
+ } else { //鏈秴杩囪溅杈嗙櫥璁版鏁�
+ //鑾峰彇杞︿綅
+ JSONObject paramJson = dealParkingSpace(visitJson);
+ if (paramJson.containsKey("freeSpace") && !StringUtil.isEmpty(paramJson.getString("freeSpace")) && paramJson.getString("freeSpace").equals("true")) { //鏃犵┖闂茶溅浣�
+ visitPo.setStateRemark("璁垮淇℃伅鐧昏鎴愬姛,褰撳墠鍋滆溅鍦哄凡鏃犵┖闂茶溅浣嶏紝鐧昏杞﹁締灏嗘殏鏃朵笉鑳借繘鍏ュ仠杞﹀満锛岃鎮ㄥ悎鐞嗗畨鎺掑嚭琛屻��");
+ visitPo.setCarStateRemark("璁垮淇℃伅鐧昏鎴愬姛,褰撳墠鍋滆溅鍦哄凡鏃犵┖闂茶溅浣嶏紝鐧昏杞﹁締灏嗘殏鏃朵笉鑳借繘鍏ュ仠杞﹀満锛岃鎮ㄥ悎鐞嗗畨鎺掑嚭琛屻��");
+ visitPo.setCarState(VisitDto.CAR_STATE_F); //杞﹁締鐘舵�佷负瀹℃牳鎷掔粷鐘舵��
+ ResponseEntity<String> responseEntity = ResultVo.createResponseEntity(ResultVo.CODE_OK, "璁垮淇℃伅鐧昏鎴愬姛,褰撳墠鍋滆溅鍦哄凡鏃犵┖闂茶溅浣嶏紝鐧昏杞﹁締灏嗘殏鏃朵笉鑳借繘鍏ュ仠杞﹀満锛岃鎮ㄥ悎鐞嗗畨鎺掑嚭琛屻��");
+ context.setResponseEntity(responseEntity);
+ flag = visitV1InnerServiceSMOImpl.updateVisit(visitPo);
+ if (flag < 1) {
+ throw new CmdException("淇濆瓨璁垮澶辫触");
+ }
+ } else { //鏈夌┖闂茶溅浣�
+ visitPo.setPsId(paramJson.getString("psId"));
+ //澶勭悊棰勭害杞﹀厤璐规椂闀�
+ String freeTime = dealVisitCarFreeTime(visitJson);
+ reqJson.put("freeTime", freeTime);
+ visitPo.setFreeTime(freeTime); //棰勭害杞﹀厤璐规椂闀�
+ visitPo.setCarState(VisitDto.CAR_STATE_C); //杞﹁締鐘舵�佷负瀹℃牳閫氳繃鐘舵��
+ flag = visitV1InnerServiceSMOImpl.updateVisit(visitPo);
+ if (flag < 1) {
+ throw new CmdException("淇敼璁垮鐘舵�佸け璐�");
+ }
+ //淇敼杞︿綅鐘舵��
+ modifyParkingSpaceSate(paramJson);
+ }
+ }
+ }
+ } else if (visitSettingDtos != null && visitSettingDtos.size() == 1 && visitSettingDtos.get(0).getCarNumWay().equals("N")) { //杞﹁締涓嶅悓姝�
+ visitPo = new VisitPo();
+ visitPo.setState(VisitDto.STATE_C);
+ visitPo.setCarState(VisitDto.CAR_STATE_C); //杞﹁締瀹℃牳閫氳繃
+ visitPo.setCarStateRemark("杞﹁締涓嶅悓姝ワ紒");
+ visitPo.setvId(reqJson.getString("vId"));
+ visitPo.setCommunityId(reqJson.getString("communityId"));
+ flag = visitV1InnerServiceSMOImpl.updateVisit(visitPo);
+ if (flag < 1) {
+ throw new CmdException("淇敼璁垮鐘舵�佸け璐�");
+ }
+ }
+ } else { //鏃犺溅杈�
+ visitPo = new VisitPo();
+ visitPo.setState(VisitDto.STATE_C);
+ visitPo.setvId(reqJson.getString("vId"));
+ visitPo.setCommunityId(reqJson.getString("communityId"));
+ flag = visitV1InnerServiceSMOImpl.updateVisit(visitPo);
+ if (flag < 1) {
+ throw new CmdException("淇敼璁垮鐘舵�佸け璐�");
+ }
}
-
- // 鍚屾璁垮浜鸿劯
- synchronousVisitFace(visitPo, faceWay);
-
- }
-
- private void synchronousVisitFace(VisitPo visitPo, String faceWay) {
- if (VisitSettingDto.FACE_WAY_NO.equals(faceWay)) {
- return;
- }
- }
-
- /**
- * 棰勭害杞﹁締 鍔犲叆 鐧藉悕鍗� 鏄渶鍚堥�傜殑
- * 涓嶅簲璇ュ姞鍏ュ埌涓氫富杞﹁締涓�
- * @param visitPo
- * @param carNumWay
- * @param visitSettingDto
- */
- private void synchronizedVisitCarNum(VisitPo visitPo, String carNumWay, VisitSettingDto visitSettingDto) {
- if (VisitSettingDto.CAR_NUM_WAY_NO.equals(carNumWay)) {
- return;
- }
-
- CarBlackWhitePo carBlackWhitePo = new CarBlackWhitePo();
- carBlackWhitePo.setCarNum(visitPo.getCarNum());
- carBlackWhitePo.setBlackWhite(CarBlackWhiteDto.BLACK_WHITE_WHITE);
- carBlackWhitePo.setCommunityId(visitPo.getCommunityId());
- carBlackWhitePo.setPaId(visitSettingDto.getPaId());
- carBlackWhitePo.setBwId(GenerateCodeFactory.getGeneratorId("11"));
- carBlackWhitePo.setStartTime(visitPo.getVisitTime());
- carBlackWhitePo.setEndTime(visitPo.getDepartureTime());
- int flag = carBlackWhiteV1InnerServiceSMOImpl.saveCarBlackWhite(carBlackWhitePo);
- if (flag < 1) {
- throw new CmdException("棰勭害杞﹁締娣诲姞鐧藉悕鍗曞け璐�");
- }
-
-
}
/**
@@ -182,25 +207,201 @@
* @param visitPo
* @param reqJson
*/
- private boolean hasAuditVisit(VisitPo visitPo, JSONObject reqJson) {
-
-
+ private boolean hasAuditVisit(VisitPo visitPo, JSONObject reqJson, String storeId, String userId) {
VisitSettingDto visitSettingDto = new VisitSettingDto();
visitSettingDto.setCommunityId(reqJson.getString("communityId"));
List<VisitSettingDto> visitSettingDtos = visitSettingV1InnerServiceSMOImpl.queryVisitSettings(visitSettingDto);
-
if (visitSettingDtos == null || visitSettingDtos.size() < 1) {
return false;
}
-
// 闇�瑕佸鏍�
- if (VisitSettingDto.AUDIT_WAY_YES.equals(visitSettingDtos.get(0).getAuditWay())) {
+ if (!VisitSettingDto.AUDIT_WAY_YES.equals(visitSettingDtos.get(0).getAuditWay())) {
return false;
}
-
+ //瑙﹀彂 瀹℃壒娴佺▼
+ OaWorkflowDto oaWorkflowDto = new OaWorkflowDto();
+ oaWorkflowDto.setStoreId(storeId);
+ oaWorkflowDto.setFlowId(visitSettingDtos.get(0).getFlowId());
+ List<OaWorkflowDto> oaWorkflowDtos = oaWorkflowInnerServiceSMOImpl.queryOaWorkflows(oaWorkflowDto);
+ Assert.listOnlyOne(oaWorkflowDtos, "娴佺▼涓嶅瓨鍦�");
+ if (!OaWorkflowDto.STATE_COMPLAINT.equals(oaWorkflowDtos.get(0).getState())) {
+ throw new IllegalArgumentException(oaWorkflowDtos.get(0).getFlowName() + "娴佺▼鏈儴缃�");
+ }
+ if (StringUtil.isEmpty(oaWorkflowDtos.get(0).getProcessDefinitionKey())) {
+ throw new IllegalArgumentException(oaWorkflowDtos.get(0).getFlowName() + "娴佺▼鏈儴缃�");
+ }
+ //鍚姩浠诲姟
+ JSONObject flowJson = new JSONObject();
+ flowJson.put("processDefinitionKey", oaWorkflowDtos.get(0).getProcessDefinitionKey());
+ flowJson.put("createUserId", userId);
+ flowJson.put("flowId", oaWorkflowDtos.get(0).getFlowId());
+ flowJson.put("id", visitPo.getvId());
+ flowJson.put("auditMessage", "鎻愪氦瀹℃牳");
+ flowJson.put("storeId", storeId);
+ reqJson.put("processDefinitionKey", oaWorkflowDtos.get(0).getProcessDefinitionKey());
+ JSONObject result = oaWorkflowActivitiInnerServiceSMOImpl.startProcess(flowJson);
+ //鎻愪氦鑰呮彁浜�
+ flowJson = new JSONObject();
+ flowJson.put("processInstanceId", result.getString("processInstanceId"));
+ flowJson.put("createUserId", userId);
+ flowJson.put("nextUserId", nextAuditStaff(storeId, visitSettingDtos.get(0).getFlowId())); // 杩欓噷瑕佹眰娴佺▼ 涓嬩竴澶勭悊浜哄繀椤昏鎸囧畾
+ flowJson.put("storeId", storeId);
+ flowJson.put("id", visitPo.getvId());
+ flowJson.put("flowId", oaWorkflowDtos.get(0).getFlowId());
+ oaWorkflowActivitiInnerServiceSMOImpl.autoFinishFirstTask(flowJson);
+ visitPo = new VisitPo();
+ visitPo.setState(VisitDto.STATE_D);
+ visitPo.setvId(reqJson.getString("vId"));
+ visitPo.setCommunityId(reqJson.getString("communityId"));
+ if (reqJson.containsKey("carNum") && !StringUtil.isEmpty(reqJson.getString("carNum"))) {
+ visitPo.setCarState(VisitDto.CAR_STATE_D);
+ }
+ int flag = visitV1InnerServiceSMOImpl.updateVisit(visitPo);
+ if (flag < 1) {
+ throw new CmdException("淇敼璁垮鐘舵�佸け璐�");
+ }
return true;
-
}
+ private String nextAuditStaff(String storeId, String flowId) {
+ OaWorkflowDto oaWorkflowDto = new OaWorkflowDto();
+ oaWorkflowDto.setFlowId(flowId);
+ oaWorkflowDto.setStoreId(storeId);
+ List<OaWorkflowDto> oaWorkflowDtos = oaWorkflowInnerServiceSMOImpl.queryOaWorkflows(oaWorkflowDto);
+ Assert.listOnlyOne(oaWorkflowDtos, "娴佺▼涓嶅瓨鍦�");
+ OaWorkflowXmlDto oaWorkflowXmlDto = new OaWorkflowXmlDto();
+ oaWorkflowXmlDto.setFlowId(oaWorkflowDtos.get(0).getFlowId());
+ List<OaWorkflowXmlDto> oaWorkflowXmlDtos = oaWorkflowXmlInnerServiceSMOImpl.queryOaWorkflowXmls(oaWorkflowXmlDto);
+ Assert.listOnlyOne(oaWorkflowXmlDtos, "娴佺▼涓嶅瓨鍦�");
+ List<JSONObject> tasks = oaWorkflowActivitiInnerServiceSMOImpl.queryFirstAuditStaff(oaWorkflowXmlDtos.get(0));
+ if (tasks == null || tasks.size() < 1) {
+ throw new CmdException("娴佺▼鏈缃笅涓�姝ュ鏍镐汉");
+ }
+ String assignee = tasks.get(0).getString("assignee");
+ if (assignee.startsWith("-")) {
+ throw new CmdException("娴佺▼鏈缃笅涓�姝ュ鏍镐汉");
+ }
+ return assignee;
+ }
+ //澶勭悊杞︿綅id
+ public JSONObject dealParkingSpace(JSONObject reqJson) {
+ //鏄惁鏈夌┖闂茶溅浣� false 鏈夌┖闂� true鏃犵┖闂�
+ boolean freeSpace = false;
+ //鑾峰彇璁垮閰嶇疆閲岄厤缃殑鍋滆溅鍦篿d
+// String parkingAreaId = CommunitySettingFactory.getValue(reqJson.getString("communityId"), ASCRIPTION_CAR_AREA_ID);
+ String ascriptionCarAreaId = reqJson.getString("ascriptionCarAreaId");
+ if (StringUtil.isEmpty(ascriptionCarAreaId)) { //濡傛灉娌℃湁閰嶇疆鍋滆溅鍦篿d锛屽氨闅忎究鍒嗛厤璇ュ皬鍖轰笅涓�涓┖闂茶溅浣�
+ ParkingSpaceDto parkingSpace = new ParkingSpaceDto();
+ parkingSpace.setCommunityId(reqJson.getString("communityId"));
+ parkingSpace.setState("F"); //杞︿綅鐘舵�� 鍑哄敭 S锛屽嚭绉� H 锛岀┖闂� F
+ parkingSpace.setParkingType("1"); //1锛氭櫘閫氳溅浣� 2锛氬瓙姣嶈溅浣� 3锛氳豹鍗庤溅浣�
+ //鏌ヨ灏忓尯绌洪棽杞︿綅
+ List<ParkingSpaceDto> parkingSpaceDtos = parkingSpaceInnerServiceSMOImpl.queryParkingSpaces(parkingSpace);
+ if (parkingSpaceDtos == null || parkingSpaceDtos.size() < 1) {
+ freeSpace = true;
+ } else {
+ //闅忔満鐢熸垚涓�涓笉澶т簬闆嗗悎闀垮害鐨勬暣鏁�
+ Random random = new Random();
+ int i = random.nextInt(parkingSpaceDtos.size());
+ //鑾峰彇杞︿綅id
+ String psId = parkingSpaceDtos.get(i).getPsId();
+ reqJson.put("psId", psId);
+ }
+ } else {
+ ParkingSpaceDto parkingSpace = new ParkingSpaceDto();
+ parkingSpace.setCommunityId(reqJson.getString("communityId"));
+ parkingSpace.setPaId(ascriptionCarAreaId); //鍋滆溅鍦篿d
+ parkingSpace.setState("F"); //杞︿綅鐘舵�� 鍑哄敭 S锛屽嚭绉� H 锛岀┖闂� F
+ parkingSpace.setParkingType("1"); //1锛氭櫘閫氳溅浣� 2锛氬瓙姣嶈溅浣� 3锛氳豹鍗庤溅浣�
+ List<ParkingSpaceDto> parkingSpaceDtos = parkingSpaceInnerServiceSMOImpl.queryParkingSpaces(parkingSpace);
+ if (parkingSpaceDtos == null || parkingSpaceDtos.size() < 1) {
+ freeSpace = true;
+ } else {
+ //闅忔満鐢熸垚涓�涓笉澶т簬闆嗗悎闀垮害鐨勬暣鏁�
+ Random random = new Random();
+ int i = random.nextInt(parkingSpaceDtos.size());
+ //鑾峰彇杞︿綅id
+ String psId = parkingSpaceDtos.get(i).getPsId();
+ reqJson.put("psId", psId);
+ }
+ }
+ reqJson.put("freeSpace", freeSpace);
+ return reqJson;
+ }
+
+ //鏇存敼杞︿綅鐘舵��
+ public void modifyParkingSpaceSate(JSONObject reqJson) {
+ ParkingSpaceDto parkingSpaceDto = new ParkingSpaceDto();
+ parkingSpaceDto.setPsId(reqJson.getString("psId"));
+ List<ParkingSpaceDto> parkingSpaceDtos = parkingSpaceInnerServiceSMOImpl.queryParkingSpaces(parkingSpaceDto);
+ Assert.listOnlyOne(parkingSpaceDtos, "鏌ヨ杞︿綅閿欒锛�");
+ ParkingSpacePo parkingSpacePo = new ParkingSpacePo();
+ parkingSpacePo.setPsId(parkingSpaceDtos.get(0).getPsId());
+ parkingSpacePo.setState("H"); //杞︿綅鐘舵�� 鍑哄敭 S锛屽嚭绉� H 锛岀┖闂� F
+ parkingSpaceInnerServiceSMOImpl.updateParkingSpace(parkingSpacePo);
+ }
+
+ //鍒ゆ柇鏄惁瓒呰繃璁垮鐧昏娆℃暟
+ public JSONObject dealVisitorRegistrationTimes(JSONObject reqJson) {
+ //鏄惁瓒呰繃瑙勫畾娆℃暟
+ boolean specifiedTimes = false;
+ //鏌ヨ棰勭害杞﹁締鐧昏娆℃暟
+// String visitNumber = CommunitySettingFactory.getValue(reqJson.getString("communityId"), VISIT_NUMBER);
+ String visitNumber = reqJson.getString("visitNumber"); //棰勭害杞﹂檺鍒舵鏁�
+ if (StringUtil.isEmpty(visitNumber)) {
+ reqJson.put("specifiedTimes", specifiedTimes);
+ return reqJson;
+ }
+ int number = Integer.parseInt(visitNumber);
+ VisitDto visitDto = new VisitDto();
+ //鏌ヨ褰撳ぉ杞﹁締鐧昏娆℃暟
+ visitDto.setOwnerId(reqJson.getString("ownerId"));
+ visitDto.setCommunityId(reqJson.getString("communityId"));
+ visitDto.setCarNumNoEmpty("1");
+ visitDto.setSameDay("1");
+ visitDto.setCarState("1"); //杞﹁締瀹℃牳閫氳繃
+ visitDto.setSign(reqJson.getString("vId"));
+ List<VisitDto> visitDtos = visitInnerServiceSMOImpl.queryVisits(visitDto);
+ int count = visitDtos.size();
+ //棰勭害杞﹁締鐧昏娆℃暟0涓嶅仛闄愬埗
+ if (count >= number && number > 0) {
+ reqJson.put("psId", null);
+ reqJson.put("freeTime", null);
+ specifiedTimes = true;
+ }
+ reqJson.put("specifiedTimes", specifiedTimes);
+ return reqJson;
+ }
+
+ //澶勭悊棰勭害杞﹀厤璐规椂闀�
+ public String dealVisitCarFreeTime(JSONObject reqJson) {
+ //鑾峰彇棰勭害杞﹀厤璐规椂闀跨殑鍊�
+// String freeTime = CommunitySettingFactory.getValue(reqJson.getString("communityId"), CAR_FREE_TIME);
+ String carFreeTime = reqJson.getString("carFreeTime");
+ if (StringUtil.isEmpty(carFreeTime)) {
+ carFreeTime = "120";
+ }
+ Date time = DateUtil.getDateFromStringA(reqJson.getString("visitTime"));
+ Calendar newTime = Calendar.getInstance();
+ newTime.setTime(time);
+ newTime.add(Calendar.MINUTE, Integer.parseInt(carFreeTime));//鏃ユ湡鍔犱笂鍒嗛挓
+ Date newDate = newTime.getTime();
+ String finishFreeTime = DateUtil.getFormatTimeString(newDate, DateUtil.DATE_FORMATE_STRING_A);
+ return finishFreeTime;
+ }
+
+ //鑾峰彇棰勭害杞﹁締鍋滆溅鍦篒D銆侀绾﹁溅杈嗗厤璐规椂闀裤�侀绾﹁溅闄愬埗娆℃暟銆侀绾﹁溅鏄惁瀹℃牳
+ public JSONObject getVisitCarOperate(JSONObject reqJson) {
+ VisitSettingDto visitSettingDto = new VisitSettingDto();
+ visitSettingDto.setCommunityId(reqJson.getString("communityId"));
+ List<VisitSettingDto> visitSettingDtos = visitSettingV1InnerServiceSMOImpl.queryVisitSettings(visitSettingDto);
+ if (visitSettingDtos != null && visitSettingDtos.size() > 0) {
+ reqJson.put("ascriptionCarAreaId", visitSettingDtos.get(0).getPaId()); //棰勭害杞﹁締褰掑睘鍋滆溅鍦篒D
+ reqJson.put("carFreeTime", visitSettingDtos.get(0).getCarFreeTime()); //棰勭害杞﹁締鍏嶈垂鏃堕暱(鍗曚綅涓哄垎閽�)
+ reqJson.put("visitNumber", visitSettingDtos.get(0).getVisitNumber()); //棰勭害杞﹂檺鍒舵鏁�
+ reqJson.put("isNeedReview", visitSettingDtos.get(0).getIsNeedReview()); //棰勭害杞︽槸鍚﹀鏍� 0琛ㄧず闇�瑕佸鏍� 1琛ㄧず涓嶉渶瑕佸鏍�
+ }
+ return reqJson;
+ }
}
--
Gitblit v1.8.0