java110 3 роки тому
батько
коміт
551ad62ae0

+ 10 - 0
java110-bean/src/main/java/com/java110/dto/org/OrgStaffRelDto.java

@@ -36,6 +36,8 @@ public class OrgStaffRelDto extends PageDto implements Serializable {
     private String parentOrgId;
     private String parentOrgName;
 
+    private String orgLevel;
+
 
     private Date createTime;
 
@@ -178,4 +180,12 @@ public class OrgStaffRelDto extends PageDto implements Serializable {
     public void setOrgName(String orgName) {
         this.orgName = orgName;
     }
+
+    public String getOrgLevel() {
+        return orgLevel;
+    }
+
+    public void setOrgLevel(String orgLevel) {
+        this.orgLevel = orgLevel;
+    }
 }

+ 4 - 0
java110-interface/src/main/java/com/java110/intf/store/IOrgStaffRelV1InnerServiceSMO.java

@@ -57,6 +57,10 @@ public interface IOrgStaffRelV1InnerServiceSMO {
     @RequestMapping(value = "/queryOrgStaffRels", method = RequestMethod.POST)
     List<OrgStaffRelDto> queryOrgStaffRels(@RequestBody OrgStaffRelDto orgStaffRelDto);
 
+    @RequestMapping(value = "/queryStaffOrgNames", method = RequestMethod.POST)
+    public List<OrgStaffRelDto> queryStaffOrgNames(@RequestBody OrgStaffRelDto orgStaffRelDto);
+
+
     /**
      * 查询<p>小区楼</p>总记录数
      *

+ 12 - 4
service-common/src/main/java/com/java110/common/bmo/workflow/impl/QueryWorkFlowFirstStaffBMOImpl.java

@@ -15,11 +15,13 @@ import com.java110.dto.oaWorkflow.OaWorkflowDto;
 import com.java110.dto.oaWorkflowForm.OaWorkflowFormDto;
 import com.java110.dto.oaWorkflowXml.OaWorkflowXmlDto;
 import com.java110.dto.org.OrgDto;
+import com.java110.dto.org.OrgStaffRelDto;
 import com.java110.dto.workflow.WorkflowDto;
 import com.java110.dto.workflow.WorkflowModelDto;
 import com.java110.intf.oa.IOaWorkflowFormInnerServiceSMO;
 import com.java110.intf.oa.IOaWorkflowInnerServiceSMO;
 import com.java110.intf.oa.IOaWorkflowXmlInnerServiceSMO;
+import com.java110.intf.store.IOrgStaffRelV1InnerServiceSMO;
 import com.java110.intf.user.IOrgInnerServiceSMO;
 import com.java110.po.oaWorkflow.OaWorkflowPo;
 import com.java110.po.oaWorkflowXml.OaWorkflowXmlPo;
@@ -78,6 +80,9 @@ public class QueryWorkFlowFirstStaffBMOImpl implements IQueryWorkFlowFirstStaffB
     @Autowired
     private IOaWorkflowFormInnerServiceSMO oaWorkflowFormInnerServiceSMOImpl;
 
+    @Autowired
+    private IOrgStaffRelV1InnerServiceSMO orgStaffRelV1InnerServiceSMOImpl;
+
     @Autowired
     private RepositoryService repositoryService;
 
@@ -129,16 +134,19 @@ public class QueryWorkFlowFirstStaffBMOImpl implements IQueryWorkFlowFirstStaffB
 
         Map staffInfo = workflowStepStaffs.get(0);
         String staffId = staffInfo.get("staffId") + "";
-        OrgDto orgDto = new OrgDto();
+        OrgStaffRelDto orgDto = new OrgStaffRelDto();
         if (staffId.startsWith("${")) {
             return ResultVo.createResponseEntity(orgDto);
         }
         orgDto.setStaffId(staffId);
-        List<OrgDto> orgDtos = orgInnerServiceSMOImpl.queryOrgs(orgDto);
-        if (orgDtos == null || orgDtos.size() < 1) {
+
+        OrgStaffRelDto orgStaffRelDto = new OrgStaffRelDto();
+        orgStaffRelDto.setStaffId(staffId);
+        List<OrgStaffRelDto> orgStaffRelDtos = orgStaffRelV1InnerServiceSMOImpl.queryStaffOrgNames(orgStaffRelDto);
+        if (orgStaffRelDtos == null || orgStaffRelDtos.size() < 1) {
             return ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "未查询到员工组织信息");
         }
-        orgDto = orgDtos.get(0);
+        orgDto = orgStaffRelDtos.get(0);
         orgDto.setStaffName(staffInfo.get("staffName") + "");
 
         return ResultVo.createResponseEntity(orgDto);

+ 113 - 12
service-store/src/main/java/com/java110/store/smo/impl/OrgStaffRelV1InnerServiceSMOImpl.java

@@ -16,14 +16,18 @@
 package com.java110.store.smo.impl;
 
 
+import com.java110.core.base.smo.BaseServiceSMO;
+import com.java110.dto.PageDto;
+import com.java110.dto.org.OrgDto;
 import com.java110.dto.org.OrgStaffRelDto;
+import com.java110.intf.store.IOrgStaffRelV1InnerServiceSMO;
+import com.java110.intf.user.IOrgV1InnerServiceSMO;
 import com.java110.po.org.OrgStaffRelPo;
 import com.java110.store.dao.IOrgStaffRelV1ServiceDao;
-import com.java110.intf.store.IOrgStaffRelV1InnerServiceSMO;
+import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
-import com.java110.core.base.smo.BaseServiceSMO;
-import com.java110.dto.user.UserDto;
-import com.java110.dto.PageDto;
+import com.java110.utils.util.StringUtil;
+import com.java110.vo.api.staff.ApiStaffDataVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
@@ -45,6 +49,9 @@ public class OrgStaffRelV1InnerServiceSMOImpl extends BaseServiceSMO implements
     @Autowired
     private IOrgStaffRelV1ServiceDao orgStaffRelV1ServiceDaoImpl;
 
+    @Autowired
+    private IOrgV1InnerServiceSMO orgV1InnerServiceSMOImpl;
+
 
     @Override
     public int saveOrgStaffRel(@RequestBody OrgStaffRelPo orgStaffRelPo) {
@@ -52,17 +59,17 @@ public class OrgStaffRelV1InnerServiceSMOImpl extends BaseServiceSMO implements
         return saveFlag;
     }
 
-     @Override
-    public int updateOrgStaffRel(@RequestBody  OrgStaffRelPo orgStaffRelPo) {
+    @Override
+    public int updateOrgStaffRel(@RequestBody OrgStaffRelPo orgStaffRelPo) {
         int saveFlag = orgStaffRelV1ServiceDaoImpl.updateOrgStaffRelInfo(BeanConvertUtil.beanCovertMap(orgStaffRelPo));
         return saveFlag;
     }
 
-     @Override
-    public int deleteOrgStaffRel(@RequestBody  OrgStaffRelPo orgStaffRelPo) {
-       orgStaffRelPo.setStatusCd("1");
-       int saveFlag = orgStaffRelV1ServiceDaoImpl.updateOrgStaffRelInfo(BeanConvertUtil.beanCovertMap(orgStaffRelPo));
-       return saveFlag;
+    @Override
+    public int deleteOrgStaffRel(@RequestBody OrgStaffRelPo orgStaffRelPo) {
+        orgStaffRelPo.setStatusCd("1");
+        int saveFlag = orgStaffRelV1ServiceDaoImpl.updateOrgStaffRelInfo(BeanConvertUtil.beanCovertMap(orgStaffRelPo));
+        return saveFlag;
     }
 
     @Override
@@ -81,9 +88,103 @@ public class OrgStaffRelV1InnerServiceSMOImpl extends BaseServiceSMO implements
         return orgStaffRels;
     }
 
+    @Override
+    public List<OrgStaffRelDto> queryStaffOrgNames(@RequestBody OrgStaffRelDto orgStaffRelDto) {
+
+        //校验是否传了 分页信息
+
+        int page = orgStaffRelDto.getPage();
+
+        if (page != PageDto.DEFAULT_PAGE) {
+            orgStaffRelDto.setPage((page - 1) * orgStaffRelDto.getRow());
+        }
+
+        List<OrgStaffRelDto> orgStaffRels = BeanConvertUtil.covertBeanList(orgStaffRelV1ServiceDaoImpl.getOrgStaffRelInfo(BeanConvertUtil.beanCovertMap(orgStaffRelDto)), OrgStaffRelDto.class);
+
+        if (orgStaffRels == null || orgStaffRels.size() < 1) {
+            return orgStaffRels;
+        }
+        refreshOrgs(orgStaffRels);
+
+        return orgStaffRels;
+    }
+    private void refreshOrgs(List<OrgStaffRelDto> staffs) {
+        if (staffs == null || staffs.size() < 1) {
+            return;
+        }
+
+        List<String> staffIds = new ArrayList<>();
+        for (OrgStaffRelDto apiStaffDataVo : staffs) {
+            staffIds.add(apiStaffDataVo.getStaffId());
+        }
+
+        OrgDto orgDto = new OrgDto();
+        orgDto.setStoreId(staffs.get(0).getStoreId());
+        List<OrgDto> orgDtos = orgV1InnerServiceSMOImpl.queryOrgs(orgDto);
+        if (orgDtos == null || orgDtos.size() < 1) {
+            return;
+        }
+
+        for (OrgStaffRelDto apiStaffDataVo : staffs) {
+            if (StringUtil.isEmpty(apiStaffDataVo.getOrgId())) {
+                continue;
+            }
+            apiStaffDataVo.setParentOrgId(apiStaffDataVo.getOrgId());
+
+            findParents(apiStaffDataVo, orgDtos, null, 0);
+
+        }
+
+    }
+
+
+    private void findParents(OrgStaffRelDto apiStaffDataVo, List<OrgDto> orgDtos, OrgDto curOrgDto, int orgDeep) {
+        for (OrgDto orgDto : orgDtos) {
+            curOrgDto = orgDto;
+            if (!apiStaffDataVo.getParentOrgId().equals(orgDto.getOrgId())) { // 他自己跳过
+                continue;
+            }
+
+            //如果到一级 就结束
+            if (OrgDto.ORG_LEVEL_STORE.equals(apiStaffDataVo.getOrgLevel())) {
+                continue;
+            }
+
+            apiStaffDataVo.setParentOrgId(orgDto.getParentOrgId());
+
+            if (StringUtil.isEmpty(apiStaffDataVo.getOrgName())) {
+                apiStaffDataVo.setOrgName(orgDto.getOrgName());
+                continue;
+            }
+            apiStaffDataVo.setOrgName(orgDto.getOrgName() + " / " + apiStaffDataVo.getOrgName());
+            apiStaffDataVo.setOrgLevel(orgDto.getOrgLevel());
+        }
+
+        if (curOrgDto != null && OrgDto.ORG_LEVEL_STORE.equals(curOrgDto.getOrgLevel())) {
+            return;
+        }
+
+        if (curOrgDto != null && curOrgDto.getParentOrgId().equals(curOrgDto.getOrgId())) {
+            return;
+        }
+
+        if (curOrgDto != null && "-1".equals(curOrgDto.getParentOrgId())) {
+            return;
+        }
+
+        orgDeep += 1;
+
+        if (orgDeep > 20) {
+            return;
+        }
+
+        findParents(apiStaffDataVo, orgDtos, curOrgDto, orgDeep);
+    }
+
 
     @Override
     public int queryOrgStaffRelsCount(@RequestBody OrgStaffRelDto orgStaffRelDto) {
-        return orgStaffRelV1ServiceDaoImpl.queryOrgStaffRelsCount(BeanConvertUtil.beanCovertMap(orgStaffRelDto));    }
+        return orgStaffRelV1ServiceDaoImpl.queryOrgStaffRelsCount(BeanConvertUtil.beanCovertMap(orgStaffRelDto));
+    }
 
 }