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); + } + +}