Просмотр исходного кода

宿舍功能 - 申请表中附件的传递逻辑补充(sqw)

sqw 3 дней назад
Родитель
Сommit
f8ef28bc4e

+ 24 - 2
code/opmcepaq/uzi9-uzi9q-opmcepaq-epaq/src/main/java/uzi9/uzi9q/opmcepaq/epaq/plugin/form/xbt/test/personnel/operation/ChangeDormitoryServicePlugIn.java

@@ -8,6 +8,7 @@ import kd.bos.entity.plugin.args.BeginOperationTransactionArgs;
 import kd.bos.entity.plugin.args.EndOperationTransactionArgs;
 import kd.bos.orm.query.QCP;
 import kd.bos.orm.query.QFilter;
+import kd.bos.servicehelper.AttachmentServiceHelper;
 import kd.bos.servicehelper.BusinessDataServiceHelper;
 import kd.bos.servicehelper.operation.SaveServiceHelper;
 import kd.sdk.plugin.Plugin;
@@ -62,7 +63,8 @@ public class ChangeDormitoryServicePlugIn extends AbstractOperationServicePlugIn
 
         //审核
         if ("audit".equals(operationKey)) {
-
+            //收集附件信息
+            HashMap<Long, List<Map<String, Object>>> attachmentsMap = new HashMap<>();
             //收集新建入住人员信息
             ArrayList<DynamicObject> dormitoryPersonListNew = new ArrayList<>();
             //收集修改入住人员信息id - 换宿日期
@@ -89,6 +91,15 @@ public class ChangeDormitoryServicePlugIn extends AbstractOperationServicePlugIn
                 checkPerson.set("uzi9_change_dormitory", dormitory);
                 dormitoryPersonListNew.add(checkPerson);
                 checkMap.put(dormitory.getLong("uzi9_personnel.id"), dormitory.getDate("uzi9_change_date"));
+
+                List<Map<String, Object>> attachments = AttachmentServiceHelper.getAttachments(CHANGE_DORMITORY
+                        , dormitory.getLong("id")
+                        , "uzi9_atta"
+                );
+
+                attachmentsMap.put(dormitory.getLong("id"), attachments);
+                //删除附件
+                AttachmentServiceHelper.remove(CHANGE_DORMITORY, dormitory.getLong("id"));
             }
 
 
@@ -120,7 +131,18 @@ public class ChangeDormitoryServicePlugIn extends AbstractOperationServicePlugIn
             //修改入住人员信息
             SaveServiceHelper.save(checkPersonListUp);
             //新建入住人员信息
-            SaveServiceHelper.save(dormitoryPersonListNew.toArray(new DynamicObject[0]));
+            DynamicObject[] dormitoryPersonSave = (DynamicObject[]) SaveServiceHelper.save(dormitoryPersonListNew.toArray(new DynamicObject[0]));
+
+            //附件复制
+            for (DynamicObject dormitoryPerson : dormitoryPersonSave) {
+                long checkApplyId = dormitoryPerson.getLong("uzi9_change_dormitory.id");
+                List<Map<String, Object>> list = attachmentsMap.get(checkApplyId);
+                AttachmentServiceHelper.upload(CHECK_PERSONNEL,
+                        dormitoryPerson.getLong("id"),
+                        "uzi9_atta",
+                        list);
+            }
+
         }
 
         //撤回

+ 26 - 2
code/opmcepaq/uzi9-uzi9q-opmcepaq-epaq/src/main/java/uzi9/uzi9q/opmcepaq/epaq/plugin/form/xbt/test/personnel/operation/CheckApplyaServicePlugIn.java

@@ -1,5 +1,6 @@
 package uzi9.uzi9q.opmcepaq.epaq.plugin.form.xbt.test.personnel.operation;
 
+import kd.bos.dataentity.OperateOption;
 import kd.bos.dataentity.entity.DynamicObject;
 import kd.bos.entity.ExtendedDataEntity;
 import kd.bos.entity.formula.RowDataModel;
@@ -12,8 +13,10 @@ import kd.bos.entity.plugin.args.EndOperationTransactionArgs;
 import kd.bos.entity.validate.AbstractValidator;
 import kd.bos.orm.query.QCP;
 import kd.bos.orm.query.QFilter;
+import kd.bos.servicehelper.AttachmentServiceHelper;
 import kd.bos.servicehelper.BusinessDataServiceHelper;
 import kd.bos.servicehelper.operation.DeleteServiceHelper;
+import kd.bos.servicehelper.operation.OperationServiceHelper;
 import kd.bos.servicehelper.operation.SaveServiceHelper;
 import kd.sdk.plugin.Plugin;
 
@@ -77,6 +80,8 @@ public class CheckApplyaServicePlugIn extends AbstractOperationServicePlugIn imp
 
         //审核
         if ("audit".equals(operationKey)) {
+            //收集附件信息
+            HashMap<Long, List<Map<String, Object>>> attachmentsMap = new HashMap<>();
             //收集新建入住人员信息
             ArrayList<DynamicObject> checkPersonListNew = new ArrayList<>();
             //收集修改入住人员信息id
@@ -103,6 +108,14 @@ public class CheckApplyaServicePlugIn extends AbstractOperationServicePlugIn imp
                 checkPersonListNew.add(checkPerson);
                 personnelId.add(checkApply.getLong("uzi9_personnel_info.id"));
 
+                List<Map<String, Object>> attachments = AttachmentServiceHelper.getAttachments(CHECK_APPLY
+                        , checkApply.getLong("id")
+                        , "uzi9_atta"
+                );
+
+                attachmentsMap.put(checkApply.getLong("id"), attachments);
+                //删除附件
+                AttachmentServiceHelper.remove(CHECK_APPLY, checkApply.getLong("id"));
             }
 
             QFilter qFilter = new QFilter("uzi9_personnel_info.id", QCP.in, personnelId.toArray())
@@ -117,7 +130,18 @@ public class CheckApplyaServicePlugIn extends AbstractOperationServicePlugIn imp
             //修改入住人员信息
             SaveServiceHelper.save(checkPersonListUp);
             //新建入住人员信息
-            SaveServiceHelper.save(checkPersonListNew.toArray(new DynamicObject[0]));
+            DynamicObject[] checkPersonSave = (DynamicObject[]) SaveServiceHelper.save(checkPersonListNew.toArray(new DynamicObject[0]));
+
+            //附件复制
+            for (DynamicObject checkPerson : checkPersonSave) {
+                long checkApplyId = checkPerson.getLong("uzi9_check_apply.id");
+                List<Map<String, Object>> list = attachmentsMap.get(checkApplyId);
+                AttachmentServiceHelper.upload(CHECK_PERSONNEL,
+                        checkPerson.getLong("id"),
+                        "uzi9_atta",
+                        list);
+            }
+
         }
 
         // 反审核
@@ -157,7 +181,7 @@ public class CheckApplyaServicePlugIn extends AbstractOperationServicePlugIn imp
                 room.set("uzi9_peoples_enter", room.getInt("uzi9_peoples_enter") - roomCount);
                 String judgment = room.getString("uzi9_judgment_full");
 
-                if ("yes".equals(judgment)){
+                if ("yes".equals(judgment)) {
                     room.set("uzi9_judgment_full", "no");
                 }