You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
weaver-develop/src/weaver/interfaces/sskj/crob/RefreshHrmSecLevelCrob.java

55 lines
1.8 KiB
Java

package weaver.interfaces.sskj.crob;
import com.engine.integration.util.StringUtils;
import org.apache.commons.collections.CollectionUtils;
import weaver.conn.RecordSet;
import weaver.general.Util;
import weaver.interfaces.schedule.BaseCronJob;
import java.util.ArrayList;
import java.util.List;
/**
* @Author liang.cheng
* @Date 2023/11/28 3:53 PM
* @Description: 刷新人员安全级别
* @Version 1.0
*/
public class RefreshHrmSecLevelCrob extends BaseCronJob {
@Override
public void execute() {
List<ReleationPO> releationList = new ArrayList<>();
RecordSet rs = new RecordSet();
rs.executeQuery("select zwlb,aqjb from uf_aqjbdygxb");
while (rs.next()) {
releationList.add(ReleationPO.builder()
.jobGroups(Util.getIntValue(rs.getString("zwlb")))
.secLevel(Util.getIntValue(rs.getString("aqjb")))
.build());
}
releationList.forEach(releationPo -> {
List<Integer> jobTitles = new ArrayList<>();
selectJobTitlesByJobGroup(jobTitles,releationPo.getJobGroups());
if (CollectionUtils.isNotEmpty(jobTitles)) {
rs.executeUpdate("update hrmresource a set a.seclevel = ? where " +
" a.jobtitle in ("+StringUtils.join(jobTitles, ",")+")",releationPo.getSecLevel());
}
});
}
private List<Integer> selectJobTitlesByJobGroup(List<Integer> jobTitles,Integer jobGroup){
RecordSet rs = new RecordSet();
rs.executeQuery("select a.id from hrmjobtitles a join hrmjobactivities b on a.jobactivityid = b.id\n" +
" join hrmjobgroups c on b.jobgroupid = c.id where c.id = ?",jobGroup);
while (rs.next()) {
jobTitles.add(Util.getIntValue(rs.getString("id")));
}
return jobTitles;
}
}