From 7110952a391d219c562032ef7a3c7d135da6177d Mon Sep 17 00:00:00 2001 From: zhangzhiguo Date: Tue, 27 May 2025 18:13:13 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B4=A2=E5=8A=A1=E5=85=B1=E4=BA=AB=EF=BC=8C?= =?UTF-8?q?=E6=88=91=E7=9A=84=E4=BB=BB=E5=8A=A1=E4=B8=9A=E5=8A=A1=E5=8D=95?= =?UTF-8?q?=E6=8D=AE=E4=BB=98=E6=AC=BE=E7=8A=B6=E6=80=81=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/TaskListBuildVoucherPlugin.java | 29 +++++- .../plugin/operate/TaskListPayStatusCkOp.java | 98 +++++++++++++++++++ 2 files changed, 126 insertions(+), 1 deletion(-) create mode 100644 code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/TaskListPayStatusCkOp.java diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/TaskListBuildVoucherPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/TaskListBuildVoucherPlugin.java index 6b6f84a..f667d5d 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/TaskListBuildVoucherPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/TaskListBuildVoucherPlugin.java @@ -5,9 +5,11 @@ import com.alibaba.fastjson.JSONObject; import com.fasterxml.jackson.databind.ObjectMapper; import kd.ai.ids.core.utils.JsonUtils; import kd.bos.bill.AbstractBillPlugIn; +import kd.bos.dataentity.OperateOption; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.entity.datamodel.ListSelectedRow; import kd.bos.entity.datamodel.ListSelectedRowCollection; +import kd.bos.entity.operate.result.OperationResult; import kd.bos.form.ShowType; import kd.bos.form.control.events.ItemClickEvent; import kd.bos.list.BillList; @@ -24,6 +26,7 @@ import kd.bos.orm.query.QCP; import kd.bos.orm.query.QFilter; import kd.bos.servicehelper.BusinessDataServiceHelper; import kd.bos.servicehelper.QueryServiceHelper; +import kd.bos.servicehelper.operation.OperationServiceHelper; import kd.sdk.plugin.Plugin; import java.util.*; @@ -112,7 +115,8 @@ public class TaskListBuildVoucherPlugin extends AbstractListPlugin implements Pl } this.getView().showForm(listShowParameter); } - }else if("zcgj_deletevoucher".equals(itemKey)){ + } + else if("zcgj_deletevoucher".equals(itemKey)){ BillList billList = this.getView().getControl(AbstractListPlugin.BILLLISTID); //获取到选中行的数据 ListSelectedRowCollection selectedRows = billList.getSelectedRows(); @@ -185,6 +189,29 @@ public class TaskListBuildVoucherPlugin extends AbstractListPlugin implements Pl this.getView().invokeOperation("refresh");//调用表单的刷新操作 } + /*else if("zcgj_bar_payp".equals(itemKey)){ + BillList billList = this.getView().getControl(AbstractListPlugin.BILLLISTID); + //获取到选中行的数据 + ListSelectedRowCollection selectedRows = billList.getSelectedRows(); + if(selectedRows.isEmpty()){ + this.getView().showTipNotification(String.format("请选择需要付款的数据。")); + return; + } + for (ListSelectedRow selectedRow : selectedRows) { + Long pk = (Long) selectedRow.getPrimaryKeyValue(); + DynamicObject taskobj = BusinessDataServiceHelper.loadSingle(pk, "task_task"); + DynamicObject billtype = taskobj.getDynamicObject("billtype"); + DynamicObject bindbill = billtype.getDynamicObject("bindbill"); //源单 + String entityName = bindbill.getString("number"); + String billid = taskobj.getString("billid"); + OperateOption operateOption = OperateOption.create(); + QFilter accountTableFilter = new QFilter("id", QCP.equals,Long.valueOf(billid)); + DynamicObject sourceBillObject = BusinessDataServiceHelper.loadSingle(entityName, new QFilter[]{accountTableFilter}); + OperationResult opResult= OperationServiceHelper.executeOperate("pushpaybill", entityName, new DynamicObject[] {sourceBillObject},operateOption ); + //OperationResult opResult= OperationServiceHelper.executeOperate("pushpaybill", entityName, new DynamicObject[] {sourceBillObject},operateOption ); + log.info(opResult.toString()); + } + }*/ } } diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/TaskListPayStatusCkOp.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/TaskListPayStatusCkOp.java new file mode 100644 index 0000000..09800b3 --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/TaskListPayStatusCkOp.java @@ -0,0 +1,98 @@ +package zcgj.zcdev.zcdev.fs.plugin.operate; + +import kd.bos.context.RequestContext; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.dataentity.entity.LocaleString; +import kd.bos.entity.ExtendedDataEntity; +import kd.bos.entity.datamodel.events.PackageDataEvent; +import kd.bos.entity.list.column.TextColumnDesc; +import kd.bos.entity.plugin.AbstractOperationServicePlugIn; +import kd.bos.entity.plugin.AddValidatorsEventArgs; +import kd.bos.entity.plugin.PreparePropertysEventArgs; +import kd.bos.entity.validate.AbstractValidator; +import kd.bos.form.control.events.ItemClickEvent; +import kd.bos.form.events.BeforeCreateListColumnsArgs; +import kd.bos.list.ListColumn; +import kd.bos.list.plugin.AbstractListPlugin; +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.bos.servicehelper.user.UserServiceHelper; +import zcgj.zcdev.zcdev.fs.utils.OrgCheckUtils; + +import java.text.SimpleDateFormat; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 共享任务中心-我的任务-审批时校验是否完成付款 + */ +public class TaskListPayStatusCkOp extends AbstractOperationServicePlugIn { + private static final Log log = LogFactory.getLog(TaskListPayStatusCkOp.class); + + @Override + public void onPreparePropertys(PreparePropertysEventArgs e) { + super.onPreparePropertys(e); + e.getFieldKeys().add("sscid"); //共享中心 + e.getFieldKeys().add("billtype"); //源单类型 + e.getFieldKeys().add("billtype.bindbill"); //源单类型 + e.getFieldKeys().add("billid"); //源单id + e.getFieldKeys().add("tasktypeid"); //任务类型 + e.getFieldKeys().add("billnumber"); //单据编号 + e.getFieldKeys().add("subject"); //主题 + } + + @Override + public void onAddValidators(AddValidatorsEventArgs e) { + super.onAddValidators(e); + Long currentUserId = UserServiceHelper.getCurrentUserId(); + // 当前用户所属组织 + Long mainOrgId = UserServiceHelper.getUserMainOrgId(currentUserId); + //当前切换选择的组织 + Long currentOrgId = RequestContext.get().getOrgId(); + //当前所在的组织是属于矿山下的 + e.getValidators().add(new ValidatorExt()); + } + + class ValidatorExt extends AbstractValidator { + @Override + public void validate() { + ExtendedDataEntity[] extendedDataEntities = this.getDataEntities(); + for (ExtendedDataEntity extendedDataEntity : extendedDataEntities) { + DynamicObject dataEntity = extendedDataEntity.getDataEntity(); + String billnumber = dataEntity.getString("billnumber"); + String subject = dataEntity.getString("subject"); + DynamicObject tasktypeid = dataEntity.getDynamicObject("tasktypeid"); + DynamicObject sscid = dataEntity.getDynamicObject("sscid"); + QFilter tasktypeFilter = new QFilter("orgfield.id", QCP.equals,sscid.getLong("id")); + 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")) { + long billid = dataEntity.getLong("billid"); + DynamicObject billtype = dataEntity.getDynamicObject("billtype"); //源单类型 + DynamicObject bindbill = billtype.getDynamicObject("bindbill");//源单 + String entityName = bindbill.getString("number"); + QFilter accountTableFilter = new QFilter("id", QCP.equals,billid); + DynamicObject sourceBillObject = BusinessDataServiceHelper.loadSingle(entityName, new QFilter[]{accountTableFilter}); + String billstatus = sourceBillObject.getString("billstatus"); + if(!"G".equals(billstatus)) { + if("er_repaymentbill".equals(entityName)) { + this.addFatalErrorMessage(extendedDataEntity, String.format("审批结算任务:【%s-%s】的收款未完成,请完成收款后操作。",billnumber,subject)); + }else{ + this.addFatalErrorMessage(extendedDataEntity, String.format("审批结算任务:【%s-%s】的付款未完成,请完成付款后操作。",billnumber,subject)); + } + } + } + } + } + } + } +} + +