Browse Source

宿舍功能 - 特殊水电明细效验逻辑新增,获取数据修改(sqw)

sqw 2 days ago
parent
commit
3dd6af2a11

+ 35 - 32
code/opmcepaq/uzi9-uzi9q-opmcepaq-epaq/src/main/java/uzi9/uzi9q/opmcepaq/epaq/plugin/form/xbt/test/weinfor/form/WECostSpBasePlugIn.java

@@ -8,6 +8,7 @@ import kd.bos.entity.datamodel.events.PropertyChangedArgs;
 import kd.bos.form.control.Toolbar;
 import kd.bos.form.control.events.BeforeItemClickEvent;
 import kd.bos.form.control.events.ItemClickEvent;
+import kd.bos.form.field.BasedataEdit;
 import kd.bos.form.field.events.BeforeF7SelectEvent;
 import kd.bos.form.field.events.BeforeF7SelectListener;
 import kd.bos.orm.query.QCP;
@@ -49,7 +50,8 @@ public class WECostSpBasePlugIn extends AbstractBasePlugIn implements Plugin, Be
 
     @Override
     public void registerListener(EventObject e) {
-
+        BasedataEdit basedataEdit = this.getView().getControl("uzi9_personnel_info");
+        basedataEdit.addBeforeF7SelectListener(this);
         Toolbar toolbar = this.getView().getControl("tbmain");
         toolbar.addItemClickListener(this);
         super.registerListener(e);
@@ -58,7 +60,16 @@ public class WECostSpBasePlugIn extends AbstractBasePlugIn implements Plugin, Be
 
     @Override
     public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
+        String logo = beforeF7SelectEvent.getProperty().getName();
+        if ("uzi9_personnel_info".equals(logo)) {
+            Date start = (Date) this.getModel().getValue("uzi9_time_start");
+            Date end = (Date) this.getModel().getValue("uzi9_time_end");
 
+            QFilter qFilter = new QFilter("uzi9_departure_date", QCP.large_equals, start)
+                    .and("uzi9_departure_date", QCP.less_equals, end);
+            beforeF7SelectEvent.addCustomQFilter(qFilter);
+
+        }
     }
 
     @Override
@@ -121,9 +132,13 @@ public class WECostSpBasePlugIn extends AbstractBasePlugIn implements Plugin, Be
                 Date endOfMonth = timeMap.get("end");
                 this.getModel().setValue("uzi9_time_start", startOfMonth);
                 this.getModel().setValue("uzi9_time_end", endOfMonth);
+                this.getView().setEnable(true, "uzi9_personnel_info");
                 if (personnel != null) {
                     userChar();
                 }
+            } else {
+                this.getView().setEnable(false, "uzi9_personnel_info");
+                this.getModel().setValue("uzi9_personnel_info", null);
             }
         }
 
@@ -204,16 +219,20 @@ public class WECostSpBasePlugIn extends AbstractBasePlugIn implements Plugin, Be
      */
 
     private void userChar() {
-        DynamicObject personnel = (DynamicObject) this.getModel().getValue("uzi9_personnel_info");
+        DynamicObject departure = (DynamicObject) this.getModel().getValue("uzi9_personnel_info");
         Date startTime = (Date) this.getModel().getValue("uzi9_time_start");
         Date endTime = (Date) this.getModel().getValue("uzi9_time_end");
 
-        if (personnel != null && startTime != null && endTime != null) {
+        if (departure != null && startTime != null && endTime != null) {
             // 删除数据
             this.getModel().deleteEntryData("uzi9_we_sp_char");
 
+            //获取退宿人员信息
+            departure = BusinessDataServiceHelper.loadSingle("uzi9_retreat_dormitory", "id,uzi9_personnel", new QFilter[]{new QFilter("id", QCP.equals, departure.get("id"))});
+
+
             //重新构建
-            QFilter qFilter = new QFilter("uzi9_personnel_info.id", QCP.equals, personnel.get("id"))
+            QFilter qFilter = new QFilter("id", QCP.equals, departure.getDynamicObject("uzi9_personnel").getLong("id"))
                     .and("uzi9_departure_date", QCP.large_than, startTime)
                     .and("uzi9_date_joining", QCP.less_than, endTime);
 
@@ -280,41 +299,25 @@ public class WECostSpBasePlugIn extends AbstractBasePlugIn implements Plugin, Be
     }
 
 
-
     /**
      * 获取入住人员信息(自动带出)
      */
     private void infoRetrieval() {
-        DynamicObject personnel = (DynamicObject) this.getModel().getValue("uzi9_personnel_info");
-        if (personnel != null) {
+        DynamicObject departure = (DynamicObject) this.getModel().getValue("uzi9_personnel_info");
+        if (departure != null) {
 
-            QFilter qFilter = new QFilter("id", QCP.equals, personnel.get("id"));
-            DynamicObject user = BusinessDataServiceHelper.loadSingle("bos_user",
-                    "number,entryentity,contactentity,gender," +
-                            "entryentity.ispartjob,entryentity.position,entryentity.dpt," +
-                            "contactentity.contacttype,contactentity.contact,name", new QFilter[]{qFilter});
+            QFilter qFilter = new QFilter("id", QCP.equals, departure.get("id"));
+            departure = BusinessDataServiceHelper.loadSingle("uzi9_retreat_dormitory",
+                    "id,name,uzi9_number,uzi9_department,uzi9_position", new QFilter[]{qFilter});
 
             //工号
-            if (user != null) {
-                this.getModel().setValue("uzi9_number", user.getString("number"));
-
-                //部门 - 职位
-                DynamicObjectCollection entryentity = user.getDynamicObjectCollection("entryentity");
-                if (entryentity != null) {
-                    for (DynamicObject entry : entryentity) {
-                        boolean ispartjob = entry.getBoolean("ispartjob");
-                        if (!ispartjob) {
-                            String dptName = entry.getString("dpt.name");
-                            String postName = entry.getString("position");
-                            this.getModel().setValue("uzi9_department", dptName);
-                            this.getModel().setValue("uzi9_position", postName);
-                        }
-                    }
-                }
-
-                //姓名
-                this.getModel().setValue("name", user.getString("name"));
-            }
+            this.getModel().setValue("uzi9_number", departure.getString("uzi9_number"));
+            //部门
+            this.getModel().setValue("uzi9_department", departure.get("uzi9_department"));
+            //职位
+            this.getModel().setValue("uzi9_position", departure.get("uzi9_position"));
+            //姓名
+            this.getModel().setValue("name", departure.getString("name"));
 
 
         } else {