|
@@ -1,12 +1,19 @@
|
|
|
package com.kingdee.eas.hr.perf.handler;
|
|
|
|
|
|
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
import com.google.common.collect.Maps;
|
|
|
import com.google.common.collect.Sets;
|
|
|
+import com.grapecity.documents.excel.O;
|
|
|
import com.kingdee.bos.BOSException;
|
|
|
import com.kingdee.bos.Context;
|
|
|
+import com.kingdee.bos.metadata.entity.*;
|
|
|
+import com.kingdee.bos.metadata.query.util.CompareType;
|
|
|
import com.kingdee.bos.rabbitmq.guava.Lists;
|
|
|
+import com.kingdee.eas.common.EASBizException;
|
|
|
import com.kingdee.eas.custom.performanceScoring.handler.EvaResultSummaryManagerListHandlerEx;
|
|
|
+import com.kingdee.eas.framework.CoreBaseCollection;
|
|
|
import com.kingdee.eas.hr.perf.PerformProTeamCollection;
|
|
|
import com.kingdee.eas.hr.perf.PerformProTeamFactory;
|
|
|
import com.kingdee.eas.hr.perf.PersonPerformProCollection;
|
|
@@ -17,12 +24,15 @@ import com.kingdee.shr.base.syssetting.api.bean.BatchMessageTipsHeader;
|
|
|
import com.kingdee.shr.base.syssetting.context.SHRContext;
|
|
|
import com.kingdee.shr.base.syssetting.exception.SHRWebException;
|
|
|
import com.kingdee.shr.base.syssetting.exception.ShrWebBizException;
|
|
|
-import com.kingdee.shr.perfweb.app.base.evalplan.EvalplanCycleTypeEnum;
|
|
|
+import com.kingdee.shr.perfweb.app.base.evalplan.*;
|
|
|
import com.kingdee.shr.perfweb.app.exception.SHRPerfWebBizException;
|
|
|
+import com.kingdee.shr.perfweb.app.resource.SHRPerfWebResource;
|
|
|
+import com.kingdee.shr.perfweb.util.*;
|
|
|
import com.kingdee.util.StringUtils;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.ui.ModelMap;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
@@ -37,6 +47,124 @@ public class EvaResultSummaryManagerListHandlerExEx extends EvaResultSummaryMana
|
|
|
|
|
|
private static final Logger logger = LoggerFactory.getLogger(EvaResultSummaryManagerListHandlerExEx.class);
|
|
|
|
|
|
+ public void batchSaveReviseDataAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap, BatchMessageTipsHeader batchMessageTipsHeader) throws SHRWebException {
|
|
|
+ Context ctx = SHRContext.getInstance().getContext();
|
|
|
+
|
|
|
+ List unValidIds;
|
|
|
+ try {
|
|
|
+ unValidIds = EvaResultSummaryBillUtil.validEvaResultSummaryBill(ctx, (String)null, request.getParameter("billId"), "10");
|
|
|
+ if (unValidIds.size() > 0) {
|
|
|
+ addBatchMessageTips(unValidIds, SHRPerfWebResourceUtil.getRes(SHRPerfWebResource.CANNOTENTRYREVISEBYBILLSTATE, ctx), batchMessageTipsHeader);
|
|
|
+ }
|
|
|
+ } catch (BOSException var12) {
|
|
|
+ logger.error("【PERFWEB--batchSaveReviseDataAction】-it is failed to get state of summary bill,e=", var12);
|
|
|
+ throw new ShrWebBizException(SHRPerfWebResourceUtil.getRes(SHRPerfWebResource.CANNOTENTRYREVISEBYBILLSTATE, ctx));
|
|
|
+ }
|
|
|
+
|
|
|
+ try {
|
|
|
+ String datas = request.getParameter("datas");
|
|
|
+ if (!StringUtils.isEmpty(datas)) {
|
|
|
+ if (!CollectionUtils.isEmpty(unValidIds)) {
|
|
|
+ List<HashMap> reviseDataList = JSONArray.parseArray(datas, HashMap.class);
|
|
|
+ List<HashMap> rightDatas = new ArrayList(reviseDataList.size());
|
|
|
+ Iterator var10 = reviseDataList.iterator();
|
|
|
+
|
|
|
+ while(var10.hasNext()) {
|
|
|
+ HashMap map = (HashMap)var10.next();
|
|
|
+ if (!unValidIds.contains(map.get("id"))) {
|
|
|
+ rightDatas.add(map);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ datas = JSONArray.toJSONString(rightDatas);
|
|
|
+ }
|
|
|
+
|
|
|
+ this._batchSaveReviseData(ctx,datas, batchMessageTipsHeader);
|
|
|
+ }
|
|
|
+ } catch (Exception var13) {
|
|
|
+ logger.error("batchSaveReviseDataAction is error: ", var13);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ protected void _batchSaveReviseData(Context ctx, String reviseDataJson, BatchMessageTipsHeader batchMessageTipsHeader) throws BOSException, EASBizException {
|
|
|
+ List<HashMap> reviseDataList = JSONArray.parseArray(reviseDataJson, HashMap.class);
|
|
|
+ CoreBaseCollection evaResultSummaryCollection = new CoreBaseCollection();
|
|
|
+ if (!CollectionUtils.isEmpty(reviseDataList)) {
|
|
|
+ Set<String> summaryIds = new HashSet(reviseDataList.size());
|
|
|
+ Set<String> summaryErrIds = new HashSet(reviseDataList.size());
|
|
|
+ Iterator var7 = reviseDataList.iterator();
|
|
|
+
|
|
|
+ while(var7.hasNext()) {
|
|
|
+ HashMap reviseData = (HashMap)var7.next();
|
|
|
+ EvaResultSummaryInfo evaResultSummaryInfo = new EvaResultSummaryInfo();
|
|
|
+ summaryIds.add((String)reviseData.get("id"));
|
|
|
+ evaResultSummaryInfo.put("id", reviseData.get("id"));
|
|
|
+ if (reviseData.get("reviseSumScore") != null && org.apache.commons.lang.StringUtils.isNotBlank(String.valueOf(reviseData.get("reviseSumScore")))) {
|
|
|
+ evaResultSummaryInfo.put("reviseSumScore", reviseData.get("reviseSumScore"));
|
|
|
+ }
|
|
|
+
|
|
|
+ evaResultSummaryInfo.put("reviseGradeLevel", reviseData.get("reviseGradeLevel"));
|
|
|
+ evaResultSummaryInfo.put("reviseReason", reviseData.get("reviseReason"));
|
|
|
+
|
|
|
+ Object perCoefficientObj=reviseData.get("perCoefficient");
|
|
|
+ Object perMaxCoefficientObj=reviseData.get("perMaxCoefficient");
|
|
|
+ Object perMinCoefficientObj=reviseData.get("perMinCoefficient");
|
|
|
+
|
|
|
+ if(null==perCoefficientObj||null==perMaxCoefficientObj||null==perMinCoefficientObj) {
|
|
|
+ evaResultSummaryCollection.add(evaResultSummaryInfo);
|
|
|
+ }else {
|
|
|
+ evaResultSummaryInfo.put("perCoefficient", perCoefficientObj);
|
|
|
+ BigDecimal perMaxCoefficient = new BigDecimal(perMaxCoefficientObj.toString());
|
|
|
+ BigDecimal perMinCoefficient = new BigDecimal(perMinCoefficientObj.toString());
|
|
|
+ BigDecimal perCoefficient = new BigDecimal(perCoefficientObj.toString());
|
|
|
+ if (perCoefficient.compareTo(perMaxCoefficient) > 0
|
|
|
+ || perCoefficient.compareTo(perMinCoefficient) < 0) {
|
|
|
+ summaryErrIds.add((String) reviseData.get("id"));
|
|
|
+ addBatchMessageTip((String) reviseData.get("id"), "所修改的绩效系数,大于最大绩效系数或者小于最小绩效系数!", batchMessageTipsHeader);
|
|
|
+ } else {
|
|
|
+ evaResultSummaryCollection.add(evaResultSummaryInfo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ Object periodId = ((HashMap)reviseDataList.get(0)).get("periodId");
|
|
|
+ List unValidIds;
|
|
|
+ if (periodId != null) {
|
|
|
+ unValidIds = EvaResultSummaryBillUtil.batchCheckScore(ctx, evaResultSummaryCollection, (String)periodId, batchMessageTipsHeader);
|
|
|
+ } else {
|
|
|
+ unValidIds = EvaResultSummaryBillUtil.batchCheckScoreBySummary(ctx, evaResultSummaryCollection, (String)((HashMap)reviseDataList.get(0)).get("perfSummarySchemeBaseId"), batchMessageTipsHeader);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!CollectionUtils.isEmpty(unValidIds)) {
|
|
|
+ summaryIds.removeAll(unValidIds);
|
|
|
+ }
|
|
|
+ if (!CollectionUtils.isEmpty(summaryErrIds)) {
|
|
|
+ summaryIds.removeAll(summaryErrIds);
|
|
|
+ }
|
|
|
+ if (CollectionUtils.isEmpty(summaryIds)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ IEvaResultSummary resultSummary = EvaResultSummaryFactory.getLocalInstance(ctx);
|
|
|
+ EntityViewInfo entityViewInfo = new EntityViewInfo();
|
|
|
+ FilterInfo filterInfo = new FilterInfo();
|
|
|
+ filterInfo.getFilterItems().add(new FilterItemInfo("id", summaryIds, CompareType.INCLUDE));
|
|
|
+ entityViewInfo.setFilter(filterInfo);
|
|
|
+ EvaResultSummaryCollection summaryCollection = resultSummary.getEvaResultSummaryCollection(entityViewInfo);
|
|
|
+ CoreBaseCollection oldSummaryCollection = new CoreBaseCollection();
|
|
|
+ if (summaryCollection != null && summaryCollection.size() > 0) {
|
|
|
+ for(int i = 0; i < summaryCollection.size(); ++i) {
|
|
|
+ oldSummaryCollection.add(summaryCollection.get(i));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ EvaResultSumRevisionLogService evaResultSumRevisionLogService = new EvaResultSumRevisionLogService();
|
|
|
+ CoreBaseCollection evaResultSumRevisionLogCollection = evaResultSumRevisionLogService.packageResultSumRevisionLog(EvaResultSumLogSourceEnum.ENTRYREVISE, oldSummaryCollection, evaResultSummaryCollection, false);
|
|
|
+ System.out.println("evaResultSummaryCollection:"+evaResultSummaryCollection);
|
|
|
+ resultSummary.save(evaResultSummaryCollection);
|
|
|
+ evaResultSumRevisionLogService.generatedEvaResultSumRevisionLog(ctx, evaResultSumRevisionLogCollection);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 项目经理校验
|
|
|
* @param request
|
|
@@ -75,8 +203,159 @@ public class EvaResultSummaryManagerListHandlerExEx extends EvaResultSummaryMana
|
|
|
map.put("ProjectManager",rs.size()>0?"1":"0");
|
|
|
this.writeSuccessData(map);
|
|
|
}
|
|
|
+ private static PerfEvaObjectCollection getPerfEvaObjectCollectionByIds(Set<String> billIds) throws BOSException {
|
|
|
+ FilterInfo filterInfo = new FilterInfo();
|
|
|
+ filterInfo.getFilterItems().add(new FilterItemInfo("id", billIds, CompareType.INCLUDE));
|
|
|
+ EntityViewInfo evi = new EntityViewInfo();
|
|
|
+ evi.setFilter(filterInfo);
|
|
|
+ IPerfEvaObject iPerfEvaObject = PerfEvaObjectFactory.getRemoteInstance();
|
|
|
+ return iPerfEvaObject.getPerfEvaObjectCollection(evi);
|
|
|
+ }
|
|
|
+ public void batchAssignGroupAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap, BatchMessageTipsHeader batchMessageTipsHeader) throws SHRWebException, BOSException {
|
|
|
+ String group = request.getParameter("group");
|
|
|
+ String billIds = (String) this.getBillId(request);
|
|
|
+ Context ctx = SHRContext.getInstance().getContext();
|
|
|
+ if (StringUtils.isEmpty(billIds)&&StringUtils.isEmpty(group)) {
|
|
|
+ throw new ShrWebBizException((new SHRPerfWebBizException(SHRPerfWebBizException.INDECATORNOTSAVEDINSELECTGROUP)).getMessage());
|
|
|
+ } else {
|
|
|
+ try {
|
|
|
+ Set<String> fails = new HashSet();
|
|
|
+ List<String> idList = Lists.newArrayList();
|
|
|
+ List<String> idsessList = Lists.newArrayList();
|
|
|
+ String[] ids = billIds.split(",");
|
|
|
+ for (String id : ids ) {
|
|
|
+ idList.add(id);
|
|
|
+ }
|
|
|
+ StringBuilder selParamId = new StringBuilder("''");
|
|
|
+ for (int i = 0; i < idList.size(); i++) {
|
|
|
+ selParamId.append(",?");
|
|
|
+
|
|
|
+ }
|
|
|
+ StringBuilder sql = new StringBuilder();
|
|
|
+ sql.append(" select FEVAOBJID,fid from T_EVA_EvaResultSummary where FBILLSTATE!=3 and fid in ( ");
|
|
|
+ sql.append(selParamId);
|
|
|
+ sql.append(" ) ");
|
|
|
+ IRowSet rowSet = DbUtil.executeQuery(ctx,sql.toString(),idList.toArray());
|
|
|
+ while (rowSet.next()){
|
|
|
+ String fid = rowSet.getString("fid");
|
|
|
+ String upd = "update T_EVA_EvaResultSummary set cfgroup=? where fid=?";
|
|
|
+ DbUtil.execute(ctx,upd,new String[]{group,fid});
|
|
|
+ idsessList.add(fid);
|
|
|
+ }
|
|
|
+
|
|
|
+ idList.removeAll(idsessList);
|
|
|
+ fails.addAll(idList);
|
|
|
+ if (fails.size() > 0) {
|
|
|
+ addBatchMessageTips(fails, "只有未审核的数据才能指定分组。", batchMessageTipsHeader);
|
|
|
+ }
|
|
|
|
|
|
|
|
|
+ } catch (BOSException var22) {
|
|
|
+ logger.error("", var22);
|
|
|
+ throw new ShrWebBizException((new SHRPerfWebBizException(SHRPerfWebBizException.SYSTEMERR)).getMessage());
|
|
|
+ } catch (SQLException var24) {
|
|
|
+ logger.error("", var24);
|
|
|
+ throw new ShrWebBizException((new SHRPerfWebBizException(SHRPerfWebBizException.SYSTEMERR)).getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public void clearBelongGroupAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap, BatchMessageTipsHeader batchMessageTipsHeader) throws SHRWebException, BOSException {
|
|
|
+ String billId = this.getBillId(request);
|
|
|
+ if (!StringUtils.isEmpty(billId)) {
|
|
|
+ try {
|
|
|
+ Context ctx = SHRContext.getInstance().getContext();
|
|
|
+
|
|
|
+ List<String> idList = Lists.newArrayList();
|
|
|
+ List<String> idsessList = Lists.newArrayList();
|
|
|
+ String[] ids = billId.split(",");
|
|
|
+ for (String id : ids ) {
|
|
|
+ idList.add(id);
|
|
|
+ }
|
|
|
+ StringBuilder selParamId = new StringBuilder("''");
|
|
|
+ for (int i = 0; i < idList.size(); i++) {
|
|
|
+ selParamId.append(",?");
|
|
|
+ }
|
|
|
+ StringBuilder sql = new StringBuilder();
|
|
|
+ sql.append(" select FEVAOBJID,fid from T_EVA_EvaResultSummary where FBILLSTATE!=3 and fid in ( ");
|
|
|
+ sql.append(selParamId);
|
|
|
+ sql.append(" ) ");
|
|
|
+ IRowSet rowSet = DbUtil.executeQuery(ctx,sql.toString(),idList.toArray());
|
|
|
+ while (rowSet.next()){
|
|
|
+ String fid = rowSet.getString("fid");
|
|
|
+ String upd = "update T_EVA_EvaResultSummary set cfgroup=? where fid=?";
|
|
|
+ DbUtil.execute(ctx,upd,new String[]{"",fid});
|
|
|
+ idsessList.add(fid);
|
|
|
+ }
|
|
|
+ idList.removeAll(idsessList);
|
|
|
+
|
|
|
+ if (idList.size() > 0) {
|
|
|
+ addBatchMessageTips(idList, "只有未审核的数据才能清除分组。", batchMessageTipsHeader);
|
|
|
+ }
|
|
|
+ } catch (BOSException var22) {
|
|
|
+ logger.error("", var22);
|
|
|
+ throw new ShrWebBizException((new SHRPerfWebBizException(SHRPerfWebBizException.SYSTEMERR)).getMessage());
|
|
|
+ } catch (SQLException var24) {
|
|
|
+ logger.error("", var24);
|
|
|
+ throw new ShrWebBizException((new SHRPerfWebBizException(SHRPerfWebBizException.SYSTEMERR)).getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 获取绩效系数
|
|
|
+ * @param request
|
|
|
+ * @param response
|
|
|
+ * @param modelMap
|
|
|
+ */
|
|
|
+ public void performanceLevelAction(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap, BatchMessageTipsHeader batchMessageTipsHeader) throws BOSException, SHRWebException {
|
|
|
+ Context ctx = SHRContext.getInstance().getContext();
|
|
|
+ List<String> idList = Lists.newArrayList();
|
|
|
+ String ids = (String) this.getBillId(request);
|
|
|
+ String period = (String) request.getParameter("period");
|
|
|
+ String planId = (String) request.getParameter("planId");
|
|
|
+ List<String> idsessList = Lists.newArrayList();
|
|
|
+ for (String id : ids.split(",")) {
|
|
|
+ idList.add(id);
|
|
|
+ }
|
|
|
+ StringBuilder selParamId = new StringBuilder("''");
|
|
|
+ for (int i = 0; i < idList.size(); i++) {
|
|
|
+ selParamId.append(",?");
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ StringBuilder sqlsel= new StringBuilder();
|
|
|
+ sqlsel.append(" select fid from T_EVA_EvaResultSummary where FBILLSTATE !=3 and fid in ( ");
|
|
|
+ sqlsel.append(selParamId);
|
|
|
+ sqlsel.append(" ) ");
|
|
|
+ IRowSet rs = DbUtil.executeQuery(ctx, sqlsel.toString(), idList.toArray());
|
|
|
+ while (rs.next()){
|
|
|
+ idsessList.add(rs.getString("fid"));
|
|
|
+ }
|
|
|
+ StringBuilder selsessParamId = new StringBuilder("''");
|
|
|
+ for (int i = 0; i < idsessList.size(); i++) {
|
|
|
+ selsessParamId.append(",?");
|
|
|
+ }
|
|
|
+ StringBuilder sqlpl = new StringBuilder();
|
|
|
+ //sqlpl.append(" update T_EVA_EvaResultSummary set CFGROUP=(select CFCOEFFICIENT from CT_PER_PerformanceLevel where CFLEVEL=isnull(FREVISEGRADELEVEL,FGRADELEVEL)) ");
|
|
|
+ sqlpl.append(" update T_EVA_EvaResultSummary set CFPERCOEFFICIENT=(select CFCOEFFICIENT from CT_PER_PerformanceLevel where CFLEVEL=isnull(FREVISEGRADELEVEL,FGRADELEVEL)), ");
|
|
|
+ sqlpl.append(" CFPERMAXCOEFFICIENT=(select CFMAXCOEFFICIENT from CT_PER_PerformanceLevel where CFLEVEL=isnull(FREVISEGRADELEVEL,FGRADELEVEL)), ");
|
|
|
+ sqlpl.append(" CFPERMINCOEFFICIENT=(select CFMINCOEFFICIENT from CT_PER_PerformanceLevel where CFLEVEL=isnull(FREVISEGRADELEVEL,FGRADELEVEL)) ");
|
|
|
+ sqlpl.append(" where FEVAPLANID =? and FPERIODID =? and fid in ( ");
|
|
|
+ sqlpl.append(selsessParamId);
|
|
|
+ sqlpl.append(" ) ");
|
|
|
+ idsessList.add(0, planId);
|
|
|
+ idsessList.add(1, period);
|
|
|
+ DbUtil.execute(ctx, sqlpl.toString(), idsessList.toArray());
|
|
|
+
|
|
|
+ idList.removeAll(idsessList);
|
|
|
+ if (idList.size()>0){
|
|
|
+ addBatchMessageTips(idList,"当前已经审核通过获取更新失败", batchMessageTipsHeader);
|
|
|
+ }
|
|
|
+ }catch (Exception e){
|
|
|
+ e.printStackTrace();
|
|
|
+ addBatchMessageTips(idList, e.getMessage(), batchMessageTipsHeader);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
protected void setInitData(HttpServletRequest request, HttpServletResponse response, ModelMap modelMap, Map<String, Object> initData) throws SHRWebException {
|
|
|
super.setInitData(request, response, modelMap, initData);
|
|
@@ -267,10 +546,15 @@ public class EvaResultSummaryManagerListHandlerExEx extends EvaResultSummaryMana
|
|
|
String FPERIODID = rs.getString("FPERIODID");
|
|
|
String FEVAPLANID = rs.getString("FEVAPLANID");
|
|
|
String revLevel = rs.getString("revLevel");
|
|
|
+ if (StrUtil.isBlank(revLevel)) {
|
|
|
+ //String msg = String.format("%s绩效等级为空", CFPROJECTNAME);
|
|
|
+ batchMessage.put(fid, "绩效等级为空,请维护后再审批");
|
|
|
+ continue;
|
|
|
+ }
|
|
|
String key = CFPerobjectIdId + FPERIODID + FEVAPLANID;
|
|
|
//项目绩效等级
|
|
|
String projectLevel = rs.getString("CFProjectLevel");
|
|
|
- if (null == projectLevel) {
|
|
|
+ if (StrUtil.isBlank(projectLevel)) {
|
|
|
String msg = String.format("%s项目绩效等级为空", CFPROJECTNAME);
|
|
|
batchMessage.put(fid, msg);
|
|
|
continue;
|
|
@@ -490,12 +774,24 @@ public class EvaResultSummaryManagerListHandlerExEx extends EvaResultSummaryMana
|
|
|
// }
|
|
|
//获取组织分组人数
|
|
|
StringBuilder orgSql = new StringBuilder();
|
|
|
- orgSql.append(" select FADMINORGUNITID, FPERIODID,FEVAPLANID,count(*) alls from T_EVA_EvaResultSummary ");
|
|
|
+ orgSql.append(" select FADMINORGUNITID, FPERIODID, FEVAPLANID,count( *) alls from ( ");
|
|
|
+ orgSql.append(" select ( ");
|
|
|
+ orgSql.append(" select top 1 adcount.fid from T_ORG_Admin child ");
|
|
|
+ orgSql.append(" left join T_ORG_Admin adcount on (charindex(concat(adcount.flongnumber,'!'),child.flongnumber) = 1 or adcount.flongnumber = child.flongnumber) ");
|
|
|
+ orgSql.append(" where child.fid=ers.FADMINORGUNITID ");
|
|
|
+ orgSql.append(" and adcount.FLAYERTYPEID='00000000-0000-0000-0000-00000000000362824988' ");
|
|
|
+ orgSql.append(" order by adcount.fsortcode) FADMINORGUNITID, ");
|
|
|
+ orgSql.append(" ers.FPERIODID,ers.FEVAPLANID from T_EVA_EvaResultSummary ers ");
|
|
|
+ orgSql.append(" where ers.FPERIODID=? and ers.FEVAPLANID=? ");
|
|
|
+ orgSql.append(" ) t ");
|
|
|
+ orgSql.append(" group by FADMINORGUNITID, FPERIODID, FEVAPLANID ");
|
|
|
+
|
|
|
+ //orgSql.append(" select FADMINORGUNITID, FPERIODID,FEVAPLANID,count(*) alls from T_EVA_EvaResultSummary ");
|
|
|
// orgSql.append("where fid in ( ");
|
|
|
// orgSql.append(paramSql);
|
|
|
// orgSql.append(" ) ");
|
|
|
- orgSql.append(" where FPERIODID=? and FEVAPLANID=? ");
|
|
|
- orgSql.append(" group by FADMINORGUNITID, FPERIODID, FEVAPLANID ");
|
|
|
+ //orgSql.append(" where FPERIODID=? and FEVAPLANID=? ");
|
|
|
+ //orgSql.append(" group by FADMINORGUNITID, FPERIODID, FEVAPLANID ");
|
|
|
IRowSet rs = DbUtil.executeQuery(ctx, orgSql.toString(), new String[]{period, planId});
|
|
|
Map<String, Map<String, String>> orgLevelMap = Maps.newHashMap();
|
|
|
while (rs.next()) {
|
|
@@ -530,11 +826,22 @@ public class EvaResultSummaryManagerListHandlerExEx extends EvaResultSummaryMana
|
|
|
|
|
|
Map<String, Map<String, String>> personLevelMap = Maps.newHashMap();
|
|
|
StringBuilder orgLevelSql = new StringBuilder();
|
|
|
- orgLevelSql.append(" select count(*) lens,FADMINORGUNITID,FPERIODID,FEVAPLANID,revLevel from ( ");
|
|
|
- orgLevelSql.append(" select s1.FADMINORGUNITID,s1.FPERIODID,s1.FEVAPLANID,isnull(s1.FREVISEGRADELEVEL,s1.FGRADELEVEL) revLevel from T_EVA_EvaResultSummary s1 ");
|
|
|
- orgLevelSql.append(" where s1.FPERIODID=? and s1.FEVAPLANID=? ");
|
|
|
+ orgLevelSql.append(" select count(*) lens, ");
|
|
|
+ orgLevelSql.append(" FADMINORGUNITID,FPERIODID,FEVAPLANID,revLevel from ( ");
|
|
|
+ orgLevelSql.append(" select (select top 1 adcount.fid from T_ORG_Admin child ");
|
|
|
+ orgLevelSql.append(" left join T_ORG_Admin adcount on (charindex(concat(adcount.flongnumber,'!'),child.flongnumber) = 1 or adcount.flongnumber = child.flongnumber) ");
|
|
|
+ orgLevelSql.append(" where child.fid=s1.FADMINORGUNITID ");
|
|
|
+ orgLevelSql.append(" and adcount.FLAYERTYPEID='00000000-0000-0000-0000-00000000000362824988' ");
|
|
|
+ orgLevelSql.append(" order by adcount.fsortcode) FADMINORGUNITID,s1.FPERIODID,s1.FEVAPLANID,isnull(s1.FREVISEGRADELEVEL,s1.FGRADELEVEL) revLevel ");
|
|
|
+ orgLevelSql.append(" from T_EVA_EvaResultSummary s1 ");
|
|
|
+ orgLevelSql.append(" where s1.FPERIODID=? s1.FEVAPLANID=? ");
|
|
|
orgLevelSql.append(" ) t ");
|
|
|
orgLevelSql.append(" group by FADMINORGUNITID, FPERIODID,FEVAPLANID,revLevel ");
|
|
|
+// orgLevelSql.append(" select count(*) lens,FADMINORGUNITID,FPERIODID,FEVAPLANID,revLevel from ( ");
|
|
|
+// orgLevelSql.append(" select s1.FADMINORGUNITID,s1.FPERIODID,s1.FEVAPLANID,isnull(s1.FREVISEGRADELEVEL,s1.FGRADELEVEL) revLevel from T_EVA_EvaResultSummary s1 ");
|
|
|
+// orgLevelSql.append(" where s1.FPERIODID=? and s1.FEVAPLANID=? ");
|
|
|
+// orgLevelSql.append(" ) t ");
|
|
|
+// orgLevelSql.append(" group by FADMINORGUNITID, FPERIODID,FEVAPLANID,revLevel ");
|
|
|
IRowSet orgLevelRs = DbUtil.executeQuery(ctx, orgLevelSql.toString(), new String[]{period, planId});
|
|
|
while (orgLevelRs.next()) {
|
|
|
Map<String, String> map = Maps.newHashMap();
|
|
@@ -621,9 +928,16 @@ public class EvaResultSummaryManagerListHandlerExEx extends EvaResultSummaryMana
|
|
|
Map<String, Map<String, String>> orgLevelMap = this.getOrgLevelCountMap(ctx, period, planId);
|
|
|
//获取人员等级分组
|
|
|
Map<String, Map<String, String>> personLevelMap = this.getPersonLevelLensMap(ctx, period, planId);
|
|
|
-
|
|
|
StringBuilder sel = new StringBuilder();
|
|
|
- sel.append("select fid,FADMINORGNAME, FADMINORGUNITID, FPERIODID, FEVAPLANID,isnull( FREVISEGRADELEVEL, FGRADELEVEL) revLevel,CFOrgLevel from T_EVA_EvaResultSummary where fid in (");
|
|
|
+ sel.append(" select ers.fid,ers.FADMINORGNAME, ( ");
|
|
|
+ sel.append(" select top 1 adcount.fid from T_ORG_Admin child ");
|
|
|
+ sel.append(" left join T_ORG_Admin adcount on (charindex(concat(adcount.flongnumber,'!'),child.flongnumber) = 1 or adcount.flongnumber = child.flongnumber) ");
|
|
|
+ sel.append(" where child.fid=ers.FADMINORGUNITID ");
|
|
|
+ sel.append(" and adcount.FLAYERTYPEID='00000000-0000-0000-0000-00000000000362824988' ");
|
|
|
+ sel.append(" order by adcount.fsortcode) FADMINORGUNITID, ers.FPERIODID, ers.FEVAPLANID,isnull(ers.FREVISEGRADELEVEL, ers.FGRADELEVEL) revLevel,ers.CFOrgLevel ");
|
|
|
+ sel.append(" from T_EVA_EvaResultSummary ers where ers.fid in (");
|
|
|
+
|
|
|
+ //sel.append("select fid,FADMINORGNAME, FADMINORGUNITID, FPERIODID, FEVAPLANID,isnull( FREVISEGRADELEVEL, FGRADELEVEL) revLevel,CFOrgLevel from T_EVA_EvaResultSummary where fid in (");
|
|
|
sel.append(selParamId);
|
|
|
sel.append(") ");
|
|
|
IRowSet rs = DbUtil.executeQuery(ctx, sel.toString(), idList.toArray());
|
|
@@ -635,6 +949,11 @@ public class EvaResultSummaryManagerListHandlerExEx extends EvaResultSummaryMana
|
|
|
String FPERIODID = rs.getString("FPERIODID");
|
|
|
String FEVAPLANID = rs.getString("FEVAPLANID");
|
|
|
String revLevel = rs.getString("revLevel");
|
|
|
+ if (StrUtil.isBlank(revLevel)) {
|
|
|
+ //String msg = String.format("%s绩效等级为空", CFPROJECTNAME);
|
|
|
+ batchMessage.put(fid, "绩效等级为空,请维护后再审批");
|
|
|
+ continue;
|
|
|
+ }
|
|
|
String key = FADMINORGUNITID + FPERIODID + FEVAPLANID;
|
|
|
//上季度组织绩效等级
|
|
|
String orgLevel = rs.getString("CFOrgLevel");
|
|
@@ -885,7 +1204,7 @@ public class EvaResultSummaryManagerListHandlerExEx extends EvaResultSummaryMana
|
|
|
} else {
|
|
|
try {
|
|
|
StringBuffer sql = new StringBuffer();
|
|
|
- sql.append(" select ers.fid,pp.FPSTARTDATE,ers.FADMINORGUNITID,ers.FADMINORGNAME,pp.FYEAR,pp.FTIMEPERIOD, ");
|
|
|
+ sql.append(" select ers.fid,pp.FPSTARTDATE,ers.FBILLSTATE,ers.FADMINORGUNITID,ers.FADMINORGNAME,pp.FYEAR,pp.FTIMEPERIOD, ");
|
|
|
sql.append(" pp.FCYCLETYPE,pp.FPENDDATE,pp.FPSTARTDATE,ppn.CFPEROBJECTIDID,ppm.CFPROJECTNAME,pmm.CFEMPLOYEEID ");
|
|
|
sql.append(" from T_EVA_EvaResultSummary ers ");
|
|
|
sql.append(" left join T_EVA_PerfPlan ppn on ers.FEVAPLANID=ppn.fid ");
|
|
@@ -909,25 +1228,30 @@ public class EvaResultSummaryManagerListHandlerExEx extends EvaResultSummaryMana
|
|
|
String personid = rsSql.getString("CFEMPLOYEEID");
|
|
|
String CFPROJECTNAME = rsSql.getString("CFPROJECTNAME");
|
|
|
String perobjectid = rsSql.getString("CFPEROBJECTIDID");
|
|
|
- StringBuffer sqlPro = new StringBuffer();
|
|
|
- sqlPro.append(" select isnull(ers.FREVISEGRADELEVEL,ers.FGRADELEVEL) FGRADELEVEL,ers.fid from ");
|
|
|
- sqlPro.append(" T_EVA_EvaResultSummary ers ");
|
|
|
- sqlPro.append(" left join T_EVA_PerfPlan ppn on ers.FEVAPLANID=ppn.fid ");
|
|
|
- sqlPro.append(" left join T_EVA_PerfPeriod pp on ers.FPERIODID=pp.fid ");
|
|
|
- sqlPro.append(" where ers.FBILLSTATE='3' and ers.FPERSONID=? and ppn.CFPEROBJECTIDID=? ");
|
|
|
- sqlPro.append(" order by pp.FPENDDATE desc ");
|
|
|
- IRowSet rsPro = DbUtil.executeQuery(ctx, sqlPro.toString(), new String[]{personid, perobjectid});
|
|
|
- String FGRADELEVEL = "";
|
|
|
- if (rsPro.next()) {
|
|
|
- FGRADELEVEL = rsPro.getString("FGRADELEVEL");
|
|
|
- }
|
|
|
- if (StringUtils.isEmpty(FGRADELEVEL)) {
|
|
|
- batchMessage.put(id, "未找到当前" + CFPROJECTNAME + "项目匹配的绩效等级");
|
|
|
- } else {
|
|
|
- StringBuilder upd = new StringBuilder();
|
|
|
- upd.append("update T_EVA_EvaResultSummary set CFPROJECTLEVEL=? where fid=? ");
|
|
|
- DbUtil.execute(ctx, upd.toString(), new String[]{FGRADELEVEL, id});
|
|
|
- sess.add(id);
|
|
|
+ String FBILLSTATE = rsSql.getString("FBILLSTATE");
|
|
|
+ if (!"3".equals(FBILLSTATE)) {
|
|
|
+ StringBuffer sqlPro = new StringBuffer();
|
|
|
+ sqlPro.append(" select isnull(ers.FREVISEGRADELEVEL,ers.FGRADELEVEL) FGRADELEVEL,ers.fid from ");
|
|
|
+ sqlPro.append(" T_EVA_EvaResultSummary ers ");
|
|
|
+ sqlPro.append(" left join T_EVA_PerfPlan ppn on ers.FEVAPLANID=ppn.fid ");
|
|
|
+ sqlPro.append(" left join T_EVA_PerfPeriod pp on ers.FPERIODID=pp.fid ");
|
|
|
+ sqlPro.append(" where ers.FBILLSTATE='3' and ers.FPERSONID=? and ppn.CFPEROBJECTIDID=? ");
|
|
|
+ sqlPro.append(" order by pp.FPENDDATE desc ");
|
|
|
+ IRowSet rsPro = DbUtil.executeQuery(ctx, sqlPro.toString(), new String[]{personid, perobjectid});
|
|
|
+ String FGRADELEVEL = "";
|
|
|
+ if (rsPro.next()) {
|
|
|
+ FGRADELEVEL = rsPro.getString("FGRADELEVEL");
|
|
|
+ }
|
|
|
+ if (StringUtils.isEmpty(FGRADELEVEL)) {
|
|
|
+ batchMessage.put(id, "未找到当前" + CFPROJECTNAME + "项目匹配的绩效等级");
|
|
|
+ } else {
|
|
|
+ StringBuilder upd = new StringBuilder();
|
|
|
+ upd.append("update T_EVA_EvaResultSummary set CFPROJECTLEVEL=? where fid=? ");
|
|
|
+ DbUtil.execute(ctx, upd.toString(), new String[]{FGRADELEVEL, id});
|
|
|
+ sess.add(id);
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ batchMessage.put(id, "当前已经审核通过获取更新失败!");
|
|
|
}
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
@@ -992,8 +1316,14 @@ public class EvaResultSummaryManagerListHandlerExEx extends EvaResultSummaryMana
|
|
|
} else {
|
|
|
try {
|
|
|
StringBuffer sql = new StringBuffer();
|
|
|
- sql.append(" select ers.fid,pp.FPSTARTDATE,ers.FADMINORGUNITID,ers.FADMINORGNAME,pp.FYEAR,pp.FTIMEPERIOD," +
|
|
|
- "pp.FCYCLETYPE,pp.FPENDDATE,pp.FPSTARTDATE from ");
|
|
|
+ sql.append(" select ers.fid,pp.FPSTARTDATE, ers.FBILLSTATE, ");
|
|
|
+ sql.append(" (select top 1 adcount.fid from T_ORG_Admin child ");
|
|
|
+ sql.append(" left join T_ORG_Admin adcount on (charindex(concat(adcount.flongnumber,'!'),child.flongnumber) = 1 or adcount.flongnumber = child.flongnumber) ");
|
|
|
+ sql.append(" where child.fid=ers.FADMINORGUNITID ");
|
|
|
+ sql.append(" and adcount.FLAYERTYPEID='00000000-0000-0000-0000-00000000000362824988' ");
|
|
|
+ sql.append(" order by adcount.fsortcode) FADMINORGUNITID ");
|
|
|
+ sql.append(" ,ers.FADMINORGNAME,pp.FYEAR,pp.FTIMEPERIOD, ");
|
|
|
+ sql.append(" pp.FCYCLETYPE,pp.FPENDDATE,pp.FPSTARTDATE from ");
|
|
|
sql.append(" T_EVA_EvaResultSummary ers ");
|
|
|
sql.append(" left join T_EVA_PerfPeriod pp on ers.FPERIODID=pp.fid ");
|
|
|
sql.append(" where ers.fid in(''");
|
|
@@ -1011,6 +1341,7 @@ public class EvaResultSummaryManagerListHandlerExEx extends EvaResultSummaryMana
|
|
|
String id = rsSql.getString("fid");
|
|
|
String orgId = rsSql.getString("FADMINORGUNITID");
|
|
|
String orgName = rsSql.getString("FADMINORGNAME");
|
|
|
+ String FBILLSTATE = rsSql.getString("FBILLSTATE");
|
|
|
|
|
|
if (faist) {
|
|
|
faist = false;
|
|
@@ -1022,7 +1353,7 @@ public class EvaResultSummaryManagerListHandlerExEx extends EvaResultSummaryMana
|
|
|
endDate = (LocalDate) cycleMap.get("endDate");
|
|
|
startDate = (LocalDate) cycleMap.get("startDate");
|
|
|
}
|
|
|
- id_orgIdMap.put(id, orgId + "!" + orgName);
|
|
|
+ id_orgIdMap.put(id, orgId + "!" + orgName+"!"+FBILLSTATE);
|
|
|
}
|
|
|
List<String> sess = Lists.newArrayList();
|
|
|
//T_EVA_OrgEvaResultSummary
|
|
@@ -1031,16 +1362,21 @@ public class EvaResultSummaryManagerListHandlerExEx extends EvaResultSummaryMana
|
|
|
String[] orgs = ee.getValue().split("!");
|
|
|
String orgId = orgs[0];
|
|
|
String orgName = orgs[1];
|
|
|
+ String FBILLSTATE = orgs[2];
|
|
|
String id = ee.getKey();
|
|
|
- Map<String, String> orgLevelMap = mapMap.get(orgId);
|
|
|
- if (null == orgLevelMap) {
|
|
|
- batchMessage.put(id, "未找到当前" + orgName + "部门匹配的组织绩效等级");
|
|
|
- } else {
|
|
|
- String orgLevel = orgLevelMap.get("lastgradeLevel");
|
|
|
- StringBuilder upd = new StringBuilder();
|
|
|
- upd.append("update T_EVA_EvaResultSummary set CFOrgLevel=?,CFOrgLevelEveID=? where fid=? ");
|
|
|
- DbUtil.execute(ctx, upd.toString(), new String[]{orgLevel, orgId, id});
|
|
|
- sess.add(id);
|
|
|
+ if (!"3".equals(FBILLSTATE)){
|
|
|
+ Map<String, String> orgLevelMap = mapMap.get(orgId);
|
|
|
+ if (null == orgLevelMap) {
|
|
|
+ batchMessage.put(id, "未找到当前" + orgName + "部门匹配的组织绩效等级");
|
|
|
+ } else {
|
|
|
+ String orgLevel = orgLevelMap.get("lastgradeLevel");
|
|
|
+ StringBuilder upd = new StringBuilder();
|
|
|
+ upd.append("update T_EVA_EvaResultSummary set CFOrgLevel=?,CFOrgLevelEveID=? where fid=? ");
|
|
|
+ DbUtil.execute(ctx, upd.toString(), new String[]{orgLevel, orgId, id});
|
|
|
+ sess.add(id);
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ batchMessage.put(id, "当前已经审核通过获取更新失败!");
|
|
|
}
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
@@ -1116,7 +1452,13 @@ public class EvaResultSummaryManagerListHandlerExEx extends EvaResultSummaryMana
|
|
|
protected Map<String, Map<String, String>> getOrgEvaResultLevel(Context ctx, LocalDate startDate, LocalDate endDate, EvalplanCycleTypeEnum cycletype) throws BOSException, SQLException {
|
|
|
Map<String, Map<String, String>> mapMap = Maps.newHashMap();
|
|
|
StringBuffer selSql = new StringBuffer();
|
|
|
- selSql.append(" select oers.fid oersId, oers.FADMINORGUNITID,oers.FLASTGRADELEVEL,(case when ppd.fid is null ");
|
|
|
+ selSql.append(" select oers.fid oersId, ");
|
|
|
+ selSql.append(" (select top 1 adcount.fid from T_ORG_Admin child ");
|
|
|
+ selSql.append(" left join T_ORG_Admin adcount on (charindex(concat(adcount.flongnumber,'!'),child.flongnumber) = 1 or adcount.flongnumber = child.flongnumber) ");
|
|
|
+ selSql.append(" where child.fid=oers.FADMINORGUNITID ");
|
|
|
+ selSql.append(" and adcount.FLAYERTYPEID='00000000-0000-0000-0000-00000000000362824988' ");
|
|
|
+ selSql.append(" order by adcount.fsortcode) FADMINORGUNITID ");
|
|
|
+ selSql.append(" ,oers.FLASTGRADELEVEL,(case when ppd.fid is null ");
|
|
|
selSql.append(" then (oers.FPERIODYEAR||'-01-'||'01')||'T'|| (oers.FPERIODYEAR||'-01-'||'01') ");
|
|
|
selSql.append(" else (to_char(ppd.FPSTARTDATE,'yyyy-MM-dd')||'T'||to_char(ppd.FPENDDATE,'yyyy-MM-dd')) end) PERIOD ");
|
|
|
selSql.append(" from T_EVA_OrgEvaResultSummary oers ");
|