|
|
@@ -0,0 +1,1303 @@
|
|
|
+//
|
|
|
+// Source code recreated from a .class file by IntelliJ IDEA
|
|
|
+// (powered by FernFlower decompiler)
|
|
|
+//
|
|
|
+
|
|
|
+package com.kingdee.shr.perfweb.app.base.evalplan;
|
|
|
+
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
+import com.google.common.base.Strings;
|
|
|
+import com.kingdee.bos.BOSException;
|
|
|
+import com.kingdee.bos.Context;
|
|
|
+import com.kingdee.bos.dao.IObjectPK;
|
|
|
+import com.kingdee.bos.dao.IObjectValue;
|
|
|
+import com.kingdee.bos.dao.ormapping.ObjectUuidPK;
|
|
|
+import com.kingdee.bos.metadata.entity.EntityViewInfo;
|
|
|
+import com.kingdee.bos.metadata.entity.FilterInfo;
|
|
|
+import com.kingdee.bos.metadata.entity.FilterItemInfo;
|
|
|
+import com.kingdee.bos.metadata.entity.SelectorItemCollection;
|
|
|
+import com.kingdee.bos.metadata.entity.SelectorItemInfo;
|
|
|
+import com.kingdee.bos.metadata.query.util.CompareType;
|
|
|
+import com.kingdee.bos.util.BOSUuid;
|
|
|
+import com.kingdee.bos.workflow.ProcessInstInfo;
|
|
|
+import com.kingdee.bos.workflow.WfException;
|
|
|
+import com.kingdee.bos.workflow.define.ActivityDef;
|
|
|
+import com.kingdee.bos.workflow.define.ProcessDef;
|
|
|
+import com.kingdee.bos.workflow.service.ormrpc.EnactmentServiceFactory;
|
|
|
+import com.kingdee.bos.workflow.service.ormrpc.IEnactmentService;
|
|
|
+import com.kingdee.eas.base.core.util.DateUtil;
|
|
|
+import com.kingdee.eas.base.permission.UserCollection;
|
|
|
+import com.kingdee.eas.base.permission.UserFactory;
|
|
|
+import com.kingdee.eas.base.permission.UserInfo;
|
|
|
+import com.kingdee.eas.basedata.person.PersonCollection;
|
|
|
+import com.kingdee.eas.basedata.person.PersonFactory;
|
|
|
+import com.kingdee.eas.basedata.person.PersonInfo;
|
|
|
+import com.kingdee.eas.common.EASBizException;
|
|
|
+import com.kingdee.eas.framework.CoreBaseCollection;
|
|
|
+import com.kingdee.eas.hr.base.HRBillBaseInfo;
|
|
|
+import com.kingdee.eas.hr.base.HRBillStateEnum;
|
|
|
+import com.kingdee.eas.util.app.ContextUtil;
|
|
|
+import com.kingdee.eas.util.app.DbUtil;
|
|
|
+import com.kingdee.shr.base.syssetting.api.bean.BatchMessageTipsHeader;
|
|
|
+import com.kingdee.shr.perfweb.app.base.evalrule.PerformanceRuleInfo;
|
|
|
+import com.kingdee.shr.perfweb.app.base.perfmancescore.PerfScorLevelDefineInfo;
|
|
|
+import com.kingdee.shr.perfweb.app.base.perfmancescore.PerfScoreInfo;
|
|
|
+import com.kingdee.shr.perfweb.app.base.targetprocess.ITargetReviseBill;
|
|
|
+import com.kingdee.shr.perfweb.app.base.targetprocess.TargetReviseBillCollection;
|
|
|
+import com.kingdee.shr.perfweb.app.base.targetprocess.TargetReviseBillFactory;
|
|
|
+import com.kingdee.shr.perfweb.app.base.targetprocess.TargetReviseBillInfo;
|
|
|
+import com.kingdee.shr.perfweb.app.common.AppealParamConfigCollection;
|
|
|
+import com.kingdee.shr.perfweb.app.common.AppealParamConfigFactory;
|
|
|
+import com.kingdee.shr.perfweb.app.common.YesOrNoEnum;
|
|
|
+import com.kingdee.shr.perfweb.app.common.YesOrNotEnum;
|
|
|
+import com.kingdee.shr.perfweb.app.comprehensive.ISumCalResultAppealBill;
|
|
|
+import com.kingdee.shr.perfweb.app.comprehensive.PerfSummarySchemeBaseFactory;
|
|
|
+import com.kingdee.shr.perfweb.app.comprehensive.SumCalResultAppealBillCollection;
|
|
|
+import com.kingdee.shr.perfweb.app.comprehensive.SumCalResultAppealBillFactory;
|
|
|
+import com.kingdee.shr.perfweb.app.comprehensive.SumCalResultAppealBillInfo;
|
|
|
+import com.kingdee.shr.perfweb.app.multiEvalution.multiPerfPlan.MultiPerfPlanInfo;
|
|
|
+import com.kingdee.shr.perfweb.app.resource.SHRPerfWebResource;
|
|
|
+import com.kingdee.shr.perfweb.app.workflow.CanEditEnum;
|
|
|
+import com.kingdee.shr.perfweb.app.workflow.GradeTaskNodeInstCollection;
|
|
|
+import com.kingdee.shr.perfweb.app.workflow.GradeTaskNodeInstFactory;
|
|
|
+import com.kingdee.shr.perfweb.app.workflow.GradeTaskNodeInstInfo;
|
|
|
+import com.kingdee.shr.perfweb.app.workflow.IGradeTaskNodeInst;
|
|
|
+import com.kingdee.shr.perfweb.app.workflow.IsEffectiveEnum;
|
|
|
+import com.kingdee.shr.perfweb.app.workflow.IsVisibleEnum;
|
|
|
+import com.kingdee.shr.perfweb.app.workflow.PerfWorkFlowFacadeControllerBean;
|
|
|
+import com.kingdee.shr.perfweb.app.workflow.PerfWorkFlowFacadeFactory;
|
|
|
+import com.kingdee.shr.perfweb.app.workflow.ScoreStatusEnum;
|
|
|
+import com.kingdee.shr.perfweb.app.workflow.TaskStatusEnum;
|
|
|
+import com.kingdee.shr.perfweb.multiEvalution.commontask.utils.GetMultiEvaEntityUtils;
|
|
|
+import com.kingdee.shr.perfweb.portal.serviceImpl.PerfGoasFillService;
|
|
|
+import com.kingdee.shr.perfweb.util.EvaResultSumRevisionLogService;
|
|
|
+import com.kingdee.shr.perfweb.util.EvaResultSummaryBillUtil;
|
|
|
+import com.kingdee.shr.perfweb.util.GetEntityInfoUtils;
|
|
|
+import com.kingdee.shr.perfweb.util.JumpPermissionUtil;
|
|
|
+import com.kingdee.shr.perfweb.util.PerfPlanExecuteUtils;
|
|
|
+import com.kingdee.shr.perfweb.util.PerfPortalUtils;
|
|
|
+import com.kingdee.shr.perfweb.util.SHRPerfWebResourceUtil;
|
|
|
+import com.kingdee.shr.perfweb.util.TheThirdMessageUtil;
|
|
|
+import com.kingdee.shr.perfweb.util.WorkFlowUtils;
|
|
|
+import com.kingdee.shr.perfweb.utils.PerfDateUtils;
|
|
|
+import com.kingdee.shr.perfweb.utils.PerfWorkFlowUtils;
|
|
|
+import com.kingdee.shr.perfweb.utils.PerfwebStrUtils;
|
|
|
+import com.kingdee.shr.perfweb.utils.PhotoUtils;
|
|
|
+
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.math.RoundingMode;
|
|
|
+import java.sql.Timestamp;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.Date;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.HashSet;
|
|
|
+import java.util.Iterator;
|
|
|
+import java.util.LinkedHashMap;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+import java.util.Set;
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
+
|
|
|
+import org.apache.commons.lang.StringUtils;
|
|
|
+import org.slf4j.Logger;
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
|
+
|
|
|
+public class EvaResultSummaryControllerBean extends AbstractEvaResultSummaryControllerBean {
|
|
|
+ private static final long serialVersionUID = 1L;
|
|
|
+ private static Logger logger = LoggerFactory.getLogger(EvaResultSummaryControllerBean.class);
|
|
|
+
|
|
|
+ public EvaResultSummaryControllerBean() {
|
|
|
+ }
|
|
|
+
|
|
|
+ public static EvaResultSummaryControllerBean getInstance() {
|
|
|
+ return EvaResultSummaryControllerBean.EvaResultSummaryControllerBeanInst.instance;
|
|
|
+ }
|
|
|
+
|
|
|
+ protected void _updateEvaResultAndCarryOver(Context ctx, IObjectPK pk, IObjectValue model) throws BOSException {
|
|
|
+ EvaResultSummaryInfo info = (EvaResultSummaryInfo) model;
|
|
|
+ String carryOverListId = info.getCarryOverList().getId().toString();
|
|
|
+ info.setStatus(EvaResultSumStatusEnum.NOCARRY);
|
|
|
+ info.setCarryOverList((CarryOverListInfo) null);
|
|
|
+ CarryOverListInfo carryInfo = null;
|
|
|
+
|
|
|
+ try {
|
|
|
+ this.update(ctx, pk, info);
|
|
|
+ carryInfo = CarryOverListFactory.getLocalInstance(ctx).getCarryOverListInfo(new ObjectUuidPK(carryOverListId));
|
|
|
+ int length = carryInfo.getRecordCount() - 1;
|
|
|
+ if (length == 0) {
|
|
|
+ CarryOverListFactory.getLocalInstance(ctx).delete(new ObjectUuidPK(carryOverListId));
|
|
|
+ } else {
|
|
|
+ carryInfo.setRecordCount(length);
|
|
|
+ CarryOverListFactory.getLocalInstance(ctx).update(new ObjectUuidPK(carryOverListId), carryInfo);
|
|
|
+ }
|
|
|
+ } catch (EASBizException var8) {
|
|
|
+ logger.error("EASBizException: ", var8);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ protected void _checkNumDup(Context ctx, HRBillBaseInfo info) throws BOSException, EASBizException {
|
|
|
+ }
|
|
|
+
|
|
|
+ public HashMap<String, Object> auditEvaResut(Context ctx, String ids, boolean isClearBill) {
|
|
|
+ HashMap<String, Object> map = new HashMap();
|
|
|
+ String[] resultIds = ids.split(",");
|
|
|
+ CoreBaseCollection evaResultSummaryColl = new CoreBaseCollection();
|
|
|
+
|
|
|
+ try {
|
|
|
+ IEvaResultSummary iEvaResultSummary = EvaResultSummaryFactory.getLocalInstance(ctx);
|
|
|
+ Date now = new Date();
|
|
|
+ boolean isSumCalFlag = false;
|
|
|
+ String schemeId = "";
|
|
|
+ EvaResultSummaryCollection evaResultSummaryCollection = iEvaResultSummary.getEvaResultSummaryCollection("select *,summaryPersonEvaObject.perfSummarySchemeBase.id where id in (" + PerfwebStrUtils.convertListToString(resultIds) + ")");
|
|
|
+ if (evaResultSummaryCollection != null && evaResultSummaryCollection.size() > 0) {
|
|
|
+ Map<String, EvaResultSummaryInfo> evaResultMap = new HashMap();
|
|
|
+
|
|
|
+ for (int i = 0; i < evaResultSummaryCollection.size(); ++i) {
|
|
|
+ EvaResultSummaryInfo evaResultSummaryInfo = evaResultSummaryCollection.get(i);
|
|
|
+ evaResultMap.put(evaResultSummaryInfo.getId().toString(), evaResultSummaryInfo);
|
|
|
+ }
|
|
|
+
|
|
|
+ String[] var29 = resultIds;
|
|
|
+ int var30 = resultIds.length;
|
|
|
+
|
|
|
+ for (int var15 = 0; var15 < var30; ++var15) {
|
|
|
+ String id = var29[var15];
|
|
|
+ EvaResultSummaryInfo evaResultInfo = (EvaResultSummaryInfo) evaResultMap.get(id);
|
|
|
+ if (evaResultInfo != null) {
|
|
|
+ Double sumScore = null;
|
|
|
+ String level = null;
|
|
|
+ Double reviseSumScore = null;
|
|
|
+ String reviseGradeLevel = null;
|
|
|
+ String auditGradeLevel = null;
|
|
|
+ String auditReason = null;
|
|
|
+ Double auditSumScore = null;
|
|
|
+ if (!isSumCalFlag && evaResultInfo.getSummaryPersonEvaObject() != null) {
|
|
|
+ isSumCalFlag = true;
|
|
|
+ schemeId = evaResultInfo.getSummaryPersonEvaObject().getPerfSummarySchemeBase().getId().toString();
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!StringUtils.isEmpty(evaResultInfo.getString("sumScore"))) {
|
|
|
+ sumScore = (Double) evaResultInfo.get("sumScore");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!StringUtils.isEmpty(evaResultInfo.getString("reviseSumScore"))) {
|
|
|
+ reviseSumScore = (Double) evaResultInfo.get("reviseSumScore");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!StringUtils.isEmpty(evaResultInfo.getString("auditSumScore"))) {
|
|
|
+ auditSumScore = (Double) evaResultInfo.get("auditSumScore");
|
|
|
+ }
|
|
|
+
|
|
|
+ level = evaResultInfo.getGradeLevel();
|
|
|
+ reviseGradeLevel = evaResultInfo.getReviseGradeLevel();
|
|
|
+ auditGradeLevel = evaResultInfo.getAuditGradeLevel();
|
|
|
+ auditReason = evaResultInfo.getAuditReason();
|
|
|
+ int reviseFlag = evaResultInfo.getReviseFlag() == null ? 0 : evaResultInfo.getReviseFlag().getValue();
|
|
|
+ int auditFlag = evaResultInfo.getAuditFlag() == null ? 0 : evaResultInfo.getAuditFlag().getValue();
|
|
|
+ if (auditFlag == 1) {
|
|
|
+ evaResultInfo.setReviseReason(auditReason);
|
|
|
+ evaResultInfo.put("reviseSumScore", auditSumScore);
|
|
|
+ evaResultInfo.setReviseGradeLevel(auditGradeLevel);
|
|
|
+ //EvaResultSumRevisionLogService evaResultSumRevisionLogService = new EvaResultSumRevisionLogService();
|
|
|
+ //evaResultSumRevisionLogService.generatedEvaResultSumRevisionLog(ctx, EvaResultSumLogSourceEnum.AUDITING, evaResultInfo, reviseSumScore != null ? String.valueOf(reviseSumScore) : (sumScore != null ? String.valueOf(sumScore) : ""), StringUtils.isEmpty(reviseGradeLevel) ? level : reviseGradeLevel);
|
|
|
+ evaResultInfo.put("lastSumScore", auditSumScore);
|
|
|
+ evaResultInfo.setLastGradeLevel(auditGradeLevel);
|
|
|
+ reviseSumScore = auditSumScore;
|
|
|
+ reviseGradeLevel = auditGradeLevel;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (reviseFlag == 1) {
|
|
|
+ evaResultInfo.put("lastSumScore", reviseSumScore);
|
|
|
+ evaResultInfo.setLastGradeLevel(reviseGradeLevel);
|
|
|
+ } else {
|
|
|
+ evaResultInfo.put("lastSumScore", sumScore);
|
|
|
+ evaResultInfo.setLastGradeLevel(level);
|
|
|
+ }
|
|
|
+
|
|
|
+ evaResultInfo.setBillState(HRBillStateEnum.AUDITED);
|
|
|
+ evaResultInfo.setAuditor(ContextUtil.getCurrentUserInfo(ctx));
|
|
|
+ evaResultInfo.setAuditDate(now);
|
|
|
+ evaResultInfo.setConfirmState(ConfirmStateEnum.UNCONFIRM);
|
|
|
+ evaResultInfo.setAppealState(AppealStateEnum.NOAPPEAL);
|
|
|
+ evaResultSummaryColl.add(evaResultInfo);
|
|
|
+
|
|
|
+
|
|
|
+ if (evaResultSummaryColl.size() % 50 == 0) {
|
|
|
+ iEvaResultSummary.updateBatchData(evaResultSummaryColl);
|
|
|
+ evaResultSummaryColl.clear();
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ iEvaResultSummary.updateBatchData(evaResultSummaryColl);
|
|
|
+ for (int var15 = 0; var15 < var30; ++var15) {
|
|
|
+ String id = var29[var15];
|
|
|
+ EvaResultSummaryInfo evaResultInfo = (EvaResultSummaryInfo) evaResultMap.get(id);
|
|
|
+ if (evaResultInfo != null) {
|
|
|
+ EvaResultSummaryInfo resultSummaryInfo = evaResultInfo;
|
|
|
+ System.out.println("com.kingdee.shr.perfweb.app.base.evalplan.EvaResultSummaryControllerBean:1");
|
|
|
+ if (null != resultSummaryInfo) {
|
|
|
+ BOSUuid did = resultSummaryInfo.getId();
|
|
|
+ System.out.println("com.kingdee.shr.perfweb.app.base.evalplan.EvaResultSummaryControllerBean:2:"+did);
|
|
|
+ if (null != did) {
|
|
|
+ String upd = "update T_EVA_EvaResultSummary set CfperCoefficient=isnull(CfauditPerCoefficient,CfperCoefficient) where fid=?";
|
|
|
+ System.out.println("com.kingdee.shr.perfweb.app.base.evalplan.EvaResultSummaryControllerBean:3:"+upd.toString());
|
|
|
+ DbUtil.execute(ctx, upd, new String[]{did.toString()});
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ map.put("result", "200");
|
|
|
+ if (isClearBill && !StringUtils.isEmpty(ids)) {
|
|
|
+ PerfEvaObjectFactory.getLocalInstance(ctx).deleteEvaresultAuditBill(ids, "10");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (isSumCalFlag && !StringUtils.isEmpty(schemeId)) {
|
|
|
+ PerfSummarySchemeBaseFactory.getLocalInstance(ctx).countAllState(schemeId);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } catch (Exception var28) {
|
|
|
+ logger.error("Exception: ", var28);
|
|
|
+ this.setRollbackOnly();
|
|
|
+ map.put("result", "500");
|
|
|
+ }
|
|
|
+
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+
|
|
|
+ public HashMap<String, Object> unAuditEvaResut(Context ctx, String ids) {
|
|
|
+ HashMap<String, Object> map = new HashMap();
|
|
|
+ int successCount = 0;
|
|
|
+ int failedCount = 0;
|
|
|
+ String[] resultIds = ids.split(",");
|
|
|
+ CoreBaseCollection evaResultSummaryColl = new CoreBaseCollection();
|
|
|
+
|
|
|
+ try {
|
|
|
+ IEvaResultSummary iEvaResultSummary = EvaResultSummaryFactory.getLocalInstance(ctx);
|
|
|
+ boolean isSumCalFlag = false;
|
|
|
+ String schemeId = "";
|
|
|
+ String[] var11 = resultIds;
|
|
|
+ int var12 = resultIds.length;
|
|
|
+
|
|
|
+ for (int var13 = 0; var13 < var12; ++var13) {
|
|
|
+ String id = var11[var13];
|
|
|
+ EvaResultSummaryInfo evaResultInfo = GetEntityInfoUtils.getEvaResultSummaryInfoById(ctx, id);
|
|
|
+ if (!isSumCalFlag && evaResultInfo.getSummaryPersonEvaObject() != null) {
|
|
|
+ isSumCalFlag = true;
|
|
|
+ schemeId = evaResultInfo.getSummaryPersonEvaObject().getPerfSummarySchemeBase().getId().toString();
|
|
|
+ }
|
|
|
+
|
|
|
+ if (evaResultInfo.getStatus().getValue() == 1) {
|
|
|
+ ++failedCount;
|
|
|
+ } else {
|
|
|
+ evaResultInfo.setBillState(HRBillStateEnum.SUBMITED);
|
|
|
+ evaResultInfo.setAuditor(ContextUtil.getCurrentUserInfo(ctx));
|
|
|
+ evaResultSummaryColl.add(evaResultInfo);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (evaResultSummaryColl.size() % 50 == 0) {
|
|
|
+ IObjectPK[] objPks = iEvaResultSummary.updateBatchData(evaResultSummaryColl);
|
|
|
+ successCount += objPks.length;
|
|
|
+ evaResultSummaryColl.clear();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ IObjectPK[] objPks = iEvaResultSummary.updateBatchData(evaResultSummaryColl);
|
|
|
+ successCount += objPks.length;
|
|
|
+ map.put("result", "200");
|
|
|
+ map.put("successCount", successCount);
|
|
|
+ map.put("failedCount", failedCount);
|
|
|
+ if (isSumCalFlag && !StringUtils.isEmpty(schemeId)) {
|
|
|
+ PerfSummarySchemeBaseFactory.getLocalInstance(ctx).countAllState(schemeId);
|
|
|
+ }
|
|
|
+ } catch (Exception var17) {
|
|
|
+ logger.error("Exception: ", var17);
|
|
|
+ this.setRollbackOnly();
|
|
|
+ map.put("result", "500");
|
|
|
+ map.put("successCount", 0);
|
|
|
+ map.put("failedCount", ids.length());
|
|
|
+ }
|
|
|
+
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+
|
|
|
+ public Set<String> unAuditEvaResuts(Context ctx, String ids, String resultType) {
|
|
|
+ if (StringUtils.isEmpty(resultType)) {
|
|
|
+ resultType = "10";
|
|
|
+ }
|
|
|
+
|
|
|
+ Set<String> unvalidIds = new HashSet();
|
|
|
+ String[] resultIds = ids.split(",");
|
|
|
+ String currentId = "";
|
|
|
+ CoreBaseCollection evaResultSummaryColl = new CoreBaseCollection();
|
|
|
+
|
|
|
+ try {
|
|
|
+ IEvaResultSummary iEvaResultSummary = EvaResultSummaryFactory.getLocalInstance(ctx);
|
|
|
+ Set<String> updateIds = new HashSet();
|
|
|
+ String[] var10 = resultIds;
|
|
|
+ int var11 = resultIds.length;
|
|
|
+
|
|
|
+ for (int var12 = 0; var12 < var11; ++var12) {
|
|
|
+ String id = var10[var12];
|
|
|
+ EvaResultSummaryInfo evaResultInfo = GetEntityInfoUtils.getEvaResultSummaryInfoById(ctx, id);
|
|
|
+ if (evaResultInfo.getStatus().getValue() == 1) {
|
|
|
+ unvalidIds.add(id);
|
|
|
+ } else {
|
|
|
+ evaResultInfo.setBillState(HRBillStateEnum.SAVED);
|
|
|
+ evaResultInfo.setAuditor(ContextUtil.getCurrentUserInfo(ctx));
|
|
|
+ evaResultInfo.put("lastSumScore", (Object) null);
|
|
|
+ evaResultInfo.put("lastGradeLevel", (Object) null);
|
|
|
+ evaResultInfo.setAppealState(AppealStateEnum.NOAPPEAL);
|
|
|
+ evaResultInfo.setConfirmState(ConfirmStateEnum.UNCONFIRM);
|
|
|
+ evaResultInfo.setAutoConfirm(false);
|
|
|
+ evaResultInfo.setAuditFlag(YesOrNoEnum.NO);
|
|
|
+ evaResultInfo.setIsCreateAuditBill(YesOrNoEnum.NO);
|
|
|
+ evaResultInfo.setAuditGradeLevel((String) null);
|
|
|
+ evaResultInfo.put("auditSumScore", (Object) null);
|
|
|
+ evaResultInfo.setAuditReason((String) null);
|
|
|
+ evaResultInfo.setAuditDate((Date) null);
|
|
|
+ evaResultInfo.setAuditor((UserInfo) null);
|
|
|
+ evaResultSummaryColl.add(evaResultInfo);
|
|
|
+ updateIds.add(id);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (evaResultSummaryColl.size() % 50 == 0) {
|
|
|
+ iEvaResultSummary.updateBatchData(evaResultSummaryColl);
|
|
|
+ evaResultSummaryColl.clear();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!CollectionUtils.isEmpty(updateIds)) {
|
|
|
+ PerfEvaObjectFactory.getLocalInstance(ctx).deleteEvaresultAuditBill(StringUtils.join(updateIds.iterator(), ","), resultType);
|
|
|
+ FilterInfo filterInfo = new FilterInfo();
|
|
|
+ FilterItemInfo itemInfo = new FilterItemInfo("sourceBillId", updateIds, CompareType.INCLUDE);
|
|
|
+ filterInfo.getFilterItems().add(itemInfo);
|
|
|
+ filterInfo.getFilterItems().add(new FilterItemInfo("valid", true, CompareType.EQUALS));
|
|
|
+ EntityViewInfo evi = new EntityViewInfo();
|
|
|
+ evi.setFilter(filterInfo);
|
|
|
+ ArrayList billIdList;
|
|
|
+ Iterator iterator;
|
|
|
+ SelectorItemCollection updateSelect;
|
|
|
+ if ("10".equals(resultType)) {
|
|
|
+ IEvaResultAppealBill iEvaResultAppealBill = EvaResultAppealBillFactory.getLocalInstance(ctx);
|
|
|
+ EvaResultAppealBillCollection appealBillColls = iEvaResultAppealBill.getEvaResultAppealBillCollection(evi);
|
|
|
+ if (appealBillColls != null && !appealBillColls.isEmpty()) {
|
|
|
+ billIdList = new ArrayList();
|
|
|
+ iterator = appealBillColls.iterator();
|
|
|
+
|
|
|
+ while (iterator.hasNext()) {
|
|
|
+ EvaResultAppealBillInfo appealBillInfo = (EvaResultAppealBillInfo) iterator.next();
|
|
|
+ billIdList.add(appealBillInfo.getId().toString());
|
|
|
+ appealBillInfo.setValid(false);
|
|
|
+ appealBillInfo.setEvaResult((EvaResultSummaryInfo) null);
|
|
|
+ }
|
|
|
+
|
|
|
+ TheThirdMessageUtil.recycleWFAssign(ctx, StringUtils.join(billIdList, ","));
|
|
|
+ updateSelect = new SelectorItemCollection();
|
|
|
+ updateSelect.add(new SelectorItemInfo("valid"));
|
|
|
+ updateSelect.add(new SelectorItemInfo("evaResult"));
|
|
|
+ iEvaResultAppealBill.updatePartialBatchData(appealBillColls, updateSelect);
|
|
|
+ }
|
|
|
+
|
|
|
+ try {
|
|
|
+ if (!CollectionUtils.isEmpty(updateIds)) {
|
|
|
+ IInterview interview = InterviewFactory.getLocalInstance(ctx);
|
|
|
+ String idList = "(" + PerfwebStrUtils.convertListToString(Arrays.asList(updateIds.toArray(new String[updateIds.size()]))) + ")";
|
|
|
+ interview.delete(" where evaResultSummary.id in " + idList);
|
|
|
+ }
|
|
|
+ } catch (Exception var18) {
|
|
|
+ logger.error("Exception: ", var18);
|
|
|
+ }
|
|
|
+ } else if ("30".equals(resultType)) {
|
|
|
+ ISumCalResultAppealBill iEvaResultAppealBill = SumCalResultAppealBillFactory.getLocalInstance(ctx);
|
|
|
+ SumCalResultAppealBillCollection appealBillColls = iEvaResultAppealBill.getSumCalResultAppealBillCollection(evi);
|
|
|
+ if (appealBillColls != null && !appealBillColls.isEmpty()) {
|
|
|
+ billIdList = new ArrayList();
|
|
|
+ iterator = appealBillColls.iterator();
|
|
|
+
|
|
|
+ while (iterator.hasNext()) {
|
|
|
+ SumCalResultAppealBillInfo appealBillInfo = (SumCalResultAppealBillInfo) iterator.next();
|
|
|
+ billIdList.add(appealBillInfo.getId().toString());
|
|
|
+ appealBillInfo.setValid(false);
|
|
|
+ appealBillInfo.setEvaResult((EvaResultSummaryInfo) null);
|
|
|
+ }
|
|
|
+
|
|
|
+ TheThirdMessageUtil.recycleWFAssign(ctx, StringUtils.join(billIdList, ","));
|
|
|
+ updateSelect = new SelectorItemCollection();
|
|
|
+ updateSelect.add(new SelectorItemInfo("valid"));
|
|
|
+ updateSelect.add(new SelectorItemInfo("evaResult"));
|
|
|
+ iEvaResultAppealBill.updatePartialBatchData(appealBillColls, updateSelect);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ iEvaResultSummary.updateBatchData(evaResultSummaryColl);
|
|
|
+ } catch (Exception var19) {
|
|
|
+ unvalidIds.add(currentId);
|
|
|
+ logger.error("Exception: ", var19);
|
|
|
+ this.setRollbackOnly();
|
|
|
+ }
|
|
|
+
|
|
|
+ return unvalidIds;
|
|
|
+ }
|
|
|
+
|
|
|
+ private void endAppealProcess(Context ctx, EvaResultAppealBillInfo appealBillInfo) {
|
|
|
+ IEnactmentService iEctService = null;
|
|
|
+
|
|
|
+ try {
|
|
|
+ iEctService = EnactmentServiceFactory.createEnactService(ctx);
|
|
|
+ } catch (BOSException var15) {
|
|
|
+ logger.error("get workflow instance err caused by bosException", var15);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (iEctService == null) {
|
|
|
+ if (logger.isDebugEnabled()) {
|
|
|
+ logger.error("[PERFWEB] it is failed to get workflow instance");
|
|
|
+ }
|
|
|
+
|
|
|
+ } else {
|
|
|
+ ProcessDef pdf = null;
|
|
|
+ String procInstId = null;
|
|
|
+ String id = appealBillInfo.getId().toString();
|
|
|
+
|
|
|
+ try {
|
|
|
+ ProcessInstInfo[] insts = iEctService.getProcessInstanceByHoldedObjectId(id);
|
|
|
+ if (insts == null || insts.length == 0) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ procInstId = insts[0].getProcInstId();
|
|
|
+ ProcessInstInfo processInstInfo = iEctService.getProcessInstInfo(procInstId);
|
|
|
+ pdf = iEctService.getProcessDefByDefineHashValue(processInstInfo.getProcDefHashValue());
|
|
|
+ } catch (WfException var16) {
|
|
|
+ logger.error("end workflow process err caused by wfException", var16);
|
|
|
+ } catch (BOSException var17) {
|
|
|
+ logger.error("end workflow process err caused by bosException", var17);
|
|
|
+ }
|
|
|
+
|
|
|
+ try {
|
|
|
+ if (!JumpPermissionUtil.checkProcessOperate(pdf, (ProcessInstInfo) null, "wf_report_Monitor_OperateJump", false, ctx)) {
|
|
|
+ logger.error("unaudit evaresult but no permission to end process");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ } catch (EASBizException var13) {
|
|
|
+ logger.error("end workflow process permission check err caused by easException", var13);
|
|
|
+ } catch (BOSException var14) {
|
|
|
+ logger.error("end workflow process permission check err caused by easException", var14);
|
|
|
+ }
|
|
|
+
|
|
|
+ List list = null;
|
|
|
+
|
|
|
+ try {
|
|
|
+ list = iEctService.getJumpTargetActivitys(procInstId);
|
|
|
+ } catch (WfException var12) {
|
|
|
+ logger.error("end workflow process get jump targets err caused by wfException", var12);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (list != null && list.size() >= 1) {
|
|
|
+ try {
|
|
|
+ iEctService.jump(procInstId, (ActivityDef) list.get(list.size() - 1), SHRPerfWebResourceUtil.getRes(SHRPerfWebResource.ENDWFDIRECT, ctx));
|
|
|
+ } catch (WfException var11) {
|
|
|
+ logger.error("end workflow process jump err caused by wfException", var11);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public HashMap<String, Object> getReviseDialogData(Context ctx, HttpServletRequest request, HttpServletResponse response) {
|
|
|
+ HashMap map = new HashMap();
|
|
|
+
|
|
|
+ try {
|
|
|
+ String id = request.getParameter("toReviseSelectIds");
|
|
|
+ String isAuditStr = request.getParameter("isAudit");
|
|
|
+ boolean isAudit = "1".equalsIgnoreCase(isAuditStr);
|
|
|
+ EvaResultSummaryInfo evaResultSummaryInfo = GetEntityInfoUtils.getEvaResultSummaryInfoById(ctx, id);
|
|
|
+ String evaObj = evaResultSummaryInfo.getEvaObj().getId().toString();
|
|
|
+ double reviseSumScore = 0.0D;
|
|
|
+ String reviseGradeLevel = "";
|
|
|
+ String reviseReason = "";
|
|
|
+ if (isAudit) {
|
|
|
+ reviseSumScore = evaResultSummaryInfo.getAuditSumScore();
|
|
|
+ reviseGradeLevel = evaResultSummaryInfo.getAuditGradeLevel();
|
|
|
+ reviseReason = evaResultSummaryInfo.getAuditReason();
|
|
|
+ if (StringUtils.isEmpty(reviseGradeLevel)) {
|
|
|
+ reviseSumScore = evaResultSummaryInfo.getReviseSumScore();
|
|
|
+ reviseGradeLevel = evaResultSummaryInfo.getReviseGradeLevel();
|
|
|
+ reviseReason = evaResultSummaryInfo.getReviseReason();
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ reviseSumScore = evaResultSummaryInfo.getReviseSumScore();
|
|
|
+ reviseGradeLevel = evaResultSummaryInfo.getReviseGradeLevel();
|
|
|
+ reviseReason = evaResultSummaryInfo.getReviseReason();
|
|
|
+ }
|
|
|
+
|
|
|
+ PerfEvaObjectInfo evaObjectInfo = GetEntityInfoUtils.getPerfEvaObjectInfo(ctx, evaObj);
|
|
|
+ PerfPeriodInfo periodInfo = GetEntityInfoUtils.getPerfPeriodInfo(ctx, evaObjectInfo.getPeriod().getId().toString());
|
|
|
+ String periodName = periodInfo.getName();
|
|
|
+ String pStartDate = PerfDateUtils.formatDate(periodInfo.getPStartDate(), "yyyy.MM.dd");
|
|
|
+ String pEndDate = PerfDateUtils.formatDate(periodInfo.getPEndDate(), "yyyy.MM.dd");
|
|
|
+ PerfPlanInfo planInfo = GetEntityInfoUtils.getPerfPlanInfo(ctx, periodInfo.getPerfPlan().getId().toString());
|
|
|
+ String planName = planInfo.getName();
|
|
|
+ PerformanceRuleInfo perfRuleInfo = GetEntityInfoUtils.getPerformanceRuleInfo(ctx, periodInfo.getPerfRule().getId().toString());
|
|
|
+ String levelSelectValue = "";
|
|
|
+ BOSUuid perfRateId = perfRuleInfo.getPerfRate().getId();
|
|
|
+ Map<String, String> levelScoreKVInfo = new LinkedHashMap();
|
|
|
+ if (null != perfRateId) {
|
|
|
+ PerfGoasFillService perfGoasFillService = new PerfGoasFillService();
|
|
|
+ levelSelectValue = perfGoasFillService.getSlectLevelVal(ctx, perfRateId.toString());
|
|
|
+ levelScoreKVInfo = perfGoasFillService.getPerfScoreLevelKVInfo(ctx, perfRateId.toString());
|
|
|
+ }
|
|
|
+
|
|
|
+ map.put("levelScoreKVInfo", levelScoreKVInfo);
|
|
|
+ PerfScoreInfo perfScoreInfo = null;
|
|
|
+ if (null != perfRuleInfo.getPariMutual() && null != perfRuleInfo.getPariMutual().getId()) {
|
|
|
+ perfScoreInfo = GetEntityInfoUtils.getPerfScoreInfoById(ctx, perfRuleInfo.getPariMutual().getId().toString());
|
|
|
+ }
|
|
|
+
|
|
|
+ String pariMutual = "";
|
|
|
+ if (perfScoreInfo != null && !StringUtils.isEmpty(perfScoreInfo.getName())) {
|
|
|
+ pariMutual = perfScoreInfo.getName();
|
|
|
+ }
|
|
|
+
|
|
|
+ String personId = evaObjectInfo.getPerfFile().getPerson().getId().toString();
|
|
|
+ String personNumber = evaResultSummaryInfo.getPnumber();
|
|
|
+ PersonCollection personColl = PersonFactory.getLocalInstance(ctx).getPersonCollection(" where id='" + personId + "'");
|
|
|
+ if (null != personColl && personColl.size() > 0) {
|
|
|
+ map.put("pname", personColl.get(0).getName(ctx.getLocale()));
|
|
|
+ } else {
|
|
|
+ map.put("pname", evaResultSummaryInfo.getPname());
|
|
|
+ }
|
|
|
+
|
|
|
+ String adminOrgName = evaResultSummaryInfo.getAdminOrgName();
|
|
|
+ String positionName = evaResultSummaryInfo.getPositionName();
|
|
|
+ request.setAttribute("personId", personId);
|
|
|
+ request.setAttribute("personNumber", personNumber);
|
|
|
+ String imgPath = "";
|
|
|
+
|
|
|
+ try {
|
|
|
+ imgPath = PhotoUtils.showCutImage(request, response);
|
|
|
+ } catch (Exception var34) {
|
|
|
+ logger.error("¡¾PERFWEB¡¿-perfplan execution->get person photo error,detail msg :" + var34.getMessage());
|
|
|
+ }
|
|
|
+
|
|
|
+ map.put("imgPath", imgPath);
|
|
|
+ map.put("adminOrgName", adminOrgName);
|
|
|
+ map.put("positionName", positionName);
|
|
|
+ map.put("planName", planName);
|
|
|
+ map.put("period", pStartDate + "--" + pEndDate);
|
|
|
+ map.put("pariMutual", pariMutual);
|
|
|
+ map.put("reviseGradeLevel", reviseGradeLevel);
|
|
|
+ map.put("reviseSumScore", reviseSumScore);
|
|
|
+ map.put("levelSelectValue", levelSelectValue);
|
|
|
+ if (!StringUtils.isEmpty(reviseReason)) {
|
|
|
+ map.put("reviseReason", reviseReason);
|
|
|
+ } else {
|
|
|
+ map.put("reviseReason", "");
|
|
|
+ }
|
|
|
+
|
|
|
+ map.put("periodName", periodName);
|
|
|
+ if (null == evaResultSummaryInfo.get("sumScore")) {
|
|
|
+ map.put("sumScore", "");
|
|
|
+ } else {
|
|
|
+ BigDecimal sumScore = new BigDecimal(evaResultSummaryInfo.getSumScore());
|
|
|
+ sumScore = sumScore.setScale(2, 4);
|
|
|
+ map.put("sumScore", sumScore);
|
|
|
+ }
|
|
|
+
|
|
|
+ String gradeLevel = evaResultSummaryInfo.getGradeLevel();
|
|
|
+ map.put("gradeLevel", gradeLevel);
|
|
|
+ } catch (Exception var35) {
|
|
|
+ logger.error("¡¾PERFWEB¡¿-INPUTANDEDITERR£¡", var35);
|
|
|
+ }
|
|
|
+
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+
|
|
|
+ public HashMap<String, Object> saveReviseData(Context ctx, HttpServletRequest request, HttpServletResponse response) {
|
|
|
+ HashMap<String, Object> map = new HashMap();
|
|
|
+ String id = StringUtils.isEmpty(request.getParameter("toRevisedId")) ? (String) request.getAttribute("toRevisedId") : request.getParameter("toRevisedId");
|
|
|
+ boolean isAudit = "1".equals(request.getParameter("isAudit"));
|
|
|
+ String auditScore;
|
|
|
+ String reviseLevel;
|
|
|
+ String auditReason;
|
|
|
+ EvaResultSummaryInfo evaResultSummaryInfo;
|
|
|
+ SelectorItemCollection sic;
|
|
|
+ IEvaResultSummary iEvaResultSummary;
|
|
|
+ if (isAudit) {
|
|
|
+ auditScore = StringUtils.isEmpty(request.getParameter("reviseScore")) ? String.valueOf(request.getAttribute("reviseScore")) : request.getParameter("reviseScore");
|
|
|
+ reviseLevel = StringUtils.isEmpty(request.getParameter("reviseLevel")) ? (String) request.getAttribute("reviseLevel") : request.getParameter("reviseLevel");
|
|
|
+ auditReason = StringUtils.isEmpty(request.getParameter("reviseReason")) ? (String) request.getAttribute("reviseReason") : request.getParameter("reviseReason");
|
|
|
+ evaResultSummaryInfo = GetEntityInfoUtils.getEvaResultSummaryInfoById(ctx, id);
|
|
|
+ sic = new SelectorItemCollection();
|
|
|
+ sic.add(new SelectorItemInfo("auditGradeLevel"));
|
|
|
+ sic.add(new SelectorItemInfo("auditReason"));
|
|
|
+ sic.add(new SelectorItemInfo("auditSumScore"));
|
|
|
+ sic.add(new SelectorItemInfo("reviseFlag"));
|
|
|
+ sic.add(new SelectorItemInfo("auditFlag"));
|
|
|
+ if (!Strings.isNullOrEmpty(auditScore)) {
|
|
|
+ evaResultSummaryInfo.put("auditSumScore", PerfPortalUtils.roudUpRemainGiveDecimal(2, Float.parseFloat(auditScore)));
|
|
|
+ } else {
|
|
|
+ evaResultSummaryInfo.put("auditSumScore", (Object) null);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!StringUtils.isEmpty(reviseLevel)) {
|
|
|
+ evaResultSummaryInfo.setAuditGradeLevel(reviseLevel);
|
|
|
+ } else {
|
|
|
+ evaResultSummaryInfo.setAuditGradeLevel(" ");
|
|
|
+ }
|
|
|
+
|
|
|
+ evaResultSummaryInfo.setAuditReason(auditReason);
|
|
|
+ evaResultSummaryInfo.setAuditFlag(YesOrNoEnum.YES);
|
|
|
+ evaResultSummaryInfo.setReviseFlag(YesOrNoEnum.YES);
|
|
|
+
|
|
|
+ try {
|
|
|
+ iEvaResultSummary = EvaResultSummaryFactory.getLocalInstance(ctx);
|
|
|
+ iEvaResultSummary.updatePartial(evaResultSummaryInfo, sic);
|
|
|
+ map.put("result", "200");
|
|
|
+ } catch (Exception var16) {
|
|
|
+ logger.error("Exception: ", var16);
|
|
|
+ map.put("result", "500");
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ auditScore = request.getParameter("reviseScore");
|
|
|
+ reviseLevel = request.getParameter("reviseLevel");
|
|
|
+ auditReason = request.getParameter("reviseReason");
|
|
|
+ evaResultSummaryInfo = GetEntityInfoUtils.getEvaResultSummaryInfoById(ctx, id);
|
|
|
+ sic = new SelectorItemCollection();
|
|
|
+ sic.add(new SelectorItemInfo("reviseGradeLevel"));
|
|
|
+ sic.add(new SelectorItemInfo("reviseReason"));
|
|
|
+ sic.add(new SelectorItemInfo("reviseSumScore"));
|
|
|
+ sic.add(new SelectorItemInfo("perfScorLevelDefine"));
|
|
|
+ if (!Strings.isNullOrEmpty(auditScore)) {
|
|
|
+ evaResultSummaryInfo.put("reviseSumScore", PerfPortalUtils.roudUpRemainGiveDecimal(2, Float.parseFloat(auditScore)));
|
|
|
+ } else {
|
|
|
+ evaResultSummaryInfo.put("reviseSumScore", (Object) null);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!StringUtils.isEmpty(reviseLevel)) {
|
|
|
+ evaResultSummaryInfo.setReviseGradeLevel(reviseLevel);
|
|
|
+ if (null != evaResultSummaryInfo.getEvaObj()) {
|
|
|
+ try {
|
|
|
+ PerfScorLevelDefineInfo scoreLevelDefineInfo = PerfWorkFlowUtils.getPerfScoreLevelDefineInfo(ctx, evaResultSummaryInfo.getEvaObj().getId().toString(), reviseLevel);
|
|
|
+ if (null != scoreLevelDefineInfo && null != scoreLevelDefineInfo.getId()) {
|
|
|
+ evaResultSummaryInfo.put("perfScorLevelDefine", scoreLevelDefineInfo.getId().toString());
|
|
|
+ }
|
|
|
+ } catch (BOSException var15) {
|
|
|
+ logger.error("saveReviseData error: ", var15);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (evaResultSummaryInfo.getMultiPerfPlan() != null) {
|
|
|
+ MultiPerfPlanInfo planInfo = GetMultiEvaEntityUtils.getMultiPerfPlanInfoById(ctx, evaResultSummaryInfo.getMultiPerfPlan().getId().toString());
|
|
|
+ if (planInfo.getPerfRate() != null) {
|
|
|
+ PerfScorLevelDefineInfo defineInfo = GetEntityInfoUtils.getPerfScorLevelDefineInfo(ctx, planInfo.getPerfRate().getId().toString(), reviseLevel);
|
|
|
+ evaResultSummaryInfo.put("perfScorLevelDefine", defineInfo.getId().toString());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ evaResultSummaryInfo.setReviseGradeLevel(" ");
|
|
|
+ }
|
|
|
+
|
|
|
+ evaResultSummaryInfo.setReviseReason(auditReason);
|
|
|
+ evaResultSummaryInfo.setReviseFlag(YesOrNoEnum.YES);
|
|
|
+ evaResultSummaryInfo.setCalibrationTime((Timestamp) null);
|
|
|
+ evaResultSummaryInfo.setCalibrater((PersonInfo) null);
|
|
|
+ evaResultSummaryInfo.setCalibrationStatus(CalibrationStatusEnum.UNCALIBRATED);
|
|
|
+ sic.add(new SelectorItemInfo("calibrationTime"));
|
|
|
+ sic.add(new SelectorItemInfo("calibrater"));
|
|
|
+ sic.add(new SelectorItemInfo("calibrationStatus"));
|
|
|
+ sic.add(new SelectorItemInfo("reviseFlag"));
|
|
|
+
|
|
|
+ try {
|
|
|
+ iEvaResultSummary = EvaResultSummaryFactory.getLocalInstance(ctx);
|
|
|
+ iEvaResultSummary.updatePartial(evaResultSummaryInfo, sic);
|
|
|
+ map.put("result", "200");
|
|
|
+ } catch (Exception var14) {
|
|
|
+ logger.error("Exception: ", var14);
|
|
|
+ map.put("result", "500");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+
|
|
|
+ public HashMap<String, Object> endProcess(Context ctx, String[] evaObjIds, EndWayEnum endWay) {
|
|
|
+ HashMap map = new HashMap();
|
|
|
+
|
|
|
+ try {
|
|
|
+ String[] var5 = evaObjIds;
|
|
|
+ int var6 = evaObjIds.length;
|
|
|
+
|
|
|
+ for (int var7 = 0; var7 < var6; ++var7) {
|
|
|
+ String evaObj = var5[var7];
|
|
|
+ this.endSingleEvaObjProcess(ctx, evaObj, endWay);
|
|
|
+ }
|
|
|
+
|
|
|
+ map.put("result", "200");
|
|
|
+ } catch (Exception var9) {
|
|
|
+ logger.error("Exception: ", var9);
|
|
|
+ this.setRollbackOnly();
|
|
|
+ map.put("result", "500");
|
|
|
+ }
|
|
|
+
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+
|
|
|
+ public HashMap<String, Object> endProcess(Context ctx, String evaObjIds, EndWayEnum endWay) {
|
|
|
+ HashMap map = new HashMap();
|
|
|
+
|
|
|
+ try {
|
|
|
+ EvaResultSummaryFactory.getLocalInstance(ctx).batchEndSingleEvaObjProcess(evaObjIds, endWay);
|
|
|
+ map.put("result", "200");
|
|
|
+ } catch (Exception var6) {
|
|
|
+ logger.error("Exception: ", var6);
|
|
|
+ this.setRollbackOnly();
|
|
|
+ map.put("result", "500");
|
|
|
+ }
|
|
|
+
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+
|
|
|
+ public void endSingleEvaObjProcess(Context ctx, String evaObj, EndWayEnum endWay) throws BOSException {
|
|
|
+ IPerfEvaObject iPerfEvaObject = null;
|
|
|
+
|
|
|
+ try {
|
|
|
+ iPerfEvaObject = PerfEvaObjectFactory.getLocalInstance(ctx);
|
|
|
+ GoalsMessageReceiverFactory.getLocalInstance(ctx);
|
|
|
+ PerfEvaObjectInfo evaObjectInfo = GetEntityInfoUtils.getPerfEvaObjectInfo(ctx, evaObj);
|
|
|
+ if (evaObjectInfo.getWorkFlowStatus().getValue() == 0) {
|
|
|
+ PerfWorkFlowFacadeControllerBean.getInstance().createEvaResultSummary(ctx, evaObj);
|
|
|
+ } else {
|
|
|
+ WorkFlowUtils.updateActiveNodeScoereStatus(ctx, evaObj);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (3 != evaObjectInfo.getWorkFlowStatus().getValue()) {
|
|
|
+ if (evaObjectInfo.getWorkFlowStatus().getValue() != 4 && evaObjectInfo.getWorkFlowStatus().getValue() != 5) {
|
|
|
+ if (endWay.getValue().equals("2")) {
|
|
|
+ evaObjectInfo.setWorkFlowStatus(PerfEvaObjectWFStatusEnum.STOPED);
|
|
|
+ WorkFlowUtils.writeBackWorkFlowStatusForEvaResult(ctx, evaObj, PerfEvaObjectWFStatusEnum.STOPED);
|
|
|
+ } else if (endWay.getValue().equals("3")) {
|
|
|
+ evaObjectInfo.setWorkFlowStatus(PerfEvaObjectWFStatusEnum.ENDPERIOD);
|
|
|
+ WorkFlowUtils.writeBackWorkFlowStatusForEvaResult(ctx, evaObj, PerfEvaObjectWFStatusEnum.ENDPERIOD);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ WorkFlowUtils.writeBackWorkFlowStatusForEvaResult(ctx, evaObj, evaObjectInfo.getWorkFlowStatus());
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ WorkFlowUtils.writeBackWorkFlowStatusForEvaResult(ctx, evaObj, PerfEvaObjectWFStatusEnum.COMPLETED);
|
|
|
+ }
|
|
|
+
|
|
|
+ evaObjectInfo.setScoreTaskStatus(ScoreTaskStatusEnum.SCORED);
|
|
|
+ evaObjectInfo.setEndWay(endWay);
|
|
|
+ SelectorItemCollection selector = new SelectorItemCollection();
|
|
|
+ selector.add(new SelectorItemInfo("workFlowStatus"));
|
|
|
+ selector.add(new SelectorItemInfo("scoreTaskStatus"));
|
|
|
+ selector.add(new SelectorItemInfo("endWay"));
|
|
|
+ iPerfEvaObject.updatePartial(evaObjectInfo, selector);
|
|
|
+ WorkFlowUtils.undoGoalsMessage(ctx, evaObjectInfo);
|
|
|
+ PerfWorkFlowFacadeFactory.getLocalInstance(ctx).calcEvaSumScore(evaObj, "", endWay, true);
|
|
|
+ PerfWorkFlowFacadeFactory.getLocalInstance(ctx).calcEvaObjTargetScore(evaObj);
|
|
|
+ } catch (Exception var7) {
|
|
|
+ logger.error("Exception: ", var7);
|
|
|
+ this.setRollbackOnly();
|
|
|
+ throw new BOSException("end process failed...");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ protected void _batchEndSingleEvaObjProcess(Context ctx, String evaObjIds, EndWayEnum endWay) throws BOSException {
|
|
|
+ if (!StringUtils.isEmpty(evaObjIds)) {
|
|
|
+ String[] evaObjeIdArr = evaObjIds.split(",");
|
|
|
+ ArrayList<String> unStartEvaObjIdList = new ArrayList(50);
|
|
|
+ ArrayList<String> evaluatingEvaObjIdList = new ArrayList(100);
|
|
|
+ ArrayList<String> personalGoalsUnassignedEvaObjIdList = new ArrayList(100);
|
|
|
+ IPerfEvaObject iPerfEvaObject = null;
|
|
|
+ CoreBaseCollection baseColl = new CoreBaseCollection();
|
|
|
+
|
|
|
+ try {
|
|
|
+ iPerfEvaObject = PerfEvaObjectFactory.getLocalInstance(ctx);
|
|
|
+ GoalsMessageReceiverFactory.getLocalInstance(ctx);
|
|
|
+ String idCondition = "(" + PerfwebStrUtils.convertListToString(evaObjeIdArr) + ")";
|
|
|
+ PerfEvaObjectCollection evaObjColl = iPerfEvaObject.getPerfEvaObjectCollection("where id in " + idCondition);
|
|
|
+ if (null != evaObjColl && evaObjColl.size() > 0) {
|
|
|
+ int evaObjSize = evaObjColl.size();
|
|
|
+ String evaObj = null;
|
|
|
+
|
|
|
+ for (int i = 0; i < evaObjSize; ++i) {
|
|
|
+ PerfEvaObjectInfo evaObjectInfo = evaObjColl.get(i);
|
|
|
+ evaObjectInfo.setScoreTaskStatus(ScoreTaskStatusEnum.SCORED);
|
|
|
+ evaObjectInfo.setEndWay(endWay);
|
|
|
+ baseColl.add(evaObjectInfo);
|
|
|
+ evaObj = evaObjectInfo.getId().toString();
|
|
|
+ if (evaObjectInfo.getPersonalGoalStatus().getValue() != 3) {
|
|
|
+ personalGoalsUnassignedEvaObjIdList.add(evaObj);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (evaObjectInfo.getWorkFlowStatus().getValue() == 0) {
|
|
|
+ unStartEvaObjIdList.add(evaObj);
|
|
|
+ } else {
|
|
|
+ evaluatingEvaObjIdList.add(evaObj);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (3 != evaObjectInfo.getWorkFlowStatus().getValue()) {
|
|
|
+ if (endWay.getValue().equals("2")) {
|
|
|
+ evaObjectInfo.setWorkFlowStatus(PerfEvaObjectWFStatusEnum.STOPED);
|
|
|
+ } else if (endWay.getValue().equals("3")) {
|
|
|
+ evaObjectInfo.setWorkFlowStatus(PerfEvaObjectWFStatusEnum.ENDPERIOD);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (baseColl.size() > 0 && baseColl.size() % 100 == 0) {
|
|
|
+ iPerfEvaObject.save(baseColl);
|
|
|
+ baseColl.clear();
|
|
|
+ }
|
|
|
+
|
|
|
+ if (baseColl.size() > 0) {
|
|
|
+ iPerfEvaObject.save(baseColl);
|
|
|
+ baseColl.clear();
|
|
|
+ }
|
|
|
+
|
|
|
+ PerfWorkFlowFacadeControllerBean.getInstance().batchCreateEvaresultSummary(ctx, PerfwebStrUtils.convertListToString(unStartEvaObjIdList));
|
|
|
+ WorkFlowUtils.writeBackWorkFlowStatusForEvaResult(ctx, evaObjColl);
|
|
|
+ WorkFlowUtils.batchUpdateActiveNodeScoereStatus(ctx, evaluatingEvaObjIdList);
|
|
|
+ WorkFlowUtils.batchUndoGoalsMessage(ctx, personalGoalsUnassignedEvaObjIdList);
|
|
|
+ CoreBaseCollection coreBaseCollection = new CoreBaseCollection();
|
|
|
+ ITargetReviseBill iTargetReviseBill = TargetReviseBillFactory.getLocalInstance(ctx);
|
|
|
+ TargetReviseBillCollection targetReviseBillCollection = iTargetReviseBill.getTargetReviseBillCollection("where evaObj in " + idCondition);
|
|
|
+ if (targetReviseBillCollection != null && targetReviseBillCollection.size() > 0) {
|
|
|
+ for (int i = 0; i < targetReviseBillCollection.size(); ++i) {
|
|
|
+ TargetReviseBillInfo targetReviseBillInfo = targetReviseBillCollection.get(i);
|
|
|
+ targetReviseBillInfo.setBillState(HRBillStateEnum.AUDITEND);
|
|
|
+ coreBaseCollection.add(targetReviseBillInfo);
|
|
|
+ SelectorItemCollection selector = new SelectorItemCollection();
|
|
|
+ selector.add(new SelectorItemInfo("billState"));
|
|
|
+ iTargetReviseBill.updatePartial(targetReviseBillInfo, selector);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ } catch (Exception var20) {
|
|
|
+ this.setRollbackOnly();
|
|
|
+ throw new BOSException("end process failed...", var20);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public HashMap<String, Object> cancelEndProcess(Context ctx, String[] evaObjIds, String cancleType) {
|
|
|
+ HashMap<String, Object> map = new HashMap();
|
|
|
+ if (evaObjIds == null && evaObjIds.length < 1) {
|
|
|
+ map.put("result", "500");
|
|
|
+ return map;
|
|
|
+ } else {
|
|
|
+ CoreBaseCollection gradeTNodeColl = new CoreBaseCollection();
|
|
|
+ CoreBaseCollection evaObjColl = new CoreBaseCollection();
|
|
|
+ CoreBaseCollection evaObjColl2 = new CoreBaseCollection();
|
|
|
+ CoreBaseCollection goalsMsgRecColl = new CoreBaseCollection();
|
|
|
+ CoreBaseCollection evaResultSummayColl = new CoreBaseCollection();
|
|
|
+ IGradeTaskNodeInst igradeTaskNodeInst = null;
|
|
|
+ IEvaResultSummary iEvaResultSummary = null;
|
|
|
+ IPerfEvaObject iPerfEvaObject = null;
|
|
|
+ IGoalsMessageReceiver igoalsMsgReceiver = null;
|
|
|
+
|
|
|
+ try {
|
|
|
+ igradeTaskNodeInst = GradeTaskNodeInstFactory.getLocalInstance(ctx);
|
|
|
+ iEvaResultSummary = EvaResultSummaryFactory.getLocalInstance(ctx);
|
|
|
+ iPerfEvaObject = PerfEvaObjectFactory.getLocalInstance(ctx);
|
|
|
+ igoalsMsgReceiver = GoalsMessageReceiverFactory.getLocalInstance(ctx);
|
|
|
+ IEvaResultSummaryAuditBillFacade auditBillFacade = EvaResultSummaryAuditBillFacadeFactory.getLocalInstance(ctx);
|
|
|
+ auditBillFacade.delBillByEvaObjs(new HashSet(Arrays.asList(evaObjIds)));
|
|
|
+ String[] var15 = evaObjIds;
|
|
|
+ int var16 = evaObjIds.length;
|
|
|
+
|
|
|
+ for (int var17 = 0; var17 < var16; ++var17) {
|
|
|
+ String evaObj = var15[var17];
|
|
|
+ EvaResultSummaryInfo evaResultSummaryInfo = GetEntityInfoUtils.getEvaResultSummaryInfoByEvaObj(ctx, evaObj);
|
|
|
+ if (evaResultSummaryInfo.getBillState().getValue() != 3) {
|
|
|
+ PerfEvaObjectInfo evaObjectInfo = GetEntityInfoUtils.getPerfEvaObjectInfo(ctx, evaObj);
|
|
|
+ GradeTaskNodeInstCollection gradeTaskNodeInstColl = GetEntityInfoUtils.getGradeTaskNodeInstCollByEvaObj(ctx, evaObj);
|
|
|
+ int i;
|
|
|
+ if (evaObjectInfo.getPersonalGoalStatus().getValue() == 3 && gradeTaskNodeInstColl != null && gradeTaskNodeInstColl.size() >= 1) {
|
|
|
+ if (evaObjectInfo.getWorkFlowStatus().getValue() == 5 || evaObjectInfo.getWorkFlowStatus().getValue() == 4 && cancleType.equals("0")) {
|
|
|
+ GradeTaskNodeInstCollection gradeTaskNodeColl = igradeTaskNodeInst.getGradeTaskNodeInstCollection(" where evaObj='" + evaObj + "' and isEffective='" + "1" + "' and isEndProcess=1 order by wfLevel DESC");
|
|
|
+ if (gradeTaskNodeColl != null && gradeTaskNodeColl.size() > 0) {
|
|
|
+ i = gradeTaskNodeColl.size();
|
|
|
+
|
|
|
+ for (int x = 0; x < i; ++x) {
|
|
|
+ GradeTaskNodeInstInfo gtNodeInstInfo = gradeTaskNodeColl.get(x);
|
|
|
+ gtNodeInstInfo.setScoreStatus(ScoreStatusEnum.UNSUBMIT);
|
|
|
+ gtNodeInstInfo.setCanEdit(CanEditEnum.CANEDIT);
|
|
|
+ gtNodeInstInfo.setIsVisible(IsVisibleEnum.VISIBLE);
|
|
|
+ gtNodeInstInfo.setIsEffective(IsEffectiveEnum.EFFECTIVE);
|
|
|
+ gtNodeInstInfo.setTaskStatus(TaskStatusEnum.DEALING);
|
|
|
+ gtNodeInstInfo.setIsEndProcess(YesOrNoEnum.NO);
|
|
|
+ gradeTNodeColl.add(gtNodeInstInfo);
|
|
|
+ if (gradeTNodeColl.size() % 50 == 0) {
|
|
|
+ igradeTaskNodeInst.updateBatchData(gradeTNodeColl);
|
|
|
+ gradeTNodeColl.clear();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (gradeTNodeColl.size() > 0) {
|
|
|
+ igradeTaskNodeInst.updateBatchData(gradeTNodeColl);
|
|
|
+ }
|
|
|
+
|
|
|
+ evaResultSummaryInfo.put("reviseSumScore", (Object) null);
|
|
|
+ evaResultSummaryInfo.setReviseGradeLevel((String) null);
|
|
|
+ evaResultSummaryInfo.setReviseReason((String) null);
|
|
|
+ evaResultSummaryInfo.setIsCreateAuditBill(YesOrNoEnum.NO);
|
|
|
+ evaResultSummayColl.add(evaResultSummaryInfo);
|
|
|
+ if (evaResultSummayColl.size() % 50 == 0) {
|
|
|
+ iEvaResultSummary.updateBatchData(evaResultSummayColl);
|
|
|
+ evaResultSummayColl.clear();
|
|
|
+ }
|
|
|
+
|
|
|
+ String evaObjId = evaObjectInfo.getId().toString();
|
|
|
+ Set<String> evaObjSet = new HashSet();
|
|
|
+ evaObjSet.add(evaObjId);
|
|
|
+ Set<String> currentHanlderSet = PerfPlanExecuteUtils.getCurrentNodeHandersForEvaObjs(ctx, evaObjSet, (String) null);
|
|
|
+ if (currentHanlderSet.size() > 0) {
|
|
|
+ String handlerIdCondition = "(" + PerfwebStrUtils.convertListToString(new ArrayList(currentHanlderSet)) + ")";
|
|
|
+ UserCollection userColl = UserFactory.getLocalInstance(ctx).getUserCollection(" where person in " + handlerIdCondition + " and isDelete=0 and isForbidden=0");
|
|
|
+ if (null != userColl && userColl.size() > 0) {
|
|
|
+ evaObjectInfo.setWorkFlowStatus(PerfEvaObjectWFStatusEnum.UNDERWAY);
|
|
|
+ } else {
|
|
|
+ evaObjectInfo.setWorkFlowStatus(PerfEvaObjectWFStatusEnum.HANGUP);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ evaObjectInfo.setWorkFlowStatus(PerfEvaObjectWFStatusEnum.HANGUP);
|
|
|
+ }
|
|
|
+
|
|
|
+ evaObjectInfo.setScoreTaskStatus(ScoreTaskStatusEnum.HADSENT);
|
|
|
+ evaObjColl.add(evaObjectInfo);
|
|
|
+ if (evaObjColl.size() % 50 == 0) {
|
|
|
+ iPerfEvaObject.updateBatchData(evaObjColl);
|
|
|
+ evaObjColl.clear();
|
|
|
+ }
|
|
|
+
|
|
|
+ if (3 != evaObjectInfo.getWorkFlowStatus().getValue()) {
|
|
|
+ WorkFlowUtils.writeBackWorkFlowStatusForEvaResult(ctx, evaObj, PerfEvaObjectWFStatusEnum.UNDERWAY);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ iEvaResultSummary.delete(" where evaObj='" + evaObj + "'");
|
|
|
+ evaObjectInfo.setWorkFlowStatus(PerfEvaObjectWFStatusEnum.UNSTARTED);
|
|
|
+ evaObjectInfo.setScoreTaskStatus(ScoreTaskStatusEnum.UNSEND);
|
|
|
+ evaObjColl2.add(evaObjectInfo);
|
|
|
+ if (evaObjectInfo.getPersonalGoalStatus().getValue() != 3) {
|
|
|
+ GoalsMessageReceiverCollection goalsMsgReceiverColl = igoalsMsgReceiver.getGoalsMessageReceiverCollection(" where evaObj='" + evaObj + "'");
|
|
|
+ if (goalsMsgReceiverColl != null && goalsMsgReceiverColl.size() > 0) {
|
|
|
+ for (i = 0; i < goalsMsgReceiverColl.size(); ++i) {
|
|
|
+ GoalsMessageReceiverInfo goalsMsgReceiverInfo = goalsMsgReceiverColl.get(i);
|
|
|
+ goalsMsgReceiverInfo.setHandleStatus(GoalsMessageHandlerStatusEnum.SENT);
|
|
|
+ goalsMsgRecColl.add(goalsMsgReceiverInfo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (evaObjColl2.size() % 50 == 0) {
|
|
|
+ iPerfEvaObject.updateBatchData(evaObjColl2);
|
|
|
+ evaObjColl2.clear();
|
|
|
+ igoalsMsgReceiver.updateBatchData(goalsMsgRecColl);
|
|
|
+ goalsMsgRecColl.clear();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (evaResultSummayColl.size() > 0) {
|
|
|
+ iEvaResultSummary.updateBatchData(evaResultSummayColl);
|
|
|
+ evaResultSummayColl.clear();
|
|
|
+ }
|
|
|
+
|
|
|
+ if (evaObjColl2.size() > 0) {
|
|
|
+ iPerfEvaObject.updateBatchData(evaObjColl2);
|
|
|
+ evaObjColl2.clear();
|
|
|
+ }
|
|
|
+
|
|
|
+ if (goalsMsgRecColl.size() > 0) {
|
|
|
+ igoalsMsgReceiver.updateBatchData(goalsMsgRecColl);
|
|
|
+ goalsMsgRecColl.clear();
|
|
|
+ }
|
|
|
+
|
|
|
+ if (evaObjColl.size() > 0) {
|
|
|
+ iPerfEvaObject.updateBatchData(evaObjColl);
|
|
|
+ evaObjColl.clear();
|
|
|
+ }
|
|
|
+
|
|
|
+ map.put("result", "200");
|
|
|
+ } catch (Exception var28) {
|
|
|
+ logger.error("Exception: ", var28);
|
|
|
+ this.setRollbackOnly();
|
|
|
+ map.put("result", "500");
|
|
|
+ }
|
|
|
+
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ protected void _check(Context ctx, IObjectPK pk, IObjectValue model) throws BOSException, EASBizException {
|
|
|
+ }
|
|
|
+
|
|
|
+ protected void updateGoalsTaskpoolStatus(Context ctx, String period, com.kingdee.shr.perfweb.app.base.evalplan.TaskStatusEnum taskStatus) throws BOSException {
|
|
|
+ String updateGoalsTaskPoolSQL = "UPDATE T_EVA_GoalsTaskPool SET FTaskStatus='" + taskStatus.getValue() + "'";
|
|
|
+ DbUtil.execute(ctx, updateGoalsTaskPoolSQL);
|
|
|
+ }
|
|
|
+
|
|
|
+ protected void updateGoalsMessageStatus(Context ctx, String period, HandleStatusEnum handleStatus) throws BOSException {
|
|
|
+ String updateGoalsTaskPoolSQL = "UPDATE T_EVA_GoalsMessage SET FHandleStatus='" + handleStatus.getValue() + "'";
|
|
|
+ DbUtil.execute(ctx, updateGoalsTaskPoolSQL);
|
|
|
+ }
|
|
|
+
|
|
|
+ protected static boolean checkPeriodIsEnd(Context ctx, String period) throws BOSException {
|
|
|
+ PerfPeriodInfo periodInfo = GetEntityInfoUtils.getPerfPeriodInfo(ctx, period);
|
|
|
+ if (null != periodInfo.getEvaPeriodStatus()) {
|
|
|
+ return periodInfo.getEvaPeriodStatus().getValue() == 100;
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ protected IObjectPK _addnew(Context ctx, IObjectValue model) throws BOSException, EASBizException {
|
|
|
+ if (model.get("id") != null) {
|
|
|
+ model.put("number", model.get("id").toString());
|
|
|
+ } else {
|
|
|
+ String id = BOSUuid.create("81121B74").toString();
|
|
|
+ model.put("id", id);
|
|
|
+ model.put("number", id);
|
|
|
+ }
|
|
|
+
|
|
|
+ return super._addnew(ctx, model);
|
|
|
+ }
|
|
|
+
|
|
|
+ protected void _autoConfirm(Context ctx) throws BOSException, EASBizException {
|
|
|
+ PerfPlanCollection perfPlans = PerfPlanFactory.getLocalInstance(ctx).getPerfPlanCollection("select id, confirmDays, isOrg where confirmDays is not null and needConfirm = 1");
|
|
|
+ Map<String, Integer> confirmMap = new HashMap();
|
|
|
+ Map<String, Integer> orgConfirmMap = new HashMap();
|
|
|
+ if (perfPlans != null && !perfPlans.isEmpty()) {
|
|
|
+ Iterator it = perfPlans.iterator();
|
|
|
+
|
|
|
+ while (it.hasNext()) {
|
|
|
+ PerfPlanInfo perfPlanInfo = (PerfPlanInfo) it.next();
|
|
|
+ String planId = perfPlanInfo.getId().toString();
|
|
|
+ if (YesOrNotEnum.YES.equals(perfPlanInfo.getIsOrg())) {
|
|
|
+ orgConfirmMap.put(planId, perfPlanInfo.getConfirmDays());
|
|
|
+ } else {
|
|
|
+ confirmMap.put(planId, perfPlanInfo.getConfirmDays());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ Date auditDate;
|
|
|
+ int confirmDays;
|
|
|
+ Date now;
|
|
|
+ long days;
|
|
|
+ Set perfPlanIds;
|
|
|
+ CoreBaseCollection coreBaseCollection;
|
|
|
+ if (!CollectionUtils.isEmpty(confirmMap)) {
|
|
|
+ perfPlanIds = confirmMap.keySet();
|
|
|
+ EvaResultSummaryCollection evaResultColls = EvaResultSummaryFactory.getLocalInstance(ctx).getEvaResultSummaryCollection(this.getEvaResultEntityViewToConfirm(perfPlanIds));
|
|
|
+ if (evaResultColls != null && !evaResultColls.isEmpty()) {
|
|
|
+ coreBaseCollection = new CoreBaseCollection();
|
|
|
+
|
|
|
+ for (it = evaResultColls.iterator(); it.hasNext(); EvaResultSummaryFactory.getLocalInstance(ctx).save(coreBaseCollection)) {
|
|
|
+ EvaResultSummaryInfo resultInfo = (EvaResultSummaryInfo) it.next();
|
|
|
+ auditDate = resultInfo.getAuditDate();
|
|
|
+ confirmDays = (Integer) confirmMap.get(resultInfo.getEvaPlan().getId().toString());
|
|
|
+ if (confirmDays != 0) {
|
|
|
+ now = new Date();
|
|
|
+ days = DateUtil.dateDiff("d", auditDate, now) + 1L;
|
|
|
+ if ((long) confirmDays - days < 0L) {
|
|
|
+ resultInfo.setConfirmState(ConfirmStateEnum.CONFIRMED);
|
|
|
+ resultInfo.setAutoConfirm(true);
|
|
|
+ coreBaseCollection.add(resultInfo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!CollectionUtils.isEmpty(orgConfirmMap)) {
|
|
|
+ perfPlanIds = orgConfirmMap.keySet();
|
|
|
+ OrgEvaResultSummaryCollection evaResultColls = OrgEvaResultSummaryFactory.getLocalInstance(ctx).getOrgEvaResultSummaryCollection(this.getEvaResultEntityViewToConfirm(perfPlanIds));
|
|
|
+ if (evaResultColls != null && !evaResultColls.isEmpty()) {
|
|
|
+ coreBaseCollection = new CoreBaseCollection();
|
|
|
+
|
|
|
+ for (it = evaResultColls.iterator(); it.hasNext(); OrgEvaResultSummaryFactory.getLocalInstance(ctx).save(coreBaseCollection)) {
|
|
|
+ OrgEvaResultSummaryInfo resultInfo = (OrgEvaResultSummaryInfo) it.next();
|
|
|
+ auditDate = resultInfo.getAuditDate();
|
|
|
+ confirmDays = (Integer) orgConfirmMap.get(resultInfo.getEvaPlan().getId().toString());
|
|
|
+ if (confirmDays != 0) {
|
|
|
+ now = new Date();
|
|
|
+ days = DateUtil.dateDiff("d", auditDate, now) + 1L;
|
|
|
+ if ((long) confirmDays - days < 0L) {
|
|
|
+ resultInfo.setConfirmState(ConfirmStateEnum.CONFIRMED);
|
|
|
+ resultInfo.setAutoConfirm(true);
|
|
|
+ coreBaseCollection.add(resultInfo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ 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());
|
|
|
+ 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"));
|
|
|
+ evaResultSummaryInfo.put("reviseSumScore", reviseData.get("reviseSumScore") != null && !StringUtils.isEmpty(reviseData.get("reviseSumScore").toString()) ? reviseData.get("reviseSumScore") : null);
|
|
|
+ evaResultSummaryInfo.put("reviseGradeLevel", reviseData.get("reviseGradeLevel"));
|
|
|
+ evaResultSummaryInfo.put("reviseReason", reviseData.get("reviseReason"));
|
|
|
+ evaResultSummaryInfo.setReviseFlag(YesOrNoEnum.YES);
|
|
|
+ evaResultSummaryCollection.add(evaResultSummaryInfo);
|
|
|
+ }
|
|
|
+
|
|
|
+ new ArrayList();
|
|
|
+ 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(summaryIds)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ EntityViewInfo entityViewInfo = new EntityViewInfo();
|
|
|
+ FilterInfo filterInfo = new FilterInfo();
|
|
|
+ filterInfo.getFilterItems().add(new FilterItemInfo("id", summaryIds, CompareType.INCLUDE));
|
|
|
+ entityViewInfo.setFilter(filterInfo);
|
|
|
+ EvaResultSummaryCollection summaryCollection = this.getEvaResultSummaryCollection(ctx, 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);
|
|
|
+ this.save(ctx, evaResultSummaryCollection);
|
|
|
+ evaResultSumRevisionLogService.generatedEvaResultSumRevisionLog(ctx, evaResultSumRevisionLogCollection);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ private EntityViewInfo getEvaResultEntityViewToConfirm(Set<String> perfPlanIds) {
|
|
|
+ FilterInfo filterInfo = new FilterInfo();
|
|
|
+ filterInfo.getFilterItems().add(new FilterItemInfo("billState", 3, CompareType.EQUALS));
|
|
|
+ filterInfo.getFilterItems().add(new FilterItemInfo("appealState", 2, CompareType.NOTEQUALS));
|
|
|
+ filterInfo.getFilterItems().add(new FilterItemInfo("confirmState", 2, CompareType.NOTEQUALS));
|
|
|
+ filterInfo.getFilterItems().add(new FilterItemInfo("isImportByHand", Boolean.FALSE, CompareType.EQUALS));
|
|
|
+ filterInfo.getFilterItems().add(new FilterItemInfo("historyImport", Boolean.FALSE, CompareType.EQUALS));
|
|
|
+ SelectorItemCollection selectors = new SelectorItemCollection();
|
|
|
+ selectors.add(new SelectorItemInfo("id"));
|
|
|
+ selectors.add(new SelectorItemInfo("evaPlan.id"));
|
|
|
+ selectors.add(new SelectorItemInfo("auditDate"));
|
|
|
+ selectors.add(new SelectorItemInfo("hrOrgUnit.id"));
|
|
|
+ EntityViewInfo evi = new EntityViewInfo();
|
|
|
+ evi.setSelector(selectors);
|
|
|
+ evi.setTopCount(500);
|
|
|
+ filterInfo.getFilterItems().add(new FilterItemInfo("evaPlan.id", perfPlanIds, CompareType.INCLUDE));
|
|
|
+ evi.setFilter(filterInfo);
|
|
|
+ return evi;
|
|
|
+ }
|
|
|
+
|
|
|
+ protected void _dealAppealPass(Context ctx, IObjectValue evaResultInfo, Map appealInfo) throws BOSException, EASBizException {
|
|
|
+ EvaResultSummaryInfo summaryInfo = (EvaResultSummaryInfo) evaResultInfo;
|
|
|
+ boolean isAutoUpdateEvaResult = true;
|
|
|
+ AppealParamConfigCollection configs = AppealParamConfigFactory.getLocalInstance(ctx).getAppealParamConfigCollection();
|
|
|
+ if (configs != null && !configs.isEmpty()) {
|
|
|
+ isAutoUpdateEvaResult = configs.get(0).isAutoUpdateEvaResult();
|
|
|
+ }
|
|
|
+
|
|
|
+ if (isAutoUpdateEvaResult && EvaResultSumStatusEnum.NOCARRY.equals(summaryInfo.getStatus())) {
|
|
|
+ Double reviseScore = null;
|
|
|
+ Double sumScore = null;
|
|
|
+ reviseScore = summaryInfo.get("reviseSumScore") == null ? null : Double.valueOf(summaryInfo.get("reviseSumScore").toString());
|
|
|
+ sumScore = summaryInfo.get("sumScore") == null ? null : Double.valueOf(summaryInfo.get("sumScore").toString());
|
|
|
+ String reviseLevel = summaryInfo.getReviseGradeLevel();
|
|
|
+
|
|
|
+ try {
|
|
|
+ if (reviseScore == null) {
|
|
|
+ reviseScore = sumScore;
|
|
|
+ reviseLevel = summaryInfo.getGradeLevel();
|
|
|
+ }
|
|
|
+ } catch (Exception var17) {
|
|
|
+ logger.error(var17.toString());
|
|
|
+ }
|
|
|
+
|
|
|
+ String appealGrade = (String) appealInfo.get("appealGrade");
|
|
|
+ String perfScorLevelDefine = (String) appealInfo.get("perfScorLevelDefine");
|
|
|
+ String appealScore = (String) appealInfo.get("appealScore");
|
|
|
+ summaryInfo.setReviseGradeLevel(appealGrade);
|
|
|
+ summaryInfo.setLastGradeLevel(appealGrade);
|
|
|
+ summaryInfo.put("perfScorLevelDefine", perfScorLevelDefine);
|
|
|
+ if (!com.kingdee.util.StringUtils.isEmpty(appealScore)) {
|
|
|
+ summaryInfo.setReviseSumScore(Double.parseDouble(appealScore));
|
|
|
+ summaryInfo.setLastSumScore(Double.parseDouble(appealScore));
|
|
|
+ }
|
|
|
+
|
|
|
+ summaryInfo.setAppealState(AppealStateEnum.SUCCESS);
|
|
|
+ summaryInfo.setReviseReason(SHRPerfWebResourceUtil.getRes(SHRPerfWebResource.APPEALSUCCESS, ctx));
|
|
|
+ summaryInfo.setCalibrationTime((Timestamp) null);
|
|
|
+ summaryInfo.setCalibrater((PersonInfo) null);
|
|
|
+ summaryInfo.setCalibrationStatus(CalibrationStatusEnum.UNCALIBRATED);
|
|
|
+ this.save(ctx, summaryInfo);
|
|
|
+
|
|
|
+ try {
|
|
|
+ IEvaResultSumRevisionLog iEvaResultSumRevisionLog = EvaResultSumRevisionLogFactory.getLocalInstance(ctx);
|
|
|
+ EvaResultSumRevisionLogInfo logInfo = new EvaResultSumRevisionLogInfo();
|
|
|
+ logInfo.setEvaResultSummary(summaryInfo);
|
|
|
+ logInfo.setBeforeReviseGradeLevel(reviseLevel);
|
|
|
+ logInfo.setAfterReviseGradeLevel(appealGrade);
|
|
|
+ logInfo.setSourceEnum(EvaResultSumLogSourceEnum.APPEAL);
|
|
|
+ BigDecimal b;
|
|
|
+ if (reviseScore != null) {
|
|
|
+ b = new BigDecimal(String.valueOf(reviseScore));
|
|
|
+ logInfo.setBeforeReviseSumScore(b.setScale(2, RoundingMode.HALF_UP).doubleValue());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!com.kingdee.util.StringUtils.isEmpty(appealScore)) {
|
|
|
+ b = new BigDecimal(appealScore);
|
|
|
+ logInfo.setAfterReviseSumScore(b.setScale(2, RoundingMode.HALF_UP).doubleValue());
|
|
|
+ }
|
|
|
+
|
|
|
+ logInfo.setReviseReason(SHRPerfWebResourceUtil.getRes(SHRPerfWebResource.APPEALSUCCESS, ctx));
|
|
|
+ iEvaResultSumRevisionLog.addnew(logInfo);
|
|
|
+ } catch (Exception var16) {
|
|
|
+ logger.error(var16.toString());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ private static class EvaResultSummaryControllerBeanInst {
|
|
|
+ private static final EvaResultSummaryControllerBean instance = new EvaResultSummaryControllerBean();
|
|
|
+
|
|
|
+ private EvaResultSummaryControllerBeanInst() {
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|