From 6251ccdd075ec510d45e01aae69d2786d8db1db6 Mon Sep 17 00:00:00 2001 From: ggxl <194689125@qq.com> Date: Thu, 14 Nov 2024 14:33:30 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=9F=E4=BB=BB=E5=8A=A1=E6=B1=87=E6=80=BB?= =?UTF-8?q?=E8=AF=84=E5=88=86=E6=97=B6=E5=B0=86=E6=88=91=E7=9A=84=E8=80=83?= =?UTF-8?q?=E5=AF=9F=E4=B8=AD=E8=AF=84=E5=88=86=E8=AF=B4=E6=98=8E=EF=BC=88?= =?UTF-8?q?=E4=BC=98=EF=BC=89=E5=B8=A6=E5=88=B0=E8=80=83=E5=AF=9F=E7=BB=93?= =?UTF-8?q?=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BringScoreDescribeSummaryPlugin.java | 109 ++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 main/java/shkd/repc/resm/formplugin/BringScoreDescribeSummaryPlugin.java diff --git a/main/java/shkd/repc/resm/formplugin/BringScoreDescribeSummaryPlugin.java b/main/java/shkd/repc/resm/formplugin/BringScoreDescribeSummaryPlugin.java new file mode 100644 index 0000000..fcc657e --- /dev/null +++ b/main/java/shkd/repc/resm/formplugin/BringScoreDescribeSummaryPlugin.java @@ -0,0 +1,109 @@ +package shkd.repc.resm.formplugin; + +import kd.bos.bill.AbstractBillPlugIn; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.dataentity.entity.ILocaleString; +import kd.bos.dataentity.utils.StringUtils; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.bos.servicehelper.QueryServiceHelper; +import kd.sdk.plugin.Plugin; + +import java.util.EventObject; +import java.util.Iterator; + +/** + * 单据界面插件 + */ +public class BringScoreDescribeSummaryPlugin extends AbstractBillPlugIn implements Plugin { + + /* + * 考察任务-考察任务汇总评分时将我的考察中评分说明(优)带到考察结果中 + * */ + + @Override + public void afterBindData(EventObject e) { + super.afterBindData(e); + + String openType = (String) this.getView().getFormShowParameter().getCustomParam("opentype"); + String billStatus = this.getModel().getDataEntity().getString("billstatus"); + DynamicObject dataEntity = this.getModel().getDataEntity(); + DynamicObject examTaskSummary = QueryServiceHelper.queryOne("resm_examtask_summary", "id", (new QFilter("evaltask", "=", dataEntity.getPkValue())).toArray()); + if (examTaskSummary == null) { + boolean isStandard = StringUtils.equals("standard", dataEntity.getString("evalscheme.scoremethod")); + if (!StringUtils.isEmpty(openType) && "sumup".equals(openType) && "ORDERED".equals(billStatus)) { + DynamicObject[] myEvals = BusinessDataServiceHelper.load("resm_myeval", "creator.name,evalrole,entry_evalscore.score,entry_evalscore.evalindex,entry_evalscore.scoredesc,entry_evalscore.evalator,entry_evalscore.evalator.name,opinionplus", new QFilter[]{new QFilter("evaltask", "=", dataEntity.getPkValue())}); + DynamicObjectCollection evalDetailEntry = this.getModel().getEntryEntity("entry_evaldetail"); + + for (int i = 0; i < evalDetailEntry.size(); ++i) { + DynamicObject evalDetailEntryRow = (DynamicObject) evalDetailEntry.get(i); + + String myEvalDesc = ""; + DynamicObject evaluatorBill = BusinessDataServiceHelper.loadSingle("resm_evaluator", "evalentryid,entry_evaluator.user,entry_evaluator.role,entry_evaluator.user.name,entry_evaluator.weight", new QFilter[]{new QFilter("evalentryid", "=", String.valueOf(evalDetailEntryRow.getPkValue()))}); + if (evaluatorBill != null) { + for (int j = 0; j < myEvals.length; ++j) { + DynamicObject myEval = myEvals[j]; + DynamicObjectCollection evalScoreEntry = myEval.getDynamicObjectCollection("entry_evalscore"); + + label93: + for(int k = 0; k < evalScoreEntry.size(); ++k) { + DynamicObject evalScoreEntryRow = (DynamicObject)evalScoreEntry.get(k); + if (evalDetailEntryRow.getDynamicObject("evalindex") != null && evalScoreEntryRow.getDynamicObject("evalindex") != null && evalDetailEntryRow.getDynamicObject("evalindex").getPkValue().equals(evalScoreEntryRow.getDynamicObject("evalindex").getPkValue())) { + DynamicObjectCollection evaluatorEntry = evaluatorBill.getDynamicObjectCollection("entry_evaluator"); + Iterator var22 = evaluatorEntry.iterator(); + + while(true) { + while(true) { + if (!var22.hasNext()) { + continue label93; + } + + DynamicObject evaluatorEntryRow = (DynamicObject)var22.next(); + if (evaluatorEntryRow.getDynamicObject("user") != null && evalScoreEntryRow.getDynamicObject("evalator") != null) { + if (evaluatorEntryRow.getDynamicObject("user").getPkValue().equals(evalScoreEntryRow.getDynamicObject("evalator").getPkValue())) { + myEvalDesc = myEvalDesc + this.assembleUserMyEvalDesc(evalScoreEntryRow, evaluatorEntryRow); + } + } else if (myEval.getDynamicObject("evalrole") != null && evaluatorEntryRow.getDynamicObject("role") != null && evaluatorEntryRow.getDynamicObject("role").getPkValue().equals(myEval.getDynamicObject("evalrole").getPkValue())) { + myEvalDesc = myEvalDesc + this.assembleRoleMyEvalDesc(myEval, evalScoreEntryRow, evaluatorEntryRow); + } + } + } + } + } + } + } + + this.getModel().setValue("qeug_myevaldesc", this.trimDescValue(myEvalDesc), i); + } + } + } + } + + protected String assembleUserMyEvalDesc(DynamicObject evalScoreEntryRow, DynamicObject evaluatorEntryRow) { + String result = evaluatorEntryRow.getDynamicObject("user").getString("name") + "("; + ILocaleString localeString = evalScoreEntryRow.getLocaleString("qeug_scoredesc"); + if (localeString != null && !localeString.isEmpty() && localeString.getLocaleValue() != null && !localeString.getLocaleValue().isEmpty()) { + result = result + localeString.getLocaleValue(); + return result + "),\n"; + } else { + return ""; + } + } + + protected String assembleRoleMyEvalDesc(DynamicObject myEval, DynamicObject evalScoreEntryRow, DynamicObject evaluatorEntryRow) { + String result = myEval.getString("creator.name") + "("; + ILocaleString localeString = evalScoreEntryRow.getLocaleString("qeug_scoredesc"); + if (localeString != null && !localeString.isEmpty() && localeString.getLocaleValue() != null && !localeString.getLocaleValue().isEmpty()) { + result = result + localeString.getLocaleValue(); + return result + "),\n"; + } else { + return ""; + } + } + + protected String trimDescValue(String desc) { + return desc.isEmpty() ? "" : desc.substring(0, desc.lastIndexOf(",") < 0 ? desc.length() - 1 : desc.lastIndexOf(",")); + } + +} \ No newline at end of file