Bläddra i källkod

资产调出,变更,业务处理单审核事件

wanwei 8 månader sedan
förälder
incheckning
8a763fa814

+ 60 - 0
src/main/java/fi/fa/opplugin/BusProcessBillOpPlugin.java

@@ -0,0 +1,60 @@
+package fi.fa.opplugin;
+
+import com.alibaba.druid.util.StringUtils;
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
+import kd.bos.entity.plugin.args.BeginOperationTransactionArgs;
+import kd.bos.orm.query.QCP;
+import kd.bos.orm.query.QFilter;
+import kd.bos.servicehelper.BusinessDataServiceHelper;
+import kd.bos.servicehelper.operation.SaveServiceHelper;
+
+//业务处理单
+public class BusProcessBillOpPlugin extends AbstractOperationServicePlugIn {
+    @Override
+    public void beginOperationTransaction(BeginOperationTransactionArgs e) {
+        DynamicObject[] dynamicObjects = e.getDataEntities();
+        for (int i = 0; i < dynamicObjects.length; i++) {
+            if (StringUtils.equals(e.getOperationKey(),"audit")) {
+                DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName());
+                if ("D".equals(info.getString("nckd_detailtype"))) {
+                    for (DynamicObject nckd_entryentity6 : info.getDynamicObjectCollection("nckd_entryentity6")) {
+                        String  number = nckd_entryentity6.getDynamicObject("nckd_basedatafield").getString("number");
+                        if (!StringUtils.isEmpty(number)) {
+                            //查询e管家实物卡片清单
+                            QFilter filter = new QFilter("nckd_card_real_code", QCP.equals,number);
+                            DynamicObject[] cardObjects = BusinessDataServiceHelper.load("nckd_fa_card_real_list","id",new QFilter[] {filter});
+                            for (int j = 0; j < cardObjects.length; j++) {
+                                DynamicObject cardInfo = BusinessDataServiceHelper.loadSingle(cardObjects[j].getPkValue(), cardObjects[j].getDynamicObjectType().getName());
+                                //回写e管家实物清单字段
+                                cardInfo.set("nckd_discard", "1");//是否报废
+                                SaveServiceHelper.save(new DynamicObject[]{cardInfo});
+                            }
+                        }
+
+                    }
+                }
+            }
+            else if (StringUtils.equals(e.getOperationKey(),"unaudit")) {
+                DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName());
+                if ("D".equals(info.getString("nckd_detailtype"))) {
+                    for (DynamicObject nckd_entryentity6 : info.getDynamicObjectCollection("nckd_entryentity6")) {
+                        String  number = nckd_entryentity6.getDynamicObject("nckd_basedatafield").getString("number");
+                        if (!StringUtils.isEmpty(number)) {
+                            //查询e管家实物卡片清单
+                            QFilter filter = new QFilter("nckd_card_real_code", QCP.equals,number);
+                            DynamicObject[] cardObjects = BusinessDataServiceHelper.load("nckd_fa_card_real_list","id",new QFilter[] {filter});
+                            for (int j = 0; j < cardObjects.length; j++) {
+                                DynamicObject cardInfo = BusinessDataServiceHelper.loadSingle(cardObjects[j].getPkValue(), cardObjects[j].getDynamicObjectType().getName());
+                                //回写e管家实物清单字段
+                                cardInfo.set("nckd_discard", "0");//是否报废
+                                SaveServiceHelper.save(new DynamicObject[]{cardInfo});
+                            }
+                        }
+
+                    }
+                }
+            }
+        }
+    }
+}

+ 103 - 0
src/main/java/fi/fa/opplugin/FaChangeDeptBillOpPlugin.java

@@ -0,0 +1,103 @@
+package fi.fa.opplugin;
+
+import com.alibaba.druid.util.StringUtils;
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
+import kd.bos.entity.plugin.args.BeginOperationTransactionArgs;
+import kd.bos.orm.query.QCP;
+import kd.bos.orm.query.QFilter;
+import kd.bos.servicehelper.BusinessDataServiceHelper;
+//资产变更单
+public class FaChangeDeptBillOpPlugin extends AbstractOperationServicePlugIn {
+    @Override
+    public void beginOperationTransaction(BeginOperationTransactionArgs e) {
+        DynamicObject[] dynamicObjects = e.getDataEntities();
+        for (int i = 0; i < dynamicObjects.length; i++) {
+            if (StringUtils.equals(e.getOperationKey(),"audit")) {
+                DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName());
+                Long queryChangeType = Long.parseLong("733953285719123968");
+                Long changetype = info.getDynamicObject("changetype").getLong("id");
+                if (queryChangeType.equals(changetype)) {
+                    Long deptId = null;
+                    Long user = null;
+                    String number = null;
+                    DynamicObject userInfo = null;
+                    for (DynamicObject fieldentry : info.getDynamicObjectCollection("fieldentry")) {
+                        if ("fa_card_real.headusedept".equals(fieldentry.getString("field")) && !StringUtils.isEmpty(fieldentry.getString("aftervalue"))) {
+                            deptId = Long.parseLong(fieldentry.getString("aftervalue"));
+                        }
+                        if ("fa_card_real.headuseperson".equals(fieldentry.getString("field")) && !StringUtils.isEmpty(fieldentry.getString("aftervalue"))) {
+                            user = Long.parseLong(fieldentry.getString("aftervalue"));
+                            userInfo = getUser(user);
+                        }
+                        number = fieldentry.getString("assetnumber");
+                    }
+                    if (!StringUtils.isEmpty(number)) {
+                        //查询e管家实物卡片清单
+                        QFilter filter = new QFilter("nckd_card_real_code", QCP.equals,number);
+                        DynamicObject[] cardObjects = BusinessDataServiceHelper.load("nckd_fa_card_real_list","id",new QFilter[] {filter});
+                        for (int j = 0; j < cardObjects.length; j++) {
+                            DynamicObject cardInfo = BusinessDataServiceHelper.loadSingle(cardObjects[j].getPkValue(), cardObjects[j].getDynamicObjectType().getName());
+                            //回写e管家实物清单字段
+                            cardInfo.set("nckd_dept", deptId);//归属部门
+                            if (userInfo != null) {
+                                cardInfo.set("nckd_use_name", userInfo.getString("number"));//使用人
+                            }
+//                        SaveServiceHelper.save(new DynamicObject[]{cardInfo});
+                        }
+                    }
+                }
+            }
+            else if (StringUtils.equals(e.getOperationKey(),"unaudit")) {
+                DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName());
+                Long queryChangeType = Long.parseLong("733953285719123968");
+                Long changetype = info.getDynamicObject("changetype").getLong("id");
+                if (queryChangeType.equals(changetype)) {
+                    Long deptId = null;
+                    Long user = null;
+                    String number = null;
+                    DynamicObject userInfo = null;
+                    for (DynamicObject fieldentry : info.getDynamicObjectCollection("fieldentry")) {
+                        if ("fa_card_real.headusedept".equals(fieldentry.getString("field")) && !StringUtils.isEmpty(fieldentry.getString("aftervalue"))) {
+                            deptId = Long.parseLong(fieldentry.getString("beforevalue"));
+                        }
+                        if ("fa_card_real.headuseperson".equals(fieldentry.getString("field")) && !StringUtils.isEmpty(fieldentry.getString("aftervalue"))) {
+                            user = Long.parseLong(fieldentry.getString("beforevalue"));
+                            userInfo = getUser(user);
+                        }
+                        number = fieldentry.getString("assetnumber");
+                    }
+                    if (!StringUtils.isEmpty(number)) {
+                        //查询e管家实物卡片清单
+                        QFilter filter = new QFilter("nckd_card_real_code", QCP.equals,number);
+                        DynamicObject[] cardObjects = BusinessDataServiceHelper.load("nckd_fa_card_real_list","id",new QFilter[] {filter});
+                        for (int j = 0; j < cardObjects.length; j++) {
+                            DynamicObject cardInfo = BusinessDataServiceHelper.loadSingle(cardObjects[j].getPkValue(), cardObjects[j].getDynamicObjectType().getName());
+                            //回写e管家实物清单字段
+                            cardInfo.set("nckd_dept", deptId);//归属部门
+                            if (userInfo != null) {
+                                cardInfo.set("nckd_use_name", userInfo.getString("number"));//使用人
+                            }
+//                        SaveServiceHelper.save(new DynamicObject[]{cardInfo});
+                        }
+                    }
+                }
+            }
+        }
+    }
+
+    /**
+     * @description 查询用户表获取用户
+     * @param id
+     * @return Long
+     */
+    private DynamicObject getUser(Long id) {
+        QFilter filter = new QFilter("id", QCP.in, id);
+        DynamicObject[] user = BusinessDataServiceHelper.load("bos_user","id",new QFilter[] {filter});
+        if (user.length > 0) {
+            DynamicObject userInfo = BusinessDataServiceHelper.loadSingle(user[0].getPkValue(), user[0].getDynamicObjectType().getName());
+            return userInfo;
+        }
+        return null;
+    }
+}

+ 57 - 0
src/main/java/fi/fa/opplugin/FaDispatchBillOpPlugin.java

@@ -0,0 +1,57 @@
+package fi.fa.opplugin;
+
+import com.alibaba.druid.util.StringUtils;
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.dataentity.entity.DynamicObjectCollection;
+import kd.bos.entity.plugin.AbstractOperationServicePlugIn;
+import kd.bos.entity.plugin.args.BeginOperationTransactionArgs;
+import kd.bos.orm.query.QCP;
+import kd.bos.orm.query.QFilter;
+import kd.bos.servicehelper.BusinessDataServiceHelper;
+import kd.bos.servicehelper.operation.SaveServiceHelper;
+
+//资产调出单
+public class FaDispatchBillOpPlugin extends AbstractOperationServicePlugIn {
+    @Override
+    public void beginOperationTransaction(BeginOperationTransactionArgs e) {
+        DynamicObject[] dynamicObjects = e.getDataEntities();
+        for (int i = 0; i < dynamicObjects.length; i++) {
+            if (StringUtils.equals(e.getOperationKey(),"audit")) {
+                DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName());
+                //审批通过,若关联e管家实物卡片清单,更新调入组织,调入部门,使用人
+                for (DynamicObject dispatchentry : info.getDynamicObjectCollection("dispatchentry")) {
+                    DynamicObject realcard = dispatchentry.getDynamicObject("realcard");
+                    String number = realcard.getString("number");
+                    //查询实物卡片清单
+                    QFilter filter = new QFilter("nckd_card_real_code", QCP.equals,number);
+                    DynamicObject[] cardObjects = BusinessDataServiceHelper.load("nckd_fa_card_real_list","id",new QFilter[] {filter});
+                    for (int j = 0; j < cardObjects.length; j++) {
+                        DynamicObject cardInfo = BusinessDataServiceHelper.loadSingle(cardObjects[j].getPkValue(), cardObjects[j].getDynamicObjectType().getName());
+                        //回写e管家实物清单字段
+                        cardInfo.set("nckd_orgfield", info.getDynamicObject("inassetunit").getLong("id"));//归属组织
+                        cardInfo.set("nckd_dept", dispatchentry.getDynamicObject("inusedept").getLong("id"));//归属部门
+//                        SaveServiceHelper.save(new DynamicObject[]{cardInfo});
+                    }
+                }
+            }
+            if (StringUtils.equals(e.getOperationKey(),"unaudit")) {
+                DynamicObject info = BusinessDataServiceHelper.loadSingle(dynamicObjects[i].getPkValue(), dynamicObjects[i].getDynamicObjectType().getName());
+                //审批通过,若关联e管家实物卡片清单,更新调入组织,调入部门,使用人
+                for (DynamicObject dispatchentry : info.getDynamicObjectCollection("dispatchentry")) {
+                    DynamicObject realcard = dispatchentry.getDynamicObject("realcard");
+                    String number = realcard.getString("number");
+                    //查询实物卡片清单
+                    QFilter filter = new QFilter("nckd_card_real_code", QCP.equals,number);
+                    DynamicObject[] cardObjects = BusinessDataServiceHelper.load("nckd_fa_card_real_list","id",new QFilter[] {filter});
+                    for (int j = 0; j < cardObjects.length; j++) {
+                        DynamicObject cardInfo = BusinessDataServiceHelper.loadSingle(cardObjects[j].getPkValue(), cardObjects[j].getDynamicObjectType().getName());
+                        //还原e卡片实物清单字段
+                        cardInfo.set("nckd_orgfield", info.getDynamicObject("assetunit").getLong("id"));//归属组织
+                        cardInfo.set("nckd_dept", dispatchentry.getDynamicObject("realcard").getDynamicObject("headusedept").getLong("id"));//归属部门
+//                        SaveServiceHelper.save(new DynamicObject[]{cardInfo});
+                    }
+                }
+            }
+        }
+    }
+}