添加特殊员工住宿逻辑-龚宇杰

This commit is contained in:
ggxl 2025-04-25 11:11:48 +08:00
parent 402ba55307
commit a53916fda1
1 changed files with 24 additions and 1 deletions

View File

@ -8,6 +8,8 @@ import kd.bos.entity.datamodel.IDataModel;
import kd.bos.entity.datamodel.events.PropertyChangedArgs; import kd.bos.entity.datamodel.events.PropertyChangedArgs;
import kd.bos.form.events.BeforeDoOperationEventArgs; import kd.bos.form.events.BeforeDoOperationEventArgs;
import kd.bos.form.operate.FormOperate; 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.bos.servicehelper.BusinessDataServiceHelper;
import kd.fi.er.business.tripstd.context.StdPreCalContext; import kd.fi.er.business.tripstd.context.StdPreCalContext;
import kd.fi.er.business.tripstd.model.TripStandardDetail; 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; if (cohabitPersons.containsKey(travelerI.getLong("id"))) continue;
boolean isCohabit = false;//是否同住 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"); DynamicObject travelerJ = travelers.get(j).getDynamicObject("fbasedataid");
travelerI = BusinessDataServiceHelper.loadSingle(travelerI.getPkValue(), "bos_user"); travelerI = BusinessDataServiceHelper.loadSingle(travelerI.getPkValue(), "bos_user");
travelerJ = BusinessDataServiceHelper.loadSingle(travelerJ.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("/天"); 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;
}
} }