From c0328edb2de39f27e47b7ad1eedf8f80b883335e Mon Sep 17 00:00:00 2001
From: Your Name <you@example.com>
Date: 星期二, 24 一月 2023 17:41:49 +0800
Subject: [PATCH] 优化 供应链 类型的bug

---
 service-community/src/main/java/com/java110/community/cmd/visit/SaveVisitCmd.java |  151 ++++++++++---------------------------------------
 1 files changed, 32 insertions(+), 119 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 8f4af9d..dd1be5d 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
@@ -15,6 +15,7 @@
 import com.java110.dto.machine.CarBlackWhiteDto;
 import com.java110.dto.machine.MachineDto;
 import com.java110.dto.oaWorkflow.OaWorkflowDto;
+import com.java110.dto.oaWorkflowXml.OaWorkflowXmlDto;
 import com.java110.dto.owner.OwnerCarDto;
 import com.java110.dto.parking.ParkingSpaceDto;
 import com.java110.dto.visit.VisitDto;
@@ -22,6 +23,7 @@
 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.intf.user.*;
 import com.java110.po.accessControlWhite.AccessControlWhitePo;
 import com.java110.po.car.CarBlackWhitePo;
@@ -90,6 +92,9 @@
     @Autowired
     private IOaWorkflowActivitiInnerServiceSMO oaWorkflowActivitiInnerServiceSMOImpl;
 
+    @Autowired
+    private IOaWorkflowXmlInnerServiceSMO oaWorkflowXmlInnerServiceSMOImpl;
+
     public static final String CODE_PREFIX_ID = "10";
 
     //閿�
@@ -137,24 +142,6 @@
             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"));
-
         visitPo = new VisitPo();
         visitPo.setState(VisitDto.STATE_C);
         visitPo.setvId(reqJson.getString("vId"));
@@ -165,105 +152,6 @@
         }
     }
 
-    private void synchronousVisitFace(VisitPo visitPo, String faceWay, String photo) {
-        if (VisitSettingDto.FACE_WAY_NO.equals(faceWay) || StringUtil.isEmpty(photo)) {
-            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;
-            }
-            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 {
-                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("淇濆瓨鏁版嵁澶辫触");
-                }
-            }
-
-            photoSMOImpl.savePhoto(photo, accessControlWhitePo.getAcwId(), accessControlWhitePo.getCommunityId());
-
-        }
-    }
-
-    /**
-     * 棰勭害杞﹁締 鍔犲叆 鐧藉悕鍗� 鏄渶鍚堥�傜殑
-     * 涓嶅簲璇ュ姞鍏ュ埌涓氫富杞﹁締涓�
-     *
-     * @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("棰勭害杞﹁締娣诲姞鐧藉悕鍗曞け璐�");
-        }
-
-
-    }
 
     /**
      * 鏄惁闇�瑕佸鏍�
@@ -317,7 +205,7 @@
         flowJson = new JSONObject();
         flowJson.put("processInstanceId", result.getString("processInstanceId"));
         flowJson.put("createUserId", userId);
-        flowJson.put("nextUserId", 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());
@@ -332,8 +220,33 @@
         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;
 
     }
 

--
Gitblit v1.8.0