收入、支出合同确认单删除时反审核对应合同结算单,并发送消息给结算单发起人
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