From a53916fda142b655c0d73a6c7646ac27f75f792b Mon Sep 17 00:00:00 2001 From: ggxl <194689125@qq.com> Date: Fri, 25 Apr 2025 11:11:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=89=B9=E6=AE=8A=E5=91=98?= =?UTF-8?q?=E5=B7=A5=E4=BD=8F=E5=AE=BF=E9=80=BB=E8=BE=91-=E9=BE=9A?= =?UTF-8?q?=E5=AE=87=E6=9D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/form/TripPersonCohabitPlugin.java | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/src/main/java/zf47/jdgz1/fi/em/plugin/form/TripPersonCohabitPlugin.java b/src/main/java/zf47/jdgz1/fi/em/plugin/form/TripPersonCohabitPlugin.java index f247e75..4a0f402 100644 --- a/src/main/java/zf47/jdgz1/fi/em/plugin/form/TripPersonCohabitPlugin.java +++ b/src/main/java/zf47/jdgz1/fi/em/plugin/form/TripPersonCohabitPlugin.java @@ -8,6 +8,8 @@ import kd.bos.entity.datamodel.IDataModel; import kd.bos.entity.datamodel.events.PropertyChangedArgs; import kd.bos.form.events.BeforeDoOperationEventArgs; import kd.bos.form.operate.FormOperate; +import kd.bos.orm.query.QCP; +import kd.bos.orm.query.QFilter; import kd.bos.servicehelper.BusinessDataServiceHelper; import kd.fi.er.business.tripstd.context.StdPreCalContext; import kd.fi.er.business.tripstd.model.TripStandardDetail; @@ -113,7 +115,8 @@ public class TripPersonCohabitPlugin extends AbstractBillPlugIn implements Plugi if (cohabitPersons.containsKey(travelerI.getLong("id"))) continue; boolean isCohabit = false;//是否同住 - for (int j = i + 1; j < travelers.size(); j++) { + boolean isSpecialStaff = isSpecialStaff(travelerI);//是否为特殊员工 + for (int j = i + 1; j < travelers.size() && !isSpecialStaff; j++) { DynamicObject travelerJ = travelers.get(j).getDynamicObject("fbasedataid"); travelerI = BusinessDataServiceHelper.loadSingle(travelerI.getPkValue(), "bos_user"); travelerJ = BusinessDataServiceHelper.loadSingle(travelerJ.getPkValue(), "bos_user"); @@ -215,4 +218,24 @@ public class TripPersonCohabitPlugin extends AbstractBillPlugIn implements Plugi stdDetail.append("旺季¥").append(highStd).append("/天"); } } + + /** + * 判断是否为特殊员工 + * + * @param staff 员工 + */ + + private boolean isSpecialStaff(DynamicObject staff) { + QFilter statusQF = new QFilter("status", QCP.equals, "C"); + QFilter enableQF = new QFilter("enable", QCP.equals, "1"); + QFilter staffQF = new QFilter("zf47_staff.id", QCP.equals, staff.getPkValue()); + + DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle("zf47_acc_special_staff", new QFilter[]{statusQF, enableQF, staffQF}); + if (dynamicObject != null) { + String jobLevel = dynamicObject.getString("zf47_job_level"); + return !"3".equals(jobLevel); + } + + return false; + } }