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/UpdateVisitCmd.java |  356 ++++++++++++++++++++++++++++++----------------------------
 1 files changed, 184 insertions(+), 172 deletions(-)

diff --git a/service-community/src/main/java/com/java110/community/cmd/visit/UpdateVisitCmd.java b/service-community/src/main/java/com/java110/community/cmd/visit/UpdateVisitCmd.java
index 1993c2c..50ff6c3 100644
--- a/service-community/src/main/java/com/java110/community/cmd/visit/UpdateVisitCmd.java
+++ b/service-community/src/main/java/com/java110/community/cmd/visit/UpdateVisitCmd.java
@@ -2,53 +2,60 @@
 
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.annotation.Java110Cmd;
+import com.java110.core.annotation.Java110Transactional;
 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.CommunitySettingFactory;
 import com.java110.core.factory.GenerateCodeFactory;
-import com.java110.dto.owner.OwnerCarDto;
-import com.java110.dto.parking.ParkingSpaceDto;
-import com.java110.intf.community.IParkingSpaceInnerServiceSMO;
+import com.java110.core.smo.IPhotoSMO;
+import com.java110.dto.RoomDto;
+import com.java110.dto.accessControlWhite.AccessControlWhiteDto;
+import com.java110.dto.machine.CarBlackWhiteDto;
+import com.java110.dto.machine.MachineDto;
+import com.java110.dto.visit.VisitDto;
+import com.java110.dto.visitSetting.VisitSettingDto;
+import com.java110.intf.common.IAccessControlWhiteV1InnerServiceSMO;
+import com.java110.intf.common.IMachineInnerServiceSMO;
+import com.java110.intf.community.IRoomInnerServiceSMO;
+import com.java110.intf.community.IVisitSettingV1InnerServiceSMO;
 import com.java110.intf.community.IVisitV1InnerServiceSMO;
-import com.java110.intf.user.IOwnerCarAttrInnerServiceSMO;
-import com.java110.intf.user.IOwnerCarInnerServiceSMO;
-import com.java110.intf.user.IOwnerCarV1InnerServiceSMO;
-import com.java110.po.car.OwnerCarPo;
+import com.java110.intf.user.ICarBlackWhiteV1InnerServiceSMO;
+import com.java110.po.accessControlWhite.AccessControlWhitePo;
+import com.java110.po.car.CarBlackWhitePo;
 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;
 import com.java110.utils.util.BeanConvertUtil;
-import com.java110.utils.util.DateUtil;
 import com.java110.utils.util.StringUtil;
-import com.java110.vo.ResultVo;
 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.util.*;
 
 @Java110Cmd(serviceCode = "visit.updateVisit")
 public class UpdateVisitCmd extends Cmd {
 
     @Autowired
-    private IParkingSpaceInnerServiceSMO parkingSpaceInnerServiceSMOImpl;
-
-    @Autowired
-    private IOwnerCarV1InnerServiceSMO ownerCarV1InnerServiceSMOImpl;
-
-    @Autowired
-    private IOwnerCarAttrInnerServiceSMO ownerCarAttrInnerServiceSMOImpl;
-
-    @Autowired
-    private IOwnerCarInnerServiceSMO ownerCarInnerServiceSMOImpl;
-
-    @Autowired
     private IVisitV1InnerServiceSMO visitV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IPhotoSMO photoSMOImpl;
+
+    @Autowired
+    private IVisitSettingV1InnerServiceSMO visitSettingV1InnerServiceSMOImpl;
+
+    @Autowired
+    private ICarBlackWhiteV1InnerServiceSMO carBlackWhiteV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IAccessControlWhiteV1InnerServiceSMO accessControlWhiteV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IRoomInnerServiceSMO roomInnerServiceSMOImpl;
+
+    @Autowired
+    private IMachineInnerServiceSMO machineInnerServiceSMOImpl;
+
+    public static final String CODE_PREFIX_ID = "10";
 
     //閿�
     public static final String CAR_FREE_TIME = "CAR_FREE_TIME";
@@ -59,167 +66,172 @@
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
         Assert.hasKeyAndValue(reqJson, "vId", "璁垮璁板綍ID涓嶈兘涓虹┖");
+        Assert.hasKeyAndValue(reqJson, "communityId", "灏忓尯ID涓嶈兘涓虹┖");
         Assert.hasKeyAndValue(reqJson, "vName", "蹇呭~锛岃濉啓璁垮濮撳悕");
-        Assert.hasKeyAndValue(reqJson, "visitGender", "蹇呭~锛岃濉啓璁垮濮撳悕");
-        Assert.hasKeyAndValue(reqJson, "phoneNumber", "蹇呭~锛岃濉啓璁垮鑱旂郴鏂瑰紡");
-        Assert.hasKeyAndValue(reqJson, "visitTime", "蹇呭~锛岃濉啓璁垮鎷滆鏃堕棿");
     }
 
     @Override
+    @Java110Transactional
     public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
-        String userId = context.getReqHeaders().get("user-id");
-        //鏄惁鏈夌┖闂茶溅浣�
-        boolean freeSpace = false;
-        //鏄惁瀛樺湪杞﹁締
-        boolean existCar = false;
-        //鏍¢獙杞︾墝鍙锋槸鍚﹀瓨鍦�
-        OwnerCarDto ownerCarDto1 = new OwnerCarDto();
-        ownerCarDto1.setCommunityId(reqJson.getString("communityId"));
-        ownerCarDto1.setCarNum(reqJson.getString("carNum"));
-        int count = ownerCarInnerServiceSMOImpl.queryOwnerCarsCount(ownerCarDto1);
-        if (count > 0) {
-            existCar = true;
-            reqJson.put("psId", "-1");
+        VisitDto visitDto = new VisitDto();
+        visitDto.setvId(reqJson.getString("vId"));
+        visitDto.setCommunityId(reqJson.getString("communityId"));
+        List<VisitDto> visitDtos = visitV1InnerServiceSMOImpl.queryVisits(visitDto);
+        Assert.listOnlyOne(visitDtos, "璁垮涓嶅瓨鍦�");
+        VisitPo visitPo = BeanConvertUtil.covertBean(reqJson, VisitPo.class);
+        visitPo.setState(visitDtos.get(0).getState());
+        int flag = visitV1InnerServiceSMOImpl.updateVisit(visitPo);
+        if (flag < 1) {
+            throw new CmdException("淇濆瓨璁垮澶辫触");
         }
-        //flag瀹℃牳鎿嶄綔 骞朵笖 瀹℃牳閫氳繃 state=1 骞朵笖涓氫富杞﹁締涓嶅瓨鍦ㄧ殑鎯呭喌鍏坋xistCar=false
-        if (reqJson.containsKey("flag") && !StringUtil.isEmpty(reqJson.getString("flag")) && reqJson.getString("flag").equals("1")
-                && reqJson.containsKey("state") && !StringUtil.isEmpty(reqJson.getString("state")) && reqJson.getString("state").equals("1")
-                && !existCar) {
-            //鑾峰彇棰勭害杞﹀厤璐规椂闀跨殑鍊�
-            String freeTime = CommunitySettingFactory.getValue(reqJson.getString("communityId"), CAR_FREE_TIME);
-            if (StringUtil.isEmpty(freeTime)) {
-                freeTime = "120";
+        photoSMOImpl.savePhoto(reqJson, reqJson.getString("vId"), reqJson.getString("communityId"));
+        if (!VisitDto.STATE_C.equals(visitDtos.get(0).getState())) {
+            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));
+        }
+        // 鍚屾璁垮浜鸿劯
+        synchronousVisitFace(visitPo, faceWay, reqJson.getString("photo"));
+    }
+
+    private void synchronousVisitFace(VisitPo visitPo, String faceWay, String photo) {
+        if (VisitSettingDto.FACE_WAY_NO.equals(faceWay) || StringUtil.isEmpty(photo)) {
+            return;
+        }
+        if (StringUtil.isEmpty(visitPo.getOwnerId())) {
+            return;
+        }
+        // 鏌ヨ 璁块棶涓氫富鍙互璁块棶鐨勯棬绂佽澶�
+        RoomDto roomDto = new RoomDto();
+        roomDto.setOwnerId(visitPo.getOwnerId());
+        //杩欑鎯呭喌璇存槑 涓氫富宸茬粡鍒犳帀浜� 闇�瑕佹煡璇㈢姸鎬佷负 1 鐨勬暟鎹�
+        List<RoomDto> rooms = roomInnerServiceSMOImpl.queryRoomsByOwner(roomDto);
+        //鎷垮埌灏忓尯ID
+        String communityId = visitPo.getCommunityId();
+        //鏍规嵁灏忓尯ID鏌ヨ鐜版湁璁惧
+        MachineDto machineDto = new MachineDto();
+        machineDto.setCommunityId(communityId);
+        //String[] locationObjIds = new String[]{communityId};
+        List<String> locationObjIds = new ArrayList<>();
+        locationObjIds.add(communityId);
+        for (RoomDto tRoomDto : rooms) {
+            locationObjIds.add(tRoomDto.getUnitId());
+            locationObjIds.add(tRoomDto.getRoomId());
+            locationObjIds.add(tRoomDto.getFloorId());
+        }
+        machineDto.setLocationObjIds(locationObjIds.toArray(new String[locationObjIds.size()]));
+        List<MachineDto> machineDtos = machineInnerServiceSMOImpl.queryMachines(machineDto);
+        if (machineDtos == null || machineDtos.size() < 1) {
+            return;
+        }
+        // 鍚屾鍒� 闂ㄧ鐧藉悕鍗曚腑
+        for (MachineDto tmpMachineDto : machineDtos) {
+            if (!"9999".equals(tmpMachineDto.getMachineTypeCd())) {
+                continue;
             }
-            Date time = DateUtil.getDateFromStringA(reqJson.getString("visitTime"));
-            Calendar newTime = Calendar.getInstance();
-            newTime.setTime(time);
-            newTime.add(Calendar.MINUTE, Integer.parseInt(freeTime));//鏃ユ湡鍔犱笂鍒嗛挓
-            Date newDate = newTime.getTime();
-            String finishFreeTime = DateUtil.getFormatTimeString(newDate, DateUtil.DATE_FORMATE_STRING_A);
-            reqJson.put("freeTime", finishFreeTime);
-            //鑾峰彇灏忓尯閰嶇疆閲岄厤缃殑鍋滆溅鍦篿d
-            String parkingAreaId = CommunitySettingFactory.getValue(reqJson.getString("communityId"), ASCRIPTION_CAR_AREA_ID);
-            if (StringUtil.isEmpty(parkingAreaId)) { //濡傛灉娌℃湁閰嶇疆鍋滆溅鍦篿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);
+            AccessControlWhiteDto accessControlWhiteDto = new AccessControlWhiteDto();
+            accessControlWhiteDto.setCommunityId(communityId);
+            accessControlWhiteDto.setTel(visitPo.getPhoneNumber());
+            accessControlWhiteDto.setMachineId(tmpMachineDto.getMachineId());
+            List<AccessControlWhiteDto> accessControlWhiteDtos = accessControlWhiteV1InnerServiceSMOImpl.queryAccessControlWhites(accessControlWhiteDto);
+            AccessControlWhitePo accessControlWhitePo = new AccessControlWhitePo();
+            if (accessControlWhiteDtos == null || accessControlWhiteDtos.size() < 1) {
+                accessControlWhitePo.setAcwId(GenerateCodeFactory.getGeneratorId(CODE_PREFIX_ID));
+                accessControlWhitePo.setCommunityId(visitPo.getCommunityId());
+                accessControlWhitePo.setEndTime(visitPo.getDepartureTime());
+                accessControlWhitePo.setIdCard("");
+                accessControlWhitePo.setMachineId(tmpMachineDto.getMachineId());
+                accessControlWhitePo.setPersonName(visitPo.getvName());
+                accessControlWhitePo.setPersonType(AccessControlWhiteDto.PERSON_TYPE_VISIT);
+                accessControlWhitePo.setStartTime(visitPo.getVisitTime());
+                accessControlWhitePo.setTel(visitPo.getPhoneNumber());
+                accessControlWhitePo.setThirdId(visitPo.getvId());
+                int flag = accessControlWhiteV1InnerServiceSMOImpl.saveAccessControlWhite(accessControlWhitePo);
+                if (flag < 1) {
+                    throw new CmdException("鍚屾闂ㄧ鐧藉悕鍗曞け璐�");
                 }
             } else {
-                ParkingSpaceDto parkingSpace = new ParkingSpaceDto();
-                parkingSpace.setCommunityId(reqJson.getString("communityId"));
-                parkingSpace.setPaId(parkingAreaId); //鍋滆溅鍦篿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);
+                accessControlWhitePo.setAcwId(accessControlWhiteDtos.get(0).getAcwId());
+                accessControlWhitePo.setStartTime(visitPo.getVisitTime());
+                accessControlWhitePo.setEndTime(visitPo.getDepartureTime());
+                int flag = accessControlWhiteV1InnerServiceSMOImpl.updateAccessControlWhite(accessControlWhitePo);
+                if (flag < 1) {
+                    throw new CmdException("淇濆瓨鏁版嵁澶辫触");
                 }
             }
-        }
-        String result = "";
-        if (reqJson.containsKey("state") && !StringUtil.isEmpty(reqJson.getString("state")) && reqJson.getString("state").equals("1")) {
-            result = "瀹℃牳閫氳繃锛�";
-        } else if (reqJson.containsKey("state") && !StringUtil.isEmpty(reqJson.getString("state")) && reqJson.getString("state").equals("2")) {
-            result = "瀹℃牳涓嶉�氳繃锛�";
-        }
-        if (existCar) {
-            result = "璁垮淇℃伅瀹℃牳鎴愬姛,杞﹁締宸茬粡瀛樺湪棰勭害锛岃鎮ㄥ湪棰勭害鍒版湡鍚庯紝鍐嶆杩涜杞﹁締棰勭害锛岃阿璋紒";
-        }
-        if (freeSpace) {
-            result = "璁垮淇℃伅瀹℃牳鎴愬姛锛屽綋鍓嶅仠杞﹀満宸叉棤绌洪棽杞︿綅锛岀櫥璁拌溅杈嗗皢鏆傛椂涓嶈兘杩涘叆鍋滆溅鍦猴紝璇锋偍鍚堢悊瀹夋帓鍑鸿銆�";
-        }
-        reqJson.put("stateRemark", result);
-        updateVisit(reqJson);
+            photoSMOImpl.savePhoto(photo, accessControlWhitePo.getAcwId(), accessControlWhitePo.getCommunityId());
 
-        if (existCar) {
-            ResponseEntity<String> responseEntity = ResultVo.createResponseEntity(ResultVo.CODE_BUSINESS_VERIFICATION, "璁垮淇℃伅瀹℃牳鎴愬姛,杞﹁締宸茬粡瀛樺湪棰勭害锛岃鎮ㄥ湪棰勭害鍒版湡鍚庯紝鍐嶆杩涜杞﹁締棰勭害锛岃阿璋紒");
-            context.setResponseEntity(responseEntity);
-            return;
-        }
-        if (freeSpace) {
-            ResponseEntity<String> responseEntity = ResultVo.createResponseEntity(ResultVo.CODE_BUSINESS_VERIFICATION, "璁垮淇℃伅瀹℃牳鎴愬姛锛屽綋鍓嶅仠杞﹀満宸叉棤绌洪棽杞︿綅锛岀櫥璁拌溅杈嗗皢鏆傛椂涓嶈兘杩涘叆鍋滆溅鍦猴紝璇锋偍鍚堢悊瀹夋帓鍑鸿銆�");
-            context.setResponseEntity(responseEntity);
-            return;
-        }
-        //瀹℃牳閫氳繃涓旀湁杞︿綅灏辨洿鏂拌溅浣嶇姸鎬�
-        if (reqJson.containsKey("state") && "1".equals(reqJson.getString("state"))
-                && "1".equals(reqJson.getString("flag"))
-                && !existCar) {
-            ParkingSpaceDto parkingSpace = new ParkingSpaceDto();
-            parkingSpace.setPsId(reqJson.getString("psId"));
-            //鏌ヨ鍋滆溅浣�
-            List<ParkingSpaceDto> parkingSpaces = parkingSpaceInnerServiceSMOImpl.queryParkingSpaces(parkingSpace);
-            Assert.listOnlyOne(parkingSpaces, "鏌ヨ鍋滆溅浣嶉敊璇紒");
-            //娣诲姞杞﹁締淇℃伅
-            OwnerCarPo ownerCarPo = new OwnerCarPo();
-            ownerCarPo.setCarId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_carId));
-            ownerCarPo.setOwnerId(reqJson.getString("ownerId"));
-            ownerCarPo.setbId("-1");
-            ownerCarPo.setCarNum(reqJson.getString("carNum"));
-            ownerCarPo.setCarBrand("鏃狅紙棰勭害杞︼級");
-            ownerCarPo.setCarType("9901");
-            ownerCarPo.setCarColor("鏃狅紙棰勭害杞︼級");
-            ownerCarPo.setPsId(reqJson.getString("psId"));
-            ownerCarPo.setUserId(userId);
-            ownerCarPo.setRemark("璁垮鐧昏棰勭害杞�");
-            ownerCarPo.setCommunityId(reqJson.getString("communityId"));
-            ownerCarPo.setStartTime(reqJson.getString("visitTime"));
-            ownerCarPo.setEndTime(reqJson.getString("freeTime"));
-            ownerCarPo.setState(OwnerCarDto.STATE_NORMAL); //1001 姝e父鐘舵�侊紝2002 杞︿綅閲婃斁娆犺垂鐘舵��  3003 杞︿綅閲婃斁
-            ownerCarPo.setCarTypeCd(OwnerCarDto.CAR_TYPE_TEMP); //1001 涓氫富杞﹁締 1002 鎴愬憳杞﹁締 1003 涓存椂杞�
-            ownerCarPo.setMemberId(reqJson.getString("ownerId"));
-            ownerCarPo.setLeaseType("R"); //H 鏈堢杞�  S 鍑哄敭杞�  I 鍐呴儴杞�  NM 鍏嶈垂杞�  R 棰勭害杞�
-            ownerCarV1InnerServiceSMOImpl.saveOwnerCar(ownerCarPo);
-            //娣诲姞杞﹁締灞炴��
-            OwnerCarAttrPo ownerCarAttrPo = new OwnerCarAttrPo();
-            ownerCarAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_cartId));
-            ownerCarAttrPo.setCarId(ownerCarPo.getCarId());
-            ownerCarAttrPo.setCommunityId(ownerCarPo.getCommunityId());
-            ownerCarAttrPo.setSpecCd("6443000036"); //6443000036涓氫富杞﹁締
-            ownerCarAttrPo.setValue("true"); //棰勭害杞�
-            ownerCarAttrPo.setbId("-1");
-            ownerCarAttrInnerServiceSMOImpl.saveOwnerCarAttr(ownerCarAttrPo);
-            //鏇存柊杞︿綅鐘舵��
-            ParkingSpacePo parkingSpacePo = new ParkingSpacePo();
-            parkingSpacePo.setPsId(reqJson.getString("psId"));
-            parkingSpacePo.setState("H"); //杞︿綅鐘舵�� 鍑哄敭 S锛屽嚭绉� H 锛岀┖闂� F
-            parkingSpaceInnerServiceSMOImpl.updateParkingSpace(parkingSpacePo);
         }
     }
 
     /**
-     * 娣诲姞灏忓尯淇℃伅
+     * 棰勭害杞﹁締 鍔犲叆 鐧藉悕鍗� 鏄渶鍚堥�傜殑
+     * 涓嶅簲璇ュ姞鍏ュ埌涓氫富杞﹁締涓�
      *
-     * @param paramInJson 鎺ュ彛璋冪敤鏀句紶鍏ュ叆鍙�
-     * @return 璁㈠崟鏈嶅姟鑳藉鎺ュ彈鐨勬姤鏂�
+     * @param visitPo
+     * @param carNumWay
+     * @param visitSettingDto
      */
-    public void updateVisit(JSONObject paramInJson) {
-
-        JSONObject businessVisit = new JSONObject();
-        businessVisit.putAll(paramInJson);
-
-        VisitPo visitPo = BeanConvertUtil.covertBean(businessVisit, VisitPo.class);
-        int flag = visitV1InnerServiceSMOImpl.updateVisit(visitPo);
-        if (flag < 1) {
-            throw new CmdException("淇敼璁垮澶辫触");
+    private void synchronizedVisitCarNum(VisitPo visitPo, String carNumWay, VisitSettingDto visitSettingDto) {
+        if (VisitSettingDto.CAR_NUM_WAY_NO.equals(carNumWay)) {
+            return;
         }
+        if (StringUtil.isEmpty(visitPo.getCarNum())) {
+            return;
+        }
+        CarBlackWhiteDto carBlackWhiteDto = new CarBlackWhiteDto();
+        carBlackWhiteDto.setBlackWhite(CarBlackWhiteDto.BLACK_WHITE_WHITE);
+        carBlackWhiteDto.setCarNum(visitPo.getCarNum());
+        carBlackWhiteDto.setPaId(visitSettingDto.getPaId());
+        List<CarBlackWhiteDto> carBlackWhiteDtos = carBlackWhiteV1InnerServiceSMOImpl.queryCarBlackWhites(carBlackWhiteDto);
+        CarBlackWhitePo carBlackWhitePo = new CarBlackWhitePo();
+        carBlackWhitePo.setCarNum(visitPo.getCarNum());
+        carBlackWhitePo.setBlackWhite(CarBlackWhiteDto.BLACK_WHITE_WHITE);
+        carBlackWhitePo.setCommunityId(visitPo.getCommunityId());
+        carBlackWhitePo.setPaId(visitSettingDto.getPaId());
+        carBlackWhitePo.setStartTime(visitPo.getVisitTime());
+        carBlackWhitePo.setEndTime(visitPo.getDepartureTime());
+        int flag = 0;
+        if (carBlackWhiteDtos == null || carBlackWhiteDtos.size() < 1) {
+            carBlackWhitePo.setBwId(GenerateCodeFactory.getGeneratorId("11"));
+            flag = carBlackWhiteV1InnerServiceSMOImpl.saveCarBlackWhite(carBlackWhitePo);
+        } else {
+            carBlackWhitePo.setBwId(carBlackWhiteDtos.get(0).getBwId());
+            flag = carBlackWhiteV1InnerServiceSMOImpl.updateCarBlackWhite(carBlackWhitePo);
+        }
+
+        if (flag < 1) {
+            throw new CmdException("棰勭害杞﹁締娣诲姞鐧藉悕鍗曞け璐�");
+        }
+    }
+
+    /**
+     * 鏄惁闇�瑕佸鏍�
+     *
+     * @param visitPo
+     * @param 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())) {
+            return false;
+        }
+        return true;
     }
 }

--
Gitblit v1.8.0