From 65763d38cf9b6b8067a293d9c99297efea0de3e3 Mon Sep 17 00:00:00 2001
From: 928255095 <928255095@qq.com>
Date: 星期二, 07 九月 2021 22:04:15 +0800
Subject: [PATCH] Merge branch 'xinghong-dev' into 'master'

---
 service-api/src/main/java/com/java110/api/listener/ownerRepair/GrabbingRepairListener.java |   49 ++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 42 insertions(+), 7 deletions(-)

diff --git a/service-api/src/main/java/com/java110/api/listener/ownerRepair/GrabbingRepairListener.java b/service-api/src/main/java/com/java110/api/listener/ownerRepair/GrabbingRepairListener.java
index 4a6f4e8..3e38fb0 100755
--- a/service-api/src/main/java/com/java110/api/listener/ownerRepair/GrabbingRepairListener.java
+++ b/service-api/src/main/java/com/java110/api/listener/ownerRepair/GrabbingRepairListener.java
@@ -13,11 +13,13 @@
 import com.java110.intf.community.IRepairTypeUserInnerServiceSMO;
 import com.java110.intf.community.IRepairUserInnerServiceSMO;
 import com.java110.po.owner.RepairUserPo;
+import com.java110.utils.cache.MappingCache;
 import com.java110.utils.constant.BusinessTypeConstant;
 import com.java110.utils.constant.ServiceCodeRepairDispatchStepConstant;
 import com.java110.utils.lock.DistributedLock;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.DateUtil;
+import com.java110.utils.util.StringUtil;
 import com.java110.vo.ResultVo;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -34,7 +36,6 @@
 @Java110Listener("grabbingRepairListener")
 public class GrabbingRepairListener extends AbstractServiceApiPlusListener {
 
-
     private static Logger logger = LoggerFactory.getLogger(GrabbingRepairListener.class);
 
     @Autowired
@@ -49,14 +50,21 @@
     @Autowired
     private IRepairTypeUserInnerServiceSMO repairTypeUserInnerServiceSMOImpl;
 
+    @Autowired
+    private IRepairTypeUserInnerServiceSMO repairTypeUserInnerServiceSMO;
+
+    //鍩�
+    public static final String DOMAIN_COMMON = "DOMAIN.COMMON";
+
+    //閿�(缁翠慨甯堝倕鏈鐞嗘渶澶у崟鏁�)
+    public static final String REPAIR_NUMBER = "REPAIR_NUMBER";
+
     @Override
     protected void validate(ServiceDataFlowEvent event, JSONObject reqJson) {
         Assert.hasKeyAndValue(reqJson, "repairId", "鏈寘鍚姤淇崟淇℃伅");
         Assert.hasKeyAndValue(reqJson, "communityId", "鏈寘鍚皬鍖轰俊鎭�");
         Assert.hasKeyAndValue(reqJson, "userId", "鏈寘鍚敤鎴稩D");
         Assert.hasKeyAndValue(reqJson, "userName", "鏈寘鍚敤鎴峰悕绉�");
-
-
     }
 
     @Override
@@ -65,6 +73,19 @@
         String key = this.getClass().getSimpleName() + reqJson.getString("repairId");
         try {
             DistributedLock.waitGetDistributedLock(key, requestId);
+            //鑾峰彇褰撳墠澶勭悊鍛樺伐id
+            String staffId = reqJson.getString("userId");
+            RepairUserDto repairUser = new RepairUserDto();
+            repairUser.setStaffId(staffId);
+            repairUser.setState("10001"); //澶勭悊涓�
+            int i = repairUserInnerServiceSMOImpl.queryRepairUsersCount(repairUser);
+            //鍙栧嚭寮�鍏虫槧灏勭殑鍊�(缁翠慨甯堝倕鏈鐞嗘渶澶у崟鏁�)
+            String repairNumber = MappingCache.getValue(DOMAIN_COMMON, REPAIR_NUMBER);
+            if (i >= Integer.parseInt(repairNumber)) {
+                ResponseEntity<String> responseEntity = ResultVo.createResponseEntity(ResultVo.CODE_BUSINESS_VERIFICATION, "鎮ㄦ湁瓒呰繃" + Integer.parseInt(repairNumber) + "鏉℃湭澶勭悊鐨勮鍗曟�ラ渶澶勭悊锛岃澶勭悊瀹屾垚鍚庡啀杩涜鎶㈠崟锛�");
+                context.setResponseEntity(responseEntity);
+                return;
+            }
             RepairDto repairDtoData = new RepairDto();
             repairDtoData.setRepairId(reqJson.getString("repairId"));
             repairDtoData.setCommunityId(reqJson.getString("communityId"));
@@ -74,7 +95,25 @@
                 context.setResponseEntity(responseEntity);
                 return;
             }
+            //鑾峰彇鎶ヤ慨绫诲瀷
             String repairType = repairDtoList.get(0).getRepairType();
+            RepairTypeUserDto repairTypeUser = new RepairTypeUserDto();
+            repairTypeUser.setStaffId(staffId);
+            repairTypeUser.setRepairType(repairType);
+            //鏌ヨ宸ュ崟璁剧疆琛�
+            List<RepairTypeUserDto> repairTypeUserDtos = repairTypeUserInnerServiceSMO.queryRepairTypeUsers(repairTypeUser);
+            if (repairTypeUserDtos != null && repairTypeUserDtos.size() != 1) { //鎶ヤ慨绫诲瀷璁剧疆鏈坊鍔犳敼鎿嶄綔鐨勫憳宸ワ紒
+                ResponseEntity<String> responseEntity = ResultVo.createResponseEntity(ResultVo.CODE_BUSINESS_VERIFICATION, "瀵逛笉璧凤紝鎮ㄨ繕娌℃潈闄愯繘琛屾鎿嶄綔锛岃鑱旂郴绠$悊鍛樺鐞嗭紒");
+                context.setResponseEntity(responseEntity);
+                return;
+            }
+            //鑾峰彇缁翠慨甯堝倕鐘舵��
+            String staffState = repairTypeUserDtos.get(0).getState();
+            if (!StringUtil.isEmpty(staffState) && staffState.equals("8888")) { //绂荤嚎鐘舵��
+                ResponseEntity<String> responseEntity = ResultVo.createResponseEntity(ResultVo.CODE_BUSINESS_VERIFICATION, "鍛樺伐澶勪簬绂荤嚎鐘舵�侊紝鏃犳硶杩涜鎿嶄綔锛�");
+                context.setResponseEntity(responseEntity);
+                return;
+            }
             RepairTypeUserDto repairTypeUserDto = new RepairTypeUserDto();
             repairTypeUserDto.setCommunityId(reqJson.getString("communityId"));
             repairTypeUserDto.setRepairType(repairType);
@@ -85,7 +124,6 @@
                 context.setResponseEntity(responseEntity);
                 return;
             }
-
             //鑾峰彇鎶ヤ慨id
             String repairId = reqJson.getString("repairId");
             RepairDto repairDto = new RepairDto();
@@ -104,7 +142,6 @@
                     repairUserDto.setRepairEvent(RepairUserDto.REPAIR_EVENT_START_USER);
                     List<RepairUserDto> repairUserDtos = repairUserInnerServiceSMOImpl.queryRepairUsers(repairUserDto);
                     Assert.listOnlyOne(repairUserDtos, "鏈壘鍒板紑濮嬭妭鐐规垨鎵惧埌澶氭潯");
-
                     String userId = reqJson.getString("userId");
                     String userName = reqJson.getString("userName");
                     RepairUserPo repairUserPo = new RepairUserPo();
@@ -120,7 +157,6 @@
                     repairUserPo.setRepairEvent(RepairUserDto.REPAIR_EVENT_AUDIT_USER);
                     repairUserPo.setContext("");
                     repairUserPo.setCommunityId(reqJson.getString("communityId"));
-
                     super.insert(context, repairUserPo, BusinessTypeConstant.BUSINESS_TYPE_SAVE_REPAIR_USER);
                     ownerRepairBMOImpl.modifyBusinessRepairDispatch(reqJson, context, RepairDto.STATE_TAKING);
                     ResponseEntity<String> responseEntity = ResultVo.createResponseEntity(ResultVo.CODE_OK, ResultVo.MSG_OK);
@@ -136,7 +172,6 @@
         } finally {
             DistributedLock.releaseDistributedLock(requestId, key);
         }
-
     }
 
     @Override

--
Gitblit v1.8.0