泛微E8节点后控制流程重复提交

需求描述:最近碰到一个需求,某付款凭证单需要根据表单的一个po订单号控制流程重复提交的情况。

思路:先查询当前提交的表单“po订单号”是否已经存在数据库中,获取数据的条数来判断流程是否重复提交。其中需要注意到的一种情况,人员首次填写,保存情况。以下为开发节点后action:

package com.customcode.action;

import com.customcode.util.XmActionLog;
import weaver.conn.RecordSet;
import weaver.interfaces.workflow.action.Action;
import weaver.soa.workflow.request.RequestInfo;

/**
 * @author Yuyb
 * @version 1.0
 * 类说明:FK01_付款凭证单,防止重复提交
 * @date 2021/11/15 9:19
 */

public class FK01_Torepeat implements Action {

    public String execute(RequestInfo request) {
        XmActionLog alog = new XmActionLog();
        String actionName="FK01_Torepeat";//日志文件夹名称
        RecordSet rs = new RecordSet();
        RecordSet rs_repeat = new RecordSet();
        alog.info(actionName,"====================================START=========================================");
        String result="1";
        String requestId = request.getRequestid();  //获取请求requestId
        String maintable = request.getRequestManager().getBillTableName();
        String sql="select poddhm,Number_yg,money,requestid from "+maintable+" where requestid="+requestId;
        rs.execute(sql);
        alog.info(actionName,"sql="+sql);

        String poddhm="";
        //String oldrid="";
        while(rs.next()){
            poddhm=rs.getString("poddhm");//PO订单号
            //oldrid=rs.getString("requestid");//
        }

        String sql_repeat="select * from "+maintable+" where poddhm='"+poddhm+"' ";
        rs_repeat.execute(sql_repeat);
        int nums=rs_repeat.getCounts();
        alog.info(actionName,"nums="+nums);
        alog.info(actionName,"sql_repeat="+sql_repeat);
        while(rs_repeat.next()){
            String oldrid=rs_repeat.getString("requestid");
            if(nums<1){
                return "1";
            }else if(nums==1){
                if(oldrid.equals(requestId)){
                    return "1";
                }else{
                    request.getRequestManager().setMessagecontent("此PO订单号"+poddhm+"已经提交过,请勿重复提交!");
                    request.getRequestManager().setMessageid("1");
                    return "0";
                }

            }else{
                request.getRequestManager().setMessagecontent("此PO订单号"+poddhm+"已经提交过,请勿重复提交!");
                request.getRequestManager().setMessageid("1");
                return "0";
            }

        }



        alog.info(actionName,"====================================END=========================================");
        return result;
    }
}

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值