From e75ccb8f5dc30513e204498e5fd0273bb9d6aa0a Mon Sep 17 00:00:00 2001 From: zhangzhiguo <421587375@qq.com> Date: Thu, 23 Oct 2025 11:17:18 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B6=E5=85=A5=E3=80=81=E6=94=AF=E5=87=BA?= =?UTF-8?q?=E5=90=88=E5=90=8C=E7=A1=AE=E8=AE=A4=E5=8D=95=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E6=97=B6=E5=8F=8D=E5=AE=A1=E6=A0=B8=E5=AF=B9=E5=BA=94=E5=90=88?= =?UTF-8?q?=E5=90=8C=E7=BB=93=E7=AE=97=E5=8D=95=EF=BC=8C=E5=B9=B6=E5=8F=91?= =?UTF-8?q?=E9=80=81=E6=B6=88=E6=81=AF=E7=BB=99=E7=BB=93=E7=AE=97=E5=8D=95?= =?UTF-8?q?=E5=8F=91=E8=B5=B7=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../operate/InFinaceconfirmBackSettleOp.java | 107 +++++++++++++++++ .../operate/OutFinaceconfirmBackSettleOp.java | 113 ++++++++++++++++++ 2 files changed, 220 insertions(+) create mode 100644 code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/InFinaceconfirmBackSettleOp.java create mode 100644 code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/OutFinaceconfirmBackSettleOp.java diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/InFinaceconfirmBackSettleOp.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/InFinaceconfirmBackSettleOp.java new file mode 100644 index 0000000..647ac9b --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/InFinaceconfirmBackSettleOp.java @@ -0,0 +1,107 @@ +package zcgj.zcdev.zcdev.pr.plugin.operate; + +import kd.bos.dataentity.OperateOption; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.LocaleString; +import kd.bos.entity.operate.OperateOptionConst; +import kd.bos.entity.operate.result.OperationResult; +import kd.bos.entity.plugin.AbstractOperationServicePlugIn; +import kd.bos.entity.plugin.PreparePropertysEventArgs; +import kd.bos.entity.plugin.args.EndOperationTransactionArgs; +import kd.bos.logging.Log; +import kd.bos.logging.LogFactory; +import kd.bos.message.api.MessageChannels; +import kd.bos.metadata.dao.MetaCategory; +import kd.bos.metadata.dao.MetadataDao; +import kd.bos.metadata.form.FormMetadata; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.bos.servicehelper.operation.DeleteServiceHelper; +import kd.bos.servicehelper.operation.OperationServiceHelper; +import kd.bos.servicehelper.workflow.MessageCenterServiceHelper; +import kd.bos.workflow.engine.msg.info.MessageInfo; + +import java.util.ArrayList; +import java.util.List; + +/** + * 支出财务确认单删除时退回支出合同结算单 + */ +public class InFinaceconfirmBackSettleOp extends AbstractOperationServicePlugIn { + + private static final Log log = LogFactory.getLog(InFinaceconfirmBackSettleOp.class); +//OperationResult result = OperationServiceHelper.executeOperate("submit", "ec_out_contract_settle", new DynamicObject[]{outContractSettle}, option); +// + public void onPreparePropertys(PreparePropertysEventArgs e) { + e.getFieldKeys().add("zcgj_ec_in_contractid"); //支出结算单id + + } + @Override + public void endOperationTransaction(EndOperationTransactionArgs e) { + String operationKey = e.getOperationKey(); + DynamicObject[] dataEntities = e.getDataEntities(); + switch (operationKey) { + case "delback"://删除 + delOutFincBackSettle(dataEntities, true); + break; + } + } + + protected void delOutFincBackSettle(DynamicObject[] dataEntities, boolean isSubmit){ + List updateData = new ArrayList<>(); + for (DynamicObject dataEntity : dataEntities) { + long id = dataEntity.getLong("id"); + long contractseetid = dataEntity.getLong("zcgj_ec_in_contractid"); + + DynamicObject outContractSettle = BusinessDataServiceHelper.loadSingle(contractseetid, "ec_in_contract_settle"); + + String billstatus = outContractSettle.getString("billstatus"); + if(billstatus.equals("C")){ + OperateOption option= OperateOption.create(); + option.setVariableValue(OperateOptionConst.ISHASRIGHT, String.valueOf(true));//跳过权限校验 + OperationResult result = OperationServiceHelper.executeOperate("unaudit", "ec_in_contract_settle", new DynamicObject[]{outContractSettle}, option); + + if(result.isSuccess()){ + QFilter idFilter = new QFilter("id", "=", id); + int zcgjEcInFinaceconfirm = DeleteServiceHelper.delete("zcgj_ec_in_finaceconfirm", new QFilter[]{idFilter}); + + DynamicObject creator = outContractSettle.getDynamicObject("creator"); + long userId = creator.getLong("id"); + String billno = outContractSettle.getString("billno"); + List userids= new ArrayList(); + userids.add(userId); + sendMessage(userids,"ec_in_contract_settle",billno); + }else{ + log.info("InFinaceconfirmBackSettleOp:"+result.getMessage()); + } + } + + } + + } + + //结算单的创建人 + //支出合同结算单XXXX已被驳回。 + public void sendMessage(List userIds,String entityNumber,String billno) { + String id = MetadataDao.getIdByNumber(entityNumber, MetaCategory.Form); + FormMetadata formMeta = (FormMetadata) MetadataDao.readRuntimeMeta(id, MetaCategory.Form); + //单据名称: + String billName = formMeta.getName().getLocaleValue(); + //messageinfo 使用工作流包下的对象 + MessageInfo messageInfo = new MessageInfo(); + messageInfo.setTitle(billName+"-驳回提醒"); + + LocaleString localeString = new LocaleString(); + localeString.setLocaleValue_zh_CN("收入合同结算单"+billno+"已被驳回。"); + messageInfo.setMessageContent(localeString); + + messageInfo.setUserIds(userIds); + //messageInfo.setType(MessageInfo.TYPE_TASK); + messageInfo.setType(MessageInfo.TYPE_MESSAGE); + messageInfo.setTag(billName+"-驳回提醒"); + messageInfo.setEntityNumber(entityNumber); + messageInfo.setNotifyType(MessageChannels.MC.getNumber()); + MessageCenterServiceHelper.sendMessage(messageInfo); + } + +} diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/OutFinaceconfirmBackSettleOp.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/OutFinaceconfirmBackSettleOp.java new file mode 100644 index 0000000..5af898d --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/OutFinaceconfirmBackSettleOp.java @@ -0,0 +1,113 @@ +package zcgj.zcdev.zcdev.pr.plugin.operate; + +import kd.bos.dataentity.OperateOption; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.dataentity.entity.LocaleString; +import kd.bos.db.tx.TX; +import kd.bos.db.tx.TXHandle; +import kd.bos.entity.operate.OperateOptionConst; +import kd.bos.entity.operate.result.OperationResult; +import kd.bos.entity.plugin.AbstractOperationServicePlugIn; +import kd.bos.entity.plugin.PreparePropertysEventArgs; +import kd.bos.entity.plugin.args.EndOperationTransactionArgs; +import kd.bos.logging.Log; +import kd.bos.logging.LogFactory; +import kd.bos.message.api.MessageChannels; +import kd.bos.metadata.dao.MetaCategory; +import kd.bos.metadata.dao.MetadataDao; +import kd.bos.metadata.form.FormMetadata; +import kd.bos.orm.query.QCP; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.bos.servicehelper.operation.DeleteServiceHelper; +import kd.bos.servicehelper.operation.OperationServiceHelper; +import kd.bos.servicehelper.operation.SaveServiceHelper; +import kd.bos.servicehelper.workflow.MessageCenterServiceHelper; +import kd.bos.workflow.engine.msg.info.MessageInfo; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.List; + +/** + * 支出财务确认单删除时退回支出合同结算单 + */ +public class OutFinaceconfirmBackSettleOp extends AbstractOperationServicePlugIn { + + private static final Log log = LogFactory.getLog(OutFinaceconfirmBackSettleOp.class); +//OperationResult result = OperationServiceHelper.executeOperate("submit", "ec_out_contract_settle", new DynamicObject[]{outContractSettle}, option); +// + public void onPreparePropertys(PreparePropertysEventArgs e) { + e.getFieldKeys().add("zcgj_ec_out_contractid"); //支出结算单id + + } + @Override + public void endOperationTransaction(EndOperationTransactionArgs e) { + String operationKey = e.getOperationKey(); + DynamicObject[] dataEntities = e.getDataEntities(); + switch (operationKey) { + case "delback"://删除 + delOutFincBackSettle(dataEntities, true); + break; + } + } + + protected void delOutFincBackSettle(DynamicObject[] dataEntities, boolean isSubmit){ + List updateData = new ArrayList<>(); + for (DynamicObject dataEntity : dataEntities) { + long id = dataEntity.getLong("id"); + long contractseetid = dataEntity.getLong("zcgj_ec_out_contractid"); + + DynamicObject outContractSettle = BusinessDataServiceHelper.loadSingle(contractseetid, "ec_out_contract_settle"); + + String billstatus = outContractSettle.getString("billstatus"); + if(billstatus.equals("C")){ + OperateOption option= OperateOption.create(); + option.setVariableValue(OperateOptionConst.ISHASRIGHT, String.valueOf(true));//跳过权限校验 + OperationResult result = OperationServiceHelper.executeOperate("unaudit", "ec_out_contract_settle", new DynamicObject[]{outContractSettle}, option); + + if(result.isSuccess()){ + QFilter idFilter = new QFilter("id", "=", id); + int zcgjEcInFinaceconfirm = DeleteServiceHelper.delete("zcgj_ec_out_finaceconfirm", new QFilter[]{idFilter}); + + DynamicObject creator = outContractSettle.getDynamicObject("creator"); + long userId = creator.getLong("id"); + String billno = outContractSettle.getString("billno"); + List userids= new ArrayList(); + userids.add(userId); + sendMessage(userids,"ec_out_contract_settle",billno); + }else{ + log.info("OutFinaceconfirmBackSettleOp:"+result.getMessage()); + } + } + + } + + } + + //结算单的创建人 + //支出合同结算单XXXX已被驳回。 + public void sendMessage(List userIds,String entityNumber,String billno) { + String id = MetadataDao.getIdByNumber(entityNumber, MetaCategory.Form); + FormMetadata formMeta = (FormMetadata) MetadataDao.readRuntimeMeta(id, MetaCategory.Form); + //单据名称: + String billName = formMeta.getName().getLocaleValue(); + //messageinfo 使用工作流包下的对象 + MessageInfo messageInfo = new MessageInfo(); + messageInfo.setTitle(billName+"-驳回提醒"); + + LocaleString localeString = new LocaleString(); + localeString.setLocaleValue_zh_CN("支出合同结算单"+billno+"已被驳回。"); + messageInfo.setMessageContent(localeString); + + messageInfo.setUserIds(userIds); + //messageInfo.setType(MessageInfo.TYPE_TASK); + messageInfo.setType(MessageInfo.TYPE_MESSAGE); + messageInfo.setTag(billName+"-驳回提醒"); + messageInfo.setEntityNumber(entityNumber); + messageInfo.setNotifyType(MessageChannels.MC.getNumber()); + MessageCenterServiceHelper.sendMessage(messageInfo); + } + +}