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