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
* date: 25/11/2025 下午 4:20
* author: lhbj
* version: 1.0
*/
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;
}
}