From ba5210dc8c6c537cacc59c18d58baa9744cd2b9d Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期二, 10 五月 2022 11:14:39 +0800
Subject: [PATCH] 优化报修单推送bug

---
 service-user/src/main/java/com/java110/user/cmd/org/DeleteOrgCmd.java |   53 ++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 48 insertions(+), 5 deletions(-)

diff --git a/service-user/src/main/java/com/java110/user/cmd/org/DeleteOrgCmd.java b/service-user/src/main/java/com/java110/user/cmd/org/DeleteOrgCmd.java
index 8b73e71..da32d6e 100644
--- a/service-user/src/main/java/com/java110/user/cmd/org/DeleteOrgCmd.java
+++ b/service-user/src/main/java/com/java110/user/cmd/org/DeleteOrgCmd.java
@@ -21,16 +21,23 @@
 import com.java110.core.context.ICmdDataFlowContext;
 import com.java110.core.event.cmd.AbstractServiceCmdListener;
 import com.java110.core.event.cmd.CmdEvent;
-import com.java110.core.factory.GenerateCodeFactory;
+import com.java110.dto.org.OrgDto;
+import com.java110.dto.org.OrgStaffRelDto;
+import com.java110.dto.user.UserDto;
+import com.java110.intf.store.IOrgStaffRelV1InnerServiceSMO;
 import com.java110.intf.user.IOrgV1InnerServiceSMO;
+import com.java110.intf.user.IUserV1InnerServiceSMO;
 import com.java110.po.org.OrgPo;
 import com.java110.utils.exception.CmdException;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
 import com.java110.vo.ResultVo;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.util.List;
+
 /**
  * 绫昏〃杩帮細鍒犻櫎
  * 鏈嶅姟缂栫爜锛歰rg.deleteOrg
@@ -43,23 +50,59 @@
  */
 @Java110Cmd(serviceCode = "org.deleteOrg")
 public class DeleteOrgCmd extends AbstractServiceCmdListener {
-  private static Logger logger = LoggerFactory.getLogger(DeleteOrgCmd.class);
+    private static Logger logger = LoggerFactory.getLogger(DeleteOrgCmd.class);
 
     @Autowired
     private IOrgV1InnerServiceSMO orgV1InnerServiceSMOImpl;
 
+    @Autowired
+    private IOrgStaffRelV1InnerServiceSMO orgStaffRelV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IUserV1InnerServiceSMO userV1InnerServiceSMOImpl;
+
     @Override
     public void validate(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) {
         Assert.hasKeyAndValue(reqJson, "orgId", "orgId涓嶈兘涓虹┖");
-Assert.hasKeyAndValue(reqJson, "storeId", "storeId涓嶈兘涓虹┖");
+        Assert.hasKeyAndValue(reqJson, "storeId", "storeId涓嶈兘涓虹┖");
 
+        //鏍¢獙缁勭粐涓嬫槸鍚︽湁閮ㄩ棬鎴栬�呭憳宸�
+        OrgDto orgDto = new OrgDto();
+        orgDto.setOrgId(reqJson.getString("orgId"));
+        List<OrgDto> orgDtos = orgV1InnerServiceSMOImpl.queryOrgs(orgDto);
+
+        Assert.listOnlyOne(orgDtos, "涓嶅瓨鍦�");
+
+        if (OrgDto.ORG_LEVEL_COMPANY.equals(orgDtos.get(0).getOrgLevel())) {
+            //鏌ヨ鏄惁瀛樺湪閮ㄩ棬
+            orgDto = new OrgDto();
+            orgDto.setParentOrgId(reqJson.getString("orgId"));
+            List<OrgDto> subOrgDtos = orgV1InnerServiceSMOImpl.queryOrgs(orgDto);
+            if (subOrgDtos != null && subOrgDtos.size() > 0) {
+                throw new CmdException("鍏徃涓嬪瓨鍦ㄩ儴闂� 璇峰厛鍒犻櫎閮ㄩ棬鍚庡啀鍒犻櫎");
+            }
+        }else if (OrgDto.ORG_LEVEL_DEPARTMENT.equals(orgDtos.get(0).getOrgLevel())) {
+            //鏌ヨ鏄惁瀛樺湪閮ㄩ棬
+            OrgStaffRelDto orgStaffRelDto = new OrgStaffRelDto();
+            orgStaffRelDto.setOrgId(reqJson.getString("orgId"));
+            List<OrgStaffRelDto> subOrgDtos = orgStaffRelV1InnerServiceSMOImpl.queryOrgStaffRels(orgStaffRelDto);
+            if (subOrgDtos == null || subOrgDtos.size() < 1) {
+                return;
+            }
+            UserDto userDto = new UserDto();
+            userDto.setUserId(subOrgDtos.get(0).getStaffId());
+            List<UserDto> userDtos = userV1InnerServiceSMOImpl.queryUsers(userDto);
+            if (userDtos != null && userDtos.size() > 0) {
+                throw new CmdException("閮ㄩ棬涓嬪瓨鍦ㄥ憳宸� 璇峰厛鍒犻櫎鍛樺伐鍚庡啀鍒犻櫎");
+            }
+        }
     }
 
     @Override
     @Java110Transactional
     public void doCmd(CmdEvent event, ICmdDataFlowContext cmdDataFlowContext, JSONObject reqJson) throws CmdException {
 
-       OrgPo orgPo = BeanConvertUtil.covertBean(reqJson, OrgPo.class);
+        OrgPo orgPo = BeanConvertUtil.covertBean(reqJson, OrgPo.class);
         int flag = orgV1InnerServiceSMOImpl.deleteOrg(orgPo);
 
         if (flag < 1) {

--
Gitblit v1.8.0