|
|
@@ -2,7 +2,6 @@ package nckd.jxccl.swc.hcdm.formplugin.agencybill;
|
|
|
|
|
|
import kd.bos.dataentity.entity.DynamicObject;
|
|
|
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
|
|
-import kd.bos.dataentity.metadata.IMetadata;
|
|
|
import kd.bos.dataentity.resource.ResManager;
|
|
|
import kd.bos.entity.datamodel.IDataModel;
|
|
|
import kd.bos.entity.datamodel.ListSelectedRowCollection;
|
|
|
@@ -11,7 +10,6 @@ import kd.bos.form.ShowFormHelper;
|
|
|
import kd.bos.form.events.AfterDoOperationEventArgs;
|
|
|
import kd.bos.form.events.ClosedCallBackEvent;
|
|
|
import kd.bos.form.operate.FormOperate;
|
|
|
-import kd.bos.form.plugin.AbstractFormPlugin;
|
|
|
import kd.bos.list.ListFilterParameter;
|
|
|
import kd.bos.list.ListShowParameter;
|
|
|
import kd.bos.orm.query.QCP;
|
|
|
@@ -22,7 +20,11 @@ import kd.sdk.plugin.Plugin;
|
|
|
import kd.swc.hcdm.business.domain.applybill.helper.ApplyBillPermCommonHelper;
|
|
|
import kd.swc.hsbp.common.util.SWCDateTimeUtils;
|
|
|
import kd.swc.hsbp.formplugin.web.SWCBaseFormPlugin;
|
|
|
+import nckd.jxccl.swc.constants.SwcConstant;
|
|
|
|
|
|
+import java.time.LocalDate;
|
|
|
+import java.time.ZoneId;
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@@ -41,6 +43,91 @@ public class AgencyBillEdit extends SWCBaseFormPlugin implements Plugin {
|
|
|
this.addItemClickListeners("nckd_advcontoolbarap");
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void afterCreateNewData(EventObject e) {
|
|
|
+ super.afterCreateNewData(e);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void afterBindData(EventObject e) {
|
|
|
+ super.afterBindData(e);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void beforeBindData(EventObject e) {
|
|
|
+ super.beforeBindData(e);
|
|
|
+ if("calPerson".equals(this.getView().getFormShowParameter().getCustomParam("source"))) {
|
|
|
+ dealDataByCalPerson();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 从薪资明细-转代发按钮跳转过来之后的处理
|
|
|
+ */
|
|
|
+ public void dealDataByCalPerson() {
|
|
|
+ IDataModel model = this.getModel();
|
|
|
+ DynamicObject billDyn = model.getDataEntity(true);
|
|
|
+ DynamicObjectCollection entryCols = billDyn.getDynamicObjectCollection("nckd_entryentity");
|
|
|
+ Map<String, Object> customParams = this.getView().getFormShowParameter().getCustomParams();
|
|
|
+ // 归属年月
|
|
|
+ String startDateStr = customParams.get("startDate").toString().substring(0, 10);
|
|
|
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
+ LocalDate localDate = LocalDate.parse(startDateStr, formatter);
|
|
|
+ Date date = Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
|
|
|
+
|
|
|
+ // 赋值薪资核算组
|
|
|
+ model.setValue("nckd_payrollgroup",customParams.get("payrollgroup"));
|
|
|
+ List calPersonIds = (List) customParams.get("calPersonIds");
|
|
|
+ // 获取核算人员相关信息
|
|
|
+ QFilter filter = new QFilter("id", "in", calPersonIds);
|
|
|
+ String selectFields = "id, employee.id, empposorgrelsndet.adminorg.id";
|
|
|
+ DynamicObject[] calPersonDyns = SwcConstant.CALPERSON_HELPER.load(selectFields, new QFilter[]{filter});
|
|
|
+ Map<Long, DynamicObject> calPersonMap = Arrays.stream(calPersonDyns).collect(Collectors.toMap((dyx) -> {
|
|
|
+ return dyx.getLong("id");
|
|
|
+ }, (dyx) -> {
|
|
|
+ return dyx;
|
|
|
+ }, (key1, key2) -> {
|
|
|
+ return key2;
|
|
|
+ }));
|
|
|
+
|
|
|
+
|
|
|
+ // 获取核算列表信息
|
|
|
+ filter = new QFilter("calpersonid", "in", calPersonIds);
|
|
|
+ filter.and("hsas_caltableentry.salaryitem.number", QCP.equals, "JT_283");
|
|
|
+ selectFields = "calpersonid,hsas_caltableentry.calamountvalue";
|
|
|
+ DynamicObjectCollection calTableDyns = SwcConstant.CALTABLE_ENTITY.queryOriginalCollection(selectFields, new QFilter[]{filter});
|
|
|
+ Map<Long, DynamicObject> calTableMap = calTableDyns.stream().collect(Collectors.toMap((dyx) -> {
|
|
|
+ return dyx.getLong("calpersonid");
|
|
|
+ }, (dyx) -> {
|
|
|
+ return dyx;
|
|
|
+ }, (key1, key2) -> {
|
|
|
+ return key2;
|
|
|
+ }));
|
|
|
+
|
|
|
+
|
|
|
+ for (Object calPerson : calPersonIds) {
|
|
|
+ DynamicObject row = entryCols.addNew();
|
|
|
+ Long calPersonId = Long.valueOf(calPerson.toString());
|
|
|
+ row.set("nckd_employee", calPersonMap.get(calPersonId).getDynamicObject("employee"));
|
|
|
+ row.set("nckd_adminorg", calPersonMap.get(calPersonId).getDynamicObject("empposorgrelsndet.adminorg"));
|
|
|
+ row.set("nckd_payrollgrp", model.getValue("nckd_payrollgroup"));
|
|
|
+ row.set("nckd_belongdate", date);
|
|
|
+ row.set("nckd_amount", calTableMap.get(calPersonId).getBigDecimal("hsas_caltableentry.calamountvalue"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据核算名单ID获取相关信息
|
|
|
+ * @param calPersonIds
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public DynamicObjectCollection getCalTableByCalPersonId(List calPersonIds) {
|
|
|
+ QFilter filter = new QFilter("calpersonid", "in", calPersonIds);
|
|
|
+ String selectFields = "employee.id, empposorgrelsndet.adminorg.id";
|
|
|
+ return SwcConstant.CALPERSON_HELPER.queryOriginalCollection(selectFields, new QFilter[]{filter});
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
@Override
|
|
|
public void afterDoOperation(AfterDoOperationEventArgs afterDoOperationEventArgs) {
|
|
|
super.afterDoOperation(afterDoOperationEventArgs);
|