hxx 10 meses atrás
pai
commit
4d1157baf0

+ 51 - 23
pom.xml

@@ -7,6 +7,14 @@
     <version>0.0.1-SNAPSHOT</version>
     <name>ruiSiEhr</name>
     <description>ruiSiEhr</description>
+
+    <parent>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>2.2.0.RELEASE</version> <!-- 使用最新的稳定版或其他适用版本 -->
+        <relativePath/>
+    </parent>
+
     <properties>
         <java.version>1.8</java.version>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@@ -156,21 +164,21 @@
 
 
     </dependencies>
-    <dependencyManagement>
-        <dependencies>
-            <dependency>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-dependencies</artifactId>
-                <version>${spring-boot.version}</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
+<!--    <dependencyManagement>-->
+<!--        <dependencies>-->
+<!--            <dependency>-->
+<!--                <groupId>org.springframework.boot</groupId>-->
+<!--                <artifactId>spring-boot-dependencies</artifactId>-->
+<!--                <version>${spring-boot.version}</version>-->
+<!--                <type>pom</type>-->
+<!--                <scope>import</scope>-->
+<!--            </dependency>-->
 
 
 
 
-        </dependencies>
-    </dependencyManagement>
+<!--        </dependencies>-->
+<!--    </dependencyManagement>-->
 
     <build>
         <!-- 如果不添加此节点mybatis的mapper.xml文件都会被漏掉。 -->
@@ -216,11 +224,42 @@
 
         </resources>
 
+<!--        <plugins>-->
+<!--            <plugin>-->
+<!--                <groupId>org.apache.maven.plugins</groupId>-->
+<!--                <artifactId>maven-compiler-plugin</artifactId>-->
+<!--                <version>3.8.1</version>-->
+<!--                <configuration>-->
+<!--                    <source>1.8</source>-->
+<!--                    <target>1.8</target>-->
+<!--                    <encoding>UTF-8</encoding>-->
+<!--                </configuration>-->
+<!--            </plugin>-->
+<!--            <plugin>-->
+<!--                <groupId>org.springframework.boot</groupId>-->
+<!--                <artifactId>spring-boot-maven-plugin</artifactId>-->
+<!--                <version>${spring-boot.version}</version>-->
+<!--                <configuration>-->
+<!--&lt;!&ndash;                    <mainClass>ruisi.com.ruisiehr.RuiSiEhrApplication</mainClass>&ndash;&gt;-->
+<!--&lt;!&ndash;                    <skip>true</skip>&ndash;&gt;-->
+<!--                    <executable>true</executable>-->
+<!--                    <includeSystemScope>true</includeSystemScope>-->
+<!--                </configuration>-->
+<!--                <executions>-->
+<!--                    <execution>-->
+<!--                        <id>repackage</id>-->
+<!--                        <goals>-->
+<!--                            <goal>repackage</goal>-->
+<!--                        </goals>-->
+<!--                    </execution>-->
+<!--                </executions>-->
+<!--            </plugin>-->
+<!--        </plugins>-->
         <plugins>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>
-                <version>3.8.1</version>
+                <version>3.1</version>
                 <configuration>
                     <source>1.8</source>
                     <target>1.8</target>
@@ -230,21 +269,10 @@
             <plugin>
                 <groupId>org.springframework.boot</groupId>
                 <artifactId>spring-boot-maven-plugin</artifactId>
-                <version>${spring-boot.version}</version>
                 <configuration>
-<!--                    <mainClass>ruisi.com.ruisiehr.RuiSiEhrApplication</mainClass>-->
-<!--                    <skip>true</skip>-->
                     <executable>true</executable>
                     <includeSystemScope>true</includeSystemScope>
                 </configuration>
-                <executions>
-                    <execution>
-                        <id>repackage</id>
-                        <goals>
-                            <goal>repackage</goal>
-                        </goals>
-                    </execution>
-                </executions>
             </plugin>
         </plugins>
     </build>

+ 11 - 5
src/main/java/ruisi/com/ruisiehr/Utils/LtpaTokenManager.java

@@ -1,9 +1,12 @@
 package ruisi.com.ruisiehr.Utils;
 
+import com.alibaba.fastjson.JSONObject;
 import com.kingdee.eas.cp.eip.sso.ltpa.ConfigurationError;
 import com.kingdee.eas.cp.eip.sso.ltpa.LtpaToken;
 import com.kingdee.eas.cp.eip.sso.util.BASE64Util;
 import com.kingdee.eas.cp.eip.sso.util.LMBCSUtil;
+import lombok.extern.slf4j.Slf4j;
+
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
@@ -15,8 +18,8 @@ import java.util.Date;
 import java.util.Properties;
 import java.util.StringTokenizer;
 import javax.servlet.http.Cookie;
-
-public class LtpaTokenManager {
+@Slf4j
+public class LtpaTokenManager2 {
     public static final String COOKIE_DOMAIN = "cookie.domain";
     public static final String COOKIE_NAME = "LtpaToken";
     public static final String DOMINO_SECRET = "domino.secret";
@@ -25,7 +28,7 @@ public class LtpaTokenManager {
     private static Properties properties = null;
     private static boolean isConfigLoaded = false;
 
-    public LtpaTokenManager() {
+    public LtpaTokenManager2() {
     }
 
     public static void loadConfig(String configFile) {
@@ -34,12 +37,15 @@ public class LtpaTokenManager {
             InputStream is = null;
 
             try {
+                log.info("configFile:{}",configFile);
                 is = new FileInputStream(configFile);
                 properties.load(is);
                 isConfigLoaded = true;
+                log.info("properties:{}", JSONObject.toJSONString(properties));
             } catch (IOException var10) {
                 throw new ConfigurationError("LtpaToken.properties not found. file = " + configFile);
             } finally {
+                log.info("is:{}",is);
                 try {
                     is.close();
                 } catch (IOException var9) {
@@ -47,7 +53,7 @@ public class LtpaTokenManager {
                 }
 
             }
-
+            log.info("properties2:{}", JSONObject.toJSONString(properties));
             if (null == properties.getProperty("domino.secret") || null == properties.getProperty("cookie.domain") || null == properties.getProperty("token.expiration")) {
                 throw new ConfigurationError("LtpaToken.properties not configured properly. file = " + configFile);
             }
@@ -82,7 +88,7 @@ public class LtpaTokenManager {
         Properties prop = new Properties();
         String configFile = "";
         String defaultConfigFileName = "config.properties";
-        InputStream is = LtpaTokenManager.class.getResourceAsStream(defaultConfigFileName);
+        InputStream is = LtpaTokenManager2.class.getResourceAsStream(defaultConfigFileName);
 
         try {
             prop.load(is);

+ 13 - 37
src/main/java/ruisi/com/ruisiehr/Utils/OSFWSClientSSOUtils.java

@@ -25,52 +25,28 @@ public class OSFWSClientSSOUtils {
 	 * 根据LtpaToken.properties配置调用接口
 	 */
 	public static String OSFWSClientSSO(String serviceName, Map<String, Object> params) throws URISyntaxException{
-		
 		OSFWSClient client = new OSFWSClient();
-		//webservice登录系统的用户信息
-		UserInfo userInfo=new UserInfo();
-		userInfo.setDcName("RSEAS");//数据中心ID可在管理控制台中查看,为数据中心代码
-		userInfo.setLanguage("L2");//多语言,L1,L2,L3
-		userInfo.setUserName("user");//用户名
-		
 		//配置文件路径,该配置文件需与s-HR服务端的一个配置文件内容保持一致,后续有详解
-//		String configFile = "/conf/LtpaToken.properties";//configFile是指LtpaToken.properties配置文件的路径
-		String configFile = "/home/server/ruisi_ehr/conf/LtpaToken.properties";//configFile是指LtpaToken.properties配置文件的路径
-		ClassLoader classLoader = OSFWSClientSSOUtils.class.getClassLoader();
-		// Get the URL of the application.yml file
-		URL resourceUrl = classLoader.getResource("conf/LtpaToken.properties");
-		String path = URLDecoder.decode(resourceUrl.getPath(), StandardCharsets.UTF_8);
-		System.out.println(path);
-
-//		String proFile ="D:/Items/ruiSiEhr/src/";
+	   ClassLoader classLoader = OSFWSClientSSOUtils.class.getClassLoader();
+		//URL resourceUrl = classLoader.getResource("conf/LtpaToken.properties");
+		//String path = URLDecoder.decode(resourceUrl.getPath(), StandardCharsets.UTF_8);//path 改成绝对路径,然后把LtpaToken.properties文件抛到这个路径下,
+		//根据密钥生成的密码串
+		String path="/home/server/ruisi_ehr/conf/LtpaToken.properties";
+//		String path = "D:/Items/ruiSiEhr/src/conf/LtpaToken.properties";
+		LtpaTokenManager2.loadConfig(path);
 
-//		ClassLoader pf1 = OSFWSClientSSOUtils.class.getClassLoader();
-//		System.out.println("pf1:"+pf1);
-//		URL pf2 = pf1.getResource(configFile);
-//		System.out.println("pf2:"+pf2);
-//		String pf3 =OSFWSClientSSOUtils.class.getClassLoader().getResource("/").toURI().toString().replaceAll("file:/", "");
-//		System.out.println("pf3:"+pf3);
-//		String proFile = OSFWSClientSSOUtils.class.getClassLoader().getResource("/").toURI().getPath().toString().replaceAll("file:/", "");
+		String password = LtpaTokenManager.generate("user",path).toString();
 
 
-//		String proFile = OSFWSClientSSOUtils.class.getClassLoader().getResource("/").toURI().getPath().toString().replaceAll("file:/", "");
-//		System.out.println("proFile:"+proFile);
-		//String configFile = "ssoShr/WEB-INF/classes/conf/LtpaToken.properties";
-		//Properties properties = new Properties();
-		// 使用InPutStream流读取properties文件
-		//BufferedInputStream b2 = new BufferedInputStream(new FileInputStream(proFile+configFile));
-		//properties.load(b2);
-		// 获取key对应的value值
-		//String name = properties.getProperty("name");
-		
-		//根据密钥生成的密码串
-		String password = LtpaTokenManager.generate("user",path).toString();
+		//webservice登录系统的用户信息
+		UserInfo userInfo=new UserInfo();
+		userInfo.setDcName("RSEAS");//数据中心ID可在管理控制台中查看,为数据中心代码
+		userInfo.setLanguage("L2");//多语言,L1,L2,L3
+		userInfo.setUserName("user");//
 		userInfo.setPassword(password);//生成的密码串
 		userInfo.setSlnName("eas");//固定值eas
 		userInfo.setDbType(1);//数据库类型,0-SQL Server, 1-Oracle, 2-DB2
-		
 		String res = client.proceedOSFByLtpa(shrAddr, serviceName, params, userInfo);
-
 		return res;
 	}
 

+ 9 - 1
src/main/java/ruisi/com/ruisiehr/controller/HRVacationInfoController.java

@@ -36,13 +36,21 @@ public class HRVacationInfoController {
 
     @PostMapping(value= "/calculateLeaveDays",consumes = "application/json")
 //    ,@RequestBody(required=false) String personId), @RequestBody(required=false) String holidayType, @RequestBody(required=false) Timestamp startDate, @RequestBody(required=false) Timestamp endDate
-    public McR calculateLeaveDays(@RequestBody Map params) throws URISyntaxException, ParseException {
+    public McR calculateLeaveDays(@RequestBody Map params) throws Exception {
        System.out.println(params+"---");
         McR data = iHRVacationInfoServer.calculateLeaveDays(params);
+        System.out.println("data:"+data+"---");
 
         return McR.success(data);
 
 
     }
 
+
+    @PostMapping(value= "/holidayType",consumes = "application/json")
+    public McR empHire(@RequestBody Map params) throws Exception {
+        return McR.success(iHRVacationInfoServer.getHolidayType(params));
+    }
+
+
 }

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

@@ -20,4 +20,7 @@ public interface ScheduleTaskMapper {
 
 
     List<Map<String, String>> getPerson();
+
+
+    List<Map<String, String>> getHolidayTypeByUserId(Map  param);
 }

+ 2 - 0
src/main/java/ruisi/com/ruisiehr/service/IHRVacationInfoServer.java

@@ -22,4 +22,6 @@ public interface IHRVacationInfoServer {
 
 //    , String personId, String holidayType, Timestamp startDate, Timestamp endDate
     McR calculateLeaveDays(Map excuse) throws URISyntaxException, ParseException;
+
+    McR getHolidayType(Map params);
 }

+ 1 - 1
src/main/java/ruisi/com/ruisiehr/service/IScheduleTaskServer.java

@@ -12,5 +12,5 @@ public interface IScheduleTaskServer {
 
     void syncPerson() throws ParseException;
 
-//    void syncDelete();
+    void syncDelete();
 }

+ 2 - 2
src/main/java/ruisi/com/ruisiehr/service/serviceImpl/HREmpHireServiceImpl.java

@@ -97,7 +97,7 @@ public class HREmpHireServiceImpl implements IHREmpHireServe {
 
                 try {
 //转正日期
-                    long timestamp = Long.parseLong(formData.get("dateField_lts45sm7").toString());
+                    long timestamp = Long.parseLong(formData.get("dateField_lxb75se3").toString());//
                     Date c = new Date(timestamp);
                     time = sdf.format(c);
                     System.out.println(time);
@@ -108,7 +108,7 @@ public class HREmpHireServiceImpl implements IHREmpHireServe {
                     sqTime = sdf.format(c);
                     System.out.println(sqTime);
 //入职日期
-                    timestamp = Long.parseLong(formData.get("dateField_lts45sm6").toString());
+                    timestamp = Long.parseLong(formData.get("dateField_lxb75se2").toString());
                     c = new Date(timestamp);
                     emTime = sdf.format(c);
                     System.out.println(emTime);

+ 10 - 1
src/main/java/ruisi/com/ruisiehr/service/serviceImpl/HRQuitServiceImpl.java

@@ -177,7 +177,16 @@ public class HRQuitServiceImpl implements IHRQuitServe {
 			}
 				
 				resignBizBillEntryMap.put("FBIZDATE", Timestamp.valueOf(time));//生效日期
-				resignBizBillEntryMap.put("FVARIATIONREASONID", params.get("selectField_ltxrz05h"));//变动原因(个人发展)
+//				resignBizBillEntryMap.put("FVARIATIONREASONID", params.get("selectField_ltxrz05h"));//变动原因(个人发展)
+			    if(params.get("selectField_ltxrz05h").toString().equals("个人发展")){
+					resignBizBillEntryMap.put("FVARIATIONREASONID", "Y3K05Pu2QNiAxV/oBHXFUuas36w=");
+				}else if(params.get("selectField_ltxrz05h").toString().equals("家庭原因")){
+					resignBizBillEntryMap.put("FVARIATIONREASONID", "E4+gsuSOQ0epKjDia3H4bOas36w=");
+				}else if(params.get("selectField_ltxrz05h").toString().equals("工作环境")){
+					resignBizBillEntryMap.put("FVARIATIONREASONID", "PkZedccCTxeuCePs68T0bOas36w=");
+				}else if(params.get("selectField_ltxrz05h").toString().equals("薪酬福利")){//我看别的
+					resignBizBillEntryMap.put("FVARIATIONREASONID", "dsdwo/9OQiKoRLLQEpNeeeas36w==");
+				}
 				resignBizBillEntryMap.put("FEMPLOYERUNITID", "00000000-0000-0000-0000-000000000000CCE7AED4");//用工单位
 				resignBizBillEntryMap.put("FCOMPANYID", personInfoMap.get("FCOMPANYID"));//公司
 				resignBizBillEntryMap.put("FOLDCOMPANYID", personInfoMap.get("FCOMPANYID"));//变动前公司

+ 86 - 84
src/main/java/ruisi/com/ruisiehr/service/serviceImpl/HRVacationInfoServiceImpl.java

@@ -21,6 +21,7 @@ import ruisi.com.ruisiehr.Utils.OSFWSClientSSOUtils;
 import ruisi.com.ruisiehr.mapper.HRPortalInfoMapper;
 import ruisi.com.ruisiehr.mapper.HRQuitMapper;
 import ruisi.com.ruisiehr.mapper.HRVacationInfoMapper;
+import ruisi.com.ruisiehr.mapper.ScheduleTaskMapper;
 import ruisi.com.ruisiehr.service.IHREmpHireServe;
 import ruisi.com.ruisiehr.service.IHRQuitServe;
 import ruisi.com.ruisiehr.service.IHRVacationInfoServer;
@@ -54,6 +55,9 @@ public class HRVacationInfoServiceImpl implements IHRVacationInfoServer {
     @Autowired
     IHREmpHireServe hrEmpHireService;
 
+    @Autowired
+    ScheduleTaskMapper scheduleTaskMapper;
+
 
     @Resource
     IHRQuitServe hrQuitService;
@@ -119,20 +123,15 @@ public class HRVacationInfoServiceImpl implements IHRVacationInfoServer {
     public McR calculateLeaveDays( Map params) throws URISyntaxException, ParseException  {
         String returnmsg = "";
         SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
-
         String wholeLen = "";
         String unit = "";
         Map<String, Object> param = new HashMap<String, Object>();
         String startTime = "";
         String endTime = "";
-
-
 //        封装返回值
         Map<String, Object> returnMap = new HashMap<String, Object>();
-
         // 获取请假时长
         Map<String, Object> leaveLengthMap = new HashMap<String, Object>();
-
         Map<String, String> personInfoMap = hrVacationInfoMapper.getPersonId(params.get("personId").toString());// 参数为personcode
         String personId = personInfoMap.get("PERSONFID");
         String holidayType = params.get("holidayType").toString();
@@ -141,33 +140,22 @@ public class HRVacationInfoServiceImpl implements IHRVacationInfoServer {
 //        Timestamp endDate = (Timestamp) excuse.get("endDate");
         Timestamp startDate = null;
         Timestamp endDate = null;
-
-
-            startDate = new Timestamp(UtilMap.getLong(params,"startDate"));
-
-
-
-            endDate = new Timestamp(UtilMap.getLong(params,"endDate"));
-
-
+        startDate = new Timestamp(UtilMap.getLong(params,"startDate"));
+        endDate = new Timestamp(UtilMap.getLong(params,"endDate"));
         leaveLengthMap.put("personId",personId);//  personInfoMap.get("PERSONFID")
         // 根据请假类型获取请假类型id
         String hoildayId = hrVacationInfoMapper.getholidayId(holidayType);
-
 //        startTime = UtilDateTime.formatLocal(LocalDateTime.parse(startDate),"yyyy-MM-dd HH:mm:ss");
 //        endTime = UtilDateTime.formatLocal(LocalDateTime.parse(endDate),"yyyy-MM-dd HH:mm:ss");
-
         startTime = UtilDateTime.formatLocal(startDate.toLocalDateTime(),"yyyy-MM-dd HH:mm:ss");
         endTime = UtilDateTime.formatLocal(endDate.toLocalDateTime(),"yyyy-MM-dd HH:mm:ss");
-
-
         leaveLengthMap.put("holidayTypeId", hoildayId);
         leaveLengthMap.put("beginTimeCount",startTime);
         leaveLengthMap.put("endTimeCount", endTime);
         leaveLengthMap.put("isElasticCalLen", false);
 
-        String result = OSFWSClientSSOUtils.OSFWSClientSSO("getAtsLeaveLengthOSF", leaveLengthMap);
-        System.out.println("result:"+result);
+        String result = OSFWSClientSSOUtils.OSFWSClientSSO("getAtsLeaveLengthOSF", leaveLengthMap);//
+        System.out.println("result::::::::::::::::"+result);
         if (!result.isEmpty()) {
             JSONObject jsonObject = JSON.parseObject(result);
             System.out.println("jsonObject:"+jsonObject);
@@ -196,77 +184,90 @@ public class HRVacationInfoServiceImpl implements IHRVacationInfoServer {
                 returnmsg = "系统不可提交本月之前的请假单,请重新选择请假开始时间。";
                 return McR.errorParam(returnmsg);
             }
-
-            param.put("timeOffApplyType",holidayType);
-            param.put("timeOffStartDate", startTime);
-            param.put("timeOffEndDate", endTime);
-            param.put("excuse", excuse);
-            param.put("personNum", params.get("personId"));
-            String res =OSFWSClientSSOUtils.OSFWSClientSSO("saveLeaveBill", param);
-            if (!res.isEmpty()) {
-                JSONObject jsonObj = JSON.parseObject(res);
-                String msg = jsonObj.get("msg").toString();
-
-                if (!"成功".equals(msg)) {
-                    String vacaLen = "";
-                    if("day".equals(unit)){
-                        vacaLen = String.valueOf(Double.valueOf(wholeLen) * 8);
-                    }else{
-                        vacaLen = wholeLen;
-                    }
-
-                    returnmsg = jsonObj.get("reason").toString();
-                    if(returnmsg.equals("剩余额度不足,请假失败!")){
-                        returnmsg = returnmsg+"当前请假时长为:"+vacaLen;
-                    }
-                }else{
-                        Map mapaLike = new HashMap();
-                        mapaLike.put("ygbh", personId);
-                        mapaLike.put("start_date",startTime);
-                        mapaLike.put("end_date", endDate);
-
-                        Map resMap1 = hRPortalInfoMapper.getAlikeLeave1(mapaLike);
-                        Map resMap2 = hRPortalInfoMapper.getAlikeLeave2(mapaLike);
-                        Map resMap3 = hRPortalInfoMapper.getAlikeLeave3(mapaLike);
-                        Map resMap4 = hRPortalInfoMapper.getAlikeLeave4(mapaLike);
-
-                        if(resMap1 ==null && resMap2 == null && resMap3 == null && resMap4 == null){
-
-                            String vacaLen = "";
-                            if("day".equals(unit)){
-                                vacaLen = String.valueOf(Double.valueOf(wholeLen) * 8);
-                            }else{
-                                vacaLen = wholeLen;
-                            }
-                            Map map = new HashMap();
-                            map.put("holiday_hours", vacaLen);
-                            map.put("ygbh", endTime);
-
-                            hRPortalInfoMapper.updateVacaLength(map);
-                        }else{
-                            Map<String, String> resultMap = new HashMap<String, String>();
-                            if(resMap1 != null){
-                                resultMap = hRPortalInfoMapper.getAlikeLeave1(mapaLike);
-                            }else if(resMap2 != null){
-                                resultMap = hRPortalInfoMapper.getAlikeLeave2(mapaLike);
-                            }else if(resMap3 != null){
-                                resultMap = hRPortalInfoMapper.getAlikeLeave3(mapaLike);
-                            }else if(resMap4 != null){
-                                resultMap = hRPortalInfoMapper.getAlikeLeave4(mapaLike);
-                            }
-                            returnmsg = "您已申请过包含当前请假时间的请假单,不可重复申请!单据编号为"+resultMap.get("lcbh");
-                        }
-                    }
-//                return McR.errorParam(returnmsg);
-                }
+//
+//            param.put("timeOffApplyType",holidayType);
+//            param.put("timeOffStartDate", startTime);
+//            param.put("timeOffEndDate", endTime);
+//            param.put("excuse", excuse);
+//            param.put("personNum", params.get("personId"));
+//            String res =OSFWSClientSSOUtils.OSFWSClientSSO("getAtsLeaveLengthOSF", param);
+//            System.out.println("res::::::::::::::::"+res);
+//
+//            if (!res.isEmpty()) {
+//                JSONObject jsonObj = JSON.parseObject(res);
+//                String msg = jsonObj.get("msg").toString();
+//
+//                if (!"成功".equals(msg)) {
+//                    String vacaLen = "";
+//                    if("day".equals(unit)){
+//                        vacaLen = String.valueOf(Double.valueOf(wholeLen) * 8);
+//                    }else{
+//                        vacaLen = wholeLen;
+//                    }
+//
+//                    returnmsg = jsonObj.get("reason").toString();
+//                    if(returnmsg.equals("剩余额度不足,请假失败!")){
+//                        returnmsg = returnmsg+"当前请假时长为:"+vacaLen;
+//                    }
+//                }else{
+//                    Map mapaLike = new HashMap();
+//                    mapaLike.put("ygbh", personId);
+//                    mapaLike.put("start_date",startTime);
+//                    mapaLike.put("end_date", endDate);
+//
+//                    Map resMap1 = hRPortalInfoMapper.getAlikeLeave1(mapaLike);
+//                    Map resMap2 = hRPortalInfoMapper.getAlikeLeave2(mapaLike);
+//                    Map resMap3 = hRPortalInfoMapper.getAlikeLeave3(mapaLike);
+//                    Map resMap4 = hRPortalInfoMapper.getAlikeLeave4(mapaLike);
+//
+//                    if(resMap1 ==null && resMap2 == null && resMap3 == null && resMap4 == null){
+//
+//                        String vacaLen = "";
+//                        if("day".equals(unit)){
+//                            vacaLen = String.valueOf(Double.valueOf(wholeLen) * 8);
+//                        }else{
+//                            vacaLen = wholeLen;
+//                        }
+//                        Map map = new HashMap();
+//                        map.put("holiday_hours", vacaLen);
+//                        map.put("ygbh", endTime);
+//
+////                        hRPortalInfoMapper.updateVacaLength(map);
+//                    }else{
+//                        Map<String, String> resultMap = new HashMap<String, String>();
+//                        if(resMap1 != null){
+//                            resultMap = hRPortalInfoMapper.getAlikeLeave1(mapaLike);
+//                        }else if(resMap2 != null){
+//                            resultMap = hRPortalInfoMapper.getAlikeLeave2(mapaLike);
+//                        }else if(resMap3 != null){
+//                            resultMap = hRPortalInfoMapper.getAlikeLeave3(mapaLike);
+//                        }else if(resMap4 != null){
+//                            resultMap = hRPortalInfoMapper.getAlikeLeave4(mapaLike);
+//                        }
+//                        returnmsg = "您已申请过包含当前请假时间的请假单,不可重复申请!单据编号为"+resultMap.get("lcbh");
+//                    }
+//                }
+////                return McR.errorParam(returnmsg);
+//            }
 
 
-            }
+        }
         returnMap.put("returnmsg", returnmsg);
         returnMap.put("wholeLen", wholeLen);
         return McR.success(returnMap);
     }
 
+    /**
+     * 获取请假类型
+     * @param params
+     * @return
+     */
+    @Override
+    public McR getHolidayType(Map params) {
+        return McR.success(scheduleTaskMapper.getHolidayTypeByUserId(params));
+
+    }
+
     //    请假单,出差逻辑实现
     private String saveVacationInfo(String serviceName,Map formDate, String onlyCheck) throws URISyntaxException, ParseException {
 
@@ -531,6 +532,7 @@ public class HRVacationInfoServiceImpl implements IHRVacationInfoServer {
                                     resultMap = hRPortalInfoMapper.getAlikeLeave3(mapaLike);
                                 }else if(resMap4 != null){
                                     resultMap = hRPortalInfoMapper.getAlikeLeave4(mapaLike);
+
                                 }
                                 returnmsg = "您已申请过包含当前请假时间的请假单,不可重复申请!单据编号为"+resultMap.get("lcbh");
                             }

+ 120 - 45
src/main/java/ruisi/com/ruisiehr/service/serviceImpl/ScheduleTaskServiceImpl.java

@@ -44,37 +44,38 @@ public class ScheduleTaskServiceImpl implements IScheduleTaskServer {
     @Autowired
     private DDClient dClient;
 
-//请假类型
+    //请假类型
     @Override
     public void syncHolidayType() {
         // 获取请假类型数据
-      List<Map<String, String>> holidayTypes = scheduleTaskMapper.getholidayType();
-      for (Map<String, String> holidayType : holidayTypes) {
+        List<Map<String, String>> holidayTypes = scheduleTaskMapper.getholidayType();
+        for (Map<String, String> holidayType : holidayTypes) {
 
 //              key一定要是, (逗号+空格)方便匹配的时候数据切割
-              String sc = "textField_ltxp9j1b, textField_lvxlsg7g, textField_lw1fdclw, textField_lwaiw7ig, textField_lvylr7ij";
-              String fd = "textField_ltxp9j17, textField_ltxp9j1b, numberField_ltxp9j18, numberField_ltxp9j19, textField_lvylr7ij, textField_lw1fdclw, textField_lvxlsg7g, textField_ltxp9j1a, textField_lwaiw7ig";
-              ydClient.operateData(YDParam.builder()
-                      .formUuid("FORM-60CEBDC490C74A36904B3776211C5CCA3Y8N")
-                      .searchCondition(JSONObject.toJSONString(UtilMap.map(sc, holidayType.get("HOLIDAYCODE"), holidayType.get("VALIDYEAR"), holidayType.get("PEOPLECODE"), holidayType.get("TELPHONE"), holidayType.get("PEOPLE"))))
-                      .formDataJson(JSONObject.toJSONString(UtilMap.map(fd, holidayType.get("HOLIDAYNAME"), holidayType.get("HOLIDAYCODE"), holidayType.get("REALLIMIT"), holidayType.get("FREEZELIMIT"), holidayType.get("PEOPLE"),holidayType.get("PEOPLECODE"), holidayType.get("VALIDYEAR"), holidayType.get("UNIT"), holidayType.get("TELPHONE"))))
-                      .build(),YDConf.FORM_OPERATION.upsert);
-
-      }
+            String sc = "textField_ltxp9j1b, textField_lvxlsg7g, textField_lw1fdclw, textField_lwaiw7ig, textField_lvylr7ij";
+            String fd = "textField_ltxp9j17, textField_ltxp9j1b, numberField_ltxp9j18, numberField_ltxp9j19, textField_lvylr7ij, textField_lw1fdclw, textField_lvxlsg7g, textField_ltxp9j1a, textField_lwaiw7ig";
+            ydClient.operateData(YDParam.builder()
+                    .formUuid("FORM-60CEBDC490C74A36904B3776211C5CCA3Y8N")
+                    .searchCondition(JSONObject.toJSONString(UtilMap.map(sc, holidayType.get("HOLIDAYCODE"), holidayType.get("VALIDYEAR"), holidayType.get("PEOPLECODE"), holidayType.get("TELPHONE"), holidayType.get("PEOPLE"))))
+                    .formDataJson(JSONObject.toJSONString(UtilMap.map(fd, holidayType.get("HOLIDAYNAME"), holidayType.get("HOLIDAYCODE"), holidayType.get("REALLIMIT"), holidayType.get("FREEZELIMIT"), holidayType.get("PEOPLE"), holidayType.get("PEOPLECODE"), holidayType.get("VALIDYEAR"), holidayType.get("UNIT"), holidayType.get("TELPHONE"))))
+                    .build(), YDConf.FORM_OPERATION.upsert);
+
+        }
     }
-//招聘来源
+
+    //招聘来源
     @Override
     public void syncRecruitSource() {
         List<Map<String, String>> recruitSource = scheduleTaskMapper.getRecruitSource();
         for (Map<String, String> source : recruitSource) {
 
-            if(source.get("RECRUITCODE")!=null){
+            if (source.get("RECRUITCODE") != null) {
                 String RS = "textField_lui2bzdj, textField_lui2bzdk";
                 ydClient.operateData(YDParam.builder()
                         .formUuid("FORM-7244B897AA4F47FBBED33C0D8DB50E4E835C")
                         .searchCondition(JSONObject.toJSONString(UtilMap.map("textField_lui2bzdk", source.get("RECRUITCODE"))))
                         .formDataJson(JSONObject.toJSONString(UtilMap.map(RS, source.get("RECRUITNAME"), source.get("RECRUITCODE"))))
-                        .build(),YDConf.FORM_OPERATION.upsert);
+                        .build(), YDConf.FORM_OPERATION.upsert);
 
             }
 
@@ -82,71 +83,145 @@ public class ScheduleTaskServiceImpl implements IScheduleTaskServer {
 
     }
 
-//    岗位信息
+    //    岗位信息
     @Override
     public void syncPositionSource() {
         List<Map<String, String>> positions = scheduleTaskMapper.getPosition();
         for (Map<String, String> position : positions)
-            if(position.get("JOBCODE")!=null)
-            {
+            if (position.get("JOBCODE") != null) {
                 String PS = "textField_lupd5hjh, textField_lupd5hji, textField_lupd5hjj, textField_lupd5hjk, textField_lvyv8631";
                 ydClient.operateData(YDParam.builder()
                         .formUuid("FORM-543561E5EF2848CE98311B5DF9AD4AB90DQJ")
                         .searchCondition(JSONObject.toJSONString(UtilMap.map("textField_lvyv8631", position.get("JOBCODE"))))
                         .formDataJson(JSONObject.toJSONString(UtilMap.map(PS, position.get("POSITIONNAME"), position.get("SIMPLENAME"), position.get("POSITIONCODE"), position.get("JOBNAME"), position.get("JOBCODE"))))
-                        .build(),YDConf.FORM_OPERATION.upsert);
+                        .build(), YDConf.FORM_OPERATION.upsert);
             }
 
 
     }
-//人员信息
+
+    //人员信息
     @Override
     public void syncPerson() throws ParseException {
 
         List<Map<String, String>> people = scheduleTaskMapper.getPerson();
         for (Map<String, String> person : people) {
 
-            try{
+            try {
                 String mobile = person.get("PHONE");
-                if(mobile!=null){
+                if (mobile != null) {
                     Map map = ddClient_contacts.getUserInfoByMobile(dClient.getAccessToken(), mobile);
-                    log.info("map:{}",map.get("userid"));
+                    log.info("map:{}", map.get("userid"));
+                    List<Object>   list1=new ArrayList<>();
+                    List<Object>   list2=new ArrayList<>();
+                    List<Object>   list3=new ArrayList<>();
+
+
 //  时间戳格式化
 //                    String hiredate = JSONObject.toJSONStringWithDateFormat(person.get("HIREDATE"), "yyyy-MM-dd ");
 //                    String empDate = JSONObject.toJSONStringWithDateFormat(person.get("EMPDATE"), "yyyy-MM-dd ");
                     if (true) {
-                        String SC ="textField_ltz8oj7i, textField_lu143isi, textField_lwahamao";
-                        String PR = "employeeField_ltz8oj7g, textField_ltz8oj7i, textField_lu143isi, textField_lvyzmtte, textField_lu9kqmgo, textField_lu9kqmgt, textField_lveut51i, textField_lveut51j, textField_luv30uq1, numberField_lwokzscl, textField_ltz8oj7m, textField_lveut51k, textField_lwahamao, dateField_lxb6up8p, dateField_lxb6up8q";
+                        ///一批量的HR数据(所属公司字段,所在分部字段)
+                        //根据公司得出depid; 文本,depid
+                        //根据公司depid+所在分部字段  ===dept_id
+                        //
+
+                        String ssgsid = "";
+                        String ssfbID = "";
+                        String ssfbOID = "";
+                        List<Map> map_bew = ddClient_contacts.listSubDepartmentDetail(dClient.getAccessToken(), 1);
+                        for (Map m : map_bew) {
+//["ssgsid" ]
+//                            if(person.get("COMPANYNAME").toString().equals("瑞思教育")){
+//                                ssgsid = "594629905";
+//                            }
+
+                                if (m.get("name").equals(person.get("COMPANYNAME").toString())) {
+                                ssgsid = String.valueOf(m.get("dept_id"));
+                                if (ssgsid != null) {
+                                    list1.add(ssgsid);
+                                    System.out.println("该用户的公司list1:"+list1);
+                                    List<Map>  map_Dew = ddClient_contacts.listSubDepartmentDetail(dClient.getAccessToken(), Long.parseLong(ssgsid));
+                                    for (Map ms : map_Dew) {
+                                        System.out.println(ms.get("name"));
+                                        System.out.println("从数据库获得的分部:"+person.get("PARENTORGNAME"));
+
+                                        if (ms.get("name").equals(person.get("PARENTORGNAME").toString())) {
+                                            ssfbID = ms.get("dept_id").toString();
+                                            list2.add(ssfbID);
+                                            System.out.println("该用户的分部list2:"+list2);
+
+                                            if (ssfbID != null) {
+                                                List<Map> map_Oew = ddClient_contacts.listSubDepartmentDetail(dClient.getAccessToken(), Long.parseLong(ssfbID));
+                                                for (Map mo : map_Oew) {
+
+                                                    System.out.println(mo.get("name"));
+                                                    System.out.println("从数据库获得的部门:"+person.get("ORGNAME"));
+                                                    if (mo.get("name").equals(person.get("ORGNAME").toString())) {
+                                                        ssfbOID = mo.get("dept_id").toString();
+                                                        list3.add(ssfbOID);
+                                                        System.out.println("该用户的部门list3:"+list3);
+                                                        break;
+                                                    }
+                                                }
+                                            }
+                                        }
+
+                                    }
+
+                                }
+                            }
+                        }
+//                        if (ssgsid != null) {
+//                            List<Map>  map_Dew = ddClient_contacts.listSubDepartmentDetail(dClient.getAccessToken(), Long.parseLong(ssgsid));
+//                            for (Map ms : map_Dew) {
+//                                System.out.println(ms.get("name"));
+//                                if (ms.get("name").equals(person.get("PARENTORGNAME").toString())) {
+//                                    ssfbID = ms.get("dept_id").toString();
+//                                    System.out.println("该用户的分部:"+ssfbID);
+//                                    break;
+//                                }
+//                            }
+//
+//                        }
+
+
+
+                        System.out.println(ssgsid + ";" + ssfbID+ ";" + ssfbOID);
+
+                        String SC = "textField_ltz8oj7i, textField_lu143isi, textField_lwahamao";
+                        String PR = "employeeField_ltz8oj7g, textField_ltz8oj7i, textField_lu143isi, textField_lvyzmtte, textField_lu9kqmgo, textField_lu9kqmgt, textField_lveut51i, textField_lveut51j, textField_luv30uq1, numberField_lwokzscl, textField_ltz8oj7m, textField_lveut51k, textField_lwahamao, dateField_lxb6up8p, dateField_lxb6up8q, departmentSelectField_lyqy1pou, departmentSelectField_lyqxfhfp, departmentSelectField_lz6dh5n7";
                         ydClient.operateData(YDParam.builder()
                                 .formUuid("FORM-2C10C625AF2D456F93852DFEAEBF9C349IQA")
-                                .searchCondition(JSONObject.toJSONString(UtilMap.map(SC, person.get("EHR"),person.get("NAME"),person.get("PHONE"))))
-                                .formDataJson(JSONObject.toJSONString(UtilMap.map(PR, map.get("userid").toString(), person.get("EHR"),person.get("NAME"),person.get("ENAME"),person.get("POSITIONNAME"),person.get("POSITIONCODE"),person.get("ORGNAME"),person.get("ORGNUMBER"),person.get("ZHIJINAME"),person.get("ZHIJICODE"),person.get("COMPANYNAME"),person.get("COMPANYCODE"),person.get("PHONE"),person.get("HIREDATE"),person.get("EMPDATE"))))
+                                .searchCondition(JSONObject.toJSONString(UtilMap.map(SC, person.get("EHR"), person.get("NAME"), person.get("PHONE"))))
+                                .formDataJson(JSONObject.toJSONString(UtilMap.map(PR, map.get("userid").toString(), person.get("EHR"), person.get("NAME"), person.get("ENAME"), person.get("POSITIONNAME"), person.get("POSITIONCODE"), person.get("ORGNAME"), person.get("ORGNUMBER"), person.get("ZHIJINAME"), person.get("ZHIJICODE"), person.get("COMPANYNAME"), person.get("COMPANYCODE"), person.get("PHONE"), person.get("HIREDATE"), person.get("EMPDATE"),list1 ,list2, list3)))
                                 .build(), YDConf.FORM_OPERATION.upsert);
                     }
                 }
-            }catch (McException e){
-                log.info("人员信息同步失败:"+e.getMessage());
+            } catch (McException e) {
+                log.info("人员信息同步失败:" + e.getMessage());
             }
         }
     }
 
 
 
-//    @Override
-//    public void syncDelete() {
-//
-//       DDR_New ddrNew = ydClient.queryData(YDParam.builder()
-//                .formUuid("FORM-2C10C625AF2D456F93852DFEAEBF9C349IQA")
-//                .build(),YDConf.FORM_QUERY.retrieve_search_form_id);
-//
-//           System.out.println(ddrNew.getTotalCount());
-//
-//               ydClient.operateData(YDParam.builder()
-//                       .formUuid("FORM-2C10C625AF2D456F93852DFEAEBF9C349IQA")
-//                       .asynchronousExecution(true)
-//                       .formInstanceIdList((List<String>) ddrNew.getData())
-//                       .build(),YDConf.FORM_OPERATION.delete_batch);
-//
-//    }
+
+    @Override
+    public void syncDelete() {
+
+       DDR_New ddrNew = ydClient.queryData(YDParam.builder()
+                .formUuid("FORM-2C10C625AF2D456F93852DFEAEBF9C349IQA")
+                .build(),YDConf.FORM_QUERY.retrieve_search_form_id);
+
+           System.out.println(ddrNew.getTotalCount());
+
+               ydClient.operateData(YDParam.builder()
+                       .formUuid("FORM-2C10C625AF2D456F93852DFEAEBF9C349IQA")
+                       .asynchronousExecution(true)
+                       .formInstanceIdList((List<String>) ddrNew.getData())
+                       .build(),YDConf.FORM_OPERATION.delete_batch);
+
+    }
 }
 

+ 69 - 4
src/main/resources/ruisi/com/ruisiehr/mapper/ScheduleTaskMapper.xml

@@ -2,7 +2,70 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="ruisi.com.ruisiehr.mapper.ScheduleTaskMapper">
 
-    <!-- 查询节假日 -->
+    <!-- 查询节假日定时版 -->
+    <select id="getHolidayTypeByUserId" parameterType="java.util.Map" resultType="java.util.Map">
+        SELECT people, holidayName, holidayCode, realLimit, freezeLimit, unit,validYear, peopleCode, telphone
+        FROM (
+                 SELECT HOLIDAYTYPE.FNAME_L2 holidayName,
+                        ( CASE WHEN HOLIDAYLIMIT.FHolidayUnit = 1 THEN '天' ELSE '小时' END ) unit,
+                        HOLIDAYTYPE.fnumber holidayCode,
+                        PROPOSER.fnumber peopleCode,
+                        PROPOSER.FNAME_L2 people,
+                        PROPOSER.FCELL telphone,
+                        HOLIDAYLIMIT.FCycleBeginDate 周期开始时间,
+                        HOLIDAYLIMIT.FCycleEndDate 周期结束时间,
+                        HOLIDAYLIMIT.FDelayDate 延期时间,
+                        to_char(HOLIDAYLIMIT.fyear ) validYear,
+                        HOLIDAYLIMIT.FRealLimit realLimit,
+                        HOLIDAYLIMIT.FUsedLimit 已用额度,
+                        HOLIDAYLIMIT.FreezeLimit freezeLimit,
+                        HOLIDAYLIMIT.FRemainLimit 剩余,
+                        ( CASE WHEN PROPOSER.FGender = 1 AND HOLIDAYTYPE.fnumber IN ( 'RS010', 'RS01401', 'RS01402', 'RS01403', 'RS01404', 'RS016', 'RS018', 'RS019', 'RS020', 'RS028', 'RS052', 'RS053' ) THEN '隐藏'
+                               WHEN PROPOSER.FGender = 2 AND HOLIDAYTYPE.fnumber IN ( 'RS015' ) THEN '隐藏' ELSE '不隐藏' END ) isread
+                 FROM T_HR_ATS_AtsHolidayFile ATSHOLIDAYFILE
+                          LEFT JOIN T_HR_ATS_HolidayLimit HOLIDAYLIMIT ON HOLIDAYLIMIT.FProposerID = ATSHOLIDAYFILE.FProposerID
+                          LEFT JOIN T_HR_ATS_HolidayPolicy HOLIDAYPOLICY ON HOLIDAYLIMIT.FHolidayPolicyID = HOLIDAYPOLICY.FID
+                          LEFT JOIN T_HR_ATS_HolidayType HOLIDAYTYPE ON HOLIDAYPOLICY.FHolidayTypeID = HOLIDAYTYPE.FID
+                          LEFT OUTER JOIN T_BD_Person PROPOSER ON ATSHOLIDAYFILE.FProposerID = PROPOSER.FID WHERE HOLIDAYTYPE.FState = 1 ) tmp
+        WHERE isread = '不隐藏'
+          AND (to_char( 延期时间, 'yyyymmdd' ) >= to_char( SYSDATE, 'yyyymmdd' ) OR 延期时间 IS NULL)
+          AND (validYear= extract(year from sysdate) OR validYear IS NULL)
+          AND peopleCode = #{peopleCode}
+        union all
+        select people, holidayName, holidayCode, realLimit, freezeLimit, unit,validYear, peopleCode, telphone
+        from
+            (SELECT HOLIDAYTYPE.FNAME_L2 holidayName,
+                    ( CASE WHEN HOLIDAYPOLICY.FUnit = 1 THEN '天' ELSE '小时' END ) unit,
+                    HOLIDAYTYPE.fnumber holidayCode,
+                    PROPOSER.fnumber peopleCode,
+                    PROPOSER.FNAME_L2 people,
+                    PROPOSER.FCELL telphone,
+                    null 周期开始时间,
+                    null 周期结束时间,
+                    null validYear,
+                    '' 有效期年度,
+                    null realLimit,
+                    null 已用额度,
+                    null freezeLimit,
+                    null 剩余,
+                    ( CASE WHEN PROPOSER.FGender = 1 AND HOLIDAYTYPE.fnumber IN ( 'RS010', 'RS01401', 'RS01402', 'RS01403', 'RS01404', 'RS016', 'RS018', 'RS019', 'RS020', 'RS028', 'RS052', 'RS053' ) THEN '隐藏'
+                           WHEN PROPOSER.FGender = 2 AND HOLIDAYTYPE.fnumber IN ( 'RS015' ) THEN '隐藏' ELSE '不隐藏' END ) isread
+             FROM T_HR_ATS_AtsHolidayFile ATSHOLIDAYFILE
+                      LEFT JOIN T_HR_ATS_HolidayPolicy HOLIDAYPOLICY ON ATSHOLIDAYFILE.FHolidayPolicySetID = HOLIDAYPOLICY.FHolidayPolicySetID
+                      LEFT JOIN T_HR_ATS_HolidayType HOLIDAYTYPE ON HOLIDAYPOLICY.FHolidayTypeID = HOLIDAYTYPE.FID
+                      JOIN T_BD_Person PROPOSER ON ATSHOLIDAYFILE.FProposerID = PROPOSER.FID
+             WHERE HOLIDAYPOLICY.FIsCtrlLimit=0 AND HOLIDAYTYPE.FState = 1) tmp
+        where
+            isread = '不隐藏'
+          AND (validYear= extract(year from sysdate) OR validYear IS NULL)
+          AND peopleCode = #{peopleCode}
+    </select>
+
+
+
+
+
+    <!-- 查询节假日定时版 -->
 <select id="getholidayType" parameterType="String" resultType="java.util.Map">
     SELECT people, holidayName, holidayCode, realLimit, freezeLimit, unit,validYear, peopleCode, telphone
     FROM (
@@ -73,10 +136,10 @@
 <!--    获取人员档案:-->
     <select id="getPerson" resultType="java.util.Map">
         SELECT PERSON.FCELL phone, PERSON.FNUMBER EHR, PERSON.FNAME_L2 name, PERSON.CFYWM ename,
-
                (case when  laborrela.FENTERDATE is null then personpos.FENTERDATE else   laborrela.FENTERDATE end ) HireDate,
-               STANDARLIB.FNAME_L2 positionName, STANDARLIB.FNUMBER positionCode,COSORG.ORGNAME orgName, COSORG.ORGNUMBER orgNumber,
-               ZHIJI.FNAME_L2 zhijiName, ZHIJI.FNUMBER zhijiCode,NATURE.FNAME_L2 companyName,NATURE.FNUMBER companyCode,EMPHIREBILL.FBIZDATE empDate
+               STANDARLIB.FNAME_L2 positionName, STANDARLIB.FNUMBER positionCode,ADMIN.FNAME_L2 orgName, ADMIN.FNUMBER orgNumber,
+               ZHIJI.FNAME_L2 zhijiName, ZHIJI.FNUMBER zhijiCode,FADMIN.FNAME_L2 companyName,FADMIN.FNUMBER companyCode,EMPHIREBILL.FBIZDATE empDate,
+               PARENTADMIN.FNAME_L2 parentOrgName
         FROM
             T_BD_PERSON PERSON
             LEFT JOIN T_HR_EmpHireBizBill EMPHIREBILL ON EMPHIREBILL.FAPPLIERID = PERSON.FID
@@ -103,6 +166,8 @@
             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

+ 47 - 0
src/test/java/ruisi/com/ruisiehr/RuiSiEhrApplicationTests.java

@@ -1,13 +1,60 @@
 package ruisi.com.ruisiehr;
 
+import com.malk.service.dingtalk.DDClient;
+import com.malk.service.dingtalk.DDClient_Contacts;
 import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 
+import java.util.List;
+import java.util.Map;
+
 @SpringBootTest
 class RuiSiEhrApplicationTests {
 
+    @Autowired
+    private DDClient_Contacts ddClient_contacts;
+    @Autowired
+    private DDClient dClient;
     @Test
     void contextLoads() {
     }
 
+    @Test
+
+    void test() {
+        ///一批量的HR数据(所属公司字段,所在分部字段)
+        //根据公司得出depid; 文本,depid
+        //根据公司depid+所在分部字段  ===dept_id
+        //
+        long  ssgsid =0  ;
+        String ssfbID ="" ;
+        List<Map> map =  ddClient_contacts.listSubDepartmentDetail(dClient.getAccessToken(),1);
+       for (Map m:map){
+           //System.out.println(m.get("name"));
+
+            System.out.println(m);
+            if(m.get("name").equals("北京分公司")){
+                ssgsid= Long.parseLong(m.get("dept_id").toString());
+                break;
+            }
+       }
+      if(ssgsid!=0){
+             map =  ddClient_contacts.listSubDepartmentDetail(dClient.getAccessToken(),ssgsid);
+           for (Map m:map){
+               //System.out.println(m.get("name"));
+
+               System.out.println(m);
+               if(m.get("name").equals("整合营销部")){
+                   ssfbID=   m.get("dept_id").toString();
+                   break;
+               }
+           }
+      }
+
+       System.out.println(ssgsid+";"+ssfbID);
+
+
+    }
+
 }