|
@@ -1,8 +1,11 @@
|
|
|
package nckd.jimin.jyyy.fi.plugin.form;
|
|
|
|
|
|
+import com.kingdee.util.StringUtils;
|
|
|
import kd.bos.bill.BillOperationStatus;
|
|
|
import kd.bos.bill.BillShowParameter;
|
|
|
import kd.bos.bill.OperationStatus;
|
|
|
+import kd.bos.dataentity.entity.DynamicObject;
|
|
|
+import kd.bos.dataentity.entity.DynamicObjectCollection;
|
|
|
import kd.bos.form.ShowType;
|
|
|
import kd.bos.form.control.Control;
|
|
|
import kd.bos.form.control.Image;
|
|
@@ -12,9 +15,12 @@ import kd.bos.logging.Log;
|
|
|
import kd.bos.logging.LogFactory;
|
|
|
import kd.bos.orm.query.QCP;
|
|
|
import kd.bos.orm.query.QFilter;
|
|
|
-import java.util.Arrays;
|
|
|
-import java.util.EventObject;
|
|
|
-import java.util.List;
|
|
|
+import kd.bos.servicehelper.BusinessDataServiceHelper;
|
|
|
+import nckd.jimin.jyyy.fi.common.CommonHelperUtils;
|
|
|
+import org.apache.commons.lang3.ObjectUtils;
|
|
|
+
|
|
|
+import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* 插件说明:表单插件
|
|
@@ -24,19 +30,35 @@ import java.util.List;
|
|
|
*/
|
|
|
public class PayBigCategoryFormPlugin extends AbstractFormPlugin {
|
|
|
private static final Log logger = LogFactory.getLog(PayBigCategoryFormPlugin.class);
|
|
|
- private static final List<String> operatorKeys = Arrays.asList(
|
|
|
- "nckd_imageap5", "nckd_imageap51"
|
|
|
- );
|
|
|
+ private static Map<String, String> mapEntity = null;
|
|
|
+
|
|
|
+ private static Map<String, String> mapFilter = null;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void afterBindData(EventObject e) {
|
|
|
+ super.afterBindData(e);
|
|
|
+
|
|
|
+ getBtnImgValues();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void getBtnImgValues(){
|
|
|
+ mapEntity = CommonHelperUtils.getCommonParams("fi-paycategoryentity");
|
|
|
+ mapFilter = CommonHelperUtils.getCommonParams("fi-paycategoryfilter");
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
- private static final List<String> neetDefaultFilterKeys = Arrays.asList(
|
|
|
- ""
|
|
|
- );
|
|
|
|
|
|
@Override
|
|
|
public void registerListener(EventObject e) {
|
|
|
super.registerListener(e);
|
|
|
|
|
|
- this.addClickListeners(operatorKeys.toArray(new String[]{}));
|
|
|
+ List<String> btnImages = new ArrayList<>();
|
|
|
+
|
|
|
+ mapEntity.forEach((key, value) -> btnImages.add(key));
|
|
|
+
|
|
|
+ this.addClickListeners(btnImages.toArray(new String[]{}));
|
|
|
+// Image image1 = this.getControl("nckd_imageap5");
|
|
|
+// image1.addClickListener(this);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -46,24 +68,27 @@ public class PayBigCategoryFormPlugin extends AbstractFormPlugin {
|
|
|
String imageKey = source.getKey();
|
|
|
|
|
|
//图片按钮
|
|
|
- if(operatorKeys.contains(imageKey)){
|
|
|
- String formId = getFormId(imageKey);
|
|
|
- BillShowParameter parameter = new BillShowParameter();
|
|
|
+ if(mapEntity != null && mapEntity.containsKey(imageKey)){
|
|
|
+ String formId = mapEntity.get(imageKey);
|
|
|
+ if(!StringUtils.isEmpty(formId)){
|
|
|
+ BillShowParameter parameter = new BillShowParameter();
|
|
|
|
|
|
- parameter.setFormId(formId);
|
|
|
- parameter.setBillStatus(BillOperationStatus.ADDNEW);
|
|
|
- parameter.setStatus(OperationStatus.ADDNEW);
|
|
|
+ parameter.setFormId(formId);
|
|
|
+ parameter.setBillStatus(BillOperationStatus.ADDNEW);
|
|
|
+ parameter.setStatus(OperationStatus.ADDNEW);
|
|
|
|
|
|
- if(neetDefaultFilterKeys.contains(imageKey)) {
|
|
|
- QFilter defaultFilter = getDefaultQFilter(imageKey);
|
|
|
- parameter.setCustomParam("defaultFilter", defaultFilter);
|
|
|
- }
|
|
|
+ if(mapFilter != null && mapFilter.containsKey(imageKey)) {
|
|
|
+ QFilter viewTypeQFilter = getViewTypeQFilter(imageKey);
|
|
|
|
|
|
- parameter.getOpenStyle().setShowType(ShowType.MainNewTabPage);
|
|
|
+ //费用大类过滤
|
|
|
+ parameter.setCustomParam("nckd_viewTypeFilter", viewTypeQFilter.toSerializedString());
|
|
|
+ }
|
|
|
|
|
|
- this.getView().showForm(parameter);
|
|
|
- }
|
|
|
+ parameter.getOpenStyle().setShowType(ShowType.MainNewTabPage);
|
|
|
|
|
|
+ this.getView().showForm(parameter);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -74,23 +99,22 @@ public class PayBigCategoryFormPlugin extends AbstractFormPlugin {
|
|
|
public String getFormId(String openType){
|
|
|
String formId = "";
|
|
|
|
|
|
- switch(openType){
|
|
|
- case "nckd_imageap5":
|
|
|
- //出差申请单
|
|
|
- formId = "er_tripreqbill";
|
|
|
- break;
|
|
|
- case "nckd_imageap51":
|
|
|
- //差旅报销单
|
|
|
- formId = "er_tripreimbursebill";
|
|
|
- break;
|
|
|
- }
|
|
|
-
|
|
|
return formId;
|
|
|
}
|
|
|
|
|
|
- public QFilter getDefaultQFilter(String openType){
|
|
|
- QFilter qFilter = new QFilter("enbale", QCP.equals, "1");
|
|
|
+ public QFilter getViewTypeQFilter(String openType){
|
|
|
+ if(mapFilter == null){
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+ String filterValue = mapFilter.get(openType);
|
|
|
+ if(StringUtils.isEmpty(filterValue)) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ String[] typeStrings = filterValue.split(",");
|
|
|
+
|
|
|
+ QFilter filer = new QFilter("nckd_payviewtype.number", QCP.in, typeStrings);
|
|
|
|
|
|
- return qFilter;
|
|
|
+ return filer;
|
|
|
}
|
|
|
}
|