hxx 8 months ago
parent
commit
2c27647ef6

+ 3 - 0
src/main/java/ruisi/com/ruisiehr/mapper/ScheduleTaskMapper.java

@@ -33,4 +33,7 @@ public interface ScheduleTaskMapper {
 
 
     List<String> getEduPostPerson(Map param);
+
+//    获取申请人的部门信息
+  Map<String,String> getOrgType(Map param);
 }

+ 40 - 1
src/main/java/ruisi/com/ruisiehr/service/serviceImpl/HRPersonInfoImpl.java

@@ -1,6 +1,12 @@
 package ruisi.com.ruisiehr.service.serviceImpl;
 
+import com.alibaba.fastjson.JSONObject;
+import com.malk.server.aliwork.YDConf;
+import com.malk.server.aliwork.YDParam;
 import com.malk.server.common.McR;
+import com.malk.server.dingtalk.DDR_New;
+import com.malk.service.aliwork.YDClient;
+import com.malk.utils.UtilMap;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import ruisi.com.ruisiehr.mapper.ScheduleTaskMapper;
@@ -19,17 +25,50 @@ import java.util.Map;
 public class HRPersonInfoImpl implements IHRPerson {
     @Autowired
     private ScheduleTaskMapper scheduleTaskMapper;
+    @Autowired
+    private YDClient ydClient;
 
     @Override
     public Map getDirectSuperior(Map params) {
 
       List<String> map =  scheduleTaskMapper.getDirectSuperior(params);
+//      根据人员id获取其部门
+        Map<String, String> departmentName = scheduleTaskMapper.getOrgType(params);
+        System.out.println(departmentName);
+
+
+
       Map data = new HashMap<>();
       data.put("result",map);
       data.put("sucess",true);
       data.put("message","sucess");
+      if(data.get("result")==null){
+//          从宜搭矩阵那里获取部门主管
+//          判断是否属于瑞斯总部
+if(departmentName.get("COMPANYNAME").equals("瑞思教育")){
+    ydClient.queryData(YDParam.builder()
+            .formUuid("FORM-7927C714738F4113B69676B7858A7A79LS1A")
+//            .searchCondition(JSONObject.toJSONString())
+            .build(), YDConf.FORM_QUERY.retrieve_list_all);
 
-        return  data;
+}else{
+    ydClient.queryData(YDParam.builder()
+            .formUuid("FORM-D5DA72E39F8F4394BB84920D3677D59BX8PP")
+//            .searchCondition(JSONObject.toJSONString())
+            .build(), YDConf.FORM_QUERY.retrieve_list_all);
+}
+
+
+
+
+
+
+
+
+      }
+
+
+        return data;
     }
 
     @Override

+ 147 - 0
src/main/resources/ruisi/com/ruisiehr/mapper/ScheduleTaskMapper.xml

@@ -602,4 +602,151 @@ FROM
 
     </select>
 
+<!--    根据申请人获取他的部门信息-->
+    <select id="getOrgType" parameterType="java.util.Map" resultType="java.util.Map">
+        SELECT
+            PERSON.FCELL AS phone,
+            PERSON.FNUMBER AS EHR,
+            PERSON.FNAME_L2 AS name,
+            PERSON.CFYWM AS ename,
+            ZHIJI.FNAME_L2 AS zhijiName,
+            ZHIJI.FNUMBER AS zhijiCode,
+            (CASE
+                 WHEN laborrela.FENTERDATE IS NULL THEN personpos.FENTERDATE
+                 ELSE laborrela.FENTERDATE
+                END) AS HireDate,
+            (CASE
+                 WHEN laborrela.FACTUALFORMALDATE IS NULL THEN laborrela.FPLANFORMALDATE
+                 ELSE laborrela.FACTUALFORMALDATE
+                END) AS FormDate,
+-- 		职位
+            (CASE
+                 WHEN POSMEMBER.FISPRIMARY = '1' THEN EXPOS.FNAME_L2
+                 ELSE STANDARLIB.FNAME_L2
+                END) AS positionName,
+            (CASE
+                 WHEN POSMEMBER.FISPRIMARY = '1' THEN EXPOS.FNUMBER
+                 ELSE STANDARLIB.FNUMBER
+                END) AS positionCode,
+-- 		部门
+            (CASE
+                 WHEN POSMEMBER.FISPRIMARY = '1' THEN EXDEP.FNAME_L2
+                 ELSE ADMIN.FNAME_L2
+                END) AS orgName,
+            (CASE
+                 WHEN POSMEMBER.FISPRIMARY = '1' THEN EXDEP.FNUMBER
+                 ELSE ADMIN.FNUMBER
+                END) AS orgNum,
+            (CASE
+                 WHEN POSMEMBER.FISPRIMARY = '1' THEN EXDEP.FDISPLAYNAME_L2
+                 ELSE ADMIN.FDISPLAYNAME_L2
+                END) AS orgLineName,
+-- 			公司
+            (CASE
+                 WHEN EXDEP.FCOMPANYID = '00000000-0000-0000-0000-000000000000CCE7AED4' THEN EXCOM.FNAME_L2
+                 ELSE (CASE
+                           WHEN (CASE
+                                     WHEN POSMEMBER.FISPRIMARY = '1' THEN EXPOS.FNAME_L2
+                                     ELSE STANDARLIB.FNAME_L2
+                               END) LIKE '%校长%' THEN EXCOL.FNAME_L2
+                           ELSE (CASE
+                                     WHEN EXDEP.FOFFICEID = EXDEP.FID THEN EXCOM.FNAME_L2
+                                     WHEN EXDEP.FOFFICEID IS NOT NULL THEN EXCOL.FNAME_L2
+                                     ELSE EXCOM.FNAME_L2
+                               END)
+                     END)
+                END) AS companyName,
+            -- company code逻辑调整
+            (CASE
+                 WHEN EXDEP.FCOMPANYID = '00000000-0000-0000-0000-000000000000CCE7AED4' THEN EXCOM.FNUMBER
+                 ELSE (CASE
+                           WHEN (CASE
+                                     WHEN POSMEMBER.FISPRIMARY = '1' THEN EXPOS.FNAME_L2
+                                     ELSE STANDARLIB.FNAME_L2
+                               END) LIKE '%校长%' THEN EXCOL.FNUMBER
+                           ELSE (CASE
+                                     WHEN EXDEP.FOFFICEID = EXDEP.FID THEN EXCOM.FNUMBER
+                                     WHEN EXDEP.FOFFICEID IS NOT NULL THEN EXCOL.FNUMBER
+                                     ELSE EXCOM.FNUMBER
+                               END)
+                     END)
+                END) AS companyCode,
+-- 分部
+            (CASE
+                 WHEN EXDEP.FCOMPANYID = '00000000-0000-0000-0000-000000000000CCE7AED4' THEN EXCOM.FNAME_L2
+                 ELSE (CASE
+                           WHEN (CASE
+                                     WHEN POSMEMBER.FISPRIMARY = '1' THEN EXPOS.FNAME_L2
+                                     ELSE STANDARLIB.FNAME_L2
+                               END) LIKE '%校长%' THEN EXCOL.FNAME_L2
+                           ELSE (CASE
+                                     WHEN EXDEP.FOFFICEID = EXDEP.FID THEN EXCOM.FNAME_L2
+                                     WHEN EXDEP.FOFFICEID IS NOT NULL THEN EXCOL.FNAME_L2
+                                     ELSE EXCOM.FNAME_L2
+                               END)
+                     END)
+                END) AS PARENTORGNAME,
+            -- parent code逻辑调整
+            (CASE
+                 WHEN EXDEP.FCOMPANYID = '00000000-0000-0000-0000-000000000000CCE7AED4' THEN EXCOM.FNUMBER
+                 ELSE (CASE
+                           WHEN (CASE
+                                     WHEN POSMEMBER.FISPRIMARY = '1' THEN EXPOS.FNAME_L2
+                                     ELSE STANDARLIB.FNAME_L2
+                               END) LIKE '%校长%' THEN EXCOL.FNUMBER
+                           ELSE (CASE
+                                     WHEN EXDEP.FOFFICEID = EXDEP.FID THEN EXCOM.FNUMBER
+                                     WHEN EXDEP.FOFFICEID IS NOT NULL THEN EXCOL.FNUMBER
+                                     ELSE EXCOM.FNUMBER
+                               END)
+                     END)
+                END) AS PARENTORGNUM,
+            EMPHIREBILL.FBIZDATE AS empDate,
+            POSMEMBER.FISPRIMARY AS FISPRIMARY
+        FROM
+            T_BD_PERSON PERSON
+                LEFT JOIN T_HR_EmpHireBizBill EMPHIREBILL ON EMPHIREBILL.FAPPLIERID = PERSON.FID
+                LEFT JOIN T_ORG_POSITIONMEMBER POSMEMBER ON POSMEMBER.FPERSONID = PERSON.FID
+                LEFT JOIN T_HR_PERSONPOSITION PERPOS ON PERPOS.FPERSONID = PERSON.FID
+                LEFT JOIN T_ORG_POSITION EXPOS ON PERPOS.FPRIMARYPOSITIONID = EXPOS.FID
+                LEFT JOIN T_ORG_ADMIN EXDEP ON EXPOS.FADMINORGUNITID = EXDEP.FID
+                LEFT JOIN T_ORG_ADMIN EXCOL ON EXDEP.FOFFICEID = EXCOL.FID
+                LEFT JOIN T_ORG_ADMIN EXCOM ON EXDEP.FCOMPANYID = EXCOM.FID
+                LEFT JOIN T_HR_PERSONCONTACTMETHOD HRPERSON ON HRPERSON.FPERSONID = PERSON.FID
+                LEFT JOIN T_ORG_POSITION POSITION ON POSMEMBER.FPOSITIONID = POSITION.FID
+            LEFT JOIN T_ORG_POSITION UPPOSITION ON POSITION.FPARENTID = UPPOSITION.FID
+            LEFT JOIN T_ORG_POSITIONMEMBER UPPOSMEMBER ON UPPOSMEMBER.FPOSITIONID = UPPOSITION.FID
+            LEFT JOIN T_BD_PERSON UPPERSON ON UPPOSMEMBER.FPERSONID = UPPERSON.FID
+            LEFT JOIN T_HR_BDEMPLOYEETYPE EMPLOYEE ON EMPLOYEE.FID = PERSON.FEMPLOYEETYPEID
+            LEFT JOIN T_HR_PERSONPOSITION PERSONPOS ON PERSON.FID = PERSONPOS.FPERSONID
+            LEFT JOIN CT_HR_ZHIJI ZHIJI ON ZHIJI.FID = POSITION.CFZHIJIID
+            LEFT JOIN T_HR_EMPENROLLBIZBILLENTRY ENROLLBIZENTRY ON ENROLLBIZENTRY.FPERSONID = PERSON.FID
+            LEFT JOIN T_HR_EMPENROLLBIZBILL ENROLLBIZ ON ENROLLBIZ.FID = ENROLLBIZENTRY.FBILLID
+            LEFT JOIN (
+            SELECT C.*
+            FROM (
+            SELECT FPERSONID, MAX(FBIZDATE) FBIZDATE
+            FROM T_HR_RESIGNBIZBILLENTRY A
+            GROUP BY FPERSONID
+            ) B, T_HR_RESIGNBIZBILLENTRY C
+            WHERE B.FPERSONID = C.FPERSONID AND B.FBIZDATE = C.FBIZDATE
+            ) RESIGNENTRY ON RESIGNENTRY.FPERSONID = PERSON.FID
+            LEFT JOIN T_HR_RESIGNBIZBILL RESIGN ON RESIGN.FID = RESIGNENTRY.FBILLID
+            LEFT JOIN T_HR_RESIGNBACKBIZBILLENTRY BACKENTRY ON BACKENTRY.FPERSONID = PERSON.FID
+            LEFT JOIN T_HR_RELBETWEENPOSITIONANDLIB RELLIB ON POSITION.FID = RELLIB.FPOSITIONID
+            LEFT JOIN T_HR_POSITIONSTANDARDLIB STANDARLIB ON STANDARLIB.FID = RELLIB.FPOSITIONSTANDARDLIBID
+            LEFT JOIN T_HR_PERSONPOSITION PERSONPOSITION ON PERSONPOSITION.FPERSONID = PERSON.FID
+            LEFT JOIN T_ORG_ADMIN ADMIN ON PERSONPOSITION.FPERSONDEP = ADMIN.FID
+            LEFT JOIN T_ORG_ADMIN FADMIN ON PERSONPOSITION.FCOMPANYID = FADMIN.FID
+            LEFT JOIN T_ORG_ADMIN PARENTADMIN ON ADMIN.FPARENTID = PARENTADMIN.FID
+            LEFT JOIN T_HR_SHRADMINORGUNITEXTEND EXTEND ON EXTEND.FADMINORGUNITID = ADMIN.FID
+            LEFT JOIN T_HR_ENTERPRISENATURE NATURE ON EXTEND.FENTERPRISENATUREID = NATURE.FID
+            LEFT JOIN V_COS_ORG COSORG ON ADMIN.FNUMBER = COSORG.ORGNUMBER
+            LEFT JOIN T_HR_EmpLaborRelation laborrela ON laborrela.FPERSONID = person.fid
+            LEFT JOIN t_pm_user pu ON person.fid = pu.fpersonid
+        WHERE nvl(POSMEMBER.FISPRIMARY, '1') = '1'
+          AND  PERSON.FNUMBER = #{peopleCode};
+
+    </select>
+
 </mapper>

+ 13 - 4
src/test/java/ruisi/com/ruisiehr/RuiSiEhrApplicationTests.java

@@ -9,15 +9,13 @@ import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 import ruisi.com.ruisiehr.Utils.MianDengUtils;
+import ruisi.com.ruisiehr.mapper.ScheduleTaskMapper;
 
 import java.sql.Timestamp;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.time.Instant;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 import static ruisi.com.ruisiehr.service.serviceImpl.HRVacationInfoServiceImpl.daysBetween;
 
@@ -27,9 +25,20 @@ class RuiSiEhrApplicationTests {
     @Autowired
     private DDClient_Contacts ddClient_contacts;
     @Autowired
+    private ScheduleTaskMapper scheduleTaskMapper;
+    @Autowired
     private DDClient dClient;
     @Test
     void contextLoads() {
+    }
+    @Test
+    void conTest() throws ParseException {
+        Map map =new HashMap();
+        map.put("peopleCode",722);
+
+
+
+
     }
 
     @Test