sqw 7 месяцев назад
Родитель
Сommit
cb60cce858

+ 95 - 0
code/opmcepaq/uzi9-uzi9q-opmcepaq-epaq/src/main/java/uzi9/uzi9q/opmcepaq/epaq/plugin/form/zd/ActivitiesIistFormPlugin.java

@@ -0,0 +1,95 @@
+package uzi9.uzi9q.dev.open.zd;
+import kd.bos.dataentity.OperateOption;
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.entity.datamodel.events.PropertyChangedArgs;
+import kd.bos.entity.operate.result.OperationResult;
+import kd.bos.form.plugin.AbstractFormPlugin;
+import kd.bos.orm.query.QFilter;
+import kd.bos.servicehelper.BusinessDataServiceHelper;
+import kd.bos.servicehelper.operation.SaveServiceHelper;
+import kd.sdk.plugin.Plugin;
+import java.util.EventObject;
+
+
+/**
+ * 考核活动列表动态表单插件
+ */
+public class ActivitiesIistFormPlugin extends AbstractFormPlugin implements Plugin {
+    @Override
+    public void afterBindData(EventObject e) {
+        super.afterBindData(e);
+        Object activityId = this.getView().getFormShowParameter().getCustomParam("ActivityId");
+        String string = activityId.toString();
+    }
+
+    @Override
+    public void propertyChanged(PropertyChangedArgs e) {
+        super.propertyChanged(e);
+    }
+
+
+    //添加方法一(无论用什么方法一切的前提是拿到员工工号,无论是一个还是一群)
+    public void userAddOne(DynamicObject useradd) {
+        //获取用户工号
+        Object employeeId = useradd.get("工号标识");
+        //判断条件是否有工号相同的参数
+        QFilter qFilter = new QFilter("uzi9_employeeid", QFilter.equals, employeeId);
+        //对评估对象表进行筛选
+        DynamicObject employeeIdCheck = BusinessDataServiceHelper.loadSingle("uzi9_evaluation_object", "uzi9_employeeid", new QFilter[]{qFilter});
+
+        //获取通过跳转传过来的活动id并查询对应的活动
+        Object activityId = this.getView().getFormShowParameter().getCustomParam("ActivityId");
+        DynamicObject assessment = BusinessDataServiceHelper.loadSingle("uzi9_assessment_activity", "id", new QFilter[]{new QFilter("id", QFilter.equals, activityId)});
+
+        //判断是否为空
+        if (employeeIdCheck != null) {
+            this.getView().showErrorNotification("员工:" + useradd.get("姓名标识") + "已经加入了本考核活动或其他考核活动");
+            return;
+        }
+
+        DynamicObject dynamicObject = BusinessDataServiceHelper.newDynamicObject("uzi9_evaluation_object");
+        //姓名
+        dynamicObject.set("name", useradd.get("姓名标识"));
+        //工号
+        dynamicObject.set("uzi9_employeeid", useradd.get("工号标识"));
+        //组织
+        dynamicObject.set("uzi9_orgfield", useradd.get("组织标识"));
+        //岗位
+        dynamicObject.set("uzi9_position", useradd.get("岗位标识"));
+        //入职日期
+        dynamicObject.set("uzi9_date_joining", useradd.get("入职日期标识"));
+        //考核进度(默认为:未开始 - 1)
+        dynamicObject.set("uzi9_progress", 1);
+        //uzi9_business_activities绩效业务活动,后续hr自行修改添加
+        //uzi9_activity_status绩效业务活动状态,后续hr自行修改添加
+        //考核活动
+        dynamicObject.set("uzi9_assessment_activity", assessment);
+
+        OperationResult result = SaveServiceHelper.saveOperate("uzi9_evaluation_object", new DynamicObject[]{dynamicObject}, OperateOption.create());
+        if (result.isSuccess()) {
+            this.getView().showSuccessNotification("新增数据成功");
+            this.getView().invokeOperation("refresh");
+        } else {
+            this.getView().showErrorNotification("新增数据失败");
+            this.getView().invokeOperation("refresh");
+        }
+    }
+
+    //添加方法二(从评估对象表中修改评估人的考核活动进行添加)
+    public void userAddTwo(DynamicObject[] useradds) {
+        //获取活动id活动活动对象
+        for (DynamicObject useradd : useradds) {
+            Object activityId = this.getView().getFormShowParameter().getCustomParam("ActivityId");
+            DynamicObject assessment = BusinessDataServiceHelper.loadSingle("uzi9_assessment_activity", "id", new QFilter[]{new QFilter("id", QFilter.equals, activityId)});
+            //修改评价对象的考核活动
+            useradd.set("uzi9_assessment_activity", assessment);
+            //更新数据
+            OperationResult result = SaveServiceHelper.saveOperate("uzi9_assessment_activity", new DynamicObject[]{useradd}, OperateOption.create());
+            if (result.isSuccess()) {
+                this.getView().showSuccessNotification(useradd + "转移成功");
+            } else {
+                this.getView().invokeOperation("转移失败");
+            }
+        }
+    }
+}

+ 26 - 0
code/opmcepaq/uzi9-uzi9q-opmcepaq-epaq/src/main/java/uzi9/uzi9q/opmcepaq/epaq/plugin/form/zd/AssessmentActivityBasePlugIn.java

@@ -0,0 +1,26 @@
+package uzi9.uzi9q.dev.open.zd;
+
+import kd.bos.base.AbstractBasePlugIn;
+import kd.bos.form.FormShowParameter;
+import kd.sdk.plugin.Plugin;
+
+import java.util.EventObject;
+
+/**
+ * 考核活动基础资料插件
+ */
+public class AssessmentActivityBasePlugIn extends AbstractBasePlugIn implements Plugin {
+    @Override
+    public void afterBindData(EventObject e) {
+        super.afterBindData(e);
+        FormShowParameter showParameter = this.getView().getFormShowParameter();
+        //进入修改状态,如果不为未开始状态,参数只能修改名称
+        if ("edit".equalsIgnoreCase(showParameter.getStatus().toString())){
+            Object value = this.getModel().getValue("uzi9_activity_status");
+            if (!value.equals("1")){
+                //uzi9_activity_status这是控制状态的标识为方便测试暂时不加
+                this.getView().setEnable(false,"uzi9_orgfield","uzi9_cycle","number","");
+            }
+        }
+    }
+}

+ 71 - 0
code/opmcepaq/uzi9-uzi9q-opmcepaq-epaq/src/main/java/uzi9/uzi9q/opmcepaq/epaq/plugin/form/zd/AssessmentActivityListPlugin.java

@@ -0,0 +1,71 @@
+package uzi9.uzi9q.dev.open.zd;
+
+import kd.bos.bill.BillShowParameter;
+import kd.bos.bill.OperationStatus;
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.entity.datamodel.ListSelectedRow;
+import kd.bos.entity.datamodel.ListSelectedRowCollection;
+import kd.bos.entity.operate.Delete;
+import kd.bos.form.FormShowParameter;
+import kd.bos.form.ShowType;
+import kd.bos.form.control.Control;
+import kd.bos.form.events.BeforeDoOperationEventArgs;
+import kd.bos.form.events.BillListHyperLinkClickEvent;
+import kd.bos.form.events.HyperLinkClickArgs;
+import kd.bos.form.events.HyperLinkClickEvent;
+import kd.bos.list.BillList;
+import kd.bos.list.ListShowParameter;
+import kd.bos.list.plugin.AbstractListPlugin;
+import kd.bos.orm.query.QFilter;
+import kd.bos.servicehelper.BusinessDataServiceHelper;
+import kd.sdk.plugin.Plugin;
+
+/**
+ * 考核活动标准单据列表插件
+ */
+public class AssessmentActivityListPlugin extends AbstractListPlugin implements Plugin {
+    @Override
+    public void beforeDoOperation(BeforeDoOperationEventArgs args) {
+        super.beforeDoOperation(args);
+        if (args.getSource() instanceof Delete){
+            //获取选择uzi9_activity_status考核活动表单主键集合
+            BillList billList = this.getControl(AbstractListPlugin.BILLLISTID);
+            ListSelectedRowCollection selectedRows = billList.getSelectedRows();
+            Object[] primaryKeyValues = selectedRows.getPrimaryKeyValues();
+            //对删除的考核活动表单进行查询,判断其中的活动状态,如果为未开始可以删除,其余的都不能删除
+            for (Object primaryKeyValue : primaryKeyValues) {
+                QFilter qFilter = new QFilter("id",QFilter.equals,primaryKeyValue);
+                DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle("uzi9_assessment_activity", "uzi9_activity_status", new QFilter[]{qFilter});
+                Object status = dynamicObject.get("uzi9_activity_status");
+                if (!status.equals("1")){
+                    this.getView().showErrorNotification("当前删除的活动当中有活动状态不是未开始的");
+                    args.setCancel(true);
+                }
+            }
+        }
+    }
+
+    @Override
+    public void billListHyperLinkClick(HyperLinkClickArgs args) {
+        super.billListHyperLinkClick(args);
+        //获取当前点击超链接的映射字段
+        String fieldName = args.getFieldName();
+        if (fieldName.equals("number")){
+            //去除原来的实现逻辑
+            args.setCancel(true);
+            //获取其点击的原始的事件对象转换成BillListHyperLinkClickEvent类型
+            BillListHyperLinkClickEvent event = (BillListHyperLinkClickEvent) args.getHyperLinkClickEvent();
+            //获取当前点击行
+            ListSelectedRow currentRow = event.getCurrentRow();
+            //获取当前点击行的表单id
+            Object primaryKeyValue = currentRow.getPrimaryKeyValue();
+            //进行跳转准备
+            FormShowParameter ShowParameter = new FormShowParameter();
+            ShowParameter.setFormId("uzi9_activities_list");
+            ShowParameter.setCustomParam("ActivityId", primaryKeyValue);
+            ShowParameter.getOpenStyle().setShowType(ShowType.NewWindow);
+            //开始跳转
+            this.getView().showForm(ShowParameter);
+        }
+    }
+}

+ 74 - 0
code/opmcepaq/uzi9-uzi9q-opmcepaq-epaq/src/main/java/uzi9/uzi9q/opmcepaq/epaq/plugin/form/zd/EvaluationCycleBasePlugIn.java

@@ -0,0 +1,74 @@
+package uzi9.uzi9q.dev.open.zd;
+
+import kd.bos.base.AbstractBasePlugIn;
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.entity.datamodel.ListSelectedRowCollection;
+import kd.bos.entity.datamodel.events.PropertyChangedArgs;
+import kd.bos.form.FormShowParameter;
+import kd.bos.form.control.Control;
+import kd.bos.form.control.Toolbar;
+import kd.bos.form.events.BeforeDoOperationEventArgs;
+import kd.bos.form.operate.Modify;
+import kd.bos.list.BillList;
+import kd.bos.list.plugin.AbstractListPlugin;
+import kd.bos.orm.query.QFilter;
+import kd.bos.service.operation.Delete;
+import kd.bos.servicehelper.BusinessDataServiceHelper;
+import kd.sdk.plugin.Plugin;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.EventObject;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * 考核周期基础资料插件
+ */
+public class EvaluationCycleBasePlugIn extends AbstractBasePlugIn implements Plugin {
+    @Override
+    public void registerListener(EventObject e) {
+        super.registerListener(e);
+        Toolbar tbmain = this.getView().getControl("tbmain");
+        tbmain.addItemClickListener(this);
+    }
+
+    @Override
+    public void propertyChanged(PropertyChangedArgs e) {
+        super.propertyChanged(e);
+        String name = e.getProperty().getName();
+        if ("uzi9_year".equals(name)) {
+            //通过获取uzi9_year年度参数设置number编码
+            Date year = (Date) this.getModel().getValue("uzi9_year");
+            //为空结束
+            if (year == null) {
+                return;
+            }
+            //进行编码的设置
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
+            String number = sdf.format(year) + "Y";
+            this.getModel().setValue("number", number);
+        }
+    }
+
+    @Override
+    public void afterBindData(EventObject e) {
+        super.afterBindData(e);
+        FormShowParameter showParam = this.getView().getFormShowParameter();
+        // 只在编辑模式下处理
+        if ("edit".equalsIgnoreCase(showParam.getStatus().toString())) {
+            Long id = (Long) this.getModel().getValue("id");
+            //获取考核活动
+            DynamicObject[] loads = BusinessDataServiceHelper.load("uzi9_assessment_activity", "uzi9_cycle", new QFilter[]{});
+            //进行判断
+            for (DynamicObject load : loads) {
+                DynamicObject uzi9Cycle = (DynamicObject) load.get("uzi9_cycle");
+                Long cycleId = (Long) uzi9Cycle.get("id");
+                if (cycleId.equals(id)) {
+                    this.getView().setEnable(false, new String[]{"uzi9_cycle_type","uzi9_year","uzi9_description"});
+                }
+            }
+        }
+
+    }
+}

+ 55 - 0
code/opmcepaq/uzi9-uzi9q-opmcepaq-epaq/src/main/java/uzi9/uzi9q/opmcepaq/epaq/plugin/form/zd/IndicatorCategoryListPlugin.java

@@ -0,0 +1,55 @@
+package uzi9.uzi9q.dev.open.zd;
+
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.entity.datamodel.ListSelectedRowCollection;
+import kd.bos.form.control.events.BeforeItemClickEvent;
+import kd.bos.form.events.BeforeDoOperationEventArgs;
+import kd.bos.list.BillList;
+import kd.bos.list.plugin.AbstractListPlugin;
+import kd.bos.orm.query.QFilter;
+import kd.bos.servicehelper.BusinessDataServiceHelper;
+import kd.sdk.plugin.Plugin;
+
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * 指标类别标准单据列表插件
+ */
+public class IndicatorCategoryListPlugin extends AbstractListPlugin implements Plugin {
+    @Override
+    public void beforeItemClick(BeforeItemClickEvent evt) {
+        String itemKey = evt.getItemKey();
+        if (itemKey.equals("tbldel")) {
+            //获取指标分类选择列的所有id
+            BillList billList = this.getControl(AbstractListPlugin.BILLLISTID);
+            ListSelectedRowCollection selectedRows = billList.getSelectedRows();
+            Object[] ids = selectedRows.getPrimaryKeyValues();
+            //查询指标库的所有指标分类id
+            DynamicObject[] load = BusinessDataServiceHelper.load("uzi9_indicator_ibrary", "uzi9_category", new QFilter[]{});
+            //建立一个set集合进行汇总,因为可能多个指标库都引用指标类别,进行去重
+            Set<Long> idSet = new HashSet<>();
+            for (DynamicObject obj : load) {
+                DynamicObject category = (DynamicObject) obj.get("uzi9_category");
+                Object id = category.get("id");
+                idSet.add((Long) id);
+            }
+            for (Object id : ids) {
+                for (Long category : idSet) {
+                    if(id.equals(category)){
+                        this.getView().showErrorNotification("指标库中有对应的关联,禁止删除");
+                        evt.setCancel(true);
+                    }
+                }
+            }
+        }
+        super.beforeItemClick(evt);
+    }
+
+
+    @Override
+    public void beforeDoOperation(BeforeDoOperationEventArgs args) {
+        super.beforeDoOperation(args);
+
+    }
+}

+ 50 - 0
code/opmcepaq/uzi9-uzi9q-opmcepaq-epaq/src/main/java/uzi9/uzi9q/opmcepaq/epaq/plugin/form/zd/IndicatorClassListPlugin.java

@@ -0,0 +1,50 @@
+package uzi9.uzi9q.dev.open.zd;
+
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.entity.datamodel.ListSelectedRowCollection;
+import kd.bos.entity.operate.Delete;
+import kd.bos.form.events.BeforeDoOperationEventArgs;
+import kd.bos.list.BillList;
+import kd.bos.list.plugin.AbstractListPlugin;
+import kd.bos.orm.query.QFilter;
+
+import kd.bos.servicehelper.BusinessDataServiceHelper;
+import kd.sdk.plugin.Plugin;
+
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * 指标分类按钮基础资料插件
+ */
+public class IndicatorClassListPlugin extends AbstractListPlugin implements Plugin {
+
+    @Override
+    public void beforeDoOperation(BeforeDoOperationEventArgs args) {
+        super.beforeDoOperation(args);
+        if (args.getSource() instanceof Delete){
+            //获取所有选择行的id
+            BillList billList = this.getControl(AbstractListPlugin.BILLLISTID);
+            ListSelectedRowCollection selectedRows = billList.getSelectedRows();
+            Object[] ids = selectedRows.getPrimaryKeyValues();
+            //获取所有指标库中标识为uzi9_class指标分类基础资料的id
+            DynamicObject[] loads = BusinessDataServiceHelper.load("uzi9_indicator_ibrary", "uzi9_class", new QFilter[]{});
+            //建立一个set集合进行汇总,因为可能多个指标库都引用指标分类,进行去重
+            Set<Long> classIds = new HashSet<Long>();
+            for (DynamicObject load : loads) {
+                DynamicObject uzi9Class = (DynamicObject) load.get("uzi9_class");
+                Object id = uzi9Class.get("id");
+                classIds.add((Long) id);
+            }
+            //俩者进行对比如果有相同的id证明在有关联,禁止操作继续
+            for (Object id : ids) {
+                for (Long classId : classIds) {
+                    if (classId.equals(id)) {
+                        this.getView().showErrorNotification("指标库中有对应的关联,禁止删除");
+                        args.setCancel(true);
+                    }
+                }
+            }
+        }
+    }
+}

+ 76 - 0
code/opmcepaq/uzi9-uzi9q-opmcepaq-epaq/src/main/java/uzi9/uzi9q/opmcepaq/epaq/plugin/form/zd/PerformanceRratingBasePlugIn.java

@@ -0,0 +1,76 @@
+package uzi9.uzi9q.dev.open.zd;
+
+import com.drew.metadata.Age;
+import kd.bos.base.AbstractBasePlugIn;
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.entity.datamodel.events.PropertyChangedArgs;
+import kd.bos.entity.operate.Save;
+import kd.bos.form.events.BeforeDoOperationEventArgs;
+import kd.bos.orm.query.QFilter;
+import kd.bos.servicehelper.BusinessDataServiceHelper;
+import kd.sdk.plugin.Plugin;
+
+/**
+ * 绩效等级基础资料插件
+ */
+public class PerformanceRratingBasePlugIn extends AbstractBasePlugIn implements Plugin {
+
+    @Override
+    public void propertyChanged(PropertyChangedArgs e) {
+        super.propertyChanged(e);
+        String name = e.getProperty().getName();
+        if (name.equals("uzi9_min") || name.equals("uzi9_max")) {
+            //获取最高分和最低分
+            int axz6_max = (Integer) this.getModel().getValue("uzi9_max");
+            int axz6_min = (Integer) this.getModel().getValue("uzi9_min");
+            //判断俩者是否为空
+            if (axz6_max == 0 || axz6_min == 0) {
+                return;
+            }
+            //进行最大值和最小值比较
+            if (axz6_max < axz6_min) {
+                this.getView().showErrorNotification("最高分不能比最低分小");
+                this.getModel().setValue("uzi9_max", 0);
+            }
+
+        }
+    }
+
+    @Override
+    public void beforeDoOperation(BeforeDoOperationEventArgs args) {
+        super.beforeDoOperation(args);
+        if (args.getSource() instanceof Save){
+            //获取当前的最大值和最小值
+            Object min = this.getModel().getValue("uzi9_min");
+            Object max = this.getModel().getValue("uzi9_max");
+            //编写筛选条件
+            QFilter qFiltermin1 = new QFilter("uzi9_max",QFilter.large_than,min);
+            QFilter qFiltermax1 = new QFilter("uzi9_max",QFilter.less_than,max);
+            QFilter and = qFiltermin1.and(qFiltermax1);
+            QFilter qFiltermin2 = new QFilter("uzi9_min",QFilter.large_than,min);
+            QFilter qFiltermax2 = new QFilter("uzi9_min",QFilter.less_than,max);
+            QFilter and2 = qFiltermin2.and(qFiltermax2);
+            QFilter andAll = and.or(and2);
+            //查询绩效成绩表中符合条件的数据
+            DynamicObject[] load = BusinessDataServiceHelper.load("uzi9_performance_rating", "uzi9_min,uzi9_max", new QFilter[]{andAll});
+            //后续判断
+            if (load.length > 0) {
+                if (load.length == 2){
+                    DynamicObject one = load[0];
+                    DynamicObject two = load[1];
+                    Object oneMin = one.get("uzi9_min");
+                    Object oneMax = one.get("uzi9_max");
+                    Object twoMin = two.get("uzi9_min");
+                    Object twoMax = two.get("uzi9_max");
+                    this.getView().showErrorNotification("目前填写的最高分和最低分,在已有数据:[" + oneMin  + "," + oneMax + "] 和 [" + twoMin + "," + twoMax + "] 俩个区间当中,数据禁止重叠,交叉");
+                    args.setCancel(true);
+                }
+                DynamicObject dynamicObject = load[0];
+                Object uzi9Min = dynamicObject.get("uzi9_min");
+                Object uzi9Max = dynamicObject.get("uzi9_max");
+                this.getView().showErrorNotification("目前填写的最高分和最低分,在已有数据:[" + uzi9Min + "," + uzi9Max + "]区间中,数据禁止重叠,交叉");
+                args.setCancel(true);
+            }
+        }
+    }
+}

+ 48 - 0
code/opmcepaq/uzi9-uzi9q-opmcepaq-epaq/src/main/java/uzi9/uzi9q/opmcepaq/epaq/plugin/form/zd/TargetDataTwoBasePlugIn.java

@@ -0,0 +1,48 @@
+package uzi9.uzi9q.dev.open.zd;
+
+import kd.bos.base.AbstractBasePlugIn;
+import kd.bos.dataentity.entity.DynamicObject;
+import kd.bos.entity.datamodel.ListSelectedRowCollection;
+import kd.bos.entity.datamodel.events.PropertyChangedArgs;
+import kd.bos.form.IFormView;
+import kd.bos.form.control.Control;
+import kd.bos.form.control.EntryGrid;
+import kd.bos.list.BillList;
+import kd.bos.metadata.entity.EntryEntity;
+import kd.sdk.plugin.Plugin;
+
+import javax.swing.*;
+
+/**
+ * 目标明细资料(2)B1B2基础资料插件
+ */
+public class TargetDataTwoBasePlugIn extends AbstractBasePlugIn implements Plugin {
+
+    @Override
+    public void propertyChanged(PropertyChangedArgs e) {
+        super.propertyChanged(e);
+        String name = e.getProperty().getName();
+        //对指标配置单据体进行,属性设置
+        if (name.equals("uzi9_cgrouping")) {
+            EntryGrid entryGrid = this.getView().getControl("uzi9_entryentity");
+            IFormView view = entryGrid.getView();
+            //获取当前指标配置单据体一共多少行
+            int rowCount = this.getModel().getEntryRowCount("uzi9_entryentity");
+            //对每一行中分组B1 B2 进行判断
+            for (int i = 0; i < rowCount; i++) {
+                DynamicObject uzi9Entryentity = this.getModel().getEntryRowEntity("uzi9_entryentity", i);
+                Object uzi9Cgrouping = uzi9Entryentity.get("uzi9_cgrouping");
+                if (uzi9Cgrouping.toString().equals("1")) {
+                    view.setEnable(false, i, "uzi9_indicator_category", "uzi9_b2_indicator_name");
+                    view.setEnable(true, i, "uzi9_b1_indicator_name");
+                } else if (uzi9Cgrouping.toString().equals("2")) {
+                    view.setEnable(false, i, "uzi9_b1_indicator_name");
+                    view.setEnable(true, i, "uzi9_indicator_category", "uzi9_b2_indicator_name");
+                } else {
+                    // 默认:全部启用
+                    view.setEnable(true, i, "uzi9_indicator_category", "uzi9_b1_indicator_name", "uzi9_b2_indicator_name");
+                }
+            }
+        }
+    }
+}