收入、支出合同确认单删除时反审核对应合同结算单,并发送消息给结算单发起人
This commit is contained in:
parent
cfc9ec22b0
commit
e75ccb8f5d
|
|
@ -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<DynamicObject> 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<Long> userids= new ArrayList<Long>();
|
||||
userids.add(userId);
|
||||
sendMessage(userids,"ec_in_contract_settle",billno);
|
||||
}else{
|
||||
log.info("InFinaceconfirmBackSettleOp:"+result.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//结算单的创建人
|
||||
//支出合同结算单XXXX已被驳回。
|
||||
public void sendMessage(List<Long> 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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -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<DynamicObject> 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<Long> userids= new ArrayList<Long>();
|
||||
userids.add(userId);
|
||||
sendMessage(userids,"ec_out_contract_settle",billno);
|
||||
}else{
|
||||
log.info("OutFinaceconfirmBackSettleOp:"+result.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//结算单的创建人
|
||||
//支出合同结算单XXXX已被驳回。
|
||||
public void sendMessage(List<Long> 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);
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue