Jelajahi Sumber

feat(agencybill): 添加员工身份证号码自动填充功能

- 查询员工档案信息并建立员工ID映射关系
- 在代理单据编辑界面自动填充员工身份证号码
- 优化数据加载逻辑提升查询效率
- 集成员工基础信息与证件号码关联功能
Tyx 4 hari lalu
induk
melakukan
a294d3dc40

+ 19 - 0
code/swc/nckd-jxccl-swc/src/main/java/nckd/jxccl/swc/hcdm/formplugin/agencybill/AgencyBillEdit.java

@@ -246,12 +246,31 @@ public class AgencyBillEdit extends AbstractFormPlugin implements Plugin {
         QFilter filter = new QFilter("id", QCP.in, ids);
         String selectFields = "employee.id, employee.name, employee.empnumber, empposorgrel.adminorg.id";
         DynamicObject[] adjFiles = SALARYFILE_HELPER.load(selectFields, new QFilter[]{filter});
+
+        // employeeId
+        List<Long> employeeIds = Arrays.stream(adjFiles).map(obj -> obj.getLong("employee.id")).collect(Collectors.toList());
+        DynamicObject[] percreDyns = SWCHelper.queryPercreDyns(employeeIds);
+        Map<Long, DynamicObject> percreMap = Arrays.stream(percreDyns).collect(Collectors.toMap((dyx) -> {
+            return dyx.getLong("employee.id");
+        }, (dyx) -> {
+            return dyx;
+        }, (key1, key2) -> {
+            return key2;
+        }));
+
+
         DynamicObjectCollection entryCols = model.getDataEntity(true).getDynamicObjectCollection("nckd_entryentity");
         model.beginInit();
         for (DynamicObject adjFile : adjFiles) {
             DynamicObject entry = entryCols.addNew();
             entry.set("nckd_employee", adjFile.getDynamicObject("employee"));
             entry.set("nckd_adminorg", adjFile.getDynamicObject("empposorgrel.adminorg"));
+
+            Long employeeId = adjFile.getLong("employee.id");
+            if(percreMap.containsKey(employeeId)) {
+                entry.set("nckd_idcardno", percreMap.get(employeeId).getString("number"));
+            }
+
         }
         model.endInit();
         this.getView().updateView("nckd_entryentity");