9060 2 달 전
부모
커밋
fcdf198eca

+ 103 - 0
src/com/kingdee/shr/perfweb/app/base/evalplan/EvaResultSummaryAuditBillControllerBeanEx.java

@@ -0,0 +1,103 @@
+package com.kingdee.shr.perfweb.app.base.evalplan;
+
+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.SelectorItemCollection;
+import com.kingdee.bos.metadata.entity.SelectorItemInfo;
+import com.kingdee.bos.util.BOSUuid;
+import com.kingdee.eas.common.EASBizException;
+import com.kingdee.eas.hr.base.HRBillStateEnum;
+import com.kingdee.eas.util.app.DbUtil;
+import com.kingdee.jdbc.rowset.IRowSet;
+import java.sql.SQLException;
+
+public class EvaResultSummaryAuditBillControllerBeanEx extends EvaResultSummaryAuditBillControllerBean
+{
+    protected IObjectPK _submit(Context ctx, IObjectValue model)
+            throws BOSException, EASBizException
+    {
+        model.put("billState", HRBillStateEnum.SUBMITED);
+        IEvaResultSummaryAuditBill f = EvaResultSummaryAuditBillFactory.getLocalInstance(ctx);
+        SelectorItemCollection sel = new SelectorItemCollection();
+        sel.add(new SelectorItemInfo("id"));
+        sel.add(new SelectorItemInfo("entrys.id"));
+        sel.add(new SelectorItemInfo("entrys.evaResult.id"));
+        EvaResultSummaryAuditBillInfo fmodel = (EvaResultSummaryAuditBillInfo)model;
+        EvaResultSummaryAuditBillInfo finfo = f.getEvaResultSummaryAuditBillInfo(new ObjectUuidPK(fmodel.getId()), sel);
+        if (null != finfo) {
+            EvaResultSummaryAuditBillEntryCollection entryCollection = finfo.getEntrys();
+            if (null != entryCollection) {
+                for (int i = 0; i < entryCollection.size(); i++) {
+                    EvaResultSummaryAuditBillEntryInfo entry = entryCollection.get(i);
+                    EvaResultSummaryInfo resultSummaryInfo = entry.getEvaResult();
+                    if (null != resultSummaryInfo) {
+                        BOSUuid id = resultSummaryInfo.getId();
+                        if (null != id) {
+                            String selPer = "select fid from T_EVA_EvaResultSummary where CfauditPerCoefficient=null and fid=?";
+                            IRowSet rs = DbUtil.executeQuery(ctx, selPer, new String[] { id.toString() });
+                            try {
+                                while (rs.next()) {
+                                    String upd = "update T_EVA_EvaResultSummary set CfauditPerCoefficient=CfperCoefficient where fid=?";
+                                    DbUtil.execute(ctx, upd, new String[] { id.toString() });
+                                }
+                            } catch (SQLException throwables) {
+                                throwables.printStackTrace();
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        return super._submit(ctx, model);
+    }
+
+    protected void _setPassState(Context ctx, BOSUuid billId) throws BOSException, EASBizException
+    {
+        super._setPassState(ctx, billId);
+        IEvaResultSummaryAuditBill f = EvaResultSummaryAuditBillFactory.getLocalInstance(ctx);
+        SelectorItemCollection sel = new SelectorItemCollection();
+        sel.add(new SelectorItemInfo("id"));
+        sel.add(new SelectorItemInfo("entrys.id"));
+        sel.add(new SelectorItemInfo("entrys.evaResult.id"));
+        EvaResultSummaryAuditBillInfo finfo = f.getEvaResultSummaryAuditBillInfo(new ObjectUuidPK(billId), sel);
+        if (null != finfo) {
+            EvaResultSummaryAuditBillEntryCollection entryCollection = finfo.getEntrys();
+            if (null != entryCollection)
+                for (int i = 0; i < entryCollection.size(); i++) {
+                    EvaResultSummaryAuditBillEntryInfo entry = entryCollection.get(i);
+                    EvaResultSummaryInfo resultSummaryInfo = entry.getEvaResult();
+                    if (null != resultSummaryInfo) {
+                        BOSUuid id = resultSummaryInfo.getId();
+                        if (null != id) {
+                            String upd = "update T_EVA_EvaResultSummary set CflastPerCoefficient=isnull(CfauditPerCoefficient,CfperCoefficient) where fid=?";
+                            DbUtil.execute(ctx, upd, new String[] { id.toString() });
+                        }
+                    }
+                }
+        }
+    }
+
+    protected void _setNoPassState(Context ctx, BOSUuid billId)
+            throws BOSException, EASBizException
+    {
+        super._setNoPassState(ctx, billId);
+    }
+
+    protected void _setApproveState(Context ctx, BOSUuid billId) throws BOSException
+    {
+        super._setApproveState(ctx, billId);
+    }
+
+    protected void _setEditState(Context ctx, BOSUuid billId) throws BOSException, EASBizException
+    {
+        super._setEditState(ctx, billId);
+    }
+
+    protected void _setNoPassStateStop(Context ctx, BOSUuid billId) throws BOSException, EASBizException
+    {
+        super._setNoPassStateStop(ctx, billId);
+    }
+}

+ 1303 - 0
src/com/kingdee/shr/perfweb/app/base/evalplan/EvaResultSummaryControllerBean.java

@@ -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() {
+        }
+    }
+}

+ 184 - 0
src/com/kingdee/shr/perfweb/util/EvaResultSumRevisionLogService.java

@@ -0,0 +1,184 @@
+package com.kingdee.shr.perfweb.util;
+
+import com.google.common.base.Strings;
+import com.kingdee.bos.Context;
+import com.kingdee.bos.util.BOSUuid;
+import com.kingdee.eas.basedata.person.PersonInfo;
+import com.kingdee.eas.framework.CoreBaseCollection;
+import com.kingdee.eas.framework.CoreBaseInfo;
+
+import com.kingdee.eas.util.app.ContextUtil;
+import com.kingdee.eas.util.app.DbUtil;
+import com.kingdee.jdbc.rowset.IRowSet;
+import com.kingdee.shr.perfweb.app.base.evalplan.*;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.math.BigDecimal;
+
+/**
+ * description: EvaResultSumRevisionLogService <br>
+ * date: 25/11/2025 下午 4:20 <br>
+ * author: lhbj <br>
+ * version: 1.0 <br>
+ */
+public class EvaResultSumRevisionLogService {
+    private static final Logger logger = LoggerFactory.getLogger(EvaResultSumRevisionLogService.class);
+
+    public EvaResultSumRevisionLogService() {
+    }
+
+    /**
+     * revisePerson	修订人	对象	CFRevisePersonID
+     * revisePersonName	修订人	字符串	CFRevisePersonName
+     * afterPerfLevel	修订后绩效系数	数字	CFAfterPerfLevel
+     * beforePerfLevel	修订前绩效系数	数字	CFBeforePerfLevel
+     *
+     * @param ctx
+     * @param sourceEnum
+     * @param evaResultSummaryInfo
+     * @param beforeReviseSumScore
+     * @param beforeReviseGradeLevel
+     */
+    public void generatedEvaResultSumRevisionLog(Context ctx, EvaResultSumLogSourceEnum sourceEnum, EvaResultSummaryInfo evaResultSummaryInfo, String beforeReviseSumScore, String beforeReviseGradeLevel) {
+        try {
+            IEvaResultSumRevisionLog localInstance = EvaResultSumRevisionLogFactory.getLocalInstance(ctx);
+            EvaResultSumRevisionLogInfo info = new EvaResultSumRevisionLogInfo();
+            info.setEvaResultSummary(evaResultSummaryInfo);
+            info.setBeforeReviseGradeLevel(beforeReviseGradeLevel);
+            info.setAfterReviseGradeLevel(evaResultSummaryInfo.getString("reviseGradeLevel"));
+            info.setSourceEnum(sourceEnum);
+            info.setReviseReason(evaResultSummaryInfo.getString("reviseReason"));
+
+            BigDecimal b;
+            if (!Strings.isNullOrEmpty(beforeReviseSumScore)) {
+                b = new BigDecimal(beforeReviseSumScore);
+                info.setBeforeReviseSumScore(b.setScale(2, 4).doubleValue());
+            }
+            if (!StringUtils.isEmpty(evaResultSummaryInfo.getString("reviseSumScore"))) {
+                b = new BigDecimal(evaResultSummaryInfo.getString("reviseSumScore"));
+                info.setAfterReviseSumScore(b.setScale(2, 4).doubleValue());
+            }
+            EvaResultSummaryInfo old = GetEntityInfoUtils.getEvaResultSummaryInfoById(ctx, evaResultSummaryInfo.getId().toString());
+            BigDecimal afterPerfLevel = (evaResultSummaryInfo.getBigDecimal("auditPerCoefficient") == null ?
+                    evaResultSummaryInfo.getBigDecimal("perCoefficient") : evaResultSummaryInfo.getBigDecimal("auditPerCoefficient"));
+            info.put("beforePerfLevel", evaResultSummaryInfo.getBigDecimal("reviseBfCoefficient"));
+            info.put("afterPerfLevel", afterPerfLevel);
+            PersonInfo revisePerson = (PersonInfo) ctx.get("revisePerson");
+            revisePerson = (null == revisePerson ? ContextUtil.getCurrentUserInfo(ctx).getPerson() : revisePerson);
+            String revisePersonName = (String) ctx.get("revisePersonName");
+            revisePersonName = (null == revisePersonName ? ContextUtil.getCurrentUserInfo(ctx).getName() : revisePersonName);
+            info.put("revisePerson", revisePerson);
+            info.put("revisePersonName", revisePersonName);
+            if (EvaResultSumLogSourceEnum.AUDITING.equals(sourceEnum)) {
+
+                String assignment = evaResultSummaryInfo.getString("assignmentID");
+                if (StringUtils.isNotBlank(assignment)) {
+                    String sel = "select fid,CFoldPerfLevel from  T_EVA_EvaResultSumRevisionLog where CFREVISEPERSONID=? and CFASSIGNMENT=? and FEVARESULTSUMMARYID=?";
+                    IRowSet rs = DbUtil.executeQuery(ctx,sel,new Object[]{revisePerson.getId().toString(),assignment,evaResultSummaryInfo.getId().toString()});
+                    info.put("assignment", assignment);
+                    if(rs.next()) {
+                        BOSUuid id = BOSUuid.read(rs.getString("fid"));
+                        BigDecimal decimal =rs.getBigDecimal("CFoldPerfLevel");
+                        info.setId(id);
+                        info.put("beforePerfLevel", decimal);
+                        localInstance.save(info);
+                    }else {
+                        info.put("oldPerfLevel", evaResultSummaryInfo.getBigDecimal("reviseBfCoefficient"));
+                        localInstance.addnew(info);
+                    }
+                }else {
+
+                    localInstance.addnew(info);
+                }
+            } else {
+                localInstance.addnew(info);
+            }
+        } catch (Exception var9) {
+            logger.error(var9.toString());
+            var9.printStackTrace();
+        }
+    }
+
+    public void generatedEvaResultSumRevisionLog(Context ctx, EvaResultSumLogSourceEnum sourceEnum, OrgEvaResultSummaryInfo evaResultSummaryInfo, String beforeReviseSumScore, String beforeReviseGradeLevel) {
+        try {
+            IEvaResultSumRevisionLog localInstance = EvaResultSumRevisionLogFactory.getLocalInstance(ctx);
+            EvaResultSumRevisionLogInfo info = new EvaResultSumRevisionLogInfo();
+            info.setOrgEvaResultSummary(evaResultSummaryInfo);
+            info.setBeforeReviseGradeLevel(beforeReviseGradeLevel);
+            info.setAfterReviseGradeLevel(evaResultSummaryInfo.getString("reviseGradeLevel"));
+            info.setSourceEnum(sourceEnum);
+            info.setReviseReason(evaResultSummaryInfo.getString("reviseReason"));
+            BigDecimal b;
+            if (!Strings.isNullOrEmpty(beforeReviseSumScore)) {
+                b = new BigDecimal(beforeReviseSumScore);
+                info.setBeforeReviseSumScore(b.setScale(2, 4).doubleValue());
+            }
+
+            if (!StringUtils.isEmpty(evaResultSummaryInfo.getString("reviseSumScore"))) {
+                b = new BigDecimal(evaResultSummaryInfo.getString("reviseSumScore"));
+                info.setAfterReviseSumScore(b.setScale(2, 4).doubleValue());
+            }
+            PersonInfo revisePerson = (PersonInfo) ctx.get("revisePerson");
+            revisePerson = (null == revisePerson ? ContextUtil.getCurrentUserInfo(ctx).getPerson() : revisePerson);
+            String revisePersonName = (String) ctx.get("revisePersonName");
+            revisePersonName = (null == revisePersonName ? ContextUtil.getCurrentUserInfo(ctx).getName() : revisePersonName);
+            info.put("revisePerson", revisePerson);
+            info.put("revisePersonName", revisePersonName);
+            localInstance.addnew(info);
+        } catch (Exception var9) {
+            logger.error(var9.toString());
+        }
+
+    }
+
+    public void generatedEvaResultSumRevisionLog(Context ctx, CoreBaseCollection coreBaseCollection) {
+        try {
+            IEvaResultSumRevisionLog localInstance = null;
+            if (ctx == null) {
+                localInstance = EvaResultSumRevisionLogFactory.getRemoteInstance();
+            } else {
+                localInstance = EvaResultSumRevisionLogFactory.getLocalInstance(ctx);
+            }
+
+            if (coreBaseCollection != null) {
+                localInstance.addnew(coreBaseCollection);
+            }
+        } catch (Exception var4) {
+            logger.error(var4.toString());
+        }
+
+    }
+
+    public CoreBaseCollection packageResultSumRevisionLog(EvaResultSumLogSourceEnum sourceEnum, CoreBaseCollection oldSummaryCollection, CoreBaseCollection currentSummaryCollection, boolean isOrg) {
+        CoreBaseCollection resultSumRevisionLogCollection = new CoreBaseCollection();
+
+        for (int i = 0; i < oldSummaryCollection.size(); ++i) {
+            EvaResultSumRevisionLogInfo logInfo = new EvaResultSumRevisionLogInfo();
+            CoreBaseInfo oldInfo = oldSummaryCollection.get(i);
+            CoreBaseInfo currentInfo = currentSummaryCollection.get(oldInfo.get("id").toString());
+            if (isOrg) {
+                logInfo.setOrgEvaResultSummary((OrgEvaResultSummaryInfo) oldInfo);
+            } else {
+                logInfo.setEvaResultSummary((EvaResultSummaryInfo) oldInfo);
+            }
+
+            if (oldInfo.get("reviseSumScore") == null) {
+                logInfo.put("beforeReviseSumScore", oldInfo.get("sumScore"));
+                logInfo.put("beforeReviseGradeLevel", oldInfo.get("gradeLevel"));
+            } else {
+                logInfo.put("beforeReviseSumScore", oldInfo.get("reviseSumScore"));
+                logInfo.put("beforeReviseGradeLevel", oldInfo.get("reviseGradeLevel"));
+            }
+
+            logInfo.put("afterReviseSumScore", currentInfo.get("reviseSumScore"));
+            logInfo.setAfterReviseGradeLevel((String) currentInfo.get("reviseGradeLevel"));
+            logInfo.setReviseReason((String) currentInfo.get("reviseReason"));
+            logInfo.setSourceEnum(sourceEnum);
+            resultSumRevisionLogCollection.add(logInfo);
+        }
+
+        return resultSumRevisionLogCollection;
+    }
+}