diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/ApplicationfundsPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/ApplicationfundsPlugin.java index 0d91020..0175270 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/ApplicationfundsPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/ApplicationfundsPlugin.java @@ -12,6 +12,9 @@ import java.util.EventObject; import java.util.List; import java.util.Map; +/** + * 用款申请单插件 + */ public class ApplicationfundsPlugin extends AbstractBillPlugIn implements AttachmentOperaClickListener { @Override diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/TaskApproveFormCkPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/TaskApproveFormCkPlugin.java index 4c01644..58d48cd 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/TaskApproveFormCkPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/TaskApproveFormCkPlugin.java @@ -8,20 +8,37 @@ import kd.bos.form.control.Control; import kd.bos.form.control.events.BeforeClickEvent; import kd.bos.form.control.events.BeforeItemClickEvent; import kd.bos.form.plugin.AbstractFormPlugin; +import kd.bos.logging.Log; +import kd.bos.logging.LogFactory; import kd.bos.orm.query.QCP; import kd.bos.orm.query.QFilter; import kd.bos.servicehelper.BusinessDataServiceHelper; import kd.ssc.task.formplugin.util.VoucherUtil; import java.util.EventObject; +import java.util.HashSet; import java.util.Map; import java.util.Set; + /** * 我的共享,任务审批时增加付款完成校验 */ public class TaskApproveFormCkPlugin extends AbstractFormPlugin { + private static final Log log = LogFactory.getLog(TaskApproveFormCkPlugin.class); + private static Set billTypes = new HashSet(); + static { + billTypes.add("er_repaymentbill"); + + billTypes.add("er_dailyreimbursebill"); + billTypes.add("er_publicreimbursebill"); + billTypes.add("er_tripreimbursebill"); + billTypes.add("er_dailyloanbill"); + billTypes.add("er_prepaybill"); + billTypes.add("er_applypaybill"); + billTypes.add("cas_paybill"); + } // public void registerListener(EventObject evt) { this.addClickListeners(new String[]{"submit", "submitandnext"}); @@ -48,41 +65,49 @@ public class TaskApproveFormCkPlugin extends AbstractFormPlugin { String billid = ""; String billNo = null; if (customParams != null) { + log.info("TaskApproveFormCkPlugin:"+customParams.toString()); + log.info("TaskApproveFormCkPlugin:billtypeid "+customParams.get("billtypeid")); + log.info("TaskApproveFormCkPlugin:tasktypeid "+customParams.get("tasktypeid")); + log.info("TaskApproveFormCkPlugin:sscid "+customParams.get("sscid")); + log.info("TaskApproveFormCkPlugin:billnumber "+customParams.get("billnumber")); + log.info("TaskApproveFormCkPlugin:billid "+customParams.get("billid")); billtypeid = (Long)customParams.get("billtypeid");//单据类型id tasktypeid = (Long)customParams.get("tasktypeid");//任务类型id - sscid = (Long)customParams.get("sscid");//任务类型id + sscid = Long.valueOf((String)customParams.get("sscid"));//任务类型id billnumber = (String)customParams.get("billnumber");//单据编码(单据标识 entityName) billid = (String)customParams.get("billid");//业务单据id billNo = VoucherUtil.getTaskBillNo(billid);//业务单据编号 - IDataModel model = this.getModel(); - String operation = (String)model.getValue("operationgroupfield"); - if ("1".equals(operation)) { //如果审批操作是通过 - QFilter tasktypeFilter = new QFilter("orgfield.id", QCP.equals,sscid); - tasktypeFilter.and(new QFilter("tasklevel", QCP.equals,"2"));//任务类型为:结算时 - DynamicObject[] tasktypeArray = BusinessDataServiceHelper.load("task_tasktype", "id", new QFilter[]{tasktypeFilter}); - if(tasktypeArray != null && tasktypeArray.length > 0){ - DynamicObject tasktype = tasktypeArray[0]; - if(tasktypeid.getLong("id") == tasktype.getLong("id")) { - if(StringUtils.isNotBlank(billNo) && StringUtils.isNotBlank(billid) && StringUtils.isNotBlank(billnumber) ) { - QFilter accountTableFilter = new QFilter("id", QCP.equals,Long.valueOf(billid)); - DynamicObject sourceBillObject = BusinessDataServiceHelper.loadSingle(billnumber, new QFilter[]{accountTableFilter}); - String billstatus = sourceBillObject.getString("billstatus"); - if(!"G".equals(billstatus)) { - if("er_repaymentbill".equals(billnumber)) { - this.getView().showErrorNotification(String.format("审批结算任务:当前单据的收款未完成,请完成收款后提交。")); - evt.setCancel(true); - }else if( - "er_dailyreimbursebill".equals(billnumber) || //费用报销单 - "er_publicreimbursebill".equals(billnumber) || //对公报销的呢 - "er_tripreimbursebill".equals(billnumber) || //差旅报销单 - "er_dailyloanbill".equals(billnumber) || //借款单 - "er_prepaybill".equals(billnumber) || //预付单 - "er_applypaybill".equals(billnumber) || //付款申请单 - "cas_paybill".equals(billnumber) //付款处理单 - ){ - this.getView().showErrorNotification(String.format("审批结算任务:当前单据的付款未完成,请完成付款后提交。")); - evt.setCancel(true); + if(billTypes.contains(billnumber)){ + IDataModel model = this.getModel(); + String operation = (String)model.getValue("operationgroupfield"); + if ("1".equals(operation)) { //如果审批操作是通过 + QFilter tasktypeFilter = new QFilter("orgfield.id", QCP.equals,sscid); + tasktypeFilter.and(new QFilter("tasklevel", QCP.equals,"2"));//任务类型为:结算时 + DynamicObject[] tasktypeArray = BusinessDataServiceHelper.load("task_tasktype", "id", new QFilter[]{tasktypeFilter}); + if(tasktypeArray != null && tasktypeArray.length > 0){ + DynamicObject tasktype = tasktypeArray[0]; + if(tasktypeid == tasktype.getLong("id")) { + if(StringUtils.isNotBlank(billNo) && StringUtils.isNotBlank(billid) && StringUtils.isNotBlank(billnumber) ) { + QFilter accountTableFilter = new QFilter("id", QCP.equals,Long.valueOf(billid)); + DynamicObject sourceBillObject = BusinessDataServiceHelper.loadSingle(billnumber, new QFilter[]{accountTableFilter}); + String billstatus = sourceBillObject.getString("billstatus"); + if(!"G".equals(billstatus)) { + if("er_repaymentbill".equals(billnumber)) { + this.getView().showErrorNotification(String.format("审批结算任务:当前单据的收款未完成,请完成收款后提交。")); + evt.setCancel(true); + }else if( + "er_dailyreimbursebill".equals(billnumber) || //费用报销单 + "er_publicreimbursebill".equals(billnumber) || //对公报销的呢 + "er_tripreimbursebill".equals(billnumber) || //差旅报销单 + "er_dailyloanbill".equals(billnumber) || //借款单 + "er_prepaybill".equals(billnumber) || //预付单 + "er_applypaybill".equals(billnumber) || //付款申请单 + "cas_paybill".equals(billnumber) //付款处理单 + ){ + this.getView().showErrorNotification(String.format("审批结算任务:当前单据的付款未完成,请完成付款后提交。")); + evt.setCancel(true); + } } } } @@ -91,11 +116,6 @@ public class TaskApproveFormCkPlugin extends AbstractFormPlugin { } } - //System.out.println(billtypeid); - //System.out.println(tasktypeid); - //System.out.println(billnumber); - //System.out.println(billid); - //System.out.println(billNo); } } diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/TriprMulseatgradeCkPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/TriprMulseatgradeCkPlugin.java new file mode 100644 index 0000000..af8a44a --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/TriprMulseatgradeCkPlugin.java @@ -0,0 +1,73 @@ +package zcgj.zcdev.zcdev.fs.plugin.form; + +import com.alibaba.druid.util.StringUtils; +import kd.bos.bill.AbstractBillPlugIn; +import kd.bos.bill.BillShowParameter; +import kd.bos.bill.OperationStatus; +import kd.bos.context.RequestContext; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.entity.datamodel.events.ChangeData; +import kd.bos.entity.datamodel.events.PropertyChangedArgs; +import kd.bos.form.control.Button; +import kd.bos.form.control.Control; +import kd.bos.form.control.events.ItemClickEvent; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.sdk.plugin.Plugin; +import zcgj.zcdev.zcdev.fs.utils.OrgCheckUtils; + +import java.text.SimpleDateFormat; +import java.time.DayOfWeek; +import java.time.LocalDate; +import java.time.ZoneId; +import java.util.Date; +import java.util.EventObject; +import java.util.HashSet; +import java.util.Set; + +/** + * 差旅报销单-兖州公司座位等级发生改变事件校验插件 + */ +public class TriprMulseatgradeCkPlugin extends AbstractBillPlugIn implements Plugin { + + + + @Override + public void propertyChanged(PropertyChangedArgs e) { + //当前切换选择的组织 + Object company = this.getModel().getValue("costcompany");//核算组织(费用承担公司) + Long currentOrgId = RequestContext.get().getOrgId(); + if(company!=null){ + String yzCompanyNumber ="10006475"; //兖州中材建设有限公司 + DynamicObject companyObj = (DynamicObject)company; + Long companyId = companyObj.getLong("id"); + if(OrgCheckUtils.isKS(companyId)){ + String name = e.getProperty().getName(); + + if(name.equals("mulseatgrade")){//座位等级 + boolean childrenOrg = OrgCheckUtils.isChildrenOrg(yzCompanyNumber, companyId); + if(childrenOrg){ + this.getView().showErrorNotification("当前组织不允许改变座位等级。"); + } + }else if(name.equals("comment")){//座位等级 + boolean childrenOrg = OrgCheckUtils.isChildrenOrg(yzCompanyNumber, companyId); + // if(childrenOrg){ + this.getView().showErrorNotification("当前组织不允许改变座位等级。"); + ChangeData[] changeSet = e.getChangeSet(); + String oldValue = (String) changeSet[0].getOldValue(); + int rowIndex = changeSet[0].getRowIndex(); + + // DynamicObject data = this.getModel().getDataEntity(true); + // DynamicObjectCollection entry = data.getDynamicObjectCollection("tripentry"); + // DynamicObject row = entry.get(rowIndex);//entry + // this.getModel().setValue("comment", oldValue); + + } + + } + } + super.propertyChanged(e); + + } + +} diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/InContractFinaceConfirmeListPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/InContractFinaceConfirmeListPlugin.java index 71c62cb..bb64d89 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/InContractFinaceConfirmeListPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/InContractFinaceConfirmeListPlugin.java @@ -9,6 +9,7 @@ import kd.bos.form.ShowType; import kd.bos.form.control.events.ItemClickEvent; import kd.bos.form.events.FilterContainerInitArgs; import kd.bos.form.events.HyperLinkClickArgs; +import kd.bos.form.events.SetFilterEvent; import kd.bos.form.field.events.BeforeFilterF7SelectEvent; import kd.bos.list.BillList; import kd.bos.list.plugin.AbstractListPlugin; @@ -22,6 +23,7 @@ import kd.bos.servicehelper.permission.PermissionServiceHelper; import kd.bos.servicehelper.user.UserServiceHelper; import kd.sdk.plugin.Plugin; +import java.util.ArrayList; import java.util.List; /** @@ -95,6 +97,27 @@ public class InContractFinaceConfirmeListPlugin extends AbstractListPlugin imple } } + @Override + public void setFilter(SetFilterEvent e) { + super.setFilter(e); + List qFilters = e.getQFilters(); + for (QFilter qFilter : qFilters) { + if("zcgj_org.id".equals(qFilter.getProperty())){ + String cp = qFilter.getCP(); + Object value = qFilter.getValue(); + StringBuilder sb = new StringBuilder(); + if("=".equals(cp) && value instanceof Long){ //vale值类型为Long + sb.append(value); + }else if("IN".equals(cp) && value instanceof ArrayList){ //value值类型为ArrayList + for (Object o : (ArrayList) value) { + sb.append(o).append(","); + } + } + this.getPageCache().put("current_zcgj_orgid_in", sb.substring(0, sb.length()-1)); + } + } + } + @Override public void itemClick(ItemClickEvent evt) { super.itemClick(evt); diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/InContractFinaceConfirmePlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/InContractFinaceConfirmePlugin.java index 02540e9..1a05ed8 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/InContractFinaceConfirmePlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/InContractFinaceConfirmePlugin.java @@ -9,10 +9,15 @@ import kd.bos.dataentity.utils.StringUtils; import kd.bos.entity.datamodel.events.ChangeData; import kd.bos.entity.datamodel.events.PropertyChangedArgs; import kd.bos.form.FormShowParameter; +import kd.bos.form.IPageCache; import kd.bos.form.ShowType; import kd.bos.form.control.EntryGrid; import kd.bos.form.events.HyperLinkClickEvent; import kd.bos.form.events.HyperLinkClickListener; +import kd.bos.form.field.RefBillEdit; +import kd.bos.form.field.events.BeforeF7SelectEvent; +import kd.bos.form.field.events.BeforeF7SelectListener; +import kd.bos.list.ListShowParameter; import kd.bos.orm.query.QCP; import kd.bos.orm.query.QFilter; import kd.bos.servicehelper.BusinessDataServiceHelper; @@ -21,12 +26,14 @@ import kd.sdk.plugin.Plugin; import java.math.BigDecimal; import java.math.RoundingMode; +import java.util.ArrayList; import java.util.EventObject; +import java.util.List; /** * 收入合同确认单插件 */ -public class InContractFinaceConfirmePlugin extends AbstractBillPlugIn implements Plugin, HyperLinkClickListener { +public class InContractFinaceConfirmePlugin extends AbstractBillPlugIn implements Plugin, HyperLinkClickListener, BeforeF7SelectListener { @Override @@ -84,6 +91,7 @@ public class InContractFinaceConfirmePlugin extends AbstractBillPlugIn implement item.set("zcgj_remark",dynamicObject.getString("remark")); } this.getView().updateView("zcgj_itementry"); + } public void propertyChanged(PropertyChangedArgs e) { @@ -133,6 +141,11 @@ public class InContractFinaceConfirmePlugin extends AbstractBillPlugIn implement super.registerListener(e); EntryGrid control = this.getControl("zcgj_entryentity"); control.addHyperClickListener(this); + + RefBillEdit outContractSett = this.getControl("zcgj_ec_in_contract_sett"); //支出合同结算单 + if(outContractSett != null) { + outContractSett.addBeforeF7SelectListener(this); + } } @Override @@ -158,4 +171,22 @@ public class InContractFinaceConfirmePlugin extends AbstractBillPlugIn implement } } + + @Override + public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) { + String name = beforeF7SelectEvent.getProperty().getName(); + if(name.equals("zcgj_ec_in_contract_sett")){ + IPageCache iPageCache = this.getView().getParentView().getService(IPageCache.class); + String listOrgId = iPageCache.get("current_zcgj_orgid_in"); + List ids = new ArrayList<>(); + if(StringUtils.isNotBlank(listOrgId)){ + for (String s : listOrgId.split(",")) { + ids.add(Long.parseLong(s)); + } + } + ListShowParameter showParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter(); + QFilter qFilter = new QFilter("org", QCP.in, ids); + showParameter.getListFilterParameter().getQFilters().add(qFilter); + } + } } diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/OutContractFinaceConfirmeListPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/OutContractFinaceConfirmeListPlugin.java index 1cfaf83..928bac5 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/OutContractFinaceConfirmeListPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/OutContractFinaceConfirmeListPlugin.java @@ -105,6 +105,27 @@ public class OutContractFinaceConfirmeListPlugin extends AbstractListPlugin impl } } + @Override + public void setFilter(SetFilterEvent e) { + super.setFilter(e); + List qFilters = e.getQFilters(); + for (QFilter qFilter : qFilters) { + if("zcgj_org.id".equals(qFilter.getProperty())){ + String cp = qFilter.getCP(); + Object value = qFilter.getValue(); + StringBuilder sb = new StringBuilder(); + if("=".equals(cp) && value instanceof Long){ //vale值类型为Long + sb.append(value); + }else if("IN".equals(cp) && value instanceof ArrayList){ //value值类型为ArrayList + for (Object o : (ArrayList) value) { + sb.append(o).append(","); + } + } + this.getPageCache().put("current_zcgj_orgid_out", sb.substring(0, sb.length()-1)); + } + } + } + @Override public void itemClick(ItemClickEvent evt) { super.itemClick(evt); diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/OutContractFinaceConfirmePlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/OutContractFinaceConfirmePlugin.java index 52bff3d..30671c4 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/OutContractFinaceConfirmePlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/OutContractFinaceConfirmePlugin.java @@ -11,11 +11,13 @@ import kd.bos.dataentity.utils.StringUtils; import kd.bos.entity.datamodel.events.ChangeData; import kd.bos.entity.datamodel.events.PropertyChangedArgs; import kd.bos.form.FormShowParameter; +import kd.bos.form.IPageCache; import kd.bos.form.ShowType; import kd.bos.form.control.EntryGrid; import kd.bos.form.events.HyperLinkClickEvent; import kd.bos.form.events.HyperLinkClickListener; import kd.bos.form.field.BasedataEdit; +import kd.bos.form.field.RefBillEdit; import kd.bos.form.field.events.BeforeF7SelectEvent; import kd.bos.form.field.events.BeforeF7SelectListener; import kd.bos.list.ListShowParameter; @@ -25,6 +27,7 @@ import kd.bos.servicehelper.BusinessDataServiceHelper; import kd.bos.servicehelper.QueryServiceHelper; import kd.ec.contract.common.enums.DirectionEnum; import kd.sdk.plugin.Plugin; +import zcgj.zcdev.zcdev.pr.utils.OrgCheckUtils; import java.math.BigDecimal; import java.math.RoundingMode; @@ -56,8 +59,8 @@ public class OutContractFinaceConfirmePlugin extends AbstractBillPlugIn impleme } //calBcCxAmt(); } - } + } public void initData(Object contractSettleIdObj){ @@ -169,6 +172,11 @@ public class OutContractFinaceConfirmePlugin extends AbstractBillPlugIn impleme super.registerListener(e); EntryGrid control = this.getControl("zcgj_entryentity"); control.addHyperClickListener(this); + //kd.bos.form.field.RefBillEdit + RefBillEdit outContractSett = this.getControl("current_zcgj_orgid_out"); //支出合同结算单 + if(outContractSett != null) { + outContractSett.addBeforeF7SelectListener(this); + } BasedataEdit contractprocess = this.getControl("zcgj_cbs"); //承包工序 if(contractprocess != null) { @@ -257,7 +265,19 @@ public class OutContractFinaceConfirmePlugin extends AbstractBillPlugIn impleme @Override public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) { String name = beforeF7SelectEvent.getProperty().getName(); - if(name.equals("zcgj_cbs")) {//工序根据项目过滤 + if(name.equals("zcgj_ec_out_contract_sett")){ + IPageCache iPageCache = this.getView().getParentView().getService(IPageCache.class); + String listOrgId = iPageCache.get("current_zcgj_orgid_out"); + List ids = new ArrayList<>(); + if(StringUtils.isNotBlank(listOrgId)){ + for (String s : listOrgId.split(",")) { + ids.add(Long.parseLong(s)); + } + } + ListShowParameter showParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter(); + QFilter qFilter = new QFilter("org", QCP.in, ids); + showParameter.getListFilterParameter().getQFilters().add(qFilter); + }else if(name.equals("zcgj_cbs")) {//工序根据项目过滤 Object projectObj = this.getModel().getValue("zcgj_project"); if(projectObj instanceof DynamicObject){ DynamicObject project = (DynamicObject) projectObj; diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/utils/CommonUtils.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/utils/CommonUtils.java new file mode 100644 index 0000000..41bffef --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/utils/CommonUtils.java @@ -0,0 +1,12 @@ +package zcgj.zcdev.zcdev.pr.utils; + +import kd.bos.entity.datamodel.IDataModel; + +public class CommonUtils { + public CommonUtils() { + } + + public static boolean isNewData(IDataModel model) { + return !model.getDataEntity().getDataEntityState().getFromDatabase(); + } +} \ No newline at end of file diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/utils/OrgCheckUtils.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/utils/OrgCheckUtils.java new file mode 100644 index 0000000..3594351 --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/utils/OrgCheckUtils.java @@ -0,0 +1,70 @@ +package zcgj.zcdev.zcdev.pr.utils; + +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.orm.query.QCP; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.bos.servicehelper.org.OrgUnitServiceHelper; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +public class OrgCheckUtils { + + + public static String ksNumberTop = "10006431"; //矿山总部组织编码 + + + public static String ksNumber = "10006447";//矿山总部本部 + + //试点四家公司本部 + public static Set testCompanyNumberSet = new HashSet<>(); + static { + testCompanyNumberSet.add("10006461"); //南京本部 + testCompanyNumberSet.add("10006476"); //兖州本部 + testCompanyNumberSet.add("10007186"); //西安本部 + testCompanyNumberSet.add("10006939"); //天津本部 + } + + + /** + * 判断是否为矿山 + */ + public static boolean isKS(Long currentOrgId){ + QFilter filterOrgId = new QFilter("number", QCP.equals,ksNumberTop);//中材矿山建设有限公司 + DynamicObject adminOrg = BusinessDataServiceHelper.loadSingle("bos_org", "number,name,fullname", new QFilter[]{filterOrgId}); + long orgId = adminOrg.getLong("id"); + List orgIds = new ArrayList<>(1); + //orgIds.add(1692204547985902592L); + orgIds.add(orgId); + List subOrgIds = OrgUnitServiceHelper.getAllSubordinateOrgs(1L, orgIds, true); + Set orgSer = subOrgIds.stream().collect(Collectors.toSet()); + if(orgSer.contains(currentOrgId)){ + return true; + } + return false; + } + + /** + * 判断某个组织是否在某个组织下面 + * parentOrgNumber 上层组织编码 + * currentOrgId 需要判断的组织id + */ + public static boolean isChildrenOrg(String parentOrgNumber,Long currentOrgId){ + QFilter filterOrgId = new QFilter("number", QCP.equals,parentOrgNumber);//中材矿山建设有限公司 + DynamicObject adminOrg = BusinessDataServiceHelper.loadSingle("bos_org", "number,name,fullname", new QFilter[]{filterOrgId}); + long orgId = adminOrg.getLong("id"); + List orgIds = new ArrayList<>(1); + //orgIds.add(1692204547985902592L); + orgIds.add(orgId); + List subOrgIds = OrgUnitServiceHelper.getAllSubordinateOrgs(1L, orgIds, true); + Set orgSer = subOrgIds.stream().collect(Collectors.toSet()); + if(orgSer.contains(currentOrgId)){ + return true; + } + return false; + } +}