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 | 148 +++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 125 insertions(+), 23 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 2f59899..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
@@ -9,20 +9,24 @@
import com.java110.core.factory.CommunitySettingFactory;
import com.java110.core.factory.GenerateCodeFactory;
import com.java110.core.smo.IPhotoSMO;
+import com.java110.dto.RoomDto;
+import com.java110.dto.accessControlWhite.AccessControlWhiteDto;
import com.java110.dto.file.FileDto;
+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;
import com.java110.dto.visitSetting.VisitSettingDto;
-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.IOwnerCarAttrInnerServiceSMO;
-import com.java110.intf.user.IOwnerCarInnerServiceSMO;
-import com.java110.intf.user.IOwnerCarV1InnerServiceSMO;
+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;
import com.java110.po.car.OwnerCarPo;
import com.java110.po.file.FileRelPo;
import com.java110.po.owner.VisitPo;
@@ -38,10 +42,7 @@
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.saveVisit")
public class SaveVisitCmd extends Cmd {
@@ -70,6 +71,31 @@
@Autowired
private IVisitSettingV1InnerServiceSMO visitSettingV1InnerServiceSMOImpl;
+ @Autowired
+ private ICarBlackWhiteV1InnerServiceSMO carBlackWhiteV1InnerServiceSMOImpl;
+
+ @Autowired
+ private IRoomInnerServiceSMO roomInnerServiceSMOImpl;
+
+ @Autowired
+ private IMachineInnerServiceSMO machineInnerServiceSMOImpl;
+
+ @Autowired
+ private IAccessControlWhiteV1InnerServiceSMO accessControlWhiteV1InnerServiceSMOImpl;
+
+ @Autowired
+ private IOaWorkflowInnerServiceSMO oaWorkflowInnerServiceSMOImpl;
+
+ @Autowired
+ private IUserInnerServiceSMO userInnerServiceSMOImpl;
+
+ @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";
@@ -95,6 +121,7 @@
@Java110Transactional
public void doCmd(CmdEvent event, ICmdDataFlowContext context, JSONObject reqJson) throws CmdException {
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"))) {
@@ -111,40 +138,115 @@
photoSMOImpl.savePhoto(reqJson, reqJson.getString("vId"), reqJson.getString("communityId"));
// 鏄惁闇�瑕佸鏍�
- if(hasAuditVisit(visitPo,reqJson)){
+ if (hasAuditVisit(visitPo, reqJson, storeId, userId)) {
return; // 闇�瑕佸鏍哥粨鏉燂紝瀹℃牳鏃跺鐞� 鐩稿簲 閫佸浘鐗� 鍜岃溅鐗屾暟鎹�
}
-
-
-
-
-
-
+ 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("淇敼璁垮鐘舵�佸け璐�");
+ }
}
+
/**
* 鏄惁闇�瑕佸鏍�
+ *
* @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){
+ 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"));
+ 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;
}
--
Gitblit v1.8.0