Explorar o código

根据定调资信息维护子表hi_psndoc_wadoc定时更新

longht %!s(int64=4) %!d(string=hai) anos
pai
achega
83ef707a46

+ 96 - 0
hrwa/src/private/nc/bs/hrwa/alert/PsnWadocSendPrmSecAlert.java

@@ -0,0 +1,96 @@
+package nc.bs.hrwa.alert;
+
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import nc.bs.dao.BaseDAO;
+import nc.bs.pub.pa.PreAlertObject;
+import nc.bs.pub.taskcenter.BgWorkingContext;
+import nc.bs.pub.taskcenter.IBackgroundWorkPlugin;
+import nc.jdbc.framework.processor.MapListProcessor;
+import nc.vo.pub.BusinessException;
+import nc.vo.pub.lang.UFBoolean;
+import nc.vo.pub.lang.UFDate;
+import nc.vo.pub.lang.UFDateTime;
+
+/*
+ * 
+ * 后台任务
+ * 根据定调资信息维护子表 hi_psndoc_wadoc 定时更新 
+ * 人员信息维护 bd_psndoc 的薪等薪级 jobglbdef6 字段
+ * 
+ * */
+public class PsnWadocSendPrmSecAlert implements IBackgroundWorkPlugin{
+
+	public PreAlertObject executeTask(BgWorkingContext bgwc) throws BusinessException {
+
+		BaseDAO baseDao = new BaseDAO();
+		
+		UFDateTime time = new UFDateTime(System.currentTimeMillis());
+		UFDate date = time.getDate();//系统当前日期
+		
+		StringBuffer psnwadocsql = new StringBuffer();
+		psnwadocsql.append("select ");
+		psnwadocsql.append("hi_psndoc_wadoc.pk_psndoc as pk_psndoc,");
+		psnwadocsql.append("hi_psndoc_wadoc.pk_psnjob,");
+		psnwadocsql.append("hi_psndoc_wadoc.negotiation_wage,");
+		psnwadocsql.append("hi_psndoc_wadoc.begindate as begindate,");
+		psnwadocsql.append("wa_prmlv.levelname as prmname,");
+		psnwadocsql.append("wa_seclv.levelname as secname,");
+		psnwadocsql.append(" doc.pk_defdoc,");
+		psnwadocsql.append("doc.name,");
+		psnwadocsql.append("doc.pk_defdoclist");
+		psnwadocsql.append(" from hi_psndoc_wadoc ");
+		psnwadocsql.append(" left join wa_grade on wa_grade.pk_wa_grd = hi_psndoc_wadoc.pk_wa_grd");
+		psnwadocsql.append(" left join wa_prmlv on wa_prmlv.pk_wa_prmlv = hi_psndoc_wadoc.pk_wa_prmlv");
+		psnwadocsql.append(" left join wa_seclv on wa_seclv.pk_wa_seclv = hi_psndoc_wadoc.pk_wa_seclv");
+		psnwadocsql.append(" left join bd_defdoc doc");
+		psnwadocsql.append(" on  doc.name = wa_prmlv.levelname||wa_seclv.levelname ");
+		psnwadocsql.append(" and pk_defdoclist in (SELECT pk_defdoclist FROM bd_defdoclist where code ='HRFR01') ");
+		psnwadocsql.append(" left join hi_psnjob ");
+		psnwadocsql.append(" on hi_psndoc_wadoc.pk_psnjob = hi_psnjob.pk_psnjob ");
+		psnwadocsql.append(" where hi_psndoc_wadoc.dr = 0 ");
+		psnwadocsql.append(" and wa_grade.dr = 0");
+		psnwadocsql.append(" and wa_grade.pk_wa_item = '1001N6100000000HZ7WO' ");
+		psnwadocsql.append(" and hi_psndoc_wadoc.lastflag = 'Y' ");
+		psnwadocsql.append(" and hi_psndoc_wadoc.negotiation_wage = 'N' ");
+		psnwadocsql.append(" and doc.pk_defdoc<>nvl(hi_psnjob.jobglbdef6,'~') ");
+		psnwadocsql.append(" and hi_psndoc_wadoc.begindate <='");
+		psnwadocsql.append(date);
+		psnwadocsql.append("'");
+		
+		List<Map<String, String>> list = (List<Map<String, String>>)baseDao.executeQuery(psnwadocsql.toString(), new MapListProcessor());
+		if(list!=null && list.size()>0){
+			Map<String,String> map = new HashMap<String,String>();
+
+				
+			list.forEach(res->{
+				map.put(res.get("pk_psnjob"), res.get("pk_defdoc"));
+			 
+			});
+	
+			Set<String> set = map.keySet();
+			for(String pk_psnjob : set){
+				String pk_defdoc = map.get(pk_psnjob);
+				
+				if(pk_defdoc!=null){
+					StringBuffer updatebuff = new StringBuffer();
+					updatebuff.append(" update hi_psnjob");
+					updatebuff.append(" set jobglbdef6 ='");
+					updatebuff.append(pk_defdoc);
+					updatebuff.append("' where   pk_psnjob ='");
+					updatebuff.append(pk_psnjob);
+					updatebuff.append("'");
+					baseDao.executeUpdate(updatebuff.toString());
+				}
+				
+			}	
+				
+		}
+		return null;
+	}
+
+}