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.

105 lines
4.6 KiB
Java

1 year ago
package weaver.interfaces.nl.job;
import com.wbi.util.Util;
import org.apache.commons.lang3.StringUtils;
import weaver.conn.RecordSet;
import weaver.general.BaseBean;
import weaver.interfaces.nl.util.PropBean;
import weaver.interfaces.schedule.BaseCronJob;
import java.util.*;
/**
*
*/
public class ModifyJobActivityJob extends BaseCronJob {
@Override
public void execute() {
new BaseBean();
BaseBean bb = new BaseBean();
bb.writeLog("ModifyJobActivityJob Start");
try {
RecordSet rs = new RecordSet();
//获取处级正职的职务ID
String divisionalPosition = Util.null2String(PropBean.getUfPropValue("DivisionalPosition"), "-1");
bb.writeLog("ModifyJobActivityJob divisionalPosition: " + divisionalPosition);
if (StringUtils.isNotBlank(divisionalPosition) && !"-1".equals(divisionalPosition)) {
Map<String,String> map = new HashMap<>();
String acqDeptSql = "select a.id, a.departmentid, d.departmentname " +
"from hrmresource a " +
"left join hrmjobtitles b " +
"on a.jobtitle = b.id " +
"left join hrmjobactivities c " +
"on c.id = b.JOBACTIVITYid " +
"left join hrmdepartment d " +
"on d.id = a.departmentid " +
"where a.status in (0,1,2,3) and c.id in (" + divisionalPosition + ")";
bb.writeLog("ModifyJobActivityJob acqDeptSql: " + acqDeptSql);
rs.executeQuery(acqDeptSql);
while (rs.next()) {
String resId = Util.null2String(rs.getString("id"));
String departmentId = Util.null2String(rs.getString("departmentid"));
if (map.containsKey(departmentId)) {
String s = map.get(departmentId);
s = s + "," + resId;
map.put(departmentId, s);
} else {
map.put(departmentId, resId);
}
}
bb.writeLog("ModifyJobActivityJob map: " + map);
if ( map != null && map.size() > 0) {
List<String> firstDepts = new ArrayList<>();
//获取需要更新的矩阵
String matrixId = Util.null2String(PropBean.getUfPropValue("matrixId"), "-1");
bb.writeLog("ModifyJobActivityJob matrixId: " + matrixId);
if (StringUtils.isNotBlank(matrixId) && !"-1".equals(matrixId)) {
String acqMatSql = "select szyjbm from Matrixtable_" + matrixId + " ";
bb.writeLog("ModifyJobActivityJob acqMatSql: " + acqMatSql);
rs.executeQuery(acqMatSql);
while (rs.next()) {
String szyjbm = Util.null2String(rs.getString("szyjbm"));
if (StringUtils.isNotBlank(szyjbm)) {
firstDepts.add(szyjbm);
}
}
bb.writeLog("ModifyJobActivityJob firstDepts: " + firstDepts);
if( firstDepts != null && firstDepts.size() > 0) {
String modifysql = "update Matrixtable_" + matrixId + " set bmld = ? where szyjbm = ? ";
bb.writeLog("ModifyJobActivityJob modifysql: " + modifysql);
List<List> modifyList = new ArrayList<>();
for( String depid : firstDepts) {
String resId = Util.null2String(map.get(depid));
List temp = new ArrayList();
temp.add(resId);
temp.add(depid);
modifyList.add(temp);
}
bb.writeLog("ModifyJobActivityJob modifyList: " + modifyList);
if (modifyList != null && modifyList.size() > 0) {
boolean modifyFlag = rs.executeBatchSql(modifysql, modifyList);
bb.writeLog("ModifyJobActivityJob modifyFlag: " + modifyFlag);
}
}
}
}
}
}catch (Exception e) {
bb.writeLog("ModifyJobActivityJob Exception: " + e);
}
}
}