# app_script_history

id: 66bb0584993294a6b3485701
scriptid: 662a47879932b5035f32efab
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:04:57.000
script:
function verifyGZL(gguid) {
    var count = getValueFromSQL2( "", `select count(0) from pz_yjd_pzh where gguid='${gguid}' and qsqx is not null and qsqx>0`  );
    println( 'count  ' + count ) 

    return count>0?'有凭证式延迟确认，不能提交结束工作流！':''
}


/**
 * 工作结束
 * @param flow 流程定义
 * @param node 开始节点
 * @param gguid 单据的gguid

 */
//@comment (group=工作流事件,caption=工作结束)
function onWorkFlowEnd(flow, node, gguid) {
    // println( flow.id) ; //流程定义的ID
    println(gguid + "工作结束了");

    runSQL("", ` update pz_yjd_pzh set state=1 where gguid='${gguid}' and  state=0`);

    runSQL("", `UPDATE pzbmx a
            INNER JOIN  pz_yjdex b  inner join pz_yjd c on (b.gguid=c.gguid) 
             ON a.pzh  >= b.pzh1 and a.pzh<= b.pzh2 and b.gguid=${gguid}
            SET a.pos  = c.towhere , a.memo = c.summary , a.state_jb=0, a.state_jy=0   ` , true);
}


function back_add_pzh(data) {
    var count = (data.pzh2 / 1) - (data.pzh1 / 1);


    var gguid = currentGUID();
    for (var i = 0; i <= count; i++) {
        var newid = newGuid();
        var pzh = (data.pzh1 / 1) + i;
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, ny, pzh, billtype) values ( ${newid} , ${gguid} , '${data.ny}', '${pzh}', '交办') `, true);
    }

    back_build_sum();
    return { success: true };

}

function back_import_pzh_data(data) {

    var t = data.pzh.split(/[\s]/);
    for (var i = 0; i < t.length; i++) {
        var pzh = t[i].trim();
        if (pzh == '') continue;
        var newid = newGuid();
        var gguid = currentGUID();
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, ny, pzh, billtype ) values ( ${newid} , ${gguid} , '${data.ny}' , '${pzh}', '交办') `, true);
    }
    back_build_sum();
}

function back_import_pzh(s) {
    var t = s.split(/[\s]/);
    for (var i = 0; i < t.length; i++) {
        var pzh = t[i].trim();
        if (pzh == '') continue;
        var newid = newGuid();
        var gguid = currentGUID();
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, pzh ) values ( ${newid} , ${gguid} , '${pzh}') `, true);
    }
    back_build_sum();
}

//  根据凭证号清单生成凭证号汇总信息 
function back_build_sum() {
    var gguid = currentGUID();
    $back_build_sum(gguid);
}


function $back_build_sum(gguid) {


    var sql = `
            
        SELECT
            MAX( ny ) as ny , MIN( pzh ) as pzh1 ,   MAX( pzh )  AS  pzh2,
        COUNT(*) AS c 
        FROM
        (
            SELECT
            ny,
            pzh,
            CONCAT(ny, pzh) as ny_pzh,
            @group_id := IF( pzh  = @prev_number + 1, @group_id, @group_id + 1) AS group_id,
            @prev_number := pzh 
            FROM
            pz_yjd_pzh,
            (SELECT @group_id := 0, @prev_number := NULL) AS vars 
                    where  gguid= ${gguid}
            ORDER BY
            ny_pzh 
        ) AS subquery
        GROUP BY
        group_id;
            
    ` ;

    println(sql);
    var tds = newDataStore("", sql);
    var n = tds.retrieve();

    runSQL("", `delete from  pz_yjdex where gguid= ${gguid} `, true);

    var pz_yjdex_ds = newDataStore("", "select * from pz_yjdex");
    pz_yjdex_ds.setUpdateProperty('pz_yjdex', 'id', '*', 'id');
    for (var i = 0; i < n; i++) {
        var row = pz_yjdex_ds.insertRow(9999);
        pz_yjdex_ds.setValue(row, {
            id: newGuid(), gguid: gguid, inner_xh: row + 1,
            billtype: '交办',
            ny: tds.getString(i, 'ny'),
            pzh1: tds.getString(i, "pzh1"),
            pzh2: tds.getString(i, "pzh2"),
            pzs: tds.getInt(i, "c")


        });
    }

    //
    pz_yjdex_ds.executeAfterUpdate(`update  pz_yjd  set pzs= (select count(*) from  pz_yjd_pzh where gguid= ${gguid} ) where   id= ${gguid}  `);
    pz_yjdex_ds.update(true);


}


/**
 * 单据点击保存，前端所有的操作被转译成3种操作:insert , delete , update ,
 *  并且可以在  beforeBillSaveOnServer 中返回一些SQL语句，可以在afterBillSaveOnServer中返回一些SQL语句
 *
 * 系统分别在需要的数据库连接中执行这些语句 ， 当所有语句执行成功后，事件被提交。一些细节如下 ：
 *
 * 1 如果单据中的表，属于不同的数据库连接，那么所有的SQL语句会以连接为单位，对语句进行批量执行
 * 2 这些语句的执行顺序是：对同一个数据库连接中的语句， 先执行 beforeBillSaveOnServer 中返回的SQL语句，再执行单据操作转译得到的SQL语句，
 *   再执行 afterBillSaveOnServer 中返回的SQL语句， 当多个（或一个）数据库连接执行完这些语句，且没有错误时，所有的数据库连接做提交，否则全部回滚
 * 3 不要在 beforeBillSaveOnServer 或 afterBillSaveOnServer 中直接执行数据库操作，而是返回SQL语句，让系统批量执行它们，并控制好事务
 * 4 当执行成功后，系统再执行事件函数  afterBillSaveSuccessfulOnServer 。 此事件中可以执行任意操作，它与单据保存事件结束后才被触发执行，
 *   与单据保存并不在一个事务中。
 *
 *
 * @param gguid  要删除记录的gguid ，等同于主表的id
 * @param session  一个JSON对象，用于在整个单据保存过程中的各个事件之间传递数据。本事件做为单据保存的最后一个事件，session对象在使用后将被丢弃
 *
 *
 * @return 本函数不需要返回值
 *
 */
//@comment (group=单据保存,caption=单据保存成功后)
function afterBillSaveSuccessfulOnServer(gguid, session) {

    $back_build_sum(gguid);
}


id: 66bb0584993294a6b3485707
scriptid: 662a47879932b5035f32efab
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:05:03.000
script:
function verifyGZL(gguid) {
    var count = getValueFromSQL2( "", `select count(0) from pz_yjd_pzh where gguid='${gguid}' and qsqx is not null and qsqx>0`  );
    println( 'verifyGZL count  ' + count ) 

    return count>0?'有凭证式延迟确认，不能提交结束工作流！':''
}


/**
 * 工作结束
 * @param flow 流程定义
 * @param node 开始节点
 * @param gguid 单据的gguid

 */
//@comment (group=工作流事件,caption=工作结束)
function onWorkFlowEnd(flow, node, gguid) {
    // println( flow.id) ; //流程定义的ID
    println(gguid + "工作结束了");

    runSQL("", ` update pz_yjd_pzh set state=1 where gguid='${gguid}' and  state=0`);

    runSQL("", `UPDATE pzbmx a
            INNER JOIN  pz_yjdex b  inner join pz_yjd c on (b.gguid=c.gguid) 
             ON a.pzh  >= b.pzh1 and a.pzh<= b.pzh2 and b.gguid=${gguid}
            SET a.pos  = c.towhere , a.memo = c.summary , a.state_jb=0, a.state_jy=0   ` , true);
}


function back_add_pzh(data) {
    var count = (data.pzh2 / 1) - (data.pzh1 / 1);


    var gguid = currentGUID();
    for (var i = 0; i <= count; i++) {
        var newid = newGuid();
        var pzh = (data.pzh1 / 1) + i;
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, ny, pzh, billtype) values ( ${newid} , ${gguid} , '${data.ny}', '${pzh}', '交办') `, true);
    }

    back_build_sum();
    return { success: true };

}

function back_import_pzh_data(data) {

    var t = data.pzh.split(/[\s]/);
    for (var i = 0; i < t.length; i++) {
        var pzh = t[i].trim();
        if (pzh == '') continue;
        var newid = newGuid();
        var gguid = currentGUID();
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, ny, pzh, billtype ) values ( ${newid} , ${gguid} , '${data.ny}' , '${pzh}', '交办') `, true);
    }
    back_build_sum();
}

function back_import_pzh(s) {
    var t = s.split(/[\s]/);
    for (var i = 0; i < t.length; i++) {
        var pzh = t[i].trim();
        if (pzh == '') continue;
        var newid = newGuid();
        var gguid = currentGUID();
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, pzh ) values ( ${newid} , ${gguid} , '${pzh}') `, true);
    }
    back_build_sum();
}

//  根据凭证号清单生成凭证号汇总信息 
function back_build_sum() {
    var gguid = currentGUID();
    $back_build_sum(gguid);
}


function $back_build_sum(gguid) {


    var sql = `
            
        SELECT
            MAX( ny ) as ny , MIN( pzh ) as pzh1 ,   MAX( pzh )  AS  pzh2,
        COUNT(*) AS c 
        FROM
        (
            SELECT
            ny,
            pzh,
            CONCAT(ny, pzh) as ny_pzh,
            @group_id := IF( pzh  = @prev_number + 1, @group_id, @group_id + 1) AS group_id,
            @prev_number := pzh 
            FROM
            pz_yjd_pzh,
            (SELECT @group_id := 0, @prev_number := NULL) AS vars 
                    where  gguid= ${gguid}
            ORDER BY
            ny_pzh 
        ) AS subquery
        GROUP BY
        group_id;
            
    ` ;

    println(sql);
    var tds = newDataStore("", sql);
    var n = tds.retrieve();

    runSQL("", `delete from  pz_yjdex where gguid= ${gguid} `, true);

    var pz_yjdex_ds = newDataStore("", "select * from pz_yjdex");
    pz_yjdex_ds.setUpdateProperty('pz_yjdex', 'id', '*', 'id');
    for (var i = 0; i < n; i++) {
        var row = pz_yjdex_ds.insertRow(9999);
        pz_yjdex_ds.setValue(row, {
            id: newGuid(), gguid: gguid, inner_xh: row + 1,
            billtype: '交办',
            ny: tds.getString(i, 'ny'),
            pzh1: tds.getString(i, "pzh1"),
            pzh2: tds.getString(i, "pzh2"),
            pzs: tds.getInt(i, "c")


        });
    }

    //
    pz_yjdex_ds.executeAfterUpdate(`update  pz_yjd  set pzs= (select count(*) from  pz_yjd_pzh where gguid= ${gguid} ) where   id= ${gguid}  `);
    pz_yjdex_ds.update(true);


}


/**
 * 单据点击保存，前端所有的操作被转译成3种操作:insert , delete , update ,
 *  并且可以在  beforeBillSaveOnServer 中返回一些SQL语句，可以在afterBillSaveOnServer中返回一些SQL语句
 *
 * 系统分别在需要的数据库连接中执行这些语句 ， 当所有语句执行成功后，事件被提交。一些细节如下 ：
 *
 * 1 如果单据中的表，属于不同的数据库连接，那么所有的SQL语句会以连接为单位，对语句进行批量执行
 * 2 这些语句的执行顺序是：对同一个数据库连接中的语句， 先执行 beforeBillSaveOnServer 中返回的SQL语句，再执行单据操作转译得到的SQL语句，
 *   再执行 afterBillSaveOnServer 中返回的SQL语句， 当多个（或一个）数据库连接执行完这些语句，且没有错误时，所有的数据库连接做提交，否则全部回滚
 * 3 不要在 beforeBillSaveOnServer 或 afterBillSaveOnServer 中直接执行数据库操作，而是返回SQL语句，让系统批量执行它们，并控制好事务
 * 4 当执行成功后，系统再执行事件函数  afterBillSaveSuccessfulOnServer 。 此事件中可以执行任意操作，它与单据保存事件结束后才被触发执行，
 *   与单据保存并不在一个事务中。
 *
 *
 * @param gguid  要删除记录的gguid ，等同于主表的id
 * @param session  一个JSON对象，用于在整个单据保存过程中的各个事件之间传递数据。本事件做为单据保存的最后一个事件，session对象在使用后将被丢弃
 *
 *
 * @return 本函数不需要返回值
 *
 */
//@comment (group=单据保存,caption=单据保存成功后)
function afterBillSaveSuccessfulOnServer(gguid, session) {

    $back_build_sum(gguid);
}


id: 66bb0584993294a6b348570d
scriptid: 669dc60c9932df22f60cad3b
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:05:13.000
script:
function verifyGZL(gguid) {
    var count = getValueFromSQL2( "", `select count(0) from pz_yjd_pzh where gguid='${gguid}' and qsqx is not null and qsqx>0`  );
    println( 'verifyGZL count  ' + count ) 

    return count>0?'有凭证式延迟确认，不能提交结束工作流！':''
}

/**
 * 工作结束
 * @param flow 流程定义
 * @param node 开始节点
 * @param gguid 单据的gguid

 */
//@comment (group=工作流事件,caption=工作结束)
function onWorkFlowEnd(flow, node, gguid) {
    // println( flow.id) ; //流程定义的ID
    println(gguid + "工作结束了");
    runSQL("", ` update pz_yjd_pzh set state=1 where gguid='${gguid}' and  state=0`  );

    runSQL("", `UPDATE pzbmx a
            INNER JOIN  pz_yjdex b  inner join pz_yjd c on (b.gguid=c.gguid) 
             ON a.pzh  >= b.pzh1 and a.pzh<= b.pzh2 and b.gguid=${gguid}
            SET a.pos  = c.towhere , a.memo = c.summary, a.state_jb=1     ` , true);
}


function back_get_pzdj_gguid(from_id){
    return getStringFromSQL2( '', `select gguid from pzdj where from_id='${from_id}'`  ) 
}


function back_add_pzh(data) {
    var count = (data.pzh2 / 1) - (data.pzh1 / 1);


    var gguid = currentGUID();
    for (var i = 0; i <= count; i++) {
        var newid = newGuid();
        var pzh = (data.pzh1 / 1) + i;
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, ny, pzh, billtype) values ( ${newid} , ${gguid} , '${data.ny}', '${pzh}', '交回') `, true);
    }

    back_build_sum();
    return { success: true };

}

function back_import_pzh_data(data){

    var t = data.pzh.split(/[\s]/);
    for (var i = 0; i < t.length; i++) {
        var pzh = t[i].trim();
        if (pzh == '') continue;
        var newid = newGuid();
        var gguid = currentGUID();
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, ny, pzh, billtype ) values ( ${newid} , ${gguid} , '${data.ny}' , '${pzh}', '交回') `, true);
    }
    back_build_sum();
}

function back_import_pzh(s) {
    var t = s.split(/[\s]/);
    for (var i = 0; i < t.length; i++) {
        var pzh = t[i].trim();
        if (pzh == '') continue;
        var newid = newGuid();
        var gguid = currentGUID();
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, pzh ) values ( ${newid} , ${gguid} , '${pzh}') `, true);
    }
    back_build_sum();
}

//  根据凭证号清单生成凭证号汇总信息 
function back_build_sum() {
    var gguid = currentGUID();
    $back_build_sum(gguid);
}


function $back_build_sum(gguid) {


    var sql = `
            
        SELECT
            MAX( ny ) as ny , MIN( pzh ) as pzh1 ,   MAX( pzh )  AS  pzh2,
        COUNT(*) AS c 
        FROM
        (
            SELECT
            ny,
            pzh,
            CONCAT(ny, pzh) as ny_pzh,
            @group_id := IF( pzh  = @prev_number + 1, @group_id, @group_id + 1) AS group_id,
            @prev_number := pzh 
            FROM
            pz_yjd_pzh,
            (SELECT @group_id := 0, @prev_number := NULL) AS vars 
                    where  gguid= ${gguid}
            ORDER BY
            ny_pzh
        ) AS subquery
        GROUP BY
        group_id;
            
    ` ;

    println(sql);
    var tds = newDataStore("", sql);
    var n = tds.retrieve();

    runSQL("", `delete from  pz_yjdex where gguid= ${gguid} `, true);

    var pz_yjdex_ds = newDataStore("", "select * from pz_yjdex");
    pz_yjdex_ds.setUpdateProperty('pz_yjdex', 'id', '*', 'id');
    for (var i = 0; i < n; i++) {
        var row = pz_yjdex_ds.insertRow(9999);
        pz_yjdex_ds.setValue(row, {
            id: newGuid(), gguid: gguid, inner_xh: row + 1,
            billtype: '交回',
            ny: tds.getString(i, 'ny'),
            pzh1: tds.getString(i, "pzh1"),
            pzh2: tds.getString(i, "pzh2"),
            pzs: tds.getInt(i, "c")


        });
    }

    //
    pz_yjdex_ds.executeAfterUpdate(`update  pz_yjd  set pzs= (select count(*) from  pz_yjd_pzh where gguid= ${gguid} ) where   id= ${gguid}  `);
    pz_yjdex_ds.update(true);


}


/**
 * 单据点击保存，前端所有的操作被转译成3种操作:insert , delete , update ,
 *  并且可以在  beforeBillSaveOnServer 中返回一些SQL语句，可以在afterBillSaveOnServer中返回一些SQL语句
 *
 * 系统分别在需要的数据库连接中执行这些语句 ， 当所有语句执行成功后，事件被提交。一些细节如下 ：
 *
 * 1 如果单据中的表，属于不同的数据库连接，那么所有的SQL语句会以连接为单位，对语句进行批量执行
 * 2 这些语句的执行顺序是：对同一个数据库连接中的语句， 先执行 beforeBillSaveOnServer 中返回的SQL语句，再执行单据操作转译得到的SQL语句，
 *   再执行 afterBillSaveOnServer 中返回的SQL语句， 当多个（或一个）数据库连接执行完这些语句，且没有错误时，所有的数据库连接做提交，否则全部回滚
 * 3 不要在 beforeBillSaveOnServer 或 afterBillSaveOnServer 中直接执行数据库操作，而是返回SQL语句，让系统批量执行它们，并控制好事务
 * 4 当执行成功后，系统再执行事件函数  afterBillSaveSuccessfulOnServer 。 此事件中可以执行任意操作，它与单据保存事件结束后才被触发执行，
 *   与单据保存并不在一个事务中。
 *
 *
 * @param gguid  要删除记录的gguid ，等同于主表的id
 * @param session  一个JSON对象，用于在整个单据保存过程中的各个事件之间传递数据。本事件做为单据保存的最后一个事件，session对象在使用后将被丢弃
 *
 *
 * @return 本函数不需要返回值
 *
 */
//@comment (group=单据保存,caption=单据保存成功后)
function afterBillSaveSuccessfulOnServer(gguid, session) {

    $back_build_sum(gguid);
}


id: 66bb0584993294a6b3485713
scriptid: 669dc6249932df22f60cc8cf
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:05:19.000
script:
function verifyGZL(gguid) {
    var count = getValueFromSQL2( "", `select count(0) from pz_yjd_pzh where gguid='${gguid}' and qsqx is not null and qsqx>0`  );
    println( 'verifyGZL count  ' + count ) 

    return count>0?'有凭证式延迟确认，不能提交结束工作流！':''
}

/**
 * 工作结束
 * @param flow 流程定义
 * @param node 开始节点
 * @param gguid 单据的gguid

 */
//@comment (group=工作流事件,caption=工作结束)
function onWorkFlowEnd(flow, node, gguid) {
    // println( flow.id) ; //流程定义的ID
    println(gguid + "工作结束了");
    runSQL("", ` update pz_yjd_pzh set state=1 where gguid='${gguid}' and  state=0`  );

    runSQL("", `UPDATE pzbmx a
            INNER JOIN  pz_yjdex b  inner join pz_yjd c on (b.gguid=c.gguid) 
             ON a.pzh  >= b.pzh1 and a.pzh<= b.pzh2 and b.gguid=${gguid}
            SET a.pos  = c.towhere , a.memo = c.summary, a.state_jy=1     ` , true);
}


function back_add_pzh(data) {
    var count = (data.pzh2 / 1) - (data.pzh1 / 1);


    var gguid = currentGUID();
    for (var i = 0; i <= count; i++) {
        var newid = newGuid();
        var pzh = (data.pzh1 / 1) + i;
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, ny, pzh, billtype) values ( ${newid} , ${gguid} , '${data.ny}', '${pzh}', '借阅') `, true);
    }

    back_build_sum();
    return { success: true };

}

function back_import_pzh_data(data){

    var t = data.pzh.split(/[\s]/);
    for (var i = 0; i < t.length; i++) {
        var pzh = t[i].trim();
        if (pzh == '') continue;
        var newid = newGuid();
        var gguid = currentGUID();
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, ny, pzh, billtype ) values ( ${newid} , ${gguid} , '${data.ny}' , '${pzh}', '借阅') `, true);
    }
    back_build_sum();
}

function back_import_pzh(s) {
    var t = s.split(/[\s]/);
    for (var i = 0; i < t.length; i++) {
        var pzh = t[i].trim();
        if (pzh == '') continue;
        var newid = newGuid();
        var gguid = currentGUID();
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, pzh ) values ( ${newid} , ${gguid} , '${pzh}') `, true);
    }
    back_build_sum();
}

//  根据凭证号清单生成凭证号汇总信息 
function back_build_sum() {
    var gguid = currentGUID();
    $back_build_sum(gguid);
}


function $back_build_sum(gguid) {


    var sql = `
            
        SELECT
            MAX( ny ) as ny , MIN( pzh ) as pzh1 ,   MAX( pzh )  AS  pzh2,
        COUNT(*) AS c 
        FROM
        (
            SELECT
            ny,
            pzh,
            CONCAT(ny, pzh) as ny_pzh,
            @group_id := IF( pzh  = @prev_number + 1, @group_id, @group_id + 1) AS group_id,
            @prev_number := pzh 
            FROM
            pz_yjd_pzh,
            (SELECT @group_id := 0, @prev_number := NULL) AS vars 
                    where  gguid= ${gguid}
            ORDER BY
            ny_pzh
        ) AS subquery
        GROUP BY
        group_id;
            
    ` ;

    println(sql);
    var tds = newDataStore("", sql);
    var n = tds.retrieve();

    runSQL("", `delete from  pz_yjdex where gguid= ${gguid} `, true);

    var pz_yjdex_ds = newDataStore("", "select * from pz_yjdex");
    pz_yjdex_ds.setUpdateProperty('pz_yjdex', 'id', '*', 'id');
    for (var i = 0; i < n; i++) {
        var row = pz_yjdex_ds.insertRow(9999);
        pz_yjdex_ds.setValue(row, {
            id: newGuid(), gguid: gguid, inner_xh: row + 1,
            billtype: '借阅',
            ny: tds.getString(i, 'ny'),
            pzh1: tds.getString(i, "pzh1"),
            pzh2: tds.getString(i, "pzh2"),
            pzs: tds.getInt(i, "c")


        });
    }

    //
    pz_yjdex_ds.executeAfterUpdate(`update  pz_yjd  set pzs= (select count(*) from  pz_yjd_pzh where gguid= ${gguid} ) where   id= ${gguid}  `);
    pz_yjdex_ds.update(true);


}


/**
 * 单据点击保存，前端所有的操作被转译成3种操作:insert , delete , update ,
 *  并且可以在  beforeBillSaveOnServer 中返回一些SQL语句，可以在afterBillSaveOnServer中返回一些SQL语句
 *
 * 系统分别在需要的数据库连接中执行这些语句 ， 当所有语句执行成功后，事件被提交。一些细节如下 ：
 *
 * 1 如果单据中的表，属于不同的数据库连接，那么所有的SQL语句会以连接为单位，对语句进行批量执行
 * 2 这些语句的执行顺序是：对同一个数据库连接中的语句， 先执行 beforeBillSaveOnServer 中返回的SQL语句，再执行单据操作转译得到的SQL语句，
 *   再执行 afterBillSaveOnServer 中返回的SQL语句， 当多个（或一个）数据库连接执行完这些语句，且没有错误时，所有的数据库连接做提交，否则全部回滚
 * 3 不要在 beforeBillSaveOnServer 或 afterBillSaveOnServer 中直接执行数据库操作，而是返回SQL语句，让系统批量执行它们，并控制好事务
 * 4 当执行成功后，系统再执行事件函数  afterBillSaveSuccessfulOnServer 。 此事件中可以执行任意操作，它与单据保存事件结束后才被触发执行，
 *   与单据保存并不在一个事务中。
 *
 *
 * @param gguid  要删除记录的gguid ，等同于主表的id
 * @param session  一个JSON对象，用于在整个单据保存过程中的各个事件之间传递数据。本事件做为单据保存的最后一个事件，session对象在使用后将被丢弃
 *
 *
 * @return 本函数不需要返回值
 *
 */
//@comment (group=单据保存,caption=单据保存成功后)
function afterBillSaveSuccessfulOnServer(gguid, session) {

    $back_build_sum(gguid);
}


id: 66bb0584993294a6b3485719
scriptid: 669dc6399932df22f60ce463
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:05:26.000
script:
function verifyGZL(gguid) {
    var count = getValueFromSQL2( "", `select count(0) from pz_yjd_pzh where gguid='${gguid}' and qsqx is not null and qsqx>0`  );
    println( 'verifyGZL count  ' + count ) 

    return count>0?'有凭证式延迟确认，不能提交结束工作流！':''
}

/**
 * 工作结束
 * @param flow 流程定义
 * @param node 开始节点
 * @param gguid 单据的gguid

 */
//@comment (group=工作流事件,caption=工作结束)
function onWorkFlowEnd(flow, node, gguid) {
    // println( flow.id) ; //流程定义的ID
    println(gguid + "工作结束了");
    runSQL("", ` update pz_yjd_pzh set state=1 where gguid='${gguid}' and  state=0`  );

    runSQL("", `UPDATE pzbmx a
            INNER JOIN  pz_yjdex b  inner join pz_yjd c on (b.gguid=c.gguid) 
             ON a.pzh  >= b.pzh1 and a.pzh<= b.pzh2 and b.gguid=${gguid}
            SET a.pos  = c.towhere , a.memo = c.summary , a.state_jy=0    ` , true);
}


function back_add_pzh(data) {
    var count = (data.pzh2 / 1) - (data.pzh1 / 1);


    var gguid = currentGUID();
    for (var i = 0; i <= count; i++) {
        var newid = newGuid();
        var pzh = (data.pzh1 / 1) + i;
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, ny, pzh, billtype) values ( ${newid} , ${gguid} , '${data.ny}', '${pzh}', '归还') `, true);
    }

    back_build_sum();
    return { success: true };

}

function back_import_pzh_data(data){

    var t = data.pzh.split(/[\s]/);
    for (var i = 0; i < t.length; i++) {
        var pzh = t[i].trim();
        if (pzh == '') continue;
        var newid = newGuid();
        var gguid = currentGUID();
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, ny, pzh, billtype ) values ( ${newid} , ${gguid} , '${data.ny}' , '${pzh}', '归还') `, true);
    }
    back_build_sum();
}

function back_import_pzh(s) {
    var t = s.split(/[\s]/);
    for (var i = 0; i < t.length; i++) {
        var pzh = t[i].trim();
        if (pzh == '') continue;
        var newid = newGuid();
        var gguid = currentGUID();
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, pzh ) values ( ${newid} , ${gguid} , '${pzh}') `, true);
    }
    back_build_sum();
}

//  根据凭证号清单生成凭证号汇总信息 
function back_build_sum() {
    var gguid = currentGUID();
    $back_build_sum(gguid);
}


function $back_build_sum(gguid) {


    var sql = `
            
        SELECT
            MAX( ny ) as ny , MIN( pzh ) as pzh1 ,   MAX( pzh )  AS  pzh2,
        COUNT(*) AS c 
        FROM
        (
            SELECT
            ny,
            pzh,
            CONCAT(ny, pzh) as ny_pzh,
            @group_id := IF( pzh  = @prev_number + 1, @group_id, @group_id + 1) AS group_id,
            @prev_number := pzh 
            FROM
            pz_yjd_pzh,
            (SELECT @group_id := 0, @prev_number := NULL) AS vars 
                    where  gguid= ${gguid}
            ORDER BY
            ny_pzh
        ) AS subquery
        GROUP BY
        group_id;
            
    ` ;

    println(sql);
    var tds = newDataStore("", sql);
    var n = tds.retrieve();

    runSQL("", `delete from  pz_yjdex where gguid= ${gguid} `, true);

    var pz_yjdex_ds = newDataStore("", "select * from pz_yjdex");
    pz_yjdex_ds.setUpdateProperty('pz_yjdex', 'id', '*', 'id');
    for (var i = 0; i < n; i++) {
        var row = pz_yjdex_ds.insertRow(9999);
        pz_yjdex_ds.setValue(row, {
            id: newGuid(), gguid: gguid, inner_xh: row + 1,
            billtype: '归还',
            ny: tds.getString(i, 'ny'),
            pzh1: tds.getString(i, "pzh1"),
            pzh2: tds.getString(i, "pzh2"),
            pzs: tds.getInt(i, "c")


        });
    }

    //
    pz_yjdex_ds.executeAfterUpdate(`update  pz_yjd  set pzs= (select count(*) from  pz_yjd_pzh where gguid= ${gguid} ) where   id= ${gguid}  `);
    pz_yjdex_ds.update(true);


}


/**
 * 单据点击保存，前端所有的操作被转译成3种操作:insert , delete , update ,
 *  并且可以在  beforeBillSaveOnServer 中返回一些SQL语句，可以在afterBillSaveOnServer中返回一些SQL语句
 *
 * 系统分别在需要的数据库连接中执行这些语句 ， 当所有语句执行成功后，事件被提交。一些细节如下 ：
 *
 * 1 如果单据中的表，属于不同的数据库连接，那么所有的SQL语句会以连接为单位，对语句进行批量执行
 * 2 这些语句的执行顺序是：对同一个数据库连接中的语句， 先执行 beforeBillSaveOnServer 中返回的SQL语句，再执行单据操作转译得到的SQL语句，
 *   再执行 afterBillSaveOnServer 中返回的SQL语句， 当多个（或一个）数据库连接执行完这些语句，且没有错误时，所有的数据库连接做提交，否则全部回滚
 * 3 不要在 beforeBillSaveOnServer 或 afterBillSaveOnServer 中直接执行数据库操作，而是返回SQL语句，让系统批量执行它们，并控制好事务
 * 4 当执行成功后，系统再执行事件函数  afterBillSaveSuccessfulOnServer 。 此事件中可以执行任意操作，它与单据保存事件结束后才被触发执行，
 *   与单据保存并不在一个事务中。
 *
 *
 * @param gguid  要删除记录的gguid ，等同于主表的id
 * @param session  一个JSON对象，用于在整个单据保存过程中的各个事件之间传递数据。本事件做为单据保存的最后一个事件，session对象在使用后将被丢弃
 *
 *
 * @return 本函数不需要返回值
 *
 */
//@comment (group=单据保存,caption=单据保存成功后)
function afterBillSaveSuccessfulOnServer(gguid, session) {

    $back_build_sum(gguid);
}


id: 66bb0584993294a6b348574e
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:07:01.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);


}


id: 66bb0628993294a6b348575e
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:07:21.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var ds = newDataStore("", "select * from dzpz_dy where id='" + gguid + "'");
    ds.retrieve();

    if (ds.getInt(0, 'pass') == 0) {
        println("拒绝调阅，强制结束");

        //递交结束
        var loopCount = 0;
        while (loopCount < 10) {
            loopCount++;
            println(gguid);
            var t = taskInfoForWork('dy', gguid);
            println(JSON.stringify(t));
            if (t.taskList.length == 0) break;
            //将任务递交下去，如果任务需要签收，则先签收     
            for (var i = 0; i < t.taskList.length; i++) {
                var task = t.taskList[i];

                //可以递交，那么递交下去
                if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
                //需要先签收 ，那么以第一个候选人签收它
                if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

            }


        }

    }

    return 'over';

}


id: 66bb0628993294a6b3485764
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:07:45.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var ds = newDataStore("", "select * from dzpz_dy where id='" + gguid + "'");
    ds.retrieve();

    if (ds.getInt(0, 'pass') == 0) {
        println("延长确认，自动确认");

        //递交结束
        var loopCount = 0;
        while (loopCount < 10) {
            loopCount++;
            println(gguid);
            var t = taskInfoForWork('dy', gguid);
            println(JSON.stringify(t));
            if (t.taskList.length == 0) break;
            //将任务递交下去，如果任务需要签收，则先签收     
            for (var i = 0; i < t.taskList.length; i++) {
                var task = t.taskList[i];

                //可以递交，那么递交下去
                if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
                //需要先签收 ，那么以第一个候选人签收它
                if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

            }


        }

    }

    return 'over';

}


id: 66bb0628993294a6b348576a
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:08:20.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var list = getListFromSQL2( '', `select * from `) 

    // if (ds.getInt(0, 'pass') == 0) {
    //     println("延长确认，自动确认");

    //     //递交结束
    //     var loopCount = 0;
    //     while (loopCount < 10) {
    //         loopCount++;
    //         println(gguid);
    //         var t = taskInfoForWork('dy', gguid);
    //         println(JSON.stringify(t));
    //         if (t.taskList.length == 0) break;
    //         //将任务递交下去，如果任务需要签收，则先签收     
    //         for (var i = 0; i < t.taskList.length; i++) {
    //             var task = t.taskList[i];

    //             //可以递交，那么递交下去
    //             if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
    //             //需要先签收 ，那么以第一个候选人签收它
    //             if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

    //         }


    //     }

    // }

    return 'over';

}


id: 66bb0628993294a6b3485771
scriptid: 662a47879932b5035f32efb0
tablename: app_template
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:10:05.000
script:
/**
 * 一个单据打开，
 * 1 先对类型为“表”的结果集做数据异步检索
 * 2 全部表检索完成之后，再执行 formOpen 事件
 * 3 再根据  actio 执行 newOpen/viewOpen/editOpen 之一
 * 4 再执行  afterOpen
 * 5 对类型为“结果集”的且需要自动检索的结果集，做异步检索
 * 6 异步检索完成后，最后执行  formOpenOver 事件
 */
//@comment (group=表单事件,caption=表单初始化全部完成之后)
function formOpenOver() {
    var data = $pz_yjd_ds.getJSON(0);
    // console.log(data)

    if(urlArgs.action=='view'){
        book.getWorkSheet('汇总').getBrick('cb_add_pz').visible = false;
        book.getWorkSheet('清单').getBrick('cb_import').visible = false;
        book.getWorkSheet('清单').getBrick('cb_buildsum').visible = false;

        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;


        book.getWorkSheet('清单').cells('qsqx').visible = false;
        book.getWorkSheet('清单').cells('qsqx').clickable = false;

        book.getWorkSheet('清单').cells('state').visible = false;
        book.getWorkSheet('清单').cells('state').clickable = false;
    }else{
        book.getWorkSheet('清单').cells('c_db_deleterow').visible = true;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = true;
    }

    if(data.flow_instance_status.indexOf('接收方签收确认')>0){
        book.getWorkSheet('清单').cells('qsqx').editable = true;
        book.getWorkSheet('清单').cells('state').editable = true;
        
        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;
    }

}


//@comment (group=按钮,caption=添加凭证号)
function cb_add_pz_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');

    sheet.cells('ny').setValue('');
    sheet.cells('pzh1').setValue('');
    sheet.cells('pzh2').setValue('');

    sheet.float('fa fa-cog', "添加凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 900, height: 400 });

}

//@comment (group=添加凭证号按钮,caption=取消)
function cb_cancel_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();
}

//@comment (group=添加凭证号按钮,caption=确认)
function cb_comfirn_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh1: sheet.cells('pzh1').getValue(),
        pzh2: sheet.cells('pzh2').getValue(),
    }

    if (data.pzh2 <= data.pzh1) {
        toastr.error('终止凭证号要比起始凭证号大');
        return false;
    }

    toastr.show("正在计算...");
    setTimeout(function () {
        back_add_pzh(data, function () {
            toastr.hide();
            toastr.info("导入完成");
            // $pz_yjd_ds.smartRetrieve();
            $pz_yjdex_ds.smartRetrieve();
            $pz_yjd_pzh_ds.smartRetrieve();
            $q_pz_yjd_pzh_ds.smartRetrieve();
        });
    }, 100);
}

function cb_import_onClick() {

    var sheet = book.getWorkSheet('导入凭证号');

    sheet.cells('ny').setValue('');
    sheet.cells('pzh').setValue('');

    sheet.float('fa fa-cog', "导入凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 500, height: 400 });


    // inputBox("提示", "请将凭证号粘贴在此", "", "", function (val) {
    //     toastr.show("正在计算...");
    //     setTimeout(function () {
    //         back_import_pzh(val, function () {
    //             toastr.hide();
    //             toastr.info("导入完成");
    //             $pz_yjd_ds.smartRetrieve();
    //             $pz_yjdex_ds.smartRetrieve();
    //             $pz_yjd_pzh_ds.smartRetrieve();
    //             $q_pz_yjd_pzh_ds.smartRetrieve();
    //         });
    //     }, 100);
    // }, false, {}, 10);
}


//@comment (group=导入凭证号按钮,caption=取消)
function cb_cancel2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();
}

//@comment (group=导入凭证号按钮,caption=确认)
function cb_comfirn2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh: sheet.cells('pzh').getValue(),
    }


    toastr.show("正在计算...");
    setTimeout(function () {
        back_import_pzh_data(data, function () {
            toastr.hide();
            toastr.info("导入完成");
            // $pz_yjd_ds.smartRetrieve();
            $pz_yjdex_ds.smartRetrieve();
            $pz_yjd_pzh_ds.smartRetrieve();
            $q_pz_yjd_pzh_ds.smartRetrieve();
        });
    }, 100);
}


function cb_buildsum_onClick() {
    form.save(false, function () {
        $confirm("提示", "确信要根据凭证号清单生成凭证号汇总信息吗?", function () {
            toastr.show("正在计算...");
            setTimeout(function () {
                back_build_sum(function () {
                    toastr.hide();
                    toastr.info("导入完成");
                    $pz_yjd_ds.smartRetrieve();
                    $pz_yjdex_ds.smartRetrieve();
                    $pz_yjd_pzh_ds.smartRetrieve();
                    $q_pz_yjd_pzh_ds.smartRetrieve();

                });
            }, 100);

        });
    });

}

/**
 * 单元格因为被编辑而改变。当用户通过编辑单元的值而让单元格发生值改变时本事件被触发。
 * 注意，当使用脚本 sheet.cells(row,col).setValue ( value) 来改变单元格的值时，本事件并不触发
 * @param sheet
 * @param cell
 * @param newValue
 * @param innerRow   当单元格没有绑定数据库或绑定到单行数据库时，本参数无意义。如果绑定一个
 * 多行数据库，则表示该单元所绑定的字段的第 innerRow行发生变化
 */
function cellValueChangedByEdit(sheet, cell, newValue, innerRow) {

    //通过别名来判断
    if (cell.alias == 'XXX') {

    }

    //通过数据库绑定情况来判断
    let bind= cell.bind;
    if( bind!=null &&  bind.dataSource=='pz_yjd_pzh' && bind.DBCol=='qsqx'){
        var qsqx = $pz_yjd_ds.getValue(0, 'qsqx');

        if(qsqx<newValue){
            $pz_yjd_ds.setValue(0, 'qsqx', newValue);
        }

    }


}


id: 66bb0628993294a6b3485775
scriptid: 662a47879932b5035f32efb0
tablename: app_template
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:10:38.000
script:
/**
 * 一个单据打开，
 * 1 先对类型为“表”的结果集做数据异步检索
 * 2 全部表检索完成之后，再执行 formOpen 事件
 * 3 再根据  actio 执行 newOpen/viewOpen/editOpen 之一
 * 4 再执行  afterOpen
 * 5 对类型为“结果集”的且需要自动检索的结果集，做异步检索
 * 6 异步检索完成后，最后执行  formOpenOver 事件
 */
//@comment (group=表单事件,caption=表单初始化全部完成之后)
function formOpenOver() {
    var data = $pz_yjd_ds.getJSON(0);
    // console.log(data)

    if(urlArgs.action=='view'){
        book.getWorkSheet('汇总').getBrick('cb_add_pz').visible = false;
        book.getWorkSheet('清单').getBrick('cb_import').visible = false;
        book.getWorkSheet('清单').getBrick('cb_buildsum').visible = false;

        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;


        book.getWorkSheet('清单').cells('qsqx').visible = false;
        book.getWorkSheet('清单').cells('qsqx').clickable = false;

        book.getWorkSheet('清单').cells('state').visible = false;
        book.getWorkSheet('清单').cells('state').clickable = false;
    }else{
        book.getWorkSheet('清单').cells('c_db_deleterow').visible = true;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = true;
    }

    if(data.flow_instance_status.indexOf('接收方签收确认')>0){
        book.getWorkSheet('清单').cells('qsqx').editable = true;
        book.getWorkSheet('清单').cells('state').editable = true;
        
        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;
    }

}


//@comment (group=按钮,caption=添加凭证号)
function cb_add_pz_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');

    sheet.cells('ny').setValue('');
    sheet.cells('pzh1').setValue('');
    sheet.cells('pzh2').setValue('');

    sheet.float('fa fa-cog', "添加凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 900, height: 400 });

}

//@comment (group=添加凭证号按钮,caption=取消)
function cb_cancel_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();
}

//@comment (group=添加凭证号按钮,caption=确认)
function cb_comfirn_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh1: sheet.cells('pzh1').getValue(),
        pzh2: sheet.cells('pzh2').getValue(),
    }

    if (data.pzh2 <= data.pzh1) {
        toastr.error('终止凭证号要比起始凭证号大');
        return false;
    }

    toastr.show("正在计算...");
    setTimeout(function () {
        back_add_pzh(data, function () {
            toastr.hide();
            toastr.info("导入完成");
            // $pz_yjd_ds.smartRetrieve();
            $pz_yjdex_ds.smartRetrieve();
            $pz_yjd_pzh_ds.smartRetrieve();
            $q_pz_yjd_pzh_ds.smartRetrieve();
        });
    }, 100);
}

function cb_import_onClick() {

    var sheet = book.getWorkSheet('导入凭证号');

    sheet.cells('ny').setValue('');
    sheet.cells('pzh').setValue('');

    sheet.float('fa fa-cog', "导入凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 500, height: 400 });


    // inputBox("提示", "请将凭证号粘贴在此", "", "", function (val) {
    //     toastr.show("正在计算...");
    //     setTimeout(function () {
    //         back_import_pzh(val, function () {
    //             toastr.hide();
    //             toastr.info("导入完成");
    //             $pz_yjd_ds.smartRetrieve();
    //             $pz_yjdex_ds.smartRetrieve();
    //             $pz_yjd_pzh_ds.smartRetrieve();
    //             $q_pz_yjd_pzh_ds.smartRetrieve();
    //         });
    //     }, 100);
    // }, false, {}, 10);
}


//@comment (group=导入凭证号按钮,caption=取消)
function cb_cancel2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();
}

//@comment (group=导入凭证号按钮,caption=确认)
function cb_comfirn2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh: sheet.cells('pzh').getValue(),
    }


    toastr.show("正在计算...");
    setTimeout(function () {
        back_import_pzh_data(data, function () {
            toastr.hide();
            toastr.info("导入完成");
            // $pz_yjd_ds.smartRetrieve();
            $pz_yjdex_ds.smartRetrieve();
            $pz_yjd_pzh_ds.smartRetrieve();
            $q_pz_yjd_pzh_ds.smartRetrieve();
        });
    }, 100);
}


function cb_buildsum_onClick() {
    form.save(false, function () {
        $confirm("提示", "确信要根据凭证号清单生成凭证号汇总信息吗?", function () {
            toastr.show("正在计算...");
            setTimeout(function () {
                back_build_sum(function () {
                    toastr.hide();
                    toastr.info("导入完成");
                    $pz_yjd_ds.smartRetrieve();
                    $pz_yjdex_ds.smartRetrieve();
                    $pz_yjd_pzh_ds.smartRetrieve();
                    $q_pz_yjd_pzh_ds.smartRetrieve();

                });
            }, 100);

        });
    });

}

/**
 * 单元格因为被编辑而改变。当用户通过编辑单元的值而让单元格发生值改变时本事件被触发。
 * 注意，当使用脚本 sheet.cells(row,col).setValue ( value) 来改变单元格的值时，本事件并不触发
 * @param sheet
 * @param cell
 * @param newValue
 * @param innerRow   当单元格没有绑定数据库或绑定到单行数据库时，本参数无意义。如果绑定一个
 * 多行数据库，则表示该单元所绑定的字段的第 innerRow行发生变化
 */
function cellValueChangedByEdit(sheet, cell, newValue, innerRow) {

    //通过别名来判断
    if (cell.alias == 'XXX') {

    }

    //通过数据库绑定情况来判断
    let bind= cell.bind;
    if( bind!=null &&  bind.dataSource=='pz_yjd_pzh' && bind.DBCol=='qsqx'){
        var qsqx = $pz_yjd_ds.getValue(0, 'qsqx');
        console.log(qsqx < newValue)
        if(qsqx < newValue){
            $pz_yjd_ds.setValue(0, 'qsqx', newValue);
        }

    }


}


id: 66bb0628993294a6b3485779
scriptid: 662a47879932b5035f32efb0
tablename: app_template
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:10:43.000
script:
/**
 * 一个单据打开，
 * 1 先对类型为“表”的结果集做数据异步检索
 * 2 全部表检索完成之后，再执行 formOpen 事件
 * 3 再根据  actio 执行 newOpen/viewOpen/editOpen 之一
 * 4 再执行  afterOpen
 * 5 对类型为“结果集”的且需要自动检索的结果集，做异步检索
 * 6 异步检索完成后，最后执行  formOpenOver 事件
 */
//@comment (group=表单事件,caption=表单初始化全部完成之后)
function formOpenOver() {
    var data = $pz_yjd_ds.getJSON(0);
    // console.log(data)

    if(urlArgs.action=='view'){
        book.getWorkSheet('汇总').getBrick('cb_add_pz').visible = false;
        book.getWorkSheet('清单').getBrick('cb_import').visible = false;
        book.getWorkSheet('清单').getBrick('cb_buildsum').visible = false;

        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;


        book.getWorkSheet('清单').cells('qsqx').visible = false;
        book.getWorkSheet('清单').cells('qsqx').clickable = false;

        book.getWorkSheet('清单').cells('state').visible = false;
        book.getWorkSheet('清单').cells('state').clickable = false;
    }else{
        book.getWorkSheet('清单').cells('c_db_deleterow').visible = true;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = true;
    }

    if(data.flow_instance_status.indexOf('接收方签收确认')>0){
        book.getWorkSheet('清单').cells('qsqx').editable = true;
        book.getWorkSheet('清单').cells('state').editable = true;
        
        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;
    }

}


//@comment (group=按钮,caption=添加凭证号)
function cb_add_pz_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');

    sheet.cells('ny').setValue('');
    sheet.cells('pzh1').setValue('');
    sheet.cells('pzh2').setValue('');

    sheet.float('fa fa-cog', "添加凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 900, height: 400 });

}

//@comment (group=添加凭证号按钮,caption=取消)
function cb_cancel_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();
}

//@comment (group=添加凭证号按钮,caption=确认)
function cb_comfirn_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh1: sheet.cells('pzh1').getValue(),
        pzh2: sheet.cells('pzh2').getValue(),
    }

    if (data.pzh2 <= data.pzh1) {
        toastr.error('终止凭证号要比起始凭证号大');
        return false;
    }

    toastr.show("正在计算...");
    setTimeout(function () {
        back_add_pzh(data, function () {
            toastr.hide();
            toastr.info("导入完成");
            // $pz_yjd_ds.smartRetrieve();
            $pz_yjdex_ds.smartRetrieve();
            $pz_yjd_pzh_ds.smartRetrieve();
            $q_pz_yjd_pzh_ds.smartRetrieve();
        });
    }, 100);
}

function cb_import_onClick() {

    var sheet = book.getWorkSheet('导入凭证号');

    sheet.cells('ny').setValue('');
    sheet.cells('pzh').setValue('');

    sheet.float('fa fa-cog', "导入凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 500, height: 400 });


    // inputBox("提示", "请将凭证号粘贴在此", "", "", function (val) {
    //     toastr.show("正在计算...");
    //     setTimeout(function () {
    //         back_import_pzh(val, function () {
    //             toastr.hide();
    //             toastr.info("导入完成");
    //             $pz_yjd_ds.smartRetrieve();
    //             $pz_yjdex_ds.smartRetrieve();
    //             $pz_yjd_pzh_ds.smartRetrieve();
    //             $q_pz_yjd_pzh_ds.smartRetrieve();
    //         });
    //     }, 100);
    // }, false, {}, 10);
}


//@comment (group=导入凭证号按钮,caption=取消)
function cb_cancel2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();
}

//@comment (group=导入凭证号按钮,caption=确认)
function cb_comfirn2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh: sheet.cells('pzh').getValue(),
    }


    toastr.show("正在计算...");
    setTimeout(function () {
        back_import_pzh_data(data, function () {
            toastr.hide();
            toastr.info("导入完成");
            // $pz_yjd_ds.smartRetrieve();
            $pz_yjdex_ds.smartRetrieve();
            $pz_yjd_pzh_ds.smartRetrieve();
            $q_pz_yjd_pzh_ds.smartRetrieve();
        });
    }, 100);
}


function cb_buildsum_onClick() {
    form.save(false, function () {
        $confirm("提示", "确信要根据凭证号清单生成凭证号汇总信息吗?", function () {
            toastr.show("正在计算...");
            setTimeout(function () {
                back_build_sum(function () {
                    toastr.hide();
                    toastr.info("导入完成");
                    $pz_yjd_ds.smartRetrieve();
                    $pz_yjdex_ds.smartRetrieve();
                    $pz_yjd_pzh_ds.smartRetrieve();
                    $q_pz_yjd_pzh_ds.smartRetrieve();

                });
            }, 100);

        });
    });

}

/**
 * 单元格因为被编辑而改变。当用户通过编辑单元的值而让单元格发生值改变时本事件被触发。
 * 注意，当使用脚本 sheet.cells(row,col).setValue ( value) 来改变单元格的值时，本事件并不触发
 * @param sheet
 * @param cell
 * @param newValue
 * @param innerRow   当单元格没有绑定数据库或绑定到单行数据库时，本参数无意义。如果绑定一个
 * 多行数据库，则表示该单元所绑定的字段的第 innerRow行发生变化
 */
function cellValueChangedByEdit(sheet, cell, newValue, innerRow) {

    //通过别名来判断
    if (cell.alias == 'XXX') {

    }

    //通过数据库绑定情况来判断
    let bind= cell.bind;
    if( bind!=null &&  bind.dataSource=='pz_yjd_pzh' && bind.DBCol=='qsqx'){
        var qsqx = $pz_yjd_ds.getValue(0, 'qsqx');
        console.log(qsqx < newValue, qsqx, newValue)
        if(qsqx < newValue){
            $pz_yjd_ds.setValue(0, 'qsqx', newValue);
        }

    }


}


id: 66bb0628993294a6b348577d
scriptid: 662a47879932b5035f32efb0
tablename: app_template
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:11:20.000
script:
/**
 * 一个单据打开，
 * 1 先对类型为“表”的结果集做数据异步检索
 * 2 全部表检索完成之后，再执行 formOpen 事件
 * 3 再根据  actio 执行 newOpen/viewOpen/editOpen 之一
 * 4 再执行  afterOpen
 * 5 对类型为“结果集”的且需要自动检索的结果集，做异步检索
 * 6 异步检索完成后，最后执行  formOpenOver 事件
 */
//@comment (group=表单事件,caption=表单初始化全部完成之后)
function formOpenOver() {
    var data = $pz_yjd_ds.getJSON(0);
    // console.log(data)

    if(urlArgs.action=='view'){
        book.getWorkSheet('汇总').getBrick('cb_add_pz').visible = false;
        book.getWorkSheet('清单').getBrick('cb_import').visible = false;
        book.getWorkSheet('清单').getBrick('cb_buildsum').visible = false;

        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;


        book.getWorkSheet('清单').cells('qsqx').visible = false;
        book.getWorkSheet('清单').cells('qsqx').clickable = false;

        book.getWorkSheet('清单').cells('state').visible = false;
        book.getWorkSheet('清单').cells('state').clickable = false;
    }else{
        book.getWorkSheet('清单').cells('c_db_deleterow').visible = true;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = true;
    }

    if(data.flow_instance_status.indexOf('接收方签收确认')>0){
        book.getWorkSheet('清单').cells('qsqx').editable = true;
        book.getWorkSheet('清单').cells('state').editable = true;
        
        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;
    }

}


//@comment (group=按钮,caption=添加凭证号)
function cb_add_pz_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');

    sheet.cells('ny').setValue('');
    sheet.cells('pzh1').setValue('');
    sheet.cells('pzh2').setValue('');

    sheet.float('fa fa-cog', "添加凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 900, height: 400 });

}

//@comment (group=添加凭证号按钮,caption=取消)
function cb_cancel_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();
}

//@comment (group=添加凭证号按钮,caption=确认)
function cb_comfirn_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh1: sheet.cells('pzh1').getValue(),
        pzh2: sheet.cells('pzh2').getValue(),
    }

    if (data.pzh2 <= data.pzh1) {
        toastr.error('终止凭证号要比起始凭证号大');
        return false;
    }

    toastr.show("正在计算...");
    setTimeout(function () {
        back_add_pzh(data, function () {
            toastr.hide();
            toastr.info("导入完成");
            // $pz_yjd_ds.smartRetrieve();
            $pz_yjdex_ds.smartRetrieve();
            $pz_yjd_pzh_ds.smartRetrieve();
            $q_pz_yjd_pzh_ds.smartRetrieve();
        });
    }, 100);
}

function cb_import_onClick() {

    var sheet = book.getWorkSheet('导入凭证号');

    sheet.cells('ny').setValue('');
    sheet.cells('pzh').setValue('');

    sheet.float('fa fa-cog', "导入凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 500, height: 400 });


    // inputBox("提示", "请将凭证号粘贴在此", "", "", function (val) {
    //     toastr.show("正在计算...");
    //     setTimeout(function () {
    //         back_import_pzh(val, function () {
    //             toastr.hide();
    //             toastr.info("导入完成");
    //             $pz_yjd_ds.smartRetrieve();
    //             $pz_yjdex_ds.smartRetrieve();
    //             $pz_yjd_pzh_ds.smartRetrieve();
    //             $q_pz_yjd_pzh_ds.smartRetrieve();
    //         });
    //     }, 100);
    // }, false, {}, 10);
}


//@comment (group=导入凭证号按钮,caption=取消)
function cb_cancel2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();
}

//@comment (group=导入凭证号按钮,caption=确认)
function cb_comfirn2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh: sheet.cells('pzh').getValue(),
    }


    toastr.show("正在计算...");
    setTimeout(function () {
        back_import_pzh_data(data, function () {
            toastr.hide();
            toastr.info("导入完成");
            // $pz_yjd_ds.smartRetrieve();
            $pz_yjdex_ds.smartRetrieve();
            $pz_yjd_pzh_ds.smartRetrieve();
            $q_pz_yjd_pzh_ds.smartRetrieve();
        });
    }, 100);
}


function cb_buildsum_onClick() {
    form.save(false, function () {
        $confirm("提示", "确信要根据凭证号清单生成凭证号汇总信息吗?", function () {
            toastr.show("正在计算...");
            setTimeout(function () {
                back_build_sum(function () {
                    toastr.hide();
                    toastr.info("导入完成");
                    $pz_yjd_ds.smartRetrieve();
                    $pz_yjdex_ds.smartRetrieve();
                    $pz_yjd_pzh_ds.smartRetrieve();
                    $q_pz_yjd_pzh_ds.smartRetrieve();

                });
            }, 100);

        });
    });

}

/**
 * 单元格因为被编辑而改变。当用户通过编辑单元的值而让单元格发生值改变时本事件被触发。
 * 注意，当使用脚本 sheet.cells(row,col).setValue ( value) 来改变单元格的值时，本事件并不触发
 * @param sheet
 * @param cell
 * @param newValue
 * @param innerRow   当单元格没有绑定数据库或绑定到单行数据库时，本参数无意义。如果绑定一个
 * 多行数据库，则表示该单元所绑定的字段的第 innerRow行发生变化
 */
function cellValueChangedByEdit(sheet, cell, newValue, innerRow) {

    //通过别名来判断
    if (cell.alias == 'XXX') {

    }

console.log(cell)
    //通过数据库绑定情况来判断
    let bind= cell.bind;
    if( bind!=null &&  bind.dataSource=='pz_yjd_pzh' && bind.DBCol=='qsqx'){
        var qsqx = $pz_yjd_ds.getValue(0, 'qsqx');
        console.log(qsqx < newValue, qsqx, newValue)
        if(qsqx < newValue){
            $pz_yjd_ds.setValue(0, 'qsqx', newValue);
        }

    }


}


id: 66bb0628993294a6b34857b9
scriptid: 662a47879932b5035f32efb0
tablename: app_template
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:12:57.000
script:
/**
 * 一个单据打开，
 * 1 先对类型为“表”的结果集做数据异步检索
 * 2 全部表检索完成之后，再执行 formOpen 事件
 * 3 再根据  actio 执行 newOpen/viewOpen/editOpen 之一
 * 4 再执行  afterOpen
 * 5 对类型为“结果集”的且需要自动检索的结果集，做异步检索
 * 6 异步检索完成后，最后执行  formOpenOver 事件
 */
//@comment (group=表单事件,caption=表单初始化全部完成之后)
function formOpenOver() {
    var data = $pz_yjd_ds.getJSON(0);
    // console.log(data)

    if(urlArgs.action=='view'){
        book.getWorkSheet('汇总').getBrick('cb_add_pz').visible = false;
        book.getWorkSheet('清单').getBrick('cb_import').visible = false;
        book.getWorkSheet('清单').getBrick('cb_buildsum').visible = false;

        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;


        book.getWorkSheet('清单').cells('qsqx').visible = false;
        book.getWorkSheet('清单').cells('qsqx').clickable = false;

        book.getWorkSheet('清单').cells('state').visible = false;
        book.getWorkSheet('清单').cells('state').clickable = false;
    }else{
        book.getWorkSheet('清单').cells('c_db_deleterow').visible = true;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = true;
    }

    if(data.flow_instance_status.indexOf('接收方签收确认')>0){
        book.getWorkSheet('清单').cells('qsqx').editable = true;
        book.getWorkSheet('清单').cells('state').editable = true;
        
        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;
    }

}


//@comment (group=按钮,caption=添加凭证号)
function cb_add_pz_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');

    sheet.cells('ny').setValue('');
    sheet.cells('pzh1').setValue('');
    sheet.cells('pzh2').setValue('');

    sheet.float('fa fa-cog', "添加凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 900, height: 400 });

}

//@comment (group=添加凭证号按钮,caption=取消)
function cb_cancel_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();
}

//@comment (group=添加凭证号按钮,caption=确认)
function cb_comfirn_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh1: sheet.cells('pzh1').getValue(),
        pzh2: sheet.cells('pzh2').getValue(),
    }

    if (data.pzh2 <= data.pzh1) {
        toastr.error('终止凭证号要比起始凭证号大');
        return false;
    }

    toastr.show("正在计算...");
    setTimeout(function () {
        back_add_pzh(data, function () {
            toastr.hide();
            toastr.info("导入完成");
            // $pz_yjd_ds.smartRetrieve();
            $pz_yjdex_ds.smartRetrieve();
            $pz_yjd_pzh_ds.smartRetrieve();
            $q_pz_yjd_pzh_ds.smartRetrieve();
        });
    }, 100);
}

function cb_import_onClick() {

    var sheet = book.getWorkSheet('导入凭证号');

    sheet.cells('ny').setValue('');
    sheet.cells('pzh').setValue('');

    sheet.float('fa fa-cog', "导入凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 500, height: 400 });


    // inputBox("提示", "请将凭证号粘贴在此", "", "", function (val) {
    //     toastr.show("正在计算...");
    //     setTimeout(function () {
    //         back_import_pzh(val, function () {
    //             toastr.hide();
    //             toastr.info("导入完成");
    //             $pz_yjd_ds.smartRetrieve();
    //             $pz_yjdex_ds.smartRetrieve();
    //             $pz_yjd_pzh_ds.smartRetrieve();
    //             $q_pz_yjd_pzh_ds.smartRetrieve();
    //         });
    //     }, 100);
    // }, false, {}, 10);
}


//@comment (group=导入凭证号按钮,caption=取消)
function cb_cancel2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();
}

//@comment (group=导入凭证号按钮,caption=确认)
function cb_comfirn2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh: sheet.cells('pzh').getValue(),
    }


    toastr.show("正在计算...");
    setTimeout(function () {
        back_import_pzh_data(data, function () {
            toastr.hide();
            toastr.info("导入完成");
            // $pz_yjd_ds.smartRetrieve();
            $pz_yjdex_ds.smartRetrieve();
            $pz_yjd_pzh_ds.smartRetrieve();
            $q_pz_yjd_pzh_ds.smartRetrieve();
        });
    }, 100);
}


function cb_buildsum_onClick() {
    form.save(false, function () {
        $confirm("提示", "确信要根据凭证号清单生成凭证号汇总信息吗?", function () {
            toastr.show("正在计算...");
            setTimeout(function () {
                back_build_sum(function () {
                    toastr.hide();
                    toastr.info("导入完成");
                    $pz_yjd_ds.smartRetrieve();
                    $pz_yjdex_ds.smartRetrieve();
                    $pz_yjd_pzh_ds.smartRetrieve();
                    $q_pz_yjd_pzh_ds.smartRetrieve();

                });
            }, 100);

        });
    });

}

/**
 * 单元格因为被编辑而改变。当用户通过编辑单元的值而让单元格发生值改变时本事件被触发。
 * 注意，当使用脚本 sheet.cells(row,col).setValue ( value) 来改变单元格的值时，本事件并不触发
 * @param sheet
 * @param cell
 * @param newValue
 * @param innerRow   当单元格没有绑定数据库或绑定到单行数据库时，本参数无意义。如果绑定一个
 * 多行数据库，则表示该单元所绑定的字段的第 innerRow行发生变化
 */
function cellValueChangedByEdit(sheet, cell, newValue, innerRow) {

    //通过别名来判断
    if (cell.alias == 'XXX') {

    }

console.log(cell)
    //通过数据库绑定情况来判断
    let bind= cell.bind;
    if( bind!=null &&  bind.dataSource=='q_pz_yjd_pzh' && bind.DBCol=='qsqx'){
        var qsqx = $pz_yjd_ds.getValue(0, 'qsqx');
        console.log(qsqx < newValue, qsqx, newValue)
        if(qsqx < newValue){
            $pz_yjd_ds.setValue(0, 'qsqx', newValue);
        }

    }


}


id: 66bb0628993294a6b34857be
scriptid: 662a47879932b5035f32efb0
tablename: app_template
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:16:00.000
script:
/**
 * 一个单据打开，
 * 1 先对类型为“表”的结果集做数据异步检索
 * 2 全部表检索完成之后，再执行 formOpen 事件
 * 3 再根据  actio 执行 newOpen/viewOpen/editOpen 之一
 * 4 再执行  afterOpen
 * 5 对类型为“结果集”的且需要自动检索的结果集，做异步检索
 * 6 异步检索完成后，最后执行  formOpenOver 事件
 */
//@comment (group=表单事件,caption=表单初始化全部完成之后)
function formOpenOver() {
    var data = $pz_yjd_ds.getJSON(0);
    // console.log(data)

    if(urlArgs.action=='view'){
        book.getWorkSheet('汇总').getBrick('cb_add_pz').visible = false;
        book.getWorkSheet('清单').getBrick('cb_import').visible = false;
        book.getWorkSheet('清单').getBrick('cb_buildsum').visible = false;

        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;


        book.getWorkSheet('清单').cells('qsqx').visible = false;
        book.getWorkSheet('清单').cells('qsqx').clickable = false;

        book.getWorkSheet('清单').cells('state').visible = false;
        book.getWorkSheet('清单').cells('state').clickable = false;
    }else{
        book.getWorkSheet('清单').cells('c_db_deleterow').visible = true;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = true;
    }

    if(data.flow_instance_status.indexOf('接收方签收确认')>0){
        book.getWorkSheet('清单').cells('qsqx').editable = true;
        book.getWorkSheet('清单').cells('state').editable = true;
        
        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;
    }

}


//@comment (group=按钮,caption=添加凭证号)
function cb_add_pz_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');

    sheet.cells('ny').setValue('');
    sheet.cells('pzh1').setValue('');
    sheet.cells('pzh2').setValue('');

    sheet.float('fa fa-cog', "添加凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 900, height: 400 });

}

//@comment (group=添加凭证号按钮,caption=取消)
function cb_cancel_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();
}

//@comment (group=添加凭证号按钮,caption=确认)
function cb_comfirn_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh1: sheet.cells('pzh1').getValue(),
        pzh2: sheet.cells('pzh2').getValue(),
    }

    if (data.pzh2 <= data.pzh1) {
        toastr.error('终止凭证号要比起始凭证号大');
        return false;
    }

    toastr.show("正在计算...");
    setTimeout(function () {
        back_add_pzh(data, function () {
            toastr.hide();
            toastr.info("导入完成");
            // $pz_yjd_ds.smartRetrieve();
            $pz_yjdex_ds.smartRetrieve();
            $pz_yjd_pzh_ds.smartRetrieve();
            $q_pz_yjd_pzh_ds.smartRetrieve();
        });
    }, 100);
}

function cb_import_onClick() {

    var sheet = book.getWorkSheet('导入凭证号');

    sheet.cells('ny').setValue('');
    sheet.cells('pzh').setValue('');

    sheet.float('fa fa-cog', "导入凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 500, height: 400 });


    // inputBox("提示", "请将凭证号粘贴在此", "", "", function (val) {
    //     toastr.show("正在计算...");
    //     setTimeout(function () {
    //         back_import_pzh(val, function () {
    //             toastr.hide();
    //             toastr.info("导入完成");
    //             $pz_yjd_ds.smartRetrieve();
    //             $pz_yjdex_ds.smartRetrieve();
    //             $pz_yjd_pzh_ds.smartRetrieve();
    //             $q_pz_yjd_pzh_ds.smartRetrieve();
    //         });
    //     }, 100);
    // }, false, {}, 10);
}


//@comment (group=导入凭证号按钮,caption=取消)
function cb_cancel2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();
}

//@comment (group=导入凭证号按钮,caption=确认)
function cb_comfirn2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh: sheet.cells('pzh').getValue(),
    }


    toastr.show("正在计算...");
    setTimeout(function () {
        back_import_pzh_data(data, function () {
            toastr.hide();
            toastr.info("导入完成");
            // $pz_yjd_ds.smartRetrieve();
            $pz_yjdex_ds.smartRetrieve();
            $pz_yjd_pzh_ds.smartRetrieve();
            $q_pz_yjd_pzh_ds.smartRetrieve();
        });
    }, 100);
}


function cb_buildsum_onClick() {
    form.save(false, function () {
        $confirm("提示", "确信要根据凭证号清单生成凭证号汇总信息吗?", function () {
            toastr.show("正在计算...");
            setTimeout(function () {
                back_build_sum(function () {
                    toastr.hide();
                    toastr.info("导入完成");
                    $pz_yjd_ds.smartRetrieve();
                    $pz_yjdex_ds.smartRetrieve();
                    $pz_yjd_pzh_ds.smartRetrieve();
                    $q_pz_yjd_pzh_ds.smartRetrieve();

                });
            }, 100);

        });
    });

}

/**
 * 单元格因为被编辑而改变。当用户通过编辑单元的值而让单元格发生值改变时本事件被触发。
 * 注意，当使用脚本 sheet.cells(row,col).setValue ( value) 来改变单元格的值时，本事件并不触发
 * @param sheet
 * @param cell
 * @param newValue
 * @param innerRow   当单元格没有绑定数据库或绑定到单行数据库时，本参数无意义。如果绑定一个
 * 多行数据库，则表示该单元所绑定的字段的第 innerRow行发生变化
 */
function cellValueChangedByEdit(sheet, cell, newValue, innerRow) {

    //通过别名来判断
    if (cell.alias == 'XXX') {

    }

console.log(cell)
    //通过数据库绑定情况来判断
    let bind= cell.bind;
    if( bind!=null &&  bind.dataSource=='q_pz_yjd_pzh' && bind.DBCol=='qsqx'){
        var qsqx = $pz_yjd_ds.getValue(0, 'qsqx');
        console.log(qsqx < newValue, qsqx, newValue)
        if(qsqx < newValue){
            $pz_yjd_ds.setValue(0, 'qsqx', newValue);
        }

        var row = book.getDataSource("q_pz_yjd_pzh").currentBindRow;
        var pzh_data = $q_pz_yjd_pzh_ds.getJSON(row);
        

    }


}


id: 66bb082f993294a6b34857c4
scriptid: 662a47879932b5035f32efab
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:18:50.000
script:
function verifyGZL(gguid) {
    var count = getValueFromSQL2( "", `select count(0) from pz_yjd_pzh where gguid='${gguid}' and qsqx is not null and qsqx>0`  );
    println( 'verifyGZL count  ' + count ) 

    return count>0?'有凭证式延迟确认，不能提交结束工作流！':''
}

function back_update_pzh(data){
    
    var ds = newDataStore("", `select * from pz_yjd_pzh where id='${data.id}'`);
    ds.retrieve();
    println("select : " + ds.getSelectLastRetrieved())
    var count = ds.getRowCount();
    println('count: ' + count)
    ds.setUpdateProperty('pz_yjd_pzh', 'id', '*', 'id'); 
}


/**
 * 工作结束
 * @param flow 流程定义
 * @param node 开始节点
 * @param gguid 单据的gguid

 */
//@comment (group=工作流事件,caption=工作结束)
function onWorkFlowEnd(flow, node, gguid) {
    // println( flow.id) ; //流程定义的ID
    println(gguid + "工作结束了");

    runSQL("", ` update pz_yjd_pzh set state=1 where gguid='${gguid}' and  state=0`);

    runSQL("", `UPDATE pzbmx a
            INNER JOIN  pz_yjdex b  inner join pz_yjd c on (b.gguid=c.gguid) 
             ON a.pzh  >= b.pzh1 and a.pzh<= b.pzh2 and b.gguid=${gguid}
            SET a.pos  = c.towhere , a.memo = c.summary , a.state_jb=0, a.state_jy=0   ` , true);
}


function back_add_pzh(data) {
    var count = (data.pzh2 / 1) - (data.pzh1 / 1);


    var gguid = currentGUID();
    for (var i = 0; i <= count; i++) {
        var newid = newGuid();
        var pzh = (data.pzh1 / 1) + i;
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, ny, pzh, billtype) values ( ${newid} , ${gguid} , '${data.ny}', '${pzh}', '交办') `, true);
    }

    back_build_sum();
    return { success: true };

}

function back_import_pzh_data(data) {

    var t = data.pzh.split(/[\s]/);
    for (var i = 0; i < t.length; i++) {
        var pzh = t[i].trim();
        if (pzh == '') continue;
        var newid = newGuid();
        var gguid = currentGUID();
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, ny, pzh, billtype ) values ( ${newid} , ${gguid} , '${data.ny}' , '${pzh}', '交办') `, true);
    }
    back_build_sum();
}

function back_import_pzh(s) {
    var t = s.split(/[\s]/);
    for (var i = 0; i < t.length; i++) {
        var pzh = t[i].trim();
        if (pzh == '') continue;
        var newid = newGuid();
        var gguid = currentGUID();
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, pzh ) values ( ${newid} , ${gguid} , '${pzh}') `, true);
    }
    back_build_sum();
}

//  根据凭证号清单生成凭证号汇总信息 
function back_build_sum() {
    var gguid = currentGUID();
    $back_build_sum(gguid);
}


function $back_build_sum(gguid) {


    var sql = `
            
        SELECT
            MAX( ny ) as ny , MIN( pzh ) as pzh1 ,   MAX( pzh )  AS  pzh2,
        COUNT(*) AS c 
        FROM
        (
            SELECT
            ny,
            pzh,
            CONCAT(ny, pzh) as ny_pzh,
            @group_id := IF( pzh  = @prev_number + 1, @group_id, @group_id + 1) AS group_id,
            @prev_number := pzh 
            FROM
            pz_yjd_pzh,
            (SELECT @group_id := 0, @prev_number := NULL) AS vars 
                    where  gguid= ${gguid}
            ORDER BY
            ny_pzh 
        ) AS subquery
        GROUP BY
        group_id;
            
    ` ;

    println(sql);
    var tds = newDataStore("", sql);
    var n = tds.retrieve();

    runSQL("", `delete from  pz_yjdex where gguid= ${gguid} `, true);

    var pz_yjdex_ds = newDataStore("", "select * from pz_yjdex");
    pz_yjdex_ds.setUpdateProperty('pz_yjdex', 'id', '*', 'id');
    for (var i = 0; i < n; i++) {
        var row = pz_yjdex_ds.insertRow(9999);
        pz_yjdex_ds.setValue(row, {
            id: newGuid(), gguid: gguid, inner_xh: row + 1,
            billtype: '交办',
            ny: tds.getString(i, 'ny'),
            pzh1: tds.getString(i, "pzh1"),
            pzh2: tds.getString(i, "pzh2"),
            pzs: tds.getInt(i, "c")


        });
    }

    //
    pz_yjdex_ds.executeAfterUpdate(`update  pz_yjd  set pzs= (select count(*) from  pz_yjd_pzh where gguid= ${gguid} ) where   id= ${gguid}  `);
    pz_yjdex_ds.update(true);


}


/**
 * 单据点击保存，前端所有的操作被转译成3种操作:insert , delete , update ,
 *  并且可以在  beforeBillSaveOnServer 中返回一些SQL语句，可以在afterBillSaveOnServer中返回一些SQL语句
 *
 * 系统分别在需要的数据库连接中执行这些语句 ， 当所有语句执行成功后，事件被提交。一些细节如下 ：
 *
 * 1 如果单据中的表，属于不同的数据库连接，那么所有的SQL语句会以连接为单位，对语句进行批量执行
 * 2 这些语句的执行顺序是：对同一个数据库连接中的语句， 先执行 beforeBillSaveOnServer 中返回的SQL语句，再执行单据操作转译得到的SQL语句，
 *   再执行 afterBillSaveOnServer 中返回的SQL语句， 当多个（或一个）数据库连接执行完这些语句，且没有错误时，所有的数据库连接做提交，否则全部回滚
 * 3 不要在 beforeBillSaveOnServer 或 afterBillSaveOnServer 中直接执行数据库操作，而是返回SQL语句，让系统批量执行它们，并控制好事务
 * 4 当执行成功后，系统再执行事件函数  afterBillSaveSuccessfulOnServer 。 此事件中可以执行任意操作，它与单据保存事件结束后才被触发执行，
 *   与单据保存并不在一个事务中。
 *
 *
 * @param gguid  要删除记录的gguid ，等同于主表的id
 * @param session  一个JSON对象，用于在整个单据保存过程中的各个事件之间传递数据。本事件做为单据保存的最后一个事件，session对象在使用后将被丢弃
 *
 *
 * @return 本函数不需要返回值
 *
 */
//@comment (group=单据保存,caption=单据保存成功后)
function afterBillSaveSuccessfulOnServer(gguid, session) {

    $back_build_sum(gguid);
}


id: 66bb082f993294a6b34857ca
scriptid: 662a47879932b5035f32efab
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:20:43.000
script:
function verifyGZL(gguid) {
    var count = getValueFromSQL2("", `select count(0) from pz_yjd_pzh where gguid='${gguid}' and qsqx is not null and qsqx>0`);
    println('verifyGZL count  ' + count)

    return count > 0 ? '有凭证式延迟确认，不能提交结束工作流！' : ''
}

function back_update_pzh(data) {

    var ds = newDataStore("", `select * from pz_yjd_pzh where id='${data.id}'`);
    ds.retrieve();
    println("select : " + ds.getSelectLastRetrieved())
    var count = ds.getRowCount();
    println('count: ' + count)
    ds.setUpdateProperty('pz_yjd_pzh', 'id', '*', 'id');
    if (count != '1') {
        return { success: false, msg: '更新的数据不对' }
    }
    var row = 0;

    ds.setValue(row, data);
    var ret = ds.update(true);
    if (ret) {
        // println( info ) 
        // return { msg: '提交成功', data: null, code: 200 }
    } else {
        println("提交异常" + ds.getError().getMessage());
        // return { code: 10001, msg: "提交异常！" + item_ds.getError().getMessage(), data: null };
    }
}


/**
 * 工作结束
 * @param flow 流程定义
 * @param node 开始节点
 * @param gguid 单据的gguid

 */
//@comment (group=工作流事件,caption=工作结束)
function onWorkFlowEnd(flow, node, gguid) {
    // println( flow.id) ; //流程定义的ID
    println(gguid + "工作结束了");

    runSQL("", ` update pz_yjd_pzh set state=1 where gguid='${gguid}' and  state=0`);

    runSQL("", `UPDATE pzbmx a
            INNER JOIN  pz_yjdex b  inner join pz_yjd c on (b.gguid=c.gguid) 
             ON a.pzh  >= b.pzh1 and a.pzh<= b.pzh2 and b.gguid=${gguid}
            SET a.pos  = c.towhere , a.memo = c.summary , a.state_jb=0, a.state_jy=0   ` , true);
}


function back_add_pzh(data) {
    var count = (data.pzh2 / 1) - (data.pzh1 / 1);


    var gguid = currentGUID();
    for (var i = 0; i <= count; i++) {
        var newid = newGuid();
        var pzh = (data.pzh1 / 1) + i;
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, ny, pzh, billtype) values ( ${newid} , ${gguid} , '${data.ny}', '${pzh}', '交办') `, true);
    }

    back_build_sum();
    return { success: true };

}

function back_import_pzh_data(data) {

    var t = data.pzh.split(/[\s]/);
    for (var i = 0; i < t.length; i++) {
        var pzh = t[i].trim();
        if (pzh == '') continue;
        var newid = newGuid();
        var gguid = currentGUID();
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, ny, pzh, billtype ) values ( ${newid} , ${gguid} , '${data.ny}' , '${pzh}', '交办') `, true);
    }
    back_build_sum();
}

function back_import_pzh(s) {
    var t = s.split(/[\s]/);
    for (var i = 0; i < t.length; i++) {
        var pzh = t[i].trim();
        if (pzh == '') continue;
        var newid = newGuid();
        var gguid = currentGUID();
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, pzh ) values ( ${newid} , ${gguid} , '${pzh}') `, true);
    }
    back_build_sum();
}

//  根据凭证号清单生成凭证号汇总信息 
function back_build_sum() {
    var gguid = currentGUID();
    $back_build_sum(gguid);
}


function $back_build_sum(gguid) {


    var sql = `
            
        SELECT
            MAX( ny ) as ny , MIN( pzh ) as pzh1 ,   MAX( pzh )  AS  pzh2,
        COUNT(*) AS c 
        FROM
        (
            SELECT
            ny,
            pzh,
            CONCAT(ny, pzh) as ny_pzh,
            @group_id := IF( pzh  = @prev_number + 1, @group_id, @group_id + 1) AS group_id,
            @prev_number := pzh 
            FROM
            pz_yjd_pzh,
            (SELECT @group_id := 0, @prev_number := NULL) AS vars 
                    where  gguid= ${gguid}
            ORDER BY
            ny_pzh 
        ) AS subquery
        GROUP BY
        group_id;
            
    ` ;

    println(sql);
    var tds = newDataStore("", sql);
    var n = tds.retrieve();

    runSQL("", `delete from  pz_yjdex where gguid= ${gguid} `, true);

    var pz_yjdex_ds = newDataStore("", "select * from pz_yjdex");
    pz_yjdex_ds.setUpdateProperty('pz_yjdex', 'id', '*', 'id');
    for (var i = 0; i < n; i++) {
        var row = pz_yjdex_ds.insertRow(9999);
        pz_yjdex_ds.setValue(row, {
            id: newGuid(), gguid: gguid, inner_xh: row + 1,
            billtype: '交办',
            ny: tds.getString(i, 'ny'),
            pzh1: tds.getString(i, "pzh1"),
            pzh2: tds.getString(i, "pzh2"),
            pzs: tds.getInt(i, "c")


        });
    }

    //
    pz_yjdex_ds.executeAfterUpdate(`update  pz_yjd  set pzs= (select count(*) from  pz_yjd_pzh where gguid= ${gguid} ) where   id= ${gguid}  `);
    pz_yjdex_ds.update(true);


}


/**
 * 单据点击保存，前端所有的操作被转译成3种操作:insert , delete , update ,
 *  并且可以在  beforeBillSaveOnServer 中返回一些SQL语句，可以在afterBillSaveOnServer中返回一些SQL语句
 *
 * 系统分别在需要的数据库连接中执行这些语句 ， 当所有语句执行成功后，事件被提交。一些细节如下 ：
 *
 * 1 如果单据中的表，属于不同的数据库连接，那么所有的SQL语句会以连接为单位，对语句进行批量执行
 * 2 这些语句的执行顺序是：对同一个数据库连接中的语句， 先执行 beforeBillSaveOnServer 中返回的SQL语句，再执行单据操作转译得到的SQL语句，
 *   再执行 afterBillSaveOnServer 中返回的SQL语句， 当多个（或一个）数据库连接执行完这些语句，且没有错误时，所有的数据库连接做提交，否则全部回滚
 * 3 不要在 beforeBillSaveOnServer 或 afterBillSaveOnServer 中直接执行数据库操作，而是返回SQL语句，让系统批量执行它们，并控制好事务
 * 4 当执行成功后，系统再执行事件函数  afterBillSaveSuccessfulOnServer 。 此事件中可以执行任意操作，它与单据保存事件结束后才被触发执行，
 *   与单据保存并不在一个事务中。
 *
 *
 * @param gguid  要删除记录的gguid ，等同于主表的id
 * @param session  一个JSON对象，用于在整个单据保存过程中的各个事件之间传递数据。本事件做为单据保存的最后一个事件，session对象在使用后将被丢弃
 *
 *
 * @return 本函数不需要返回值
 *
 */
//@comment (group=单据保存,caption=单据保存成功后)
function afterBillSaveSuccessfulOnServer(gguid, session) {

    $back_build_sum(gguid);
}


id: 66bb082f993294a6b34857d0
scriptid: 662a47879932b5035f32efab
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:21:11.000
script:
function verifyGZL(gguid) {
    var count = getValueFromSQL2("", `select count(0) from pz_yjd_pzh where gguid='${gguid}' and qsqx is not null and qsqx>0`);
    println('verifyGZL count  ' + count)

    return count > 0 ? '有凭证式延迟确认，不能提交结束工作流！' : ''
}

function back_update_pzh(data) {

    var ds = newDataStore("", `select * from pz_yjd_pzh where id='${data.id}'`);
    ds.retrieve();
    println("select : " + ds.getSelectLastRetrieved())
    var count = ds.getRowCount();
    println('count: ' + count)
    ds.setUpdateProperty('pz_yjd_pzh', 'id', '*', 'id');
    if (count != '1') {
        return { success: false, msg: '更新的数据不对' }
    }
    var row = 0;

    ds.setValue(row, data);
    var ret = ds.update(true);
    if (ret) {
        // println( info ) 
        return { msg: '提交成功', success: true }
    } else {
        println("提交异常" + ds.getError().getMessage());
        return { success: false, msg: "提交异常！" + ds.getError().getMessage() };
    }
}


/**
 * 工作结束
 * @param flow 流程定义
 * @param node 开始节点
 * @param gguid 单据的gguid

 */
//@comment (group=工作流事件,caption=工作结束)
function onWorkFlowEnd(flow, node, gguid) {
    // println( flow.id) ; //流程定义的ID
    println(gguid + "工作结束了");

    runSQL("", ` update pz_yjd_pzh set state=1 where gguid='${gguid}' and  state=0`);

    runSQL("", `UPDATE pzbmx a
            INNER JOIN  pz_yjdex b  inner join pz_yjd c on (b.gguid=c.gguid) 
             ON a.pzh  >= b.pzh1 and a.pzh<= b.pzh2 and b.gguid=${gguid}
            SET a.pos  = c.towhere , a.memo = c.summary , a.state_jb=0, a.state_jy=0   ` , true);
}


function back_add_pzh(data) {
    var count = (data.pzh2 / 1) - (data.pzh1 / 1);


    var gguid = currentGUID();
    for (var i = 0; i <= count; i++) {
        var newid = newGuid();
        var pzh = (data.pzh1 / 1) + i;
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, ny, pzh, billtype) values ( ${newid} , ${gguid} , '${data.ny}', '${pzh}', '交办') `, true);
    }

    back_build_sum();
    return { success: true };

}

function back_import_pzh_data(data) {

    var t = data.pzh.split(/[\s]/);
    for (var i = 0; i < t.length; i++) {
        var pzh = t[i].trim();
        if (pzh == '') continue;
        var newid = newGuid();
        var gguid = currentGUID();
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, ny, pzh, billtype ) values ( ${newid} , ${gguid} , '${data.ny}' , '${pzh}', '交办') `, true);
    }
    back_build_sum();
}

function back_import_pzh(s) {
    var t = s.split(/[\s]/);
    for (var i = 0; i < t.length; i++) {
        var pzh = t[i].trim();
        if (pzh == '') continue;
        var newid = newGuid();
        var gguid = currentGUID();
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, pzh ) values ( ${newid} , ${gguid} , '${pzh}') `, true);
    }
    back_build_sum();
}

//  根据凭证号清单生成凭证号汇总信息 
function back_build_sum() {
    var gguid = currentGUID();
    $back_build_sum(gguid);
}


function $back_build_sum(gguid) {


    var sql = `
            
        SELECT
            MAX( ny ) as ny , MIN( pzh ) as pzh1 ,   MAX( pzh )  AS  pzh2,
        COUNT(*) AS c 
        FROM
        (
            SELECT
            ny,
            pzh,
            CONCAT(ny, pzh) as ny_pzh,
            @group_id := IF( pzh  = @prev_number + 1, @group_id, @group_id + 1) AS group_id,
            @prev_number := pzh 
            FROM
            pz_yjd_pzh,
            (SELECT @group_id := 0, @prev_number := NULL) AS vars 
                    where  gguid= ${gguid}
            ORDER BY
            ny_pzh 
        ) AS subquery
        GROUP BY
        group_id;
            
    ` ;

    println(sql);
    var tds = newDataStore("", sql);
    var n = tds.retrieve();

    runSQL("", `delete from  pz_yjdex where gguid= ${gguid} `, true);

    var pz_yjdex_ds = newDataStore("", "select * from pz_yjdex");
    pz_yjdex_ds.setUpdateProperty('pz_yjdex', 'id', '*', 'id');
    for (var i = 0; i < n; i++) {
        var row = pz_yjdex_ds.insertRow(9999);
        pz_yjdex_ds.setValue(row, {
            id: newGuid(), gguid: gguid, inner_xh: row + 1,
            billtype: '交办',
            ny: tds.getString(i, 'ny'),
            pzh1: tds.getString(i, "pzh1"),
            pzh2: tds.getString(i, "pzh2"),
            pzs: tds.getInt(i, "c")


        });
    }

    //
    pz_yjdex_ds.executeAfterUpdate(`update  pz_yjd  set pzs= (select count(*) from  pz_yjd_pzh where gguid= ${gguid} ) where   id= ${gguid}  `);
    pz_yjdex_ds.update(true);


}


/**
 * 单据点击保存，前端所有的操作被转译成3种操作:insert , delete , update ,
 *  并且可以在  beforeBillSaveOnServer 中返回一些SQL语句，可以在afterBillSaveOnServer中返回一些SQL语句
 *
 * 系统分别在需要的数据库连接中执行这些语句 ， 当所有语句执行成功后，事件被提交。一些细节如下 ：
 *
 * 1 如果单据中的表，属于不同的数据库连接，那么所有的SQL语句会以连接为单位，对语句进行批量执行
 * 2 这些语句的执行顺序是：对同一个数据库连接中的语句， 先执行 beforeBillSaveOnServer 中返回的SQL语句，再执行单据操作转译得到的SQL语句，
 *   再执行 afterBillSaveOnServer 中返回的SQL语句， 当多个（或一个）数据库连接执行完这些语句，且没有错误时，所有的数据库连接做提交，否则全部回滚
 * 3 不要在 beforeBillSaveOnServer 或 afterBillSaveOnServer 中直接执行数据库操作，而是返回SQL语句，让系统批量执行它们，并控制好事务
 * 4 当执行成功后，系统再执行事件函数  afterBillSaveSuccessfulOnServer 。 此事件中可以执行任意操作，它与单据保存事件结束后才被触发执行，
 *   与单据保存并不在一个事务中。
 *
 *
 * @param gguid  要删除记录的gguid ，等同于主表的id
 * @param session  一个JSON对象，用于在整个单据保存过程中的各个事件之间传递数据。本事件做为单据保存的最后一个事件，session对象在使用后将被丢弃
 *
 *
 * @return 本函数不需要返回值
 *
 */
//@comment (group=单据保存,caption=单据保存成功后)
function afterBillSaveSuccessfulOnServer(gguid, session) {

    $back_build_sum(gguid);
}


id: 66bb082f993294a6b34857d4
scriptid: 662a47879932b5035f32efb0
tablename: app_template
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:21:27.000
script:
/**
 * 一个单据打开，
 * 1 先对类型为“表”的结果集做数据异步检索
 * 2 全部表检索完成之后，再执行 formOpen 事件
 * 3 再根据  actio 执行 newOpen/viewOpen/editOpen 之一
 * 4 再执行  afterOpen
 * 5 对类型为“结果集”的且需要自动检索的结果集，做异步检索
 * 6 异步检索完成后，最后执行  formOpenOver 事件
 */
//@comment (group=表单事件,caption=表单初始化全部完成之后)
function formOpenOver() {
    var data = $pz_yjd_ds.getJSON(0);
    // console.log(data)

    if(urlArgs.action=='view'){
        book.getWorkSheet('汇总').getBrick('cb_add_pz').visible = false;
        book.getWorkSheet('清单').getBrick('cb_import').visible = false;
        book.getWorkSheet('清单').getBrick('cb_buildsum').visible = false;

        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;


        book.getWorkSheet('清单').cells('qsqx').visible = false;
        book.getWorkSheet('清单').cells('qsqx').clickable = false;

        book.getWorkSheet('清单').cells('state').visible = false;
        book.getWorkSheet('清单').cells('state').clickable = false;
    }else{
        book.getWorkSheet('清单').cells('c_db_deleterow').visible = true;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = true;
    }

    if(data.flow_instance_status.indexOf('接收方签收确认')>0){
        book.getWorkSheet('清单').cells('qsqx').editable = true;
        book.getWorkSheet('清单').cells('state').editable = true;
        
        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;
    }

}


//@comment (group=按钮,caption=添加凭证号)
function cb_add_pz_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');

    sheet.cells('ny').setValue('');
    sheet.cells('pzh1').setValue('');
    sheet.cells('pzh2').setValue('');

    sheet.float('fa fa-cog', "添加凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 900, height: 400 });

}

//@comment (group=添加凭证号按钮,caption=取消)
function cb_cancel_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();
}

//@comment (group=添加凭证号按钮,caption=确认)
function cb_comfirn_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh1: sheet.cells('pzh1').getValue(),
        pzh2: sheet.cells('pzh2').getValue(),
    }

    if (data.pzh2 <= data.pzh1) {
        toastr.error('终止凭证号要比起始凭证号大');
        return false;
    }

    toastr.show("正在计算...");
    setTimeout(function () {
        back_add_pzh(data, function () {
            toastr.hide();
            toastr.info("导入完成");
            // $pz_yjd_ds.smartRetrieve();
            $pz_yjdex_ds.smartRetrieve();
            $pz_yjd_pzh_ds.smartRetrieve();
            $q_pz_yjd_pzh_ds.smartRetrieve();
        });
    }, 100);
}

function cb_import_onClick() {

    var sheet = book.getWorkSheet('导入凭证号');

    sheet.cells('ny').setValue('');
    sheet.cells('pzh').setValue('');

    sheet.float('fa fa-cog', "导入凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 500, height: 400 });


    // inputBox("提示", "请将凭证号粘贴在此", "", "", function (val) {
    //     toastr.show("正在计算...");
    //     setTimeout(function () {
    //         back_import_pzh(val, function () {
    //             toastr.hide();
    //             toastr.info("导入完成");
    //             $pz_yjd_ds.smartRetrieve();
    //             $pz_yjdex_ds.smartRetrieve();
    //             $pz_yjd_pzh_ds.smartRetrieve();
    //             $q_pz_yjd_pzh_ds.smartRetrieve();
    //         });
    //     }, 100);
    // }, false, {}, 10);
}


//@comment (group=导入凭证号按钮,caption=取消)
function cb_cancel2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();
}

//@comment (group=导入凭证号按钮,caption=确认)
function cb_comfirn2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh: sheet.cells('pzh').getValue(),
    }


    toastr.show("正在计算...");
    setTimeout(function () {
        back_import_pzh_data(data, function () {
            toastr.hide();
            toastr.info("导入完成");
            // $pz_yjd_ds.smartRetrieve();
            $pz_yjdex_ds.smartRetrieve();
            $pz_yjd_pzh_ds.smartRetrieve();
            $q_pz_yjd_pzh_ds.smartRetrieve();
        });
    }, 100);
}


function cb_buildsum_onClick() {
    form.save(false, function () {
        $confirm("提示", "确信要根据凭证号清单生成凭证号汇总信息吗?", function () {
            toastr.show("正在计算...");
            setTimeout(function () {
                back_build_sum(function () {
                    toastr.hide();
                    toastr.info("导入完成");
                    $pz_yjd_ds.smartRetrieve();
                    $pz_yjdex_ds.smartRetrieve();
                    $pz_yjd_pzh_ds.smartRetrieve();
                    $q_pz_yjd_pzh_ds.smartRetrieve();

                });
            }, 100);

        });
    });

}

/**
 * 单元格因为被编辑而改变。当用户通过编辑单元的值而让单元格发生值改变时本事件被触发。
 * 注意，当使用脚本 sheet.cells(row,col).setValue ( value) 来改变单元格的值时，本事件并不触发
 * @param sheet
 * @param cell
 * @param newValue
 * @param innerRow   当单元格没有绑定数据库或绑定到单行数据库时，本参数无意义。如果绑定一个
 * 多行数据库，则表示该单元所绑定的字段的第 innerRow行发生变化
 */
function cellValueChangedByEdit(sheet, cell, newValue, innerRow) {

    //通过别名来判断
    if (cell.alias == 'XXX') {

    }

console.log(cell)
    //通过数据库绑定情况来判断
    let bind= cell.bind;
    if( bind!=null &&  bind.dataSource=='q_pz_yjd_pzh' && bind.DBCol=='qsqx'){
        var qsqx = $pz_yjd_ds.getValue(0, 'qsqx');
        console.log(qsqx < newValue, qsqx, newValue)
        if(qsqx < newValue){
            $pz_yjd_ds.setValue(0, 'qsqx', newValue);
        }

        var row = book.getDataSource("q_pz_yjd_pzh").currentBindRow;
        var pzh_data = $q_pz_yjd_pzh_ds.getJSON(row);
        back_update_pzh(pzh_data)

    }


}


id: 66bb082f993294a6b34857d8
scriptid: 662a47879932b5035f32efb0
tablename: app_template
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:21:45.000
script:
/**
 * 一个单据打开，
 * 1 先对类型为“表”的结果集做数据异步检索
 * 2 全部表检索完成之后，再执行 formOpen 事件
 * 3 再根据  actio 执行 newOpen/viewOpen/editOpen 之一
 * 4 再执行  afterOpen
 * 5 对类型为“结果集”的且需要自动检索的结果集，做异步检索
 * 6 异步检索完成后，最后执行  formOpenOver 事件
 */
//@comment (group=表单事件,caption=表单初始化全部完成之后)
function formOpenOver() {
    var data = $pz_yjd_ds.getJSON(0);
    // console.log(data)

    if(urlArgs.action=='view'){
        book.getWorkSheet('汇总').getBrick('cb_add_pz').visible = false;
        book.getWorkSheet('清单').getBrick('cb_import').visible = false;
        book.getWorkSheet('清单').getBrick('cb_buildsum').visible = false;

        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;


        book.getWorkSheet('清单').cells('qsqx').visible = false;
        book.getWorkSheet('清单').cells('qsqx').clickable = false;

        book.getWorkSheet('清单').cells('state').visible = false;
        book.getWorkSheet('清单').cells('state').clickable = false;
    }else{
        book.getWorkSheet('清单').cells('c_db_deleterow').visible = true;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = true;
    }

    if(data.flow_instance_status.indexOf('接收方签收确认')>0){
        book.getWorkSheet('清单').cells('qsqx').editable = true;
        book.getWorkSheet('清单').cells('state').editable = true;
        
        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;
    }

}


//@comment (group=按钮,caption=添加凭证号)
function cb_add_pz_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');

    sheet.cells('ny').setValue('');
    sheet.cells('pzh1').setValue('');
    sheet.cells('pzh2').setValue('');

    sheet.float('fa fa-cog', "添加凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 900, height: 400 });

}

//@comment (group=添加凭证号按钮,caption=取消)
function cb_cancel_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();
}

//@comment (group=添加凭证号按钮,caption=确认)
function cb_comfirn_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh1: sheet.cells('pzh1').getValue(),
        pzh2: sheet.cells('pzh2').getValue(),
    }

    if (data.pzh2 <= data.pzh1) {
        toastr.error('终止凭证号要比起始凭证号大');
        return false;
    }

    toastr.show("正在计算...");
    setTimeout(function () {
        back_add_pzh(data, function () {
            toastr.hide();
            toastr.info("导入完成");
            // $pz_yjd_ds.smartRetrieve();
            $pz_yjdex_ds.smartRetrieve();
            $pz_yjd_pzh_ds.smartRetrieve();
            $q_pz_yjd_pzh_ds.smartRetrieve();
        });
    }, 100);
}

function cb_import_onClick() {

    var sheet = book.getWorkSheet('导入凭证号');

    sheet.cells('ny').setValue('');
    sheet.cells('pzh').setValue('');

    sheet.float('fa fa-cog', "导入凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 500, height: 400 });


    // inputBox("提示", "请将凭证号粘贴在此", "", "", function (val) {
    //     toastr.show("正在计算...");
    //     setTimeout(function () {
    //         back_import_pzh(val, function () {
    //             toastr.hide();
    //             toastr.info("导入完成");
    //             $pz_yjd_ds.smartRetrieve();
    //             $pz_yjdex_ds.smartRetrieve();
    //             $pz_yjd_pzh_ds.smartRetrieve();
    //             $q_pz_yjd_pzh_ds.smartRetrieve();
    //         });
    //     }, 100);
    // }, false, {}, 10);
}


//@comment (group=导入凭证号按钮,caption=取消)
function cb_cancel2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();
}

//@comment (group=导入凭证号按钮,caption=确认)
function cb_comfirn2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh: sheet.cells('pzh').getValue(),
    }


    toastr.show("正在计算...");
    setTimeout(function () {
        back_import_pzh_data(data, function () {
            toastr.hide();
            toastr.info("导入完成");
            // $pz_yjd_ds.smartRetrieve();
            $pz_yjdex_ds.smartRetrieve();
            $pz_yjd_pzh_ds.smartRetrieve();
            $q_pz_yjd_pzh_ds.smartRetrieve();
        });
    }, 100);
}


function cb_buildsum_onClick() {
    form.save(false, function () {
        $confirm("提示", "确信要根据凭证号清单生成凭证号汇总信息吗?", function () {
            toastr.show("正在计算...");
            setTimeout(function () {
                back_build_sum(function () {
                    toastr.hide();
                    toastr.info("导入完成");
                    $pz_yjd_ds.smartRetrieve();
                    $pz_yjdex_ds.smartRetrieve();
                    $pz_yjd_pzh_ds.smartRetrieve();
                    $q_pz_yjd_pzh_ds.smartRetrieve();

                });
            }, 100);

        });
    });

}

/**
 * 单元格因为被编辑而改变。当用户通过编辑单元的值而让单元格发生值改变时本事件被触发。
 * 注意，当使用脚本 sheet.cells(row,col).setValue ( value) 来改变单元格的值时，本事件并不触发
 * @param sheet
 * @param cell
 * @param newValue
 * @param innerRow   当单元格没有绑定数据库或绑定到单行数据库时，本参数无意义。如果绑定一个
 * 多行数据库，则表示该单元所绑定的字段的第 innerRow行发生变化
 */
function cellValueChangedByEdit(sheet, cell, newValue, innerRow) {

    //通过别名来判断
    if (cell.alias == 'XXX') {

    }

console.log(cell)
    //通过数据库绑定情况来判断
    let bind= cell.bind;
    if( bind!=null &&  bind.dataSource=='q_pz_yjd_pzh' && bind.DBCol=='qsqx'){
        var qsqx = $pz_yjd_ds.getValue(0, 'qsqx');
        console.log(qsqx < newValue, qsqx, newValue)
        if(qsqx < newValue){
            $pz_yjd_ds.setValue(0, 'qsqx', newValue);
        }

        // var row = book.getDataSource("q_pz_yjd_pzh").currentBindRow;
        // var pzh_data = $q_pz_yjd_pzh_ds.getJSON(row);
        // back_update_pzh(pzh_data)

    }


}


id: 66bb082f993294a6b34857dc
scriptid: 662a47879932b5035f32efb0
tablename: app_template
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:22:08.000
script:
/**
 * 一个单据打开，
 * 1 先对类型为“表”的结果集做数据异步检索
 * 2 全部表检索完成之后，再执行 formOpen 事件
 * 3 再根据  actio 执行 newOpen/viewOpen/editOpen 之一
 * 4 再执行  afterOpen
 * 5 对类型为“结果集”的且需要自动检索的结果集，做异步检索
 * 6 异步检索完成后，最后执行  formOpenOver 事件
 */
//@comment (group=表单事件,caption=表单初始化全部完成之后)
function formOpenOver() {
    var data = $pz_yjd_ds.getJSON(0);
    // console.log(data)

    if(urlArgs.action=='view'){
        book.getWorkSheet('汇总').getBrick('cb_add_pz').visible = false;
        book.getWorkSheet('清单').getBrick('cb_import').visible = false;
        book.getWorkSheet('清单').getBrick('cb_buildsum').visible = false;

        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;


        book.getWorkSheet('清单').cells('qsqx').visible = false;
        book.getWorkSheet('清单').cells('qsqx').clickable = false;

        book.getWorkSheet('清单').cells('state').visible = false;
        book.getWorkSheet('清单').cells('state').clickable = false;
    }else{
        book.getWorkSheet('清单').cells('c_db_deleterow').visible = true;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = true;
    }

    if(data.flow_instance_status.indexOf('接收方签收确认')>0){
        book.getWorkSheet('清单').cells('qsqx').editable = true;
        book.getWorkSheet('清单').cells('state').editable = true;
        
        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;
    }

}


//@comment (group=按钮,caption=添加凭证号)
function cb_add_pz_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');

    sheet.cells('ny').setValue('');
    sheet.cells('pzh1').setValue('');
    sheet.cells('pzh2').setValue('');

    sheet.float('fa fa-cog', "添加凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 900, height: 400 });

}

//@comment (group=添加凭证号按钮,caption=取消)
function cb_cancel_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();
}

//@comment (group=添加凭证号按钮,caption=确认)
function cb_comfirn_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh1: sheet.cells('pzh1').getValue(),
        pzh2: sheet.cells('pzh2').getValue(),
    }

    if (data.pzh2 <= data.pzh1) {
        toastr.error('终止凭证号要比起始凭证号大');
        return false;
    }

    toastr.show("正在计算...");
    setTimeout(function () {
        back_add_pzh(data, function () {
            toastr.hide();
            toastr.info("导入完成");
            // $pz_yjd_ds.smartRetrieve();
            $pz_yjdex_ds.smartRetrieve();
            $pz_yjd_pzh_ds.smartRetrieve();
            $q_pz_yjd_pzh_ds.smartRetrieve();
        });
    }, 100);
}

function cb_import_onClick() {

    var sheet = book.getWorkSheet('导入凭证号');

    sheet.cells('ny').setValue('');
    sheet.cells('pzh').setValue('');

    sheet.float('fa fa-cog', "导入凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 500, height: 400 });


    // inputBox("提示", "请将凭证号粘贴在此", "", "", function (val) {
    //     toastr.show("正在计算...");
    //     setTimeout(function () {
    //         back_import_pzh(val, function () {
    //             toastr.hide();
    //             toastr.info("导入完成");
    //             $pz_yjd_ds.smartRetrieve();
    //             $pz_yjdex_ds.smartRetrieve();
    //             $pz_yjd_pzh_ds.smartRetrieve();
    //             $q_pz_yjd_pzh_ds.smartRetrieve();
    //         });
    //     }, 100);
    // }, false, {}, 10);
}


//@comment (group=导入凭证号按钮,caption=取消)
function cb_cancel2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();
}

//@comment (group=导入凭证号按钮,caption=确认)
function cb_comfirn2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh: sheet.cells('pzh').getValue(),
    }


    toastr.show("正在计算...");
    setTimeout(function () {
        back_import_pzh_data(data, function () {
            toastr.hide();
            toastr.info("导入完成");
            // $pz_yjd_ds.smartRetrieve();
            $pz_yjdex_ds.smartRetrieve();
            $pz_yjd_pzh_ds.smartRetrieve();
            $q_pz_yjd_pzh_ds.smartRetrieve();
        });
    }, 100);
}


function cb_buildsum_onClick() {
    form.save(false, function () {
        $confirm("提示", "确信要根据凭证号清单生成凭证号汇总信息吗?", function () {
            toastr.show("正在计算...");
            setTimeout(function () {
                back_build_sum(function () {
                    toastr.hide();
                    toastr.info("导入完成");
                    $pz_yjd_ds.smartRetrieve();
                    $pz_yjdex_ds.smartRetrieve();
                    $pz_yjd_pzh_ds.smartRetrieve();
                    $q_pz_yjd_pzh_ds.smartRetrieve();

                });
            }, 100);

        });
    });

}

/**
 * 单元格因为被编辑而改变。当用户通过编辑单元的值而让单元格发生值改变时本事件被触发。
 * 注意，当使用脚本 sheet.cells(row,col).setValue ( value) 来改变单元格的值时，本事件并不触发
 * @param sheet
 * @param cell
 * @param newValue
 * @param innerRow   当单元格没有绑定数据库或绑定到单行数据库时，本参数无意义。如果绑定一个
 * 多行数据库，则表示该单元所绑定的字段的第 innerRow行发生变化
 */
function cellValueChangedByEdit(sheet, cell, newValue, innerRow) {

    //通过别名来判断
    if (cell.alias == 'XXX') {

    }

    //通过数据库绑定情况来判断
    let bind= cell.bind;
    if( bind!=null &&  bind.dataSource=='q_pz_yjd_pzh' && bind.DBCol=='qsqx'){
        var qsqx = $pz_yjd_ds.getValue(0, 'qsqx');
        console.log(qsqx < newValue, qsqx, newValue)
        if(qsqx < newValue){
            $pz_yjd_ds.setValue(0, 'qsqx', newValue);
        }


    }


}


id: 66bb082f993294a6b34857e0
scriptid: 662a47879932b5035f32efb0
tablename: app_template
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:22:08.000
script:
/**
 * 一个单据打开，
 * 1 先对类型为“表”的结果集做数据异步检索
 * 2 全部表检索完成之后，再执行 formOpen 事件
 * 3 再根据  actio 执行 newOpen/viewOpen/editOpen 之一
 * 4 再执行  afterOpen
 * 5 对类型为“结果集”的且需要自动检索的结果集，做异步检索
 * 6 异步检索完成后，最后执行  formOpenOver 事件
 */
//@comment (group=表单事件,caption=表单初始化全部完成之后)
function formOpenOver() {
    var data = $pz_yjd_ds.getJSON(0);
    // console.log(data)

    if(urlArgs.action=='view'){
        book.getWorkSheet('汇总').getBrick('cb_add_pz').visible = false;
        book.getWorkSheet('清单').getBrick('cb_import').visible = false;
        book.getWorkSheet('清单').getBrick('cb_buildsum').visible = false;

        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;


        book.getWorkSheet('清单').cells('qsqx').visible = false;
        book.getWorkSheet('清单').cells('qsqx').clickable = false;

        book.getWorkSheet('清单').cells('state').visible = false;
        book.getWorkSheet('清单').cells('state').clickable = false;
    }else{
        book.getWorkSheet('清单').cells('c_db_deleterow').visible = true;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = true;
    }

    if(data.flow_instance_status.indexOf('接收方签收确认')>0){
        book.getWorkSheet('清单').cells('qsqx').editable = true;
        book.getWorkSheet('清单').cells('state').editable = true;
        
        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;
    }

}


//@comment (group=按钮,caption=添加凭证号)
function cb_add_pz_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');

    sheet.cells('ny').setValue('');
    sheet.cells('pzh1').setValue('');
    sheet.cells('pzh2').setValue('');

    sheet.float('fa fa-cog', "添加凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 900, height: 400 });

}

//@comment (group=添加凭证号按钮,caption=取消)
function cb_cancel_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();
}

//@comment (group=添加凭证号按钮,caption=确认)
function cb_comfirn_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh1: sheet.cells('pzh1').getValue(),
        pzh2: sheet.cells('pzh2').getValue(),
    }

    if (data.pzh2 <= data.pzh1) {
        toastr.error('终止凭证号要比起始凭证号大');
        return false;
    }

    toastr.show("正在计算...");
    setTimeout(function () {
        back_add_pzh(data, function () {
            toastr.hide();
            toastr.info("导入完成");
            // $pz_yjd_ds.smartRetrieve();
            $pz_yjdex_ds.smartRetrieve();
            $pz_yjd_pzh_ds.smartRetrieve();
            $q_pz_yjd_pzh_ds.smartRetrieve();
        });
    }, 100);
}

function cb_import_onClick() {

    var sheet = book.getWorkSheet('导入凭证号');

    sheet.cells('ny').setValue('');
    sheet.cells('pzh').setValue('');

    sheet.float('fa fa-cog', "导入凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 500, height: 400 });


    // inputBox("提示", "请将凭证号粘贴在此", "", "", function (val) {
    //     toastr.show("正在计算...");
    //     setTimeout(function () {
    //         back_import_pzh(val, function () {
    //             toastr.hide();
    //             toastr.info("导入完成");
    //             $pz_yjd_ds.smartRetrieve();
    //             $pz_yjdex_ds.smartRetrieve();
    //             $pz_yjd_pzh_ds.smartRetrieve();
    //             $q_pz_yjd_pzh_ds.smartRetrieve();
    //         });
    //     }, 100);
    // }, false, {}, 10);
}


//@comment (group=导入凭证号按钮,caption=取消)
function cb_cancel2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();
}

//@comment (group=导入凭证号按钮,caption=确认)
function cb_comfirn2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh: sheet.cells('pzh').getValue(),
    }


    toastr.show("正在计算...");
    setTimeout(function () {
        back_import_pzh_data(data, function () {
            toastr.hide();
            toastr.info("导入完成");
            // $pz_yjd_ds.smartRetrieve();
            $pz_yjdex_ds.smartRetrieve();
            $pz_yjd_pzh_ds.smartRetrieve();
            $q_pz_yjd_pzh_ds.smartRetrieve();
        });
    }, 100);
}


function cb_buildsum_onClick() {
    form.save(false, function () {
        $confirm("提示", "确信要根据凭证号清单生成凭证号汇总信息吗?", function () {
            toastr.show("正在计算...");
            setTimeout(function () {
                back_build_sum(function () {
                    toastr.hide();
                    toastr.info("导入完成");
                    $pz_yjd_ds.smartRetrieve();
                    $pz_yjdex_ds.smartRetrieve();
                    $pz_yjd_pzh_ds.smartRetrieve();
                    $q_pz_yjd_pzh_ds.smartRetrieve();

                });
            }, 100);

        });
    });

}

/**
 * 单元格因为被编辑而改变。当用户通过编辑单元的值而让单元格发生值改变时本事件被触发。
 * 注意，当使用脚本 sheet.cells(row,col).setValue ( value) 来改变单元格的值时，本事件并不触发
 * @param sheet
 * @param cell
 * @param newValue
 * @param innerRow   当单元格没有绑定数据库或绑定到单行数据库时，本参数无意义。如果绑定一个
 * 多行数据库，则表示该单元所绑定的字段的第 innerRow行发生变化
 */
function cellValueChangedByEdit(sheet, cell, newValue, innerRow) {

    //通过别名来判断
    if (cell.alias == 'XXX') {

    }

    //通过数据库绑定情况来判断
    let bind= cell.bind;
    if( bind!=null &&  bind.dataSource=='q_pz_yjd_pzh' && bind.DBCol=='qsqx'){
        var qsqx = $pz_yjd_ds.getValue(0, 'qsqx');
        if(qsqx < newValue){
            $pz_yjd_ds.setValue(0, 'qsqx', newValue);
        }


    }


}


id: 66bb082f993294a6b34857e6
scriptid: 662a47879932b5035f32efab
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:22:13.000
script:
function verifyGZL(gguid) {
    var count = getValueFromSQL2("", `select count(0) from pz_yjd_pzh where gguid='${gguid}' and qsqx is not null and qsqx>0`);
    println('verifyGZL count  ' + count)

    return count > 0 ? '有凭证式延迟确认，不能提交结束工作流！' : ''
}



/**
 * 工作结束
 * @param flow 流程定义
 * @param node 开始节点
 * @param gguid 单据的gguid

 */
//@comment (group=工作流事件,caption=工作结束)
function onWorkFlowEnd(flow, node, gguid) {
    // println( flow.id) ; //流程定义的ID
    println(gguid + "工作结束了");

    runSQL("", ` update pz_yjd_pzh set state=1 where gguid='${gguid}' and  state=0`);

    runSQL("", `UPDATE pzbmx a
            INNER JOIN  pz_yjdex b  inner join pz_yjd c on (b.gguid=c.gguid) 
             ON a.pzh  >= b.pzh1 and a.pzh<= b.pzh2 and b.gguid=${gguid}
            SET a.pos  = c.towhere , a.memo = c.summary , a.state_jb=0, a.state_jy=0   ` , true);
}


function back_add_pzh(data) {
    var count = (data.pzh2 / 1) - (data.pzh1 / 1);


    var gguid = currentGUID();
    for (var i = 0; i <= count; i++) {
        var newid = newGuid();
        var pzh = (data.pzh1 / 1) + i;
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, ny, pzh, billtype) values ( ${newid} , ${gguid} , '${data.ny}', '${pzh}', '交办') `, true);
    }

    back_build_sum();
    return { success: true };

}

function back_import_pzh_data(data) {

    var t = data.pzh.split(/[\s]/);
    for (var i = 0; i < t.length; i++) {
        var pzh = t[i].trim();
        if (pzh == '') continue;
        var newid = newGuid();
        var gguid = currentGUID();
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, ny, pzh, billtype ) values ( ${newid} , ${gguid} , '${data.ny}' , '${pzh}', '交办') `, true);
    }
    back_build_sum();
}

function back_import_pzh(s) {
    var t = s.split(/[\s]/);
    for (var i = 0; i < t.length; i++) {
        var pzh = t[i].trim();
        if (pzh == '') continue;
        var newid = newGuid();
        var gguid = currentGUID();
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, pzh ) values ( ${newid} , ${gguid} , '${pzh}') `, true);
    }
    back_build_sum();
}

//  根据凭证号清单生成凭证号汇总信息 
function back_build_sum() {
    var gguid = currentGUID();
    $back_build_sum(gguid);
}


function $back_build_sum(gguid) {


    var sql = `
            
        SELECT
            MAX( ny ) as ny , MIN( pzh ) as pzh1 ,   MAX( pzh )  AS  pzh2,
        COUNT(*) AS c 
        FROM
        (
            SELECT
            ny,
            pzh,
            CONCAT(ny, pzh) as ny_pzh,
            @group_id := IF( pzh  = @prev_number + 1, @group_id, @group_id + 1) AS group_id,
            @prev_number := pzh 
            FROM
            pz_yjd_pzh,
            (SELECT @group_id := 0, @prev_number := NULL) AS vars 
                    where  gguid= ${gguid}
            ORDER BY
            ny_pzh 
        ) AS subquery
        GROUP BY
        group_id;
            
    ` ;

    println(sql);
    var tds = newDataStore("", sql);
    var n = tds.retrieve();

    runSQL("", `delete from  pz_yjdex where gguid= ${gguid} `, true);

    var pz_yjdex_ds = newDataStore("", "select * from pz_yjdex");
    pz_yjdex_ds.setUpdateProperty('pz_yjdex', 'id', '*', 'id');
    for (var i = 0; i < n; i++) {
        var row = pz_yjdex_ds.insertRow(9999);
        pz_yjdex_ds.setValue(row, {
            id: newGuid(), gguid: gguid, inner_xh: row + 1,
            billtype: '交办',
            ny: tds.getString(i, 'ny'),
            pzh1: tds.getString(i, "pzh1"),
            pzh2: tds.getString(i, "pzh2"),
            pzs: tds.getInt(i, "c")


        });
    }

    //
    pz_yjdex_ds.executeAfterUpdate(`update  pz_yjd  set pzs= (select count(*) from  pz_yjd_pzh where gguid= ${gguid} ) where   id= ${gguid}  `);
    pz_yjdex_ds.update(true);


}


/**
 * 单据点击保存，前端所有的操作被转译成3种操作:insert , delete , update ,
 *  并且可以在  beforeBillSaveOnServer 中返回一些SQL语句，可以在afterBillSaveOnServer中返回一些SQL语句
 *
 * 系统分别在需要的数据库连接中执行这些语句 ， 当所有语句执行成功后，事件被提交。一些细节如下 ：
 *
 * 1 如果单据中的表，属于不同的数据库连接，那么所有的SQL语句会以连接为单位，对语句进行批量执行
 * 2 这些语句的执行顺序是：对同一个数据库连接中的语句， 先执行 beforeBillSaveOnServer 中返回的SQL语句，再执行单据操作转译得到的SQL语句，
 *   再执行 afterBillSaveOnServer 中返回的SQL语句， 当多个（或一个）数据库连接执行完这些语句，且没有错误时，所有的数据库连接做提交，否则全部回滚
 * 3 不要在 beforeBillSaveOnServer 或 afterBillSaveOnServer 中直接执行数据库操作，而是返回SQL语句，让系统批量执行它们，并控制好事务
 * 4 当执行成功后，系统再执行事件函数  afterBillSaveSuccessfulOnServer 。 此事件中可以执行任意操作，它与单据保存事件结束后才被触发执行，
 *   与单据保存并不在一个事务中。
 *
 *
 * @param gguid  要删除记录的gguid ，等同于主表的id
 * @param session  一个JSON对象，用于在整个单据保存过程中的各个事件之间传递数据。本事件做为单据保存的最后一个事件，session对象在使用后将被丢弃
 *
 *
 * @return 本函数不需要返回值
 *
 */
//@comment (group=单据保存,caption=单据保存成功后)
function afterBillSaveSuccessfulOnServer(gguid, session) {

    $back_build_sum(gguid);
}


id: 66bb082f993294a6b34857f1
scriptid: 669dc60c9932df22f60cad57
tablename: app_template
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:23:28.000
script:
/**
 * 一个单据打开，
 * 1 先对类型为“表”的结果集做数据异步检索
 * 2 全部表检索完成之后，再执行 formOpen 事件
 * 3 再根据  actio 执行 newOpen/viewOpen/editOpen 之一
 * 4 再执行  afterOpen
 * 5 对类型为“结果集”的且需要自动检索的结果集，做异步检索
 * 6 异步检索完成后，最后执行  formOpenOver 事件
 */
//@comment (group=表单事件,caption=表单初始化全部完成之后)
function formOpenOver() {
    var data = $pz_yjd_ds.getJSON(0);
    // console.log(data)

    if(urlArgs.action=='view'){
        book.getWorkSheet('汇总').getBrick('cb_add_pz').visible = false;
        book.getWorkSheet('清单').getBrick('cb_import').visible = false;
        book.getWorkSheet('清单').getBrick('cb_buildsum').visible = false;

        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;


        book.getWorkSheet('清单').cells('qsqx').visible = false;
        book.getWorkSheet('清单').cells('qsqx').clickable = false;

        book.getWorkSheet('清单').cells('state').visible = false;
        book.getWorkSheet('清单').cells('state').clickable = false;
    }else{
        book.getWorkSheet('清单').cells('c_db_deleterow').visible = true;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = true;
    }

    if(data.flow_instance_status.indexOf('接收方签收确认')>0){
        book.getWorkSheet('清单').cells('qsqx').editable = true;
        book.getWorkSheet('清单').cells('state').editable = true;
        
        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;
    }

}

//@comment (group=按钮,caption=凭证资料导入)
function cb_import_pz_onClick() {
    var p_gguid = currentGUID();

    back_get_pzdj_gguid(p_gguid, function(gguid){
        $.dialog({
            title: '凭证资料导入',
            boxWidth: '1000px',
            useBootstrap: false,
            content: `<iframe  style="width:100%;height:400px; border:0" src="billedit?id=pzdj${gguid?`&action=edit&gguid=${gguid}`:'&action=new'}&from_id=${p_gguid}"></iframe>`
        });
    })

    // let dlg= floatDialog( "凭证资料导入" ,"billlist" , "pzdj" , 1000,500, {} , "listToolbarVisible=true&editToolbarVisible=true&from_id="+currentGUID()  , function(val){alert(val);});
}


//@comment (group=按钮,caption=添加凭证号)
function cb_add_pz_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');

    sheet.cells('ny').setValue('');
    sheet.cells('pzh1').setValue('');
    sheet.cells('pzh2').setValue('');

    sheet.float('fa fa-cog', "添加凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 900, height: 400 });

}

//@comment (group=添加凭证号按钮,caption=取消)
function cb_cancel_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();
}

//@comment (group=添加凭证号按钮,caption=确认)
function cb_comfirn_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh1: sheet.cells('pzh1').getValue(),
        pzh2: sheet.cells('pzh2').getValue(),
    }

    if (data.pzh2 <= data.pzh1) {
        toastr.error('终止凭证号要比起始凭证号大');
        return false;
    }

    toastr.show("正在计算...");
    setTimeout(function () {
        back_add_pzh(data, function () {
            toastr.hide();
            toastr.info("导入完成");
            // $pz_yjd_ds.smartRetrieve();
            $pz_yjdex_ds.smartRetrieve();
            $pz_yjd_pzh_ds.smartRetrieve();
            $q_pz_yjd_pzh_ds.smartRetrieve();
        });
    }, 100);
}

function cb_import_onClick() {

    var sheet = book.getWorkSheet('导入凭证号');

    sheet.cells('ny').setValue('');
    sheet.cells('pzh').setValue('');

    sheet.float('fa fa-cog', "导入凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 500, height: 400 });


    // inputBox("提示", "请将凭证号粘贴在此", "", "", function (val) {
    //     toastr.show("正在计算...");
    //     setTimeout(function () {
    //         back_import_pzh(val, function () {
    //             toastr.hide();
    //             toastr.info("导入完成");
    //             $pz_yjd_ds.smartRetrieve();
    //             $pz_yjdex_ds.smartRetrieve();
    //             $pz_yjd_pzh_ds.smartRetrieve();
    //             $q_pz_yjd_pzh_ds.smartRetrieve();
    //         });
    //     }, 100);
    // }, false, {}, 10);
}


//@comment (group=导入凭证号按钮,caption=取消)
function cb_cancel2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();
}

//@comment (group=导入凭证号按钮,caption=确认)
function cb_comfirn2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh: sheet.cells('pzh').getValue(),
    }


    toastr.show("正在计算...");
    setTimeout(function () {
        back_import_pzh_data(data, function () {
            toastr.hide();
            toastr.info("导入完成");
            // $pz_yjd_ds.smartRetrieve();
            $pz_yjdex_ds.smartRetrieve();
            $pz_yjd_pzh_ds.smartRetrieve();
            $q_pz_yjd_pzh_ds.smartRetrieve();
        });
    }, 100);
}


function cb_buildsum_onClick() {
    $confirm("提示", "确信要根据凭证号清单生成凭证号汇总信息吗?", function () {
        toastr.show("正在计算...");
        setTimeout(function () {
            back_build_sum(function () {
                toastr.hide();
                toastr.info("导入完成");
                $pz_yjd_ds.smartRetrieve();
                $pz_yjdex_ds.smartRetrieve();
                $pz_yjd_pzh_ds.smartRetrieve();
                $q_pz_yjd_pzh_ds.smartRetrieve();

            });
        }, 100);

    });

}
/**
 * 单元格因为被编辑而改变。当用户通过编辑单元的值而让单元格发生值改变时本事件被触发。
 * 注意，当使用脚本 sheet.cells(row,col).setValue ( value) 来改变单元格的值时，本事件并不触发
 * @param sheet
 * @param cell
 * @param newValue
 * @param innerRow   当单元格没有绑定数据库或绑定到单行数据库时，本参数无意义。如果绑定一个
 * 多行数据库，则表示该单元所绑定的字段的第 innerRow行发生变化
 */
function cellValueChangedByEdit(sheet, cell, newValue, innerRow) {

    //通过别名来判断
    if (cell.alias == 'XXX') {

    }

    //通过数据库绑定情况来判断
    let bind= cell.bind;
    if( bind!=null &&  bind.dataSource=='q_pz_yjd_pzh' && bind.DBCol=='qsqx'){
        var qsqx = $pz_yjd_ds.getValue(0, 'qsqx');
        if(qsqx < newValue){
            $pz_yjd_ds.setValue(0, 'qsqx', newValue);
        }


    }


}


id: 66bb082f993294a6b34857f5
scriptid: 669dc60c9932df22f60cad57
tablename: app_template
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:23:32.000
script:
/**
 * 一个单据打开，
 * 1 先对类型为“表”的结果集做数据异步检索
 * 2 全部表检索完成之后，再执行 formOpen 事件
 * 3 再根据  actio 执行 newOpen/viewOpen/editOpen 之一
 * 4 再执行  afterOpen
 * 5 对类型为“结果集”的且需要自动检索的结果集，做异步检索
 * 6 异步检索完成后，最后执行  formOpenOver 事件
 */
//@comment (group=表单事件,caption=表单初始化全部完成之后)
function formOpenOver() {
    var data = $pz_yjd_ds.getJSON(0);
    // console.log(data)

    if(urlArgs.action=='view'){
        book.getWorkSheet('汇总').getBrick('cb_add_pz').visible = false;
        book.getWorkSheet('清单').getBrick('cb_import').visible = false;
        book.getWorkSheet('清单').getBrick('cb_buildsum').visible = false;

        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;


        book.getWorkSheet('清单').cells('qsqx').visible = false;
        book.getWorkSheet('清单').cells('qsqx').clickable = false;

        book.getWorkSheet('清单').cells('state').visible = false;
        book.getWorkSheet('清单').cells('state').clickable = false;
    }else{
        book.getWorkSheet('清单').cells('c_db_deleterow').visible = true;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = true;
    }

    if(data.flow_instance_status.indexOf('接收方签收确认')>0){
        book.getWorkSheet('清单').cells('qsqx').editable = true;
        book.getWorkSheet('清单').cells('state').editable = true;
        
        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;
    }

}

//@comment (group=按钮,caption=凭证资料导入)
function cb_import_pz_onClick() {
    var p_gguid = currentGUID();

    back_get_pzdj_gguid(p_gguid, function(gguid){
        $.dialog({
            title: '凭证资料导入',
            boxWidth: '1000px',
            useBootstrap: false,
            content: `<iframe  style="width:100%;height:400px; border:0" src="billedit?id=pzdj${gguid?`&action=edit&gguid=${gguid}`:'&action=new'}&from_id=${p_gguid}"></iframe>`
        });
    })

    // let dlg= floatDialog( "凭证资料导入" ,"billlist" , "pzdj" , 1000,500, {} , "listToolbarVisible=true&editToolbarVisible=true&from_id="+currentGUID()  , function(val){alert(val);});
}


//@comment (group=按钮,caption=添加凭证号)
function cb_add_pz_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');

    sheet.cells('ny').setValue('');
    sheet.cells('pzh1').setValue('');
    sheet.cells('pzh2').setValue('');

    sheet.float('fa fa-cog', "添加凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 900, height: 400 });

}

//@comment (group=添加凭证号按钮,caption=取消)
function cb_cancel_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();
}

//@comment (group=添加凭证号按钮,caption=确认)
function cb_comfirn_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh1: sheet.cells('pzh1').getValue(),
        pzh2: sheet.cells('pzh2').getValue(),
    }

    if (data.pzh2 <= data.pzh1) {
        toastr.error('终止凭证号要比起始凭证号大');
        return false;
    }

    toastr.show("正在计算...");
    setTimeout(function () {
        back_add_pzh(data, function () {
            toastr.hide();
            toastr.info("导入完成");
            // $pz_yjd_ds.smartRetrieve();
            $pz_yjdex_ds.smartRetrieve();
            $pz_yjd_pzh_ds.smartRetrieve();
            $q_pz_yjd_pzh_ds.smartRetrieve();
        });
    }, 100);
}

function cb_import_onClick() {

    var sheet = book.getWorkSheet('导入凭证号');

    sheet.cells('ny').setValue('');
    sheet.cells('pzh').setValue('');

    sheet.float('fa fa-cog', "导入凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 500, height: 400 });


    // inputBox("提示", "请将凭证号粘贴在此", "", "", function (val) {
    //     toastr.show("正在计算...");
    //     setTimeout(function () {
    //         back_import_pzh(val, function () {
    //             toastr.hide();
    //             toastr.info("导入完成");
    //             $pz_yjd_ds.smartRetrieve();
    //             $pz_yjdex_ds.smartRetrieve();
    //             $pz_yjd_pzh_ds.smartRetrieve();
    //             $q_pz_yjd_pzh_ds.smartRetrieve();
    //         });
    //     }, 100);
    // }, false, {}, 10);
}


//@comment (group=导入凭证号按钮,caption=取消)
function cb_cancel2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();
}

//@comment (group=导入凭证号按钮,caption=确认)
function cb_comfirn2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh: sheet.cells('pzh').getValue(),
    }


    toastr.show("正在计算...");
    setTimeout(function () {
        back_import_pzh_data(data, function () {
            toastr.hide();
            toastr.info("导入完成");
            // $pz_yjd_ds.smartRetrieve();
            $pz_yjdex_ds.smartRetrieve();
            $pz_yjd_pzh_ds.smartRetrieve();
            $q_pz_yjd_pzh_ds.smartRetrieve();
        });
    }, 100);
}


function cb_buildsum_onClick() {
    $confirm("提示", "确信要根据凭证号清单生成凭证号汇总信息吗?", function () {
        toastr.show("正在计算...");
        setTimeout(function () {
            back_build_sum(function () {
                toastr.hide();
                toastr.info("导入完成");
                $pz_yjd_ds.smartRetrieve();
                $pz_yjdex_ds.smartRetrieve();
                $pz_yjd_pzh_ds.smartRetrieve();
                $q_pz_yjd_pzh_ds.smartRetrieve();

            });
        }, 100);

    });

}


/**
 * 单元格因为被编辑而改变。当用户通过编辑单元的值而让单元格发生值改变时本事件被触发。
 * 注意，当使用脚本 sheet.cells(row,col).setValue ( value) 来改变单元格的值时，本事件并不触发
 * @param sheet
 * @param cell
 * @param newValue
 * @param innerRow   当单元格没有绑定数据库或绑定到单行数据库时，本参数无意义。如果绑定一个
 * 多行数据库，则表示该单元所绑定的字段的第 innerRow行发生变化
 */
function cellValueChangedByEdit(sheet, cell, newValue, innerRow) {

    //通过别名来判断
    if (cell.alias == 'XXX') {

    }

    //通过数据库绑定情况来判断
    let bind= cell.bind;
    if( bind!=null &&  bind.dataSource=='q_pz_yjd_pzh' && bind.DBCol=='qsqx'){
        var qsqx = $pz_yjd_ds.getValue(0, 'qsqx');
        if(qsqx < newValue){
            $pz_yjd_ds.setValue(0, 'qsqx', newValue);
        }


    }


}


id: 66bb082f993294a6b34857f9
scriptid: 669dc6249932df22f60cc8eb
tablename: app_template
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:23:40.000
script:
/**
 * 一个单据打开，
 * 1 先对类型为“表”的结果集做数据异步检索
 * 2 全部表检索完成之后，再执行 formOpen 事件
 * 3 再根据  actio 执行 newOpen/viewOpen/editOpen 之一
 * 4 再执行  afterOpen
 * 5 对类型为“结果集”的且需要自动检索的结果集，做异步检索
 * 6 异步检索完成后，最后执行  formOpenOver 事件
 */
//@comment (group=表单事件,caption=表单初始化全部完成之后)
function formOpenOver() {
    var data = $pz_yjd_ds.getJSON(0);
    // console.log(data)

    if(urlArgs.action=='view'){
        book.getWorkSheet('汇总').getBrick('cb_add_pz').visible = false;
        book.getWorkSheet('清单').getBrick('cb_import').visible = false;
        book.getWorkSheet('清单').getBrick('cb_buildsum').visible = false;

        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;


        book.getWorkSheet('清单').cells('qsqx').visible = false;
        book.getWorkSheet('清单').cells('qsqx').clickable = false;

        book.getWorkSheet('清单').cells('state').visible = false;
        book.getWorkSheet('清单').cells('state').clickable = false;
    }else{
        book.getWorkSheet('清单').cells('c_db_deleterow').visible = true;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = true;
    }

    if(data.flow_instance_status.indexOf('接收方签收确认')>0){
        book.getWorkSheet('清单').cells('qsqx').editable = true;
        book.getWorkSheet('清单').cells('state').editable = true;
        
        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;
    }

}

//@comment (group=按钮,caption=添加凭证号)
function cb_add_pz_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    
    sheet.cells('ny').setValue('');
    sheet.cells('pzh1').setValue('');
    sheet.cells('pzh2').setValue('');

    sheet.float('fa fa-cog', "添加凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 900, height: 400 });

}

//@comment (group=添加凭证号按钮,caption=取消)
function cb_cancel_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();
}

//@comment (group=添加凭证号按钮,caption=确认)
function cb_comfirn_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh1: sheet.cells('pzh1').getValue(),
        pzh2: sheet.cells('pzh2').getValue(),
    }
    
    if (data.pzh2 <= data.pzh1) {
        toastr.error( '终止凭证号要比起始凭证号大' );
        return false;
    }

    toastr.show("正在计算...");
        setTimeout(function () {
            back_add_pzh(data, function () {
                toastr.hide();
                toastr.info("导入完成");
                // $pz_yjd_ds.smartRetrieve();
                $pz_yjdex_ds.smartRetrieve();
                $pz_yjd_pzh_ds.smartRetrieve();
                $q_pz_yjd_pzh_ds.smartRetrieve();
            });
        }, 100);
}

function cb_import_onClick() {

    var sheet = book.getWorkSheet('导入凭证号');
    
    sheet.cells('ny').setValue('');
    sheet.cells('pzh').setValue('');

    sheet.float('fa fa-cog', "导入凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 500, height: 400 });


    // inputBox("提示", "请将凭证号粘贴在此", "", "", function (val) {
    //     toastr.show("正在计算...");
    //     setTimeout(function () {
    //         back_import_pzh(val, function () {
    //             toastr.hide();
    //             toastr.info("导入完成");
    //             $pz_yjd_ds.smartRetrieve();
    //             $pz_yjdex_ds.smartRetrieve();
    //             $pz_yjd_pzh_ds.smartRetrieve();
    //             $q_pz_yjd_pzh_ds.smartRetrieve();
    //         });
    //     }, 100);
    // }, false, {}, 10);
}


//@comment (group=导入凭证号按钮,caption=取消)
function cb_cancel2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();
}

//@comment (group=导入凭证号按钮,caption=确认)
function cb_comfirn2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh: sheet.cells('pzh').getValue(),
    }
    

    toastr.show("正在计算...");
        setTimeout(function () {
            back_import_pzh_data(data, function () {
                toastr.hide();
                toastr.info("导入完成");
                // $pz_yjd_ds.smartRetrieve();
                $pz_yjdex_ds.smartRetrieve();
                $pz_yjd_pzh_ds.smartRetrieve();
                $q_pz_yjd_pzh_ds.smartRetrieve();
            });
        }, 100);
}


function cb_buildsum_onClick() {
    $confirm("提示", "确信要根据凭证号清单生成凭证号汇总信息吗?", function () {
        toastr.show("正在计算...");
        setTimeout(function () {
            back_build_sum(function () {
                toastr.hide();
                toastr.info("导入完成");
                $pz_yjd_ds.smartRetrieve();
                $pz_yjdex_ds.smartRetrieve();
                $pz_yjd_pzh_ds.smartRetrieve();
                $q_pz_yjd_pzh_ds.smartRetrieve();

            });
        }, 100);

    });

}


/**
 * 单元格因为被编辑而改变。当用户通过编辑单元的值而让单元格发生值改变时本事件被触发。
 * 注意，当使用脚本 sheet.cells(row,col).setValue ( value) 来改变单元格的值时，本事件并不触发
 * @param sheet
 * @param cell
 * @param newValue
 * @param innerRow   当单元格没有绑定数据库或绑定到单行数据库时，本参数无意义。如果绑定一个
 * 多行数据库，则表示该单元所绑定的字段的第 innerRow行发生变化
 */
function cellValueChangedByEdit(sheet, cell, newValue, innerRow) {

    //通过别名来判断
    if (cell.alias == 'XXX') {

    }

    //通过数据库绑定情况来判断
    let bind= cell.bind;
    if( bind!=null &&  bind.dataSource=='q_pz_yjd_pzh' && bind.DBCol=='qsqx'){
        var qsqx = $pz_yjd_ds.getValue(0, 'qsqx');
        if(qsqx < newValue){
            $pz_yjd_ds.setValue(0, 'qsqx', newValue);
        }


    }


}


id: 66bb082f993294a6b3485809
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:24:12.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var list = getListFromSQL2( '', `select * from  pz_yjd`) 

    return list

    // if (ds.getInt(0, 'pass') == 0) {
    //     println("延长确认，自动确认");

    //     //递交结束
    //     var loopCount = 0;
    //     while (loopCount < 10) {
    //         loopCount++;
    //         println(gguid);
    //         var t = taskInfoForWork('dy', gguid);
    //         println(JSON.stringify(t));
    //         if (t.taskList.length == 0) break;
    //         //将任务递交下去，如果任务需要签收，则先签收     
    //         for (var i = 0; i < t.taskList.length; i++) {
    //             var task = t.taskList[i];

    //             //可以递交，那么递交下去
    //             if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
    //             //需要先签收 ，那么以第一个候选人签收它
    //             if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

    //         }


    //     }

    // }

    return 'over';

}


id: 66bb082f993294a6b3485819
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:25:32.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var list = getListFromSQL2( '', `select * from pz_yjd_pzh where gguid in (select gguid from  pz_yjd where flow_instance_state = 0)`) 

    return list

    // if (ds.getInt(0, 'pass') == 0) {
    //     println("延长确认，自动确认");

    //     //递交结束
    //     var loopCount = 0;
    //     while (loopCount < 10) {
    //         loopCount++;
    //         println(gguid);
    //         var t = taskInfoForWork('dy', gguid);
    //         println(JSON.stringify(t));
    //         if (t.taskList.length == 0) break;
    //         //将任务递交下去，如果任务需要签收，则先签收     
    //         for (var i = 0; i < t.taskList.length; i++) {
    //             var task = t.taskList[i];

    //             //可以递交，那么递交下去
    //             if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
    //             //需要先签收 ，那么以第一个候选人签收它
    //             if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

    //         }


    //     }

    // }

    return 'over';

}


id: 66bb082f993294a6b348581f
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:27:06.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var list = getListFromSQL2( '', `select * from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 `) 
    var list = getListFromSQL2( '', `select * from pz_yjd_pzh where gguid in (select gguid from  pz_yjd where flow_instance_state = 0)`) 

    return list

    // if (ds.getInt(0, 'pass') == 0) {
    //     println("延长确认，自动确认");

    //     //递交结束
    //     var loopCount = 0;
    //     while (loopCount < 10) {
    //         loopCount++;
    //         println(gguid);
    //         var t = taskInfoForWork('dy', gguid);
    //         println(JSON.stringify(t));
    //         if (t.taskList.length == 0) break;
    //         //将任务递交下去，如果任务需要签收，则先签收     
    //         for (var i = 0; i < t.taskList.length; i++) {
    //             var task = t.taskList[i];

    //             //可以递交，那么递交下去
    //             if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
    //             //需要先签收 ，那么以第一个候选人签收它
    //             if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

    //         }


    //     }

    // }

    return 'over';

}


id: 66bb0ae7993294a6b348582b
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:28:08.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var list = getListFromSQL2( '', `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 `) 
    // var list = getListFromSQL2( '', `select * from pz_yjd_pzh where gguid in (select gguid from  pz_yjd where flow_instance_state = 0)`) 

    return list

    // if (ds.getInt(0, 'pass') == 0) {
    //     println("延长确认，自动确认");

    //     //递交结束
    //     var loopCount = 0;
    //     while (loopCount < 10) {
    //         loopCount++;
    //         println(gguid);
    //         var t = taskInfoForWork('dy', gguid);
    //         println(JSON.stringify(t));
    //         if (t.taskList.length == 0) break;
    //         //将任务递交下去，如果任务需要签收，则先签收     
    //         for (var i = 0; i < t.taskList.length; i++) {
    //             var task = t.taskList[i];

    //             //可以递交，那么递交下去
    //             if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
    //             //需要先签收 ，那么以第一个候选人签收它
    //             if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

    //         }


    //     }

    // }

    return 'over';

}


id: 66bb0ae7993294a6b3485831
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:28:50.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var list = getListFromSQL2( '', `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 `) 
    var list = getListFromSQL2( '', `select * from  pz_yjd where flow_instance_state = 0`) 

    return list

    // if (ds.getInt(0, 'pass') == 0) {
    //     println("延长确认，自动确认");

    //     //递交结束
    //     var loopCount = 0;
    //     while (loopCount < 10) {
    //         loopCount++;
    //         println(gguid);
    //         var t = taskInfoForWork('dy', gguid);
    //         println(JSON.stringify(t));
    //         if (t.taskList.length == 0) break;
    //         //将任务递交下去，如果任务需要签收，则先签收     
    //         for (var i = 0; i < t.taskList.length; i++) {
    //             var task = t.taskList[i];

    //             //可以递交，那么递交下去
    //             if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
    //             //需要先签收 ，那么以第一个候选人签收它
    //             if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

    //         }


    //     }

    // }

    return 'over';

}


id: 66bb0ae7993294a6b3485837
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:29:44.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var list = getListFromSQL2( '', `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 `) 
    var list = getListFromSQL2( '', `select * from  pz_yjd `) 

    return list

    // if (ds.getInt(0, 'pass') == 0) {
    //     println("延长确认，自动确认");

    //     //递交结束
    //     var loopCount = 0;
    //     while (loopCount < 10) {
    //         loopCount++;
    //         println(gguid);
    //         var t = taskInfoForWork('dy', gguid);
    //         println(JSON.stringify(t));
    //         if (t.taskList.length == 0) break;
    //         //将任务递交下去，如果任务需要签收，则先签收     
    //         for (var i = 0; i < t.taskList.length; i++) {
    //             var task = t.taskList[i];

    //             //可以递交，那么递交下去
    //             if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
    //             //需要先签收 ，那么以第一个候选人签收它
    //             if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

    //         }


    //     }

    // }

    return 'over';

}


id: 66bb0ae7993294a6b348583d
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:30:08.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var list = getListFromSQL2( '', `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 `) 
    var list = getListFromSQL2( '', `select flow_instance_starttime,flow_instance_state,flow_instance_status from  pz_yjd `) 

    return list

    // if (ds.getInt(0, 'pass') == 0) {
    //     println("延长确认，自动确认");

    //     //递交结束
    //     var loopCount = 0;
    //     while (loopCount < 10) {
    //         loopCount++;
    //         println(gguid);
    //         var t = taskInfoForWork('dy', gguid);
    //         println(JSON.stringify(t));
    //         if (t.taskList.length == 0) break;
    //         //将任务递交下去，如果任务需要签收，则先签收     
    //         for (var i = 0; i < t.taskList.length; i++) {
    //             var task = t.taskList[i];

    //             //可以递交，那么递交下去
    //             if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
    //             //需要先签收 ，那么以第一个候选人签收它
    //             if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

    //         }


    //     }

    // }

    return 'over';

}


id: 66bb0ae7993294a6b3485843
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:30:59.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var list = getListFromSQL2( '', `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 `) 
    // var list = getListFromSQL2( '', `select flow_instance_starttime,flow_instance_state,flow_instance_status from  pz_yjd `) 

    return list

    // if (ds.getInt(0, 'pass') == 0) {
    //     println("延长确认，自动确认");

    //     //递交结束
    //     var loopCount = 0;
    //     while (loopCount < 10) {
    //         loopCount++;
    //         println(gguid);
    //         var t = taskInfoForWork('dy', gguid);
    //         println(JSON.stringify(t));
    //         if (t.taskList.length == 0) break;
    //         //将任务递交下去，如果任务需要签收，则先签收     
    //         for (var i = 0; i < t.taskList.length; i++) {
    //             var task = t.taskList[i];

    //             //可以递交，那么递交下去
    //             if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
    //             //需要先签收 ，那么以第一个候选人签收它
    //             if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

    //         }


    //     }

    // }

    return 'over';

}


id: 66bb0ae7993294a6b3485849
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:31:36.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var list = getListFromSQL2( '', `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 and b.flow_instance_starttime is not null`) 
    // var list = getListFromSQL2( '', `select flow_instance_starttime,flow_instance_state,flow_instance_status from  pz_yjd `) 

    return list

    // if (ds.getInt(0, 'pass') == 0) {
    //     println("延长确认，自动确认");

    //     //递交结束
    //     var loopCount = 0;
    //     while (loopCount < 10) {
    //         loopCount++;
    //         println(gguid);
    //         var t = taskInfoForWork('dy', gguid);
    //         println(JSON.stringify(t));
    //         if (t.taskList.length == 0) break;
    //         //将任务递交下去，如果任务需要签收，则先签收     
    //         for (var i = 0; i < t.taskList.length; i++) {
    //             var task = t.taskList[i];

    //             //可以递交，那么递交下去
    //             if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
    //             //需要先签收 ，那么以第一个候选人签收它
    //             if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

    //         }


    //     }

    // }

    return 'over';

}


id: 66bb0ae7993294a6b348584f
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:32:02.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var list = getListFromSQL2( '', `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 and b.flow_instance_starttime is not null`);
    
    // var list = getListFromSQL2( '', `select flow_instance_starttime,flow_instance_state,flow_instance_status from  pz_yjd `) 

    return list

    // if (ds.getInt(0, 'pass') == 0) {
    //     println("延长确认，自动确认");

    //     //递交结束
    //     var loopCount = 0;
    //     while (loopCount < 10) {
    //         loopCount++;
    //         println(gguid);
    //         var t = taskInfoForWork('dy', gguid);
    //         println(JSON.stringify(t));
    //         if (t.taskList.length == 0) break;
    //         //将任务递交下去，如果任务需要签收，则先签收     
    //         for (var i = 0; i < t.taskList.length; i++) {
    //             var task = t.taskList[i];

    //             //可以递交，那么递交下去
    //             if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
    //             //需要先签收 ，那么以第一个候选人签收它
    //             if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

    //         }


    //     }

    // }

    return 'over';

}


id: 66bb0ae7993294a6b3485855
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:34:00.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var dsn = "";
    var sql = `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 and b.flow_instance_starttime is not null`;
    var list = getListFromSQL2( dsn, sql);
    

    // var list = getListFromSQL2( '', `select flow_instance_starttime,flow_instance_state,flow_instance_status from  pz_yjd `) 

    return list
    
    var ds = newDataStore(dsn, sql);
    ds.retrieve();
    println("select : " + ds.getSelectLastRetrieved())
    var count = ds.getRowCount();
    println('count: ' + count)
    for(var i=0; i<count;i++){
        var item = JSON.parse(ds.getJSONRow(i));
        
    }
    // ds.setUpdateProperty('zjsy_scoring_record', 'id', '*', 'id');

    // if (ds.getInt(0, 'pass') == 0) {
    //     println("延长确认，自动确认");

    //     //递交结束
    //     var loopCount = 0;
    //     while (loopCount < 10) {
    //         loopCount++;
    //         println(gguid);
    //         var t = taskInfoForWork('dy', gguid);
    //         println(JSON.stringify(t));
    //         if (t.taskList.length == 0) break;
    //         //将任务递交下去，如果任务需要签收，则先签收     
    //         for (var i = 0; i < t.taskList.length; i++) {
    //             var task = t.taskList[i];

    //             //可以递交，那么递交下去
    //             if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
    //             //需要先签收 ，那么以第一个候选人签收它
    //             if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

    //         }


    //     }

    // }

    return 'over';

}


id: 66bb0ae7993294a6b348585b
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:36:44.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var dsn = "";
    var sql = `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 and b.flow_instance_starttime is not null`;
    var list = getListFromSQL2( dsn, sql);
    

    // var list = getListFromSQL2( '', `select flow_instance_starttime,flow_instance_state,flow_instance_status from  pz_yjd `) 

    return list
    
    var ds = newDataStore(dsn, sql);
    ds.retrieve();
    println("select : " + ds.getSelectLastRetrieved())
    var count = ds.getRowCount();
    println('count: ' + count)
    for(var i=0; i<count;i++){
        var item = JSON.parse(ds.getJSONRow(i));
        var dayArr = item.flow_instance_starttime.replace(/ /g,'-').replace(/:/g,'-').replace(/./g,'-').split('-');
    }
    // ds.setUpdateProperty('zjsy_scoring_record', 'id', '*', 'id');

    // if (ds.getInt(0, 'pass') == 0) {
    //     println("延长确认，自动确认");

    //     //递交结束
    //     var loopCount = 0;
    //     while (loopCount < 10) {
    //         loopCount++;
    //         println(gguid);
    //         var t = taskInfoForWork('dy', gguid);
    //         println(JSON.stringify(t));
    //         if (t.taskList.length == 0) break;
    //         //将任务递交下去，如果任务需要签收，则先签收     
    //         for (var i = 0; i < t.taskList.length; i++) {
    //             var task = t.taskList[i];

    //             //可以递交，那么递交下去
    //             if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
    //             //需要先签收 ，那么以第一个候选人签收它
    //             if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

    //         }


    //     }

    // }

    return 'over';

}


id: 66bb0ae7993294a6b3485861
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:38:58.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var dsn = "";
    var sql = `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 and b.flow_instance_starttime is not null`;
    var list = getListFromSQL2( dsn, sql);
    

    // var list = getListFromSQL2( '', `select flow_instance_starttime,flow_instance_state,flow_instance_status from  pz_yjd `) 

    return list
    
    var ds = newDataStore(dsn, sql);
    ds.retrieve();
    println("select : " + ds.getSelectLastRetrieved())
    var count = ds.getRowCount();
    println('count: ' + count)
    for(var i=0; i<count;i++){
        var item = JSON.parse(ds.getJSONRow(i));
        var dayArr = item.flow_instance_starttime.replace(/ /g,'-').replace(/:/g,'-').replace(/./g,'-').split('-');
        
        var confirmTime = nextDate( currentDate() , item.qsqx!='0'?item.qsqx:item.qsqx2);
    }
    // ds.setUpdateProperty('zjsy_scoring_record', 'id', '*', 'id');

    // if (ds.getInt(0, 'pass') == 0) {
    //     println("延长确认，自动确认");

    //     //递交结束
    //     var loopCount = 0;
    //     while (loopCount < 10) {
    //         loopCount++;
    //         println(gguid);
    //         var t = taskInfoForWork('dy', gguid);
    //         println(JSON.stringify(t));
    //         if (t.taskList.length == 0) break;
    //         //将任务递交下去，如果任务需要签收，则先签收     
    //         for (var i = 0; i < t.taskList.length; i++) {
    //             var task = t.taskList[i];

    //             //可以递交，那么递交下去
    //             if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
    //             //需要先签收 ，那么以第一个候选人签收它
    //             if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

    //         }


    //     }

    // }

    return 'over';

}


id: 66bb0ae7993294a6b3485867
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:39:21.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var dsn = "";
    var sql = `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 and b.flow_instance_starttime is not null`;
    var list = getListFromSQL2( dsn, sql);
    

    // var list = getListFromSQL2( '', `select flow_instance_starttime,flow_instance_state,flow_instance_status from  pz_yjd `) 

    return list
    
    var ds = newDataStore(dsn, sql);
    ds.retrieve();
    println("select : " + ds.getSelectLastRetrieved())
    var count = ds.getRowCount();
    println('count: ' + count)
    for(var i=0; i<count;i++){
        var item = JSON.parse(ds.getJSONRow(i));
        var dayArr = item.flow_instance_starttime.replace(/ /g,'-').replace(/:/g,'-').replace(/./g,'-').split('-');
        
        var confirmTime =formatDate(  nextDate( currentDate() , item.qsqx!='0'?item.qsqx:item.qsqx2) , "yyyy.MM.dd HH:mm:ss");
    }
    // ds.setUpdateProperty('zjsy_scoring_record', 'id', '*', 'id');

    // if (ds.getInt(0, 'pass') == 0) {
    //     println("延长确认，自动确认");

    //     //递交结束
    //     var loopCount = 0;
    //     while (loopCount < 10) {
    //         loopCount++;
    //         println(gguid);
    //         var t = taskInfoForWork('dy', gguid);
    //         println(JSON.stringify(t));
    //         if (t.taskList.length == 0) break;
    //         //将任务递交下去，如果任务需要签收，则先签收     
    //         for (var i = 0; i < t.taskList.length; i++) {
    //             var task = t.taskList[i];

    //             //可以递交，那么递交下去
    //             if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
    //             //需要先签收 ，那么以第一个候选人签收它
    //             if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

    //         }


    //     }

    // }

    return 'over';

}


id: 66bb0ae7993294a6b348586d
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:39:37.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var dsn = "";
    var sql = `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 and b.flow_instance_starttime is not null and a.state=0`;
    var list = getListFromSQL2( dsn, sql);
    

    // var list = getListFromSQL2( '', `select flow_instance_starttime,flow_instance_state,flow_instance_status from  pz_yjd `) 

    return list
    
    var ds = newDataStore(dsn, sql);
    ds.retrieve();
    println("select : " + ds.getSelectLastRetrieved())
    var count = ds.getRowCount();
    println('count: ' + count)
    for(var i=0; i<count;i++){
        var item = JSON.parse(ds.getJSONRow(i));
        var dayArr = item.flow_instance_starttime.replace(/ /g,'-').replace(/:/g,'-').replace(/./g,'-').split('-');
        
        var confirmTime =formatDate(  nextDate( currentDate() , item.qsqx!='0'?item.qsqx:item.qsqx2) , "yyyy.MM.dd HH:mm:ss");
    }
    // ds.setUpdateProperty('zjsy_scoring_record', 'id', '*', 'id');

    // if (ds.getInt(0, 'pass') == 0) {
    //     println("延长确认，自动确认");

    //     //递交结束
    //     var loopCount = 0;
    //     while (loopCount < 10) {
    //         loopCount++;
    //         println(gguid);
    //         var t = taskInfoForWork('dy', gguid);
    //         println(JSON.stringify(t));
    //         if (t.taskList.length == 0) break;
    //         //将任务递交下去，如果任务需要签收，则先签收     
    //         for (var i = 0; i < t.taskList.length; i++) {
    //             var task = t.taskList[i];

    //             //可以递交，那么递交下去
    //             if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
    //             //需要先签收 ，那么以第一个候选人签收它
    //             if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

    //         }


    //     }

    // }

    return 'over';

}


id: 66bb0ae7993294a6b3485873
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:39:45.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var dsn = "";
    var sql = `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 and b.flow_instance_starttime is not null and a.state=0`;
    var list = getListFromSQL2( dsn, sql);
    

    // var list = getListFromSQL2( '', `select flow_instance_starttime,flow_instance_state,flow_instance_status from  pz_yjd `) 

    return list
    
    var ds = newDataStore(dsn, sql);
    ds.retrieve();
    println("select : " + ds.getSelectLastRetrieved())
    var count = ds.getRowCount();
    println('count: ' + count)
    for(var i=0; i<count;i++){
        var item = JSON.parse(ds.getJSONRow(i));
        var dayArr = item.flow_instance_starttime.replace(/ /g,'-').replace(/:/g,'-').replace(/./g,'-').split('-');
        var confirmTime =formatDate(  nextDate( currentDate() , item.qsqx!='0'?item.qsqx:item.qsqx2) , "yyyy.MM.dd HH:mm:ss");
    }
    // ds.setUpdateProperty('zjsy_scoring_record', 'id', '*', 'id');

    // if (ds.getInt(0, 'pass') == 0) {
    //     println("延长确认，自动确认");

    //     //递交结束
    //     var loopCount = 0;
    //     while (loopCount < 10) {
    //         loopCount++;
    //         println(gguid);
    //         var t = taskInfoForWork('dy', gguid);
    //         println(JSON.stringify(t));
    //         if (t.taskList.length == 0) break;
    //         //将任务递交下去，如果任务需要签收，则先签收     
    //         for (var i = 0; i < t.taskList.length; i++) {
    //             var task = t.taskList[i];

    //             //可以递交，那么递交下去
    //             if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
    //             //需要先签收 ，那么以第一个候选人签收它
    //             if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

    //         }


    //     }

    // }

    return 'over';

}


id: 66bb0ae7993294a6b3485879
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:41:15.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var dsn = "";
    var sql = `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 and b.flow_instance_starttime is not null and a.state=0`;
    var list = getListFromSQL2( dsn, sql);
    

    // var list = getListFromSQL2( '', `select flow_instance_starttime,flow_instance_state,flow_instance_status from  pz_yjd `) 

    return list
    
    var ds = newDataStore(dsn, sql);
    ds.retrieve();
    println("select : " + ds.getSelectLastRetrieved())
    var count = ds.getRowCount();
    println('count: ' + count)
    for(var i=0; i<count;i++){
        var item = JSON.parse(ds.getJSONRow(i));
        var dayArr = item.flow_instance_starttime.replace(/ /g,'-').replace(/:/g,'-').replace(/./g,'-').split('-');
        println( 'dayArr  ' + JSON.stringify(dayArr) ) 
        
        var confirmTime =formatDate(  nextDate( createDate2(dayArr[0],dayArr[1],dayArr[2],dayArr[3],dayArr[4],dayArr[5]) , item.qsqx!='0'?item.qsqx:item.qsqx2) , "yyyy.MM.dd HH:mm:ss");
    }
    // ds.setUpdateProperty('zjsy_scoring_record', 'id', '*', 'id');

    // if (ds.getInt(0, 'pass') == 0) {
    //     println("延长确认，自动确认");

    //     //递交结束
    //     var loopCount = 0;
    //     while (loopCount < 10) {
    //         loopCount++;
    //         println(gguid);
    //         var t = taskInfoForWork('dy', gguid);
    //         println(JSON.stringify(t));
    //         if (t.taskList.length == 0) break;
    //         //将任务递交下去，如果任务需要签收，则先签收     
    //         for (var i = 0; i < t.taskList.length; i++) {
    //             var task = t.taskList[i];

    //             //可以递交，那么递交下去
    //             if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
    //             //需要先签收 ，那么以第一个候选人签收它
    //             if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

    //         }


    //     }

    // }

    return 'over';

}


id: 66bb0ae7993294a6b348587f
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:42:09.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var dsn = "";
    var sql = `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 and b.flow_instance_starttime is not null and a.state=0`;
    var list = getListFromSQL2( dsn, sql);
    

    // var list = getListFromSQL2( '', `select flow_instance_starttime,flow_instance_state,flow_instance_status from  pz_yjd `) 

    return list
    
    var ds = newDataStore(dsn, sql);
    ds.retrieve();
    println("select : " + ds.getSelectLastRetrieved())
    var count = ds.getRowCount();
    println('count: ' + count)
    for(var i=0; i<count;i++){
        var item = JSON.parse(ds.getJSONRow(i));
        var dayArr = item.flow_instance_starttime.replace(/ /g,'-').replace(/:/g,'-').replace(/./g,'-').split('-');
        println( 'dayArr  ' + JSON.stringify(dayArr) ) 
        
        var confirmTime =formatDate(  nextDate( createDate2(dayArr[0],dayArr[1],dayArr[2],dayArr[3],dayArr[4],dayArr[5]) , item.qsqx!='0'?item.qsqx:item.qsqx2) , "yyyy.MM.dd HH:mm:ss");
        var nowTime = formatDate(  currentDate() , "yyyy.MM.dd HH:mm:ss");
        if(nowTime>=nowTime){
            
        }
    }
    // ds.setUpdateProperty('zjsy_scoring_record', 'id', '*', 'id');

    // if (ds.getInt(0, 'pass') == 0) {
    //     println("延长确认，自动确认");

    //     //递交结束
    //     var loopCount = 0;
    //     while (loopCount < 10) {
    //         loopCount++;
    //         println(gguid);
    //         var t = taskInfoForWork('dy', gguid);
    //         println(JSON.stringify(t));
    //         if (t.taskList.length == 0) break;
    //         //将任务递交下去，如果任务需要签收，则先签收     
    //         for (var i = 0; i < t.taskList.length; i++) {
    //             var task = t.taskList[i];

    //             //可以递交，那么递交下去
    //             if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
    //             //需要先签收 ，那么以第一个候选人签收它
    //             if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

    //         }


    //     }

    // }

    return 'over';

}


id: 66bb0ae7993294a6b3485885
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:42:15.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var dsn = "";
    var sql = `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 and b.flow_instance_starttime is not null and a.state=0`;
    var list = getListFromSQL2( dsn, sql);
    

    // var list = getListFromSQL2( '', `select flow_instance_starttime,flow_instance_state,flow_instance_status from  pz_yjd `) 

    return list
    
    var ds = newDataStore(dsn, sql);
    ds.retrieve();
    println("select : " + ds.getSelectLastRetrieved())
    var count = ds.getRowCount();
    println('count: ' + count)
    for(var i=0; i<count;i++){
        var item = JSON.parse(ds.getJSONRow(i));
        var dayArr = item.flow_instance_starttime.replace(/ /g,'-').replace(/:/g,'-').replace(/./g,'-').split('-');
        println( 'dayArr  ' + JSON.stringify(dayArr) ) 
        
        var confirmTime =formatDate(  nextDate( createDate2(dayArr[0],dayArr[1],dayArr[2],dayArr[3],dayArr[4],dayArr[5]) , item.qsqx!='0'?item.qsqx:item.qsqx2) , "yyyy.MM.dd HH:mm:ss");
        var nowTime = formatDate(  currentDate() , "yyyy.MM.dd HH:mm:ss");
        if(nowTime<=nowTime){

        }
    }
    // ds.setUpdateProperty('zjsy_scoring_record', 'id', '*', 'id');

    // if (ds.getInt(0, 'pass') == 0) {
    //     println("延长确认，自动确认");

    //     //递交结束
    //     var loopCount = 0;
    //     while (loopCount < 10) {
    //         loopCount++;
    //         println(gguid);
    //         var t = taskInfoForWork('dy', gguid);
    //         println(JSON.stringify(t));
    //         if (t.taskList.length == 0) break;
    //         //将任务递交下去，如果任务需要签收，则先签收     
    //         for (var i = 0; i < t.taskList.length; i++) {
    //             var task = t.taskList[i];

    //             //可以递交，那么递交下去
    //             if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
    //             //需要先签收 ，那么以第一个候选人签收它
    //             if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

    //         }


    //     }

    // }

    return 'over';

}


id: 66bb0e83993294a6b348588b
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:43:00.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var dsn = "";
    var sql = `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 and b.flow_instance_starttime is not null and a.state=0`;
    var list = getListFromSQL2( dsn, sql);
    

    // var list = getListFromSQL2( '', `select flow_instance_starttime,flow_instance_state,flow_instance_status from  pz_yjd `) 

    return list
    
    var ds = newDataStore(dsn, sql);
    ds.retrieve();
    println("select : " + ds.getSelectLastRetrieved())
    var count = ds.getRowCount();
    println('count: ' + count)
    for(var i=0; i<count;i++){
        var item = JSON.parse(ds.getJSONRow(i));
        var dayArr = item.flow_instance_starttime.replace(/ /g,'-').replace(/:/g,'-').replace(/./g,'-').split('-');
        println( 'dayArr  ' + JSON.stringify(dayArr) ) 
        
        var confirmTime =formatDate(  nextDate( createDate2(dayArr[0],dayArr[1],dayArr[2],dayArr[3],dayArr[4],dayArr[5]) , item.qsqx!='0'?item.qsqx:item.qsqx2) , "yyyy.MM.dd HH:mm:ss");
        var nowTime = formatDate(  currentDate() , "yyyy.MM.dd HH:mm:ss");
        if(nowTime<=confirmTime){
            runSQL(dsn, `update pz_yjd_pzh set state=1 where id='${item.id}'` ); 
        }
    }
    // ds.setUpdateProperty('zjsy_scoring_record', 'id', '*', 'id');

    // if (ds.getInt(0, 'pass') == 0) {
    //     println("延长确认，自动确认");

    //     //递交结束
    //     var loopCount = 0;
    //     while (loopCount < 10) {
    //         loopCount++;
    //         println(gguid);
    //         var t = taskInfoForWork('dy', gguid);
    //         println(JSON.stringify(t));
    //         if (t.taskList.length == 0) break;
    //         //将任务递交下去，如果任务需要签收，则先签收     
    //         for (var i = 0; i < t.taskList.length; i++) {
    //             var task = t.taskList[i];

    //             //可以递交，那么递交下去
    //             if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
    //             //需要先签收 ，那么以第一个候选人签收它
    //             if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

    //         }


    //     }

    // }

    return 'over';

}


id: 66bb0e83993294a6b3485891
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:43:06.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var dsn = "";
    var sql = `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 and b.flow_instance_starttime is not null and a.state=0`;
    // var list = getListFromSQL2( dsn, sql);
    

    // // var list = getListFromSQL2( '', `select flow_instance_starttime,flow_instance_state,flow_instance_status from  pz_yjd `) 

    // return list
    
    var ds = newDataStore(dsn, sql);
    ds.retrieve();
    println("select : " + ds.getSelectLastRetrieved())
    var count = ds.getRowCount();
    println('count: ' + count)
    for(var i=0; i<count;i++){
        var item = JSON.parse(ds.getJSONRow(i));
        var dayArr = item.flow_instance_starttime.replace(/ /g,'-').replace(/:/g,'-').replace(/./g,'-').split('-');
        println( 'dayArr  ' + JSON.stringify(dayArr) ) 
        
        var confirmTime =formatDate(  nextDate( createDate2(dayArr[0],dayArr[1],dayArr[2],dayArr[3],dayArr[4],dayArr[5]) , item.qsqx!='0'?item.qsqx:item.qsqx2) , "yyyy.MM.dd HH:mm:ss");
        var nowTime = formatDate(  currentDate() , "yyyy.MM.dd HH:mm:ss");
        if(nowTime<=confirmTime){
            runSQL(dsn, `update pz_yjd_pzh set state=1 where id='${item.id}'` ); 
        }
    }
    // ds.setUpdateProperty('zjsy_scoring_record', 'id', '*', 'id');

    // if (ds.getInt(0, 'pass') == 0) {
    //     println("延长确认，自动确认");

    //     //递交结束
    //     var loopCount = 0;
    //     while (loopCount < 10) {
    //         loopCount++;
    //         println(gguid);
    //         var t = taskInfoForWork('dy', gguid);
    //         println(JSON.stringify(t));
    //         if (t.taskList.length == 0) break;
    //         //将任务递交下去，如果任务需要签收，则先签收     
    //         for (var i = 0; i < t.taskList.length; i++) {
    //             var task = t.taskList[i];

    //             //可以递交，那么递交下去
    //             if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
    //             //需要先签收 ，那么以第一个候选人签收它
    //             if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

    //         }


    //     }

    // }

    return 'over';

}


id: 66bb0e83993294a6b3485897
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:44:03.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var dsn = "";
    var sql = `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 and b.flow_instance_starttime is not null and a.state=0`;
    // var list = getListFromSQL2( dsn, sql);
    

    // // var list = getListFromSQL2( '', `select flow_instance_starttime,flow_instance_state,flow_instance_status from  pz_yjd `) 

    // return list
    
    var ds = newDataStore(dsn, sql);
    ds.retrieve();
    println("select : " + ds.getSelectLastRetrieved())
    var count = ds.getRowCount();
    println('count: ' + count)
    for(var i=0; i<count;i++){
        var item = JSON.parse(ds.getJSONRow(i));
        var dayArr = item.flow_instance_starttime.replace(/ /g,'-').replace(/:/g,'-').replace(/./g,'-').split('-');
        println( 'dayArr  ' + JSON.stringify(dayArr) ) 
        
        var confirmTime =formatDate(  nextDate( createDate2(dayArr[0],dayArr[1],dayArr[2],dayArr[3],dayArr[4],dayArr[5]) , item.qsqx!='0'?item.qsqx:item.qsqx2) , "yyyy.MM.dd HH:mm:ss");
        var nowTime = formatDate(  currentDate() , "yyyy.MM.dd HH:mm:ss");

        println( 'confirmTime  ' + JSON.stringify(confirmTime) ) 
        println( 'nowTime  ' + JSON.stringify(nowTime) ) 

        if(nowTime<=confirmTime){
            runSQL(dsn, `update pz_yjd_pzh set state=1 where id='${item.id}'` ); 
        }
    }
    // ds.setUpdateProperty('zjsy_scoring_record', 'id', '*', 'id');

    // if (ds.getInt(0, 'pass') == 0) {
    //     println("延长确认，自动确认");

    //     //递交结束
    //     var loopCount = 0;
    //     while (loopCount < 10) {
    //         loopCount++;
    //         println(gguid);
    //         var t = taskInfoForWork('dy', gguid);
    //         println(JSON.stringify(t));
    //         if (t.taskList.length == 0) break;
    //         //将任务递交下去，如果任务需要签收，则先签收     
    //         for (var i = 0; i < t.taskList.length; i++) {
    //             var task = t.taskList[i];

    //             //可以递交，那么递交下去
    //             if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
    //             //需要先签收 ，那么以第一个候选人签收它
    //             if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

    //         }


    //     }

    // }

    return 'over';

}


id: 66bb0e83993294a6b348589d
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:51:52.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var dsn = "";
    var sql = `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 and b.flow_instance_starttime is not null and a.state=0`;
    // var list = getListFromSQL2( dsn, sql);
    

    var list = getListFromSQL2( '', `select * from  pz_yjd `) 

    // return list
    
    var ds = newDataStore(dsn, sql);
    ds.retrieve();
    println("select : " + ds.getSelectLastRetrieved())
    var count = ds.getRowCount();
    println('count: ' + count)
    for(var i=0; i<count;i++){
        var item = JSON.parse(ds.getJSONRow(i));
        var dayArr = item.flow_instance_starttime.replace(/ /g,'-').replace(/:/g,'-').replace(/./g,'-').split('-');
        println( 'dayArr  ' + JSON.stringify(dayArr) ) 
        
        var confirmTime =formatDate(  nextDate( createDate2(dayArr[0],dayArr[1],dayArr[2],dayArr[3],dayArr[4],dayArr[5]) , item.qsqx!='0'?item.qsqx:item.qsqx2) , "yyyy.MM.dd HH:mm:ss");
        var nowTime = formatDate(  currentDate() , "yyyy.MM.dd HH:mm:ss");

        println( 'confirmTime  ' + JSON.stringify(confirmTime) ) 
        println( 'nowTime  ' + JSON.stringify(nowTime) ) 

        if(nowTime<=confirmTime){
            runSQL(dsn, `update pz_yjd_pzh set state=1 where id='${item.id}'` ); 
        }
    }



    // ds.setUpdateProperty('zjsy_scoring_record', 'id', '*', 'id');

    // if (ds.getInt(0, 'pass') == 0) {
    //     println("延长确认，自动确认");

    //     //递交结束
    //     var loopCount = 0;
    //     while (loopCount < 10) {
    //         loopCount++;
    //         println(gguid);
    //         var t = taskInfoForWork('dy', gguid);
    //         println(JSON.stringify(t));
    //         if (t.taskList.length == 0) break;
    //         //将任务递交下去，如果任务需要签收，则先签收     
    //         for (var i = 0; i < t.taskList.length; i++) {
    //             var task = t.taskList[i];

    //             //可以递交，那么递交下去
    //             if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
    //             //需要先签收 ，那么以第一个候选人签收它
    //             if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

    //         }


    //     }

    // }

    return 'over';

}


id: 66bb0e83993294a6b34858a3
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:51:56.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var dsn = "";
    var sql = `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 and b.flow_instance_starttime is not null and a.state=0`;
    // var list = getListFromSQL2( dsn, sql);
    

    var list = getListFromSQL2( '', `select * from  pz_yjd `) 

    return list
    
    var ds = newDataStore(dsn, sql);
    ds.retrieve();
    println("select : " + ds.getSelectLastRetrieved())
    var count = ds.getRowCount();
    println('count: ' + count)
    for(var i=0; i<count;i++){
        var item = JSON.parse(ds.getJSONRow(i));
        var dayArr = item.flow_instance_starttime.replace(/ /g,'-').replace(/:/g,'-').replace(/./g,'-').split('-');
        println( 'dayArr  ' + JSON.stringify(dayArr) ) 
        
        var confirmTime =formatDate(  nextDate( createDate2(dayArr[0],dayArr[1],dayArr[2],dayArr[3],dayArr[4],dayArr[5]) , item.qsqx!='0'?item.qsqx:item.qsqx2) , "yyyy.MM.dd HH:mm:ss");
        var nowTime = formatDate(  currentDate() , "yyyy.MM.dd HH:mm:ss");

        println( 'confirmTime  ' + JSON.stringify(confirmTime) ) 
        println( 'nowTime  ' + JSON.stringify(nowTime) ) 

        if(nowTime<=confirmTime){
            runSQL(dsn, `update pz_yjd_pzh set state=1 where id='${item.id}'` ); 
        }
    }



    // ds.setUpdateProperty('zjsy_scoring_record', 'id', '*', 'id');

    // if (ds.getInt(0, 'pass') == 0) {
    //     println("延长确认，自动确认");

    //     //递交结束
    //     var loopCount = 0;
    //     while (loopCount < 10) {
    //         loopCount++;
    //         println(gguid);
    //         var t = taskInfoForWork('dy', gguid);
    //         println(JSON.stringify(t));
    //         if (t.taskList.length == 0) break;
    //         //将任务递交下去，如果任务需要签收，则先签收     
    //         for (var i = 0; i < t.taskList.length; i++) {
    //             var task = t.taskList[i];

    //             //可以递交，那么递交下去
    //             if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
    //             //需要先签收 ，那么以第一个候选人签收它
    //             if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

    //         }


    //     }

    // }

    return 'over';

}


id: 66bb0e83993294a6b34858ac
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:56:13.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var dsn = "";
    var sql = `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 and b.flow_instance_starttime is not null and a.state=0`;
    // var list = getListFromSQL2( dsn, sql);
    

    // var list = getListFromSQL2( '', `select * from  pz_yjd `) 
    var list = getListFromSQL2( '', `select gguid, (case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh where  count=0  group by gguid`) 

    return list
    
    var ds = newDataStore(dsn, sql);
    ds.retrieve();
    println("select : " + ds.getSelectLastRetrieved())
    var count = ds.getRowCount();
    println('count: ' + count)
    for(var i=0; i<count;i++){
        var item = JSON.parse(ds.getJSONRow(i));
        var dayArr = item.flow_instance_starttime.replace(/ /g,'-').replace(/:/g,'-').replace(/./g,'-').split('-');
        println( 'dayArr  ' + JSON.stringify(dayArr) ) 
        
        var confirmTime =formatDate(  nextDate( createDate2(dayArr[0],dayArr[1],dayArr[2],dayArr[3],dayArr[4],dayArr[5]) , item.qsqx!='0'?item.qsqx:item.qsqx2) , "yyyy.MM.dd HH:mm:ss");
        var nowTime = formatDate(  currentDate() , "yyyy.MM.dd HH:mm:ss");

        println( 'confirmTime  ' + JSON.stringify(confirmTime) ) 
        println( 'nowTime  ' + JSON.stringify(nowTime) ) 

        if(nowTime<=confirmTime){
            runSQL(dsn, `update pz_yjd_pzh set state=1 where id='${item.id}'` ); 
        }
    }


    var list = getListFromSQL2( '', `select * from  pz_yjd where  flow_instance_state = 0 and `) 


    // ds.setUpdateProperty('zjsy_scoring_record', 'id', '*', 'id');

    // if (ds.getInt(0, 'pass') == 0) {
    //     println("延长确认，自动确认");

    //     //递交结束
    //     var loopCount = 0;
    //     while (loopCount < 10) {
    //         loopCount++;
    //         println(gguid);
    //         var t = taskInfoForWork('dy', gguid);
    //         println(JSON.stringify(t));
    //         if (t.taskList.length == 0) break;
    //         //将任务递交下去，如果任务需要签收，则先签收     
    //         for (var i = 0; i < t.taskList.length; i++) {
    //             var task = t.taskList[i];

    //             //可以递交，那么递交下去
    //             if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
    //             //需要先签收 ，那么以第一个候选人签收它
    //             if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

    //         }


    //     }

    // }

    return 'over';

}


id: 66bb0e83993294a6b34858b2
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:56:22.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var dsn = "";
    var sql = `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 and b.flow_instance_starttime is not null and a.state=0`;
    // var list = getListFromSQL2( dsn, sql);
    

    // var list = getListFromSQL2( '', `select * from  pz_yjd `) 
    var list = getListFromSQL2( '', `select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh where  count=0  group by gguid`) 

    return list
    
    var ds = newDataStore(dsn, sql);
    ds.retrieve();
    println("select : " + ds.getSelectLastRetrieved())
    var count = ds.getRowCount();
    println('count: ' + count)
    for(var i=0; i<count;i++){
        var item = JSON.parse(ds.getJSONRow(i));
        var dayArr = item.flow_instance_starttime.replace(/ /g,'-').replace(/:/g,'-').replace(/./g,'-').split('-');
        println( 'dayArr  ' + JSON.stringify(dayArr) ) 
        
        var confirmTime =formatDate(  nextDate( createDate2(dayArr[0],dayArr[1],dayArr[2],dayArr[3],dayArr[4],dayArr[5]) , item.qsqx!='0'?item.qsqx:item.qsqx2) , "yyyy.MM.dd HH:mm:ss");
        var nowTime = formatDate(  currentDate() , "yyyy.MM.dd HH:mm:ss");

        println( 'confirmTime  ' + JSON.stringify(confirmTime) ) 
        println( 'nowTime  ' + JSON.stringify(nowTime) ) 

        if(nowTime<=confirmTime){
            runSQL(dsn, `update pz_yjd_pzh set state=1 where id='${item.id}'` ); 
        }
    }


    var list = getListFromSQL2( '', `select * from  pz_yjd where  flow_instance_state = 0 and `) 


    // ds.setUpdateProperty('zjsy_scoring_record', 'id', '*', 'id');

    // if (ds.getInt(0, 'pass') == 0) {
    //     println("延长确认，自动确认");

    //     //递交结束
    //     var loopCount = 0;
    //     while (loopCount < 10) {
    //         loopCount++;
    //         println(gguid);
    //         var t = taskInfoForWork('dy', gguid);
    //         println(JSON.stringify(t));
    //         if (t.taskList.length == 0) break;
    //         //将任务递交下去，如果任务需要签收，则先签收     
    //         for (var i = 0; i < t.taskList.length; i++) {
    //             var task = t.taskList[i];

    //             //可以递交，那么递交下去
    //             if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
    //             //需要先签收 ，那么以第一个候选人签收它
    //             if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

    //         }


    //     }

    // }

    return 'over';

}


id: 66bb0e83993294a6b34858b8
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:56:38.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var dsn = "";
    var sql = `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 and b.flow_instance_starttime is not null and a.state=0`;
    // var list = getListFromSQL2( dsn, sql);
    

    // var list = getListFromSQL2( '', `select * from  pz_yjd `) 
    var list = getListFromSQL2( '', `select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh where  flow_instance_state=0  group by gguid`) 

    return list
    
    var ds = newDataStore(dsn, sql);
    ds.retrieve();
    println("select : " + ds.getSelectLastRetrieved())
    var count = ds.getRowCount();
    println('count: ' + count)
    for(var i=0; i<count;i++){
        var item = JSON.parse(ds.getJSONRow(i));
        var dayArr = item.flow_instance_starttime.replace(/ /g,'-').replace(/:/g,'-').replace(/./g,'-').split('-');
        println( 'dayArr  ' + JSON.stringify(dayArr) ) 
        
        var confirmTime =formatDate(  nextDate( createDate2(dayArr[0],dayArr[1],dayArr[2],dayArr[3],dayArr[4],dayArr[5]) , item.qsqx!='0'?item.qsqx:item.qsqx2) , "yyyy.MM.dd HH:mm:ss");
        var nowTime = formatDate(  currentDate() , "yyyy.MM.dd HH:mm:ss");

        println( 'confirmTime  ' + JSON.stringify(confirmTime) ) 
        println( 'nowTime  ' + JSON.stringify(nowTime) ) 

        if(nowTime<=confirmTime){
            runSQL(dsn, `update pz_yjd_pzh set state=1 where id='${item.id}'` ); 
        }
    }


    var list = getListFromSQL2( '', `select * from  pz_yjd where  flow_instance_state = 0 and `) 


    // ds.setUpdateProperty('zjsy_scoring_record', 'id', '*', 'id');

    // if (ds.getInt(0, 'pass') == 0) {
    //     println("延长确认，自动确认");

    //     //递交结束
    //     var loopCount = 0;
    //     while (loopCount < 10) {
    //         loopCount++;
    //         println(gguid);
    //         var t = taskInfoForWork('dy', gguid);
    //         println(JSON.stringify(t));
    //         if (t.taskList.length == 0) break;
    //         //将任务递交下去，如果任务需要签收，则先签收     
    //         for (var i = 0; i < t.taskList.length; i++) {
    //             var task = t.taskList[i];

    //             //可以递交，那么递交下去
    //             if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
    //             //需要先签收 ，那么以第一个候选人签收它
    //             if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

    //         }


    //     }

    // }

    return 'over';

}


id: 66bb0e83993294a6b34858be
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:57:07.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var dsn = "";
    var sql = `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 and b.flow_instance_starttime is not null and a.state=0`;
    // var list = getListFromSQL2( dsn, sql);
    

    // var list = getListFromSQL2( '', `select * from  pz_yjd `) 
    var list = getListFromSQL2( '', `select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh   group by gguid`) 

    return list
    
    var ds = newDataStore(dsn, sql);
    ds.retrieve();
    println("select : " + ds.getSelectLastRetrieved())
    var count = ds.getRowCount();
    println('count: ' + count)
    for(var i=0; i<count;i++){
        var item = JSON.parse(ds.getJSONRow(i));
        var dayArr = item.flow_instance_starttime.replace(/ /g,'-').replace(/:/g,'-').replace(/./g,'-').split('-');
        println( 'dayArr  ' + JSON.stringify(dayArr) ) 
        
        var confirmTime =formatDate(  nextDate( createDate2(dayArr[0],dayArr[1],dayArr[2],dayArr[3],dayArr[4],dayArr[5]) , item.qsqx!='0'?item.qsqx:item.qsqx2) , "yyyy.MM.dd HH:mm:ss");
        var nowTime = formatDate(  currentDate() , "yyyy.MM.dd HH:mm:ss");

        println( 'confirmTime  ' + JSON.stringify(confirmTime) ) 
        println( 'nowTime  ' + JSON.stringify(nowTime) ) 

        if(nowTime<=confirmTime){
            runSQL(dsn, `update pz_yjd_pzh set state=1 where id='${item.id}'` ); 
        }
    }


    var list = getListFromSQL2( '', `select * from  pz_yjd where  flow_instance_state = 0 and `) 


    // ds.setUpdateProperty('zjsy_scoring_record', 'id', '*', 'id');

    // if (ds.getInt(0, 'pass') == 0) {
    //     println("延长确认，自动确认");

    //     //递交结束
    //     var loopCount = 0;
    //     while (loopCount < 10) {
    //         loopCount++;
    //         println(gguid);
    //         var t = taskInfoForWork('dy', gguid);
    //         println(JSON.stringify(t));
    //         if (t.taskList.length == 0) break;
    //         //将任务递交下去，如果任务需要签收，则先签收     
    //         for (var i = 0; i < t.taskList.length; i++) {
    //             var task = t.taskList[i];

    //             //可以递交，那么递交下去
    //             if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
    //             //需要先签收 ，那么以第一个候选人签收它
    //             if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

    //         }


    //     }

    // }

    return 'over';

}


id: 66bb0e83993294a6b34858c4
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 15:57:26.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var dsn = "";
    var sql = `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 and b.flow_instance_starttime is not null and a.state=0`;
    // var list = getListFromSQL2( dsn, sql);
    

    // var list = getListFromSQL2( '', `select * from  pz_yjd `) 
    var list = getListFromSQL2( '', `select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh where count=4  group by gguid`) 

    return list
    
    var ds = newDataStore(dsn, sql);
    ds.retrieve();
    println("select : " + ds.getSelectLastRetrieved())
    var count = ds.getRowCount();
    println('count: ' + count)
    for(var i=0; i<count;i++){
        var item = JSON.parse(ds.getJSONRow(i));
        var dayArr = item.flow_instance_starttime.replace(/ /g,'-').replace(/:/g,'-').replace(/./g,'-').split('-');
        println( 'dayArr  ' + JSON.stringify(dayArr) ) 
        
        var confirmTime =formatDate(  nextDate( createDate2(dayArr[0],dayArr[1],dayArr[2],dayArr[3],dayArr[4],dayArr[5]) , item.qsqx!='0'?item.qsqx:item.qsqx2) , "yyyy.MM.dd HH:mm:ss");
        var nowTime = formatDate(  currentDate() , "yyyy.MM.dd HH:mm:ss");

        println( 'confirmTime  ' + JSON.stringify(confirmTime) ) 
        println( 'nowTime  ' + JSON.stringify(nowTime) ) 

        if(nowTime<=confirmTime){
            runSQL(dsn, `update pz_yjd_pzh set state=1 where id='${item.id}'` ); 
        }
    }


    var list = getListFromSQL2( '', `select * from  pz_yjd where  flow_instance_state = 0 and `) 


    // ds.setUpdateProperty('zjsy_scoring_record', 'id', '*', 'id');

    // if (ds.getInt(0, 'pass') == 0) {
    //     println("延长确认，自动确认");

    //     //递交结束
    //     var loopCount = 0;
    //     while (loopCount < 10) {
    //         loopCount++;
    //         println(gguid);
    //         var t = taskInfoForWork('dy', gguid);
    //         println(JSON.stringify(t));
    //         if (t.taskList.length == 0) break;
    //         //将任务递交下去，如果任务需要签收，则先签收     
    //         for (var i = 0; i < t.taskList.length; i++) {
    //             var task = t.taskList[i];

    //             //可以递交，那么递交下去
    //             if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
    //             //需要先签收 ，那么以第一个候选人签收它
    //             if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

    //         }


    //     }

    // }

    return 'over';

}


id: 66bb0e83993294a6b34858ca
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 16:01:18.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var dsn = "";
    var sql = `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 and b.flow_instance_starttime is not null and a.state=0`;
    // var list = getListFromSQL2( dsn, sql);
    

    // var list = getListFromSQL2( '', `select * from  pz_yjd `) 
    // var list = getListFromSQL2( '', `select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh  group by gguid`) 

    // return list
    
    var ds = newDataStore(dsn, sql);
    ds.retrieve();
    println("select : " + ds.getSelectLastRetrieved())
    var count = ds.getRowCount();
    println('count: ' + count)
    for(var i=0; i<count;i++){
        var item = JSON.parse(ds.getJSONRow(i));
        var dayArr = item.flow_instance_starttime.replace(/ /g,'-').replace(/:/g,'-').replace(/./g,'-').split('-');
        println( 'dayArr  ' + JSON.stringify(dayArr) ) 
        
        var confirmTime =formatDate(  nextDate( createDate2(dayArr[0],dayArr[1],dayArr[2],dayArr[3],dayArr[4],dayArr[5]) , item.qsqx!='0'?item.qsqx:item.qsqx2) , "yyyy.MM.dd HH:mm:ss");
        var nowTime = formatDate(  currentDate() , "yyyy.MM.dd HH:mm:ss");

        println( 'confirmTime  ' + JSON.stringify(confirmTime) ) 
        println( 'nowTime  ' + JSON.stringify(nowTime) ) 

        if(nowTime<=confirmTime){
            runSQL(dsn, `update pz_yjd_pzh set state=1 where id='${item.id}'` ); 
        }
    }


    var list = getListFromSQL2( '', `select * from  pz_yjd a left join (select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh  group by gguid) b on a.gguid=b.gguid where  a.flow_instance_state = 0 and b.count=0 `) 

    return list

    // ds.setUpdateProperty('zjsy_scoring_record', 'id', '*', 'id');

    // if (ds.getInt(0, 'pass') == 0) {
    //     println("延长确认，自动确认");

    //     //递交结束
    //     var loopCount = 0;
    //     while (loopCount < 10) {
    //         loopCount++;
    //         println(gguid);
    //         var t = taskInfoForWork('dy', gguid);
    //         println(JSON.stringify(t));
    //         if (t.taskList.length == 0) break;
    //         //将任务递交下去，如果任务需要签收，则先签收     
    //         for (var i = 0; i < t.taskList.length; i++) {
    //             var task = t.taskList[i];

    //             //可以递交，那么递交下去
    //             if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
    //             //需要先签收 ，那么以第一个候选人签收它
    //             if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

    //         }


    //     }

    // }

    return 'over';

}


id: 66bb0e83993294a6b34858d0
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 16:01:45.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var dsn = "";
    var sql = `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 and b.flow_instance_starttime is not null and a.state=0`;
    // var list = getListFromSQL2( dsn, sql);
    

    // var list = getListFromSQL2( '', `select * from  pz_yjd `) 
    // var list = getListFromSQL2( '', `select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh  group by gguid`) 

    // return list
    
    var ds = newDataStore(dsn, sql);
    ds.retrieve();
    println("select : " + ds.getSelectLastRetrieved())
    var count = ds.getRowCount();
    println('count: ' + count)
    for(var i=0; i<count;i++){
        var item = JSON.parse(ds.getJSONRow(i));
        var dayArr = item.flow_instance_starttime.replace(/ /g,'-').replace(/:/g,'-').replace(/./g,'-').;
        println( 'dayArr  ' + JSON.stringify(dayArr) ) 
        
        var confirmTime =formatDate(  nextDate( createDate2(dayArr[0],dayArr[1],dayArr[2],dayArr[3],dayArr[4],dayArr[5]) , item.qsqx!='0'?item.qsqx:item.qsqx2) , "yyyy.MM.dd HH:mm:ss");
        var nowTime = formatDate(  currentDate() , "yyyy.MM.dd HH:mm:ss");

        println( 'confirmTime  ' + JSON.stringify(confirmTime) ) 
        println( 'nowTime  ' + JSON.stringify(nowTime) ) 

        if(nowTime<=confirmTime){
            runSQL(dsn, `update pz_yjd_pzh set state=1 where id='${item.id}'` ); 
        }
    }


    var list = getListFromSQL2( '', `select * from  pz_yjd a left join (select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh  group by gguid) b on a.gguid=b.gguid where  a.flow_instance_state = 0 and b.count=0 `) 

    return list

    // ds.setUpdateProperty('zjsy_scoring_record', 'id', '*', 'id');

    // if (ds.getInt(0, 'pass') == 0) {
    //     println("延长确认，自动确认");

    //     //递交结束
    //     var loopCount = 0;
    //     while (loopCount < 10) {
    //         loopCount++;
    //         println(gguid);
    //         var t = taskInfoForWork('dy', gguid);
    //         println(JSON.stringify(t));
    //         if (t.taskList.length == 0) break;
    //         //将任务递交下去，如果任务需要签收，则先签收     
    //         for (var i = 0; i < t.taskList.length; i++) {
    //             var task = t.taskList[i];

    //             //可以递交，那么递交下去
    //             if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
    //             //需要先签收 ，那么以第一个候选人签收它
    //             if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

    //         }


    //     }

    // }

    return 'over';

}


id: 66bb0e83993294a6b34858d6
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 16:01:52.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var dsn = "";
    var sql = `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 and b.flow_instance_starttime is not null and a.state=0`;
    // var list = getListFromSQL2( dsn, sql);
    

    // var list = getListFromSQL2( '', `select * from  pz_yjd `) 
    // var list = getListFromSQL2( '', `select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh  group by gguid`) 

    // return list
    
    var ds = newDataStore(dsn, sql);
    ds.retrieve();
    println("select : " + ds.getSelectLastRetrieved())
    var count = ds.getRowCount();
    println('count: ' + count)
    for(var i=0; i<count;i++){
        var item = JSON.parse(ds.getJSONRow(i));
        var dayArr = item.flow_instance_starttime.replace(/ /g,'-').replace(/:/g,'-').replace(/./g,'-');
        println( 'dayArr  ' + JSON.stringify(dayArr) ) 
        
        var confirmTime =formatDate(  nextDate( createDate2(dayArr[0],dayArr[1],dayArr[2],dayArr[3],dayArr[4],dayArr[5]) , item.qsqx!='0'?item.qsqx:item.qsqx2) , "yyyy.MM.dd HH:mm:ss");
        var nowTime = formatDate(  currentDate() , "yyyy.MM.dd HH:mm:ss");

        println( 'confirmTime  ' + JSON.stringify(confirmTime) ) 
        println( 'nowTime  ' + JSON.stringify(nowTime) ) 

        if(nowTime<=confirmTime){
            runSQL(dsn, `update pz_yjd_pzh set state=1 where id='${item.id}'` ); 
        }
    }


    var list = getListFromSQL2( '', `select * from  pz_yjd a left join (select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh  group by gguid) b on a.gguid=b.gguid where  a.flow_instance_state = 0 and b.count=0 `) 

    return list

    // ds.setUpdateProperty('zjsy_scoring_record', 'id', '*', 'id');

    // if (ds.getInt(0, 'pass') == 0) {
    //     println("延长确认，自动确认");

    //     //递交结束
    //     var loopCount = 0;
    //     while (loopCount < 10) {
    //         loopCount++;
    //         println(gguid);
    //         var t = taskInfoForWork('dy', gguid);
    //         println(JSON.stringify(t));
    //         if (t.taskList.length == 0) break;
    //         //将任务递交下去，如果任务需要签收，则先签收     
    //         for (var i = 0; i < t.taskList.length; i++) {
    //             var task = t.taskList[i];

    //             //可以递交，那么递交下去
    //             if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
    //             //需要先签收 ，那么以第一个候选人签收它
    //             if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

    //         }


    //     }

    // }

    return 'over';

}


id: 66bb0e83993294a6b34858dc
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 16:02:19.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var dsn = "";
    var sql = `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 and b.flow_instance_starttime is not null and a.state=0`;
    // var list = getListFromSQL2( dsn, sql);
    

    // var list = getListFromSQL2( '', `select * from  pz_yjd `) 
    // var list = getListFromSQL2( '', `select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh  group by gguid`) 

    // return list
    
    var ds = newDataStore(dsn, sql);
    ds.retrieve();
    println("select : " + ds.getSelectLastRetrieved())
    var count = ds.getRowCount();
    println('count: ' + count)
    for(var i=0; i<count;i++){
        var item = JSON.parse(ds.getJSONRow(i));
        var dayArr = item.flow_instance_starttime.replace(/ /g,'-').replace(/:/g,'-').replace(/./g,'-');
        println( 'dayArr  ' + JSON.stringify(dayArr) ) 
        
        // var confirmTime =formatDate(  nextDate( createDate2(dayArr[0],dayArr[1],dayArr[2],dayArr[3],dayArr[4],dayArr[5]) , item.qsqx!='0'?item.qsqx:item.qsqx2) , "yyyy.MM.dd HH:mm:ss");
        // var nowTime = formatDate(  currentDate() , "yyyy.MM.dd HH:mm:ss");

        // println( 'confirmTime  ' + JSON.stringify(confirmTime) ) 
        // println( 'nowTime  ' + JSON.stringify(nowTime) ) 

        // if(nowTime<=confirmTime){
        //     runSQL(dsn, `update pz_yjd_pzh set state=1 where id='${item.id}'` ); 
        // }
    }


    var list = getListFromSQL2( '', `select * from  pz_yjd a left join (select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh  group by gguid) b on a.gguid=b.gguid where  a.flow_instance_state = 0 and b.count=0 `) 

    return list

    // ds.setUpdateProperty('zjsy_scoring_record', 'id', '*', 'id');

    // if (ds.getInt(0, 'pass') == 0) {
    //     println("延长确认，自动确认");

    //     //递交结束
    //     var loopCount = 0;
    //     while (loopCount < 10) {
    //         loopCount++;
    //         println(gguid);
    //         var t = taskInfoForWork('dy', gguid);
    //         println(JSON.stringify(t));
    //         if (t.taskList.length == 0) break;
    //         //将任务递交下去，如果任务需要签收，则先签收     
    //         for (var i = 0; i < t.taskList.length; i++) {
    //             var task = t.taskList[i];

    //             //可以递交，那么递交下去
    //             if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
    //             //需要先签收 ，那么以第一个候选人签收它
    //             if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

    //         }


    //     }

    // }

    return 'over';

}


id: 66bb0e83993294a6b34858e2
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 16:02:30.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var dsn = "";
    var sql = `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 and b.flow_instance_starttime is not null and a.state=0`;
    // var list = getListFromSQL2( dsn, sql);
    

    // var list = getListFromSQL2( '', `select * from  pz_yjd `) 
    // var list = getListFromSQL2( '', `select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh  group by gguid`) 

    // return list
    
    var ds = newDataStore(dsn, sql);
    ds.retrieve();
    println("select : " + ds.getSelectLastRetrieved())
    var count = ds.getRowCount();
    println('count: ' + count)
    for(var i=0; i<count;i++){
        var item = JSON.parse(ds.getJSONRow(i));
        var dayArr = item.flow_instance_starttime.replace(/ /g,'-').replace(/:/g,'-').replace(/./g,'-');
        println( 'item.flow_instance_starttime  ' + JSON.stringify(item.flow_instance_starttime) ) 
        println( 'dayArr  ' + JSON.stringify(dayArr) ) 
        
        // var confirmTime =formatDate(  nextDate( createDate2(dayArr[0],dayArr[1],dayArr[2],dayArr[3],dayArr[4],dayArr[5]) , item.qsqx!='0'?item.qsqx:item.qsqx2) , "yyyy.MM.dd HH:mm:ss");
        // var nowTime = formatDate(  currentDate() , "yyyy.MM.dd HH:mm:ss");

        // println( 'confirmTime  ' + JSON.stringify(confirmTime) ) 
        // println( 'nowTime  ' + JSON.stringify(nowTime) ) 

        // if(nowTime<=confirmTime){
        //     runSQL(dsn, `update pz_yjd_pzh set state=1 where id='${item.id}'` ); 
        // }
    }


    var list = getListFromSQL2( '', `select * from  pz_yjd a left join (select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh  group by gguid) b on a.gguid=b.gguid where  a.flow_instance_state = 0 and b.count=0 `) 

    return list

    // ds.setUpdateProperty('zjsy_scoring_record', 'id', '*', 'id');

    // if (ds.getInt(0, 'pass') == 0) {
    //     println("延长确认，自动确认");

    //     //递交结束
    //     var loopCount = 0;
    //     while (loopCount < 10) {
    //         loopCount++;
    //         println(gguid);
    //         var t = taskInfoForWork('dy', gguid);
    //         println(JSON.stringify(t));
    //         if (t.taskList.length == 0) break;
    //         //将任务递交下去，如果任务需要签收，则先签收     
    //         for (var i = 0; i < t.taskList.length; i++) {
    //             var task = t.taskList[i];

    //             //可以递交，那么递交下去
    //             if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
    //             //需要先签收 ，那么以第一个候选人签收它
    //             if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

    //         }


    //     }

    // }

    return 'over';

}


id: 66bb0e83993294a6b34858e8
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 16:03:03.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var dsn = "";
    var sql = `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 and b.flow_instance_starttime is not null and a.state=0`;
    // var list = getListFromSQL2( dsn, sql);
    

    // var list = getListFromSQL2( '', `select * from  pz_yjd `) 
    // var list = getListFromSQL2( '', `select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh  group by gguid`) 

    // return list
    
    var ds = newDataStore(dsn, sql);
    ds.retrieve();
    println("select : " + ds.getSelectLastRetrieved())
    var count = ds.getRowCount();
    println('count: ' + count)
    for(var i=0; i<count;i++){
        var item = JSON.parse(ds.getJSONRow(i));
        var dayArr = item.flow_instance_starttime.replace(/ /g,'-').replace(/:/g,'-').replace(/\./g,'-');
        println( 'item.flow_instance_starttime  ' + JSON.stringify(item.flow_instance_starttime) ) 
        println( 'dayArr  ' + JSON.stringify(dayArr) ) 
        
        // var confirmTime =formatDate(  nextDate( createDate2(dayArr[0],dayArr[1],dayArr[2],dayArr[3],dayArr[4],dayArr[5]) , item.qsqx!='0'?item.qsqx:item.qsqx2) , "yyyy.MM.dd HH:mm:ss");
        // var nowTime = formatDate(  currentDate() , "yyyy.MM.dd HH:mm:ss");

        // println( 'confirmTime  ' + JSON.stringify(confirmTime) ) 
        // println( 'nowTime  ' + JSON.stringify(nowTime) ) 

        // if(nowTime<=confirmTime){
        //     runSQL(dsn, `update pz_yjd_pzh set state=1 where id='${item.id}'` ); 
        // }
    }


    var list = getListFromSQL2( '', `select * from  pz_yjd a left join (select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh  group by gguid) b on a.gguid=b.gguid where  a.flow_instance_state = 0 and b.count=0 `) 

    return list

    // ds.setUpdateProperty('zjsy_scoring_record', 'id', '*', 'id');

    // if (ds.getInt(0, 'pass') == 0) {
    //     println("延长确认，自动确认");

    //     //递交结束
    //     var loopCount = 0;
    //     while (loopCount < 10) {
    //         loopCount++;
    //         println(gguid);
    //         var t = taskInfoForWork('dy', gguid);
    //         println(JSON.stringify(t));
    //         if (t.taskList.length == 0) break;
    //         //将任务递交下去，如果任务需要签收，则先签收     
    //         for (var i = 0; i < t.taskList.length; i++) {
    //             var task = t.taskList[i];

    //             //可以递交，那么递交下去
    //             if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
    //             //需要先签收 ，那么以第一个候选人签收它
    //             if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

    //         }


    //     }

    // }

    return 'over';

}


id: 66bb1347993294a6b34858ee
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 16:03:20.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var dsn = "";
    var sql = `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 and b.flow_instance_starttime is not null and a.state=0`;
    // var list = getListFromSQL2( dsn, sql);
    

    // var list = getListFromSQL2( '', `select * from  pz_yjd `) 
    // var list = getListFromSQL2( '', `select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh  group by gguid`) 

    // return list
    
    var ds = newDataStore(dsn, sql);
    ds.retrieve();
    println("select : " + ds.getSelectLastRetrieved())
    var count = ds.getRowCount();
    println('count: ' + count)
    for(var i=0; i<count;i++){
        var item = JSON.parse(ds.getJSONRow(i));
        var dayArr = item.flow_instance_starttime.replace(/ /g,'-').replace(/:/g,'-').replace(/\./g,'-');
        println( 'item.flow_instance_starttime  ' + JSON.stringify(item.flow_instance_starttime) ) 
        println( 'dayArr  ' + JSON.stringify(dayArr) ) 
        
        var confirmTime =formatDate(  nextDate( createDate2(dayArr[0],dayArr[1],dayArr[2],dayArr[3],dayArr[4],dayArr[5]) , item.qsqx!='0'?item.qsqx:item.qsqx2) , "yyyy.MM.dd HH:mm:ss");
        var nowTime = formatDate(  currentDate() , "yyyy.MM.dd HH:mm:ss");

        println( 'confirmTime  ' + JSON.stringify(confirmTime) ) 
        println( 'nowTime  ' + JSON.stringify(nowTime) ) 

        // if(nowTime<=confirmTime){
        //     runSQL(dsn, `update pz_yjd_pzh set state=1 where id='${item.id}'` ); 
        // }
    }


    var list = getListFromSQL2( '', `select * from  pz_yjd a left join (select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh  group by gguid) b on a.gguid=b.gguid where  a.flow_instance_state = 0 and b.count=0 `) 

    return list

    // ds.setUpdateProperty('zjsy_scoring_record', 'id', '*', 'id');

    // if (ds.getInt(0, 'pass') == 0) {
    //     println("延长确认，自动确认");

    //     //递交结束
    //     var loopCount = 0;
    //     while (loopCount < 10) {
    //         loopCount++;
    //         println(gguid);
    //         var t = taskInfoForWork('dy', gguid);
    //         println(JSON.stringify(t));
    //         if (t.taskList.length == 0) break;
    //         //将任务递交下去，如果任务需要签收，则先签收     
    //         for (var i = 0; i < t.taskList.length; i++) {
    //             var task = t.taskList[i];

    //             //可以递交，那么递交下去
    //             if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
    //             //需要先签收 ，那么以第一个候选人签收它
    //             if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

    //         }


    //     }

    // }

    return 'over';

}


id: 66bb1347993294a6b34858f4
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 16:03:22.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var dsn = "";
    var sql = `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 and b.flow_instance_starttime is not null and a.state=0`;
    // var list = getListFromSQL2( dsn, sql);
    

    // var list = getListFromSQL2( '', `select * from  pz_yjd `) 
    // var list = getListFromSQL2( '', `select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh  group by gguid`) 

    // return list
    
    var ds = newDataStore(dsn, sql);
    ds.retrieve();
    println("select : " + ds.getSelectLastRetrieved())
    var count = ds.getRowCount();
    println('count: ' + count)
    for(var i=0; i<count;i++){
        var item = JSON.parse(ds.getJSONRow(i));
        var dayArr = item.flow_instance_starttime.replace(/ /g,'-').replace(/:/g,'-').replace(/\./g,'-');
        println( 'item.flow_instance_starttime  ' + JSON.stringify(item.flow_instance_starttime) ) 
        
        var confirmTime =formatDate(  nextDate( createDate2(dayArr[0],dayArr[1],dayArr[2],dayArr[3],dayArr[4],dayArr[5]) , item.qsqx!='0'?item.qsqx:item.qsqx2) , "yyyy.MM.dd HH:mm:ss");
        var nowTime = formatDate(  currentDate() , "yyyy.MM.dd HH:mm:ss");

        println( 'confirmTime  ' + JSON.stringify(confirmTime) ) 
        println( 'nowTime  ' + JSON.stringify(nowTime) ) 

        // if(nowTime<=confirmTime){
        //     runSQL(dsn, `update pz_yjd_pzh set state=1 where id='${item.id}'` ); 
        // }
    }


    var list = getListFromSQL2( '', `select * from  pz_yjd a left join (select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh  group by gguid) b on a.gguid=b.gguid where  a.flow_instance_state = 0 and b.count=0 `) 

    return list

    // ds.setUpdateProperty('zjsy_scoring_record', 'id', '*', 'id');

    // if (ds.getInt(0, 'pass') == 0) {
    //     println("延长确认，自动确认");

    //     //递交结束
    //     var loopCount = 0;
    //     while (loopCount < 10) {
    //         loopCount++;
    //         println(gguid);
    //         var t = taskInfoForWork('dy', gguid);
    //         println(JSON.stringify(t));
    //         if (t.taskList.length == 0) break;
    //         //将任务递交下去，如果任务需要签收，则先签收     
    //         for (var i = 0; i < t.taskList.length; i++) {
    //             var task = t.taskList[i];

    //             //可以递交，那么递交下去
    //             if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
    //             //需要先签收 ，那么以第一个候选人签收它
    //             if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

    //         }


    //     }

    // }

    return 'over';

}


id: 66bb1347993294a6b34858fa
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 16:03:42.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var dsn = "";
    var sql = `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 and b.flow_instance_starttime is not null and a.state=0`;
    // var list = getListFromSQL2( dsn, sql);
    

    // var list = getListFromSQL2( '', `select * from  pz_yjd `) 
    // var list = getListFromSQL2( '', `select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh  group by gguid`) 

    // return list
    
    var ds = newDataStore(dsn, sql);
    ds.retrieve();
    println("select : " + ds.getSelectLastRetrieved())
    var count = ds.getRowCount();
    println('count: ' + count)
    for(var i=0; i<count;i++){
        var item = JSON.parse(ds.getJSONRow(i));
        var dayArr = item.flow_instance_starttime.replace(/ /g,'-').replace(/:/g,'-').replace(/\./g,'-');
        // println( 'item.flow_instance_starttime  ' + JSON.stringify(item.flow_instance_starttime) ) 
        println( 'dayArr  ' + JSON.stringify(dayArr) ) 
        
        var confirmTime =formatDate(  nextDate( createDate2(dayArr[0],dayArr[1],dayArr[2],dayArr[3],dayArr[4],dayArr[5]) , item.qsqx!='0'?item.qsqx:item.qsqx2) , "yyyy.MM.dd HH:mm:ss");
        var nowTime = formatDate(  currentDate() , "yyyy.MM.dd HH:mm:ss");

        println( 'confirmTime  ' + JSON.stringify(confirmTime) ) 
        println( 'nowTime  ' + JSON.stringify(nowTime) ) 

        // if(nowTime<=confirmTime){
        //     runSQL(dsn, `update pz_yjd_pzh set state=1 where id='${item.id}'` ); 
        // }
    }


    var list = getListFromSQL2( '', `select * from  pz_yjd a left join (select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh  group by gguid) b on a.gguid=b.gguid where  a.flow_instance_state = 0 and b.count=0 `) 

    return list

    // ds.setUpdateProperty('zjsy_scoring_record', 'id', '*', 'id');

    // if (ds.getInt(0, 'pass') == 0) {
    //     println("延长确认，自动确认");

    //     //递交结束
    //     var loopCount = 0;
    //     while (loopCount < 10) {
    //         loopCount++;
    //         println(gguid);
    //         var t = taskInfoForWork('dy', gguid);
    //         println(JSON.stringify(t));
    //         if (t.taskList.length == 0) break;
    //         //将任务递交下去，如果任务需要签收，则先签收     
    //         for (var i = 0; i < t.taskList.length; i++) {
    //             var task = t.taskList[i];

    //             //可以递交，那么递交下去
    //             if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
    //             //需要先签收 ，那么以第一个候选人签收它
    //             if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

    //         }


    //     }

    // }

    return 'over';

}


id: 66bb1347993294a6b3485900
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 16:03:52.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var dsn = "";
    var sql = `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 and b.flow_instance_starttime is not null and a.state=0`;
    // var list = getListFromSQL2( dsn, sql);
    

    // var list = getListFromSQL2( '', `select * from  pz_yjd `) 
    // var list = getListFromSQL2( '', `select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh  group by gguid`) 

    // return list
    
    var ds = newDataStore(dsn, sql);
    ds.retrieve();
    println("select : " + ds.getSelectLastRetrieved())
    var count = ds.getRowCount();
    println('count: ' + count)
    for(var i=0; i<count;i++){
        var item = JSON.parse(ds.getJSONRow(i));
        var dayArr = item.flow_instance_starttime.replace(/ /g,'-').replace(/:/g,'-').replace(/\./g,'-').split('-');
        // println( 'item.flow_instance_starttime  ' + JSON.stringify(item.flow_instance_starttime) ) 
        println( 'dayArr  ' + JSON.stringify(dayArr) ) 
        
        var confirmTime =formatDate(  nextDate( createDate2(dayArr[0],dayArr[1],dayArr[2],dayArr[3],dayArr[4],dayArr[5]) , item.qsqx!='0'?item.qsqx:item.qsqx2) , "yyyy.MM.dd HH:mm:ss");
        var nowTime = formatDate(  currentDate() , "yyyy.MM.dd HH:mm:ss");

        println( 'confirmTime  ' + JSON.stringify(confirmTime) ) 
        println( 'nowTime  ' + JSON.stringify(nowTime) ) 

        // if(nowTime<=confirmTime){
        //     runSQL(dsn, `update pz_yjd_pzh set state=1 where id='${item.id}'` ); 
        // }
    }


    var list = getListFromSQL2( '', `select * from  pz_yjd a left join (select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh  group by gguid) b on a.gguid=b.gguid where  a.flow_instance_state = 0 and b.count=0 `) 

    return list

    // ds.setUpdateProperty('zjsy_scoring_record', 'id', '*', 'id');

    // if (ds.getInt(0, 'pass') == 0) {
    //     println("延长确认，自动确认");

    //     //递交结束
    //     var loopCount = 0;
    //     while (loopCount < 10) {
    //         loopCount++;
    //         println(gguid);
    //         var t = taskInfoForWork('dy', gguid);
    //         println(JSON.stringify(t));
    //         if (t.taskList.length == 0) break;
    //         //将任务递交下去，如果任务需要签收，则先签收     
    //         for (var i = 0; i < t.taskList.length; i++) {
    //             var task = t.taskList[i];

    //             //可以递交，那么递交下去
    //             if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
    //             //需要先签收 ，那么以第一个候选人签收它
    //             if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

    //         }


    //     }

    // }

    return 'over';

}


id: 66bb1347993294a6b3485906
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 16:04:18.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var dsn = "";
    var sql = `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 and b.flow_instance_starttime is not null and a.state=0`;
    // var list = getListFromSQL2( dsn, sql);
    

    // var list = getListFromSQL2( '', `select * from  pz_yjd `) 
    // var list = getListFromSQL2( '', `select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh  group by gguid`) 

    // return list
    
    var ds = newDataStore(dsn, sql);
    ds.retrieve();
    println("select : " + ds.getSelectLastRetrieved())
    var count = ds.getRowCount();
    println('count: ' + count)
    for(var i=0; i<count;i++){
        var item = JSON.parse(ds.getJSONRow(i));
        var dayArr = item.flow_instance_starttime.replace(/ /g,'-').replace(/:/g,'-').replace(/\./g,'-').split('-');
        // println( 'item.flow_instance_starttime  ' + JSON.stringify(item.flow_instance_starttime) ) 
        println( 'dayArr  ' + JSON.stringify(dayArr) ) 
        
        var confirmTime =formatDate(  nextDate( createDate2(dayArr[0],dayArr[1],dayArr[2],dayArr[3],dayArr[4],dayArr[5]) , item.qsqx!='0'?item.qsqx:item.qsqx2) , "yyyy.MM.dd HH:mm:ss");
        var nowTime = formatDate(  currentDate() , "yyyy.MM.dd HH:mm:ss");

        println( 'confirmTime  ' + JSON.stringify(confirmTime) ) 
        println( 'nowTime  ' + JSON.stringify(nowTime) ) 

        if(nowTime<=confirmTime){
            runSQL(dsn, `update pz_yjd_pzh set state=1 where id='${item.id}'` ); 
        }
    }


    var list = getListFromSQL2( '', `select * from  pz_yjd a left join (select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh  group by gguid) b on a.gguid=b.gguid where  a.flow_instance_state = 0 and b.count=0 `) 

    return list

    // ds.setUpdateProperty('zjsy_scoring_record', 'id', '*', 'id');

    // if (ds.getInt(0, 'pass') == 0) {
    //     println("延长确认，自动确认");

    //     //递交结束
    //     var loopCount = 0;
    //     while (loopCount < 10) {
    //         loopCount++;
    //         println(gguid);
    //         var t = taskInfoForWork('dy', gguid);
    //         println(JSON.stringify(t));
    //         if (t.taskList.length == 0) break;
    //         //将任务递交下去，如果任务需要签收，则先签收     
    //         for (var i = 0; i < t.taskList.length; i++) {
    //             var task = t.taskList[i];

    //             //可以递交，那么递交下去
    //             if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
    //             //需要先签收 ，那么以第一个候选人签收它
    //             if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

    //         }


    //     }

    // }

    return 'over';

}


id: 66bb1347993294a6b348590c
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 16:04:58.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var dsn = "";
    var sql = `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 and b.flow_instance_starttime is not null and a.state=0`;
    // var list = getListFromSQL2( dsn, sql);
    

    // var list = getListFromSQL2( '', `select * from  pz_yjd `) 
    // var list = getListFromSQL2( '', `select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh  group by gguid`) 

    // return list
    
    var ds = newDataStore(dsn, sql);
    ds.retrieve();
    println("select : " + ds.getSelectLastRetrieved())
    var count = ds.getRowCount();
    println('count: ' + count)
    for(var i=0; i<count;i++){
        var item = JSON.parse(ds.getJSONRow(i));
        var dayArr = item.flow_instance_starttime.replace(/ /g,'-').replace(/:/g,'-').replace(/\./g,'-').split('-');
        // println( 'item.flow_instance_starttime  ' + JSON.stringify(item.flow_instance_starttime) ) 
        println( 'dayArr  ' + JSON.stringify(dayArr) ) 
        
        var confirmTime =formatDate(  nextDate( createDate2(dayArr[0],dayArr[1],dayArr[2],dayArr[3],dayArr[4],dayArr[5]) , item.qsqx!='0'?item.qsqx:item.qsqx2) , "yyyy.MM.dd HH:mm:ss");
        var nowTime = formatDate(  currentDate() , "yyyy.MM.dd HH:mm:ss");

        println( 'confirmTime  ' + JSON.stringify(confirmTime) ) 
        println( 'nowTime  ' + JSON.stringify(nowTime) ) 

        if(nowTime<=confirmTime){
            println( '  item.id ' + item.id ) 
            runSQL(dsn, `update pz_yjd_pzh set state=1 where id='${item.id}'` ); 
        }
    }


    var list = getListFromSQL2( '', `select * from  pz_yjd a left join (select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh  group by gguid) b on a.gguid=b.gguid where  a.flow_instance_state = 0 and b.count=0 `) 

    return list

    // ds.setUpdateProperty('zjsy_scoring_record', 'id', '*', 'id');

    // if (ds.getInt(0, 'pass') == 0) {
    //     println("延长确认，自动确认");

    //     //递交结束
    //     var loopCount = 0;
    //     while (loopCount < 10) {
    //         loopCount++;
    //         println(gguid);
    //         var t = taskInfoForWork('dy', gguid);
    //         println(JSON.stringify(t));
    //         if (t.taskList.length == 0) break;
    //         //将任务递交下去，如果任务需要签收，则先签收     
    //         for (var i = 0; i < t.taskList.length; i++) {
    //             var task = t.taskList[i];

    //             //可以递交，那么递交下去
    //             if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
    //             //需要先签收 ，那么以第一个候选人签收它
    //             if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

    //         }


    //     }

    // }

    return 'over';

}


id: 66bb1347993294a6b3485912
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 16:05:21.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg)
{
    println( arg);
    var param= JSON.parse(arg);

    var dsn = "";
    var sql = `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 and b.flow_instance_starttime is not null and a.state=0`;
    // var list = getListFromSQL2( dsn, sql);
    

    // var list = getListFromSQL2( '', `select * from  pz_yjd `) 
    // var list = getListFromSQL2( '', `select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh  group by gguid`) 

    // return list
    
    var ds = newDataStore(dsn, sql);
    ds.retrieve();
    println("select : " + ds.getSelectLastRetrieved())
    var count = ds.getRowCount();
    println('count: ' + count)
    for(var i=0; i<count;i++){
        var item = JSON.parse(ds.getJSONRow(i));
        var dayArr = item.flow_instance_starttime.replace(/ /g,'-').replace(/:/g,'-').replace(/\./g,'-').split('-');
        // println( 'item.flow_instance_starttime  ' + JSON.stringify(item.flow_instance_starttime) ) 
        println( 'dayArr  ' + JSON.stringify(dayArr) ) 
        
        var confirmTime =formatDate(  nextDate( createDate2(dayArr[0],dayArr[1],dayArr[2],dayArr[3],dayArr[4],dayArr[5]) , item.qsqx!='0'?item.qsqx:item.qsqx2) , "yyyy.MM.dd HH:mm:ss");
        var nowTime = formatDate(  currentDate() , "yyyy.MM.dd HH:mm:ss");

        println( 'confirmTime  ' + JSON.stringify(confirmTime) ) 
        println( 'nowTime  ' + JSON.stringify(nowTime) ) 

        if(nowTime>=confirmTime){
            println( '  item.id ' + item.id ) 
            runSQL(dsn, `update pz_yjd_pzh set state=1 where id='${item.id}'` ); 
        }
    }


    var list = getListFromSQL2( '', `select * from  pz_yjd a left join (select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh  group by gguid) b on a.gguid=b.gguid where  a.flow_instance_state = 0 and b.count=0 `) 

    return list

    // ds.setUpdateProperty('zjsy_scoring_record', 'id', '*', 'id');

    // if (ds.getInt(0, 'pass') == 0) {
    //     println("延长确认，自动确认");

    //     //递交结束
    //     var loopCount = 0;
    //     while (loopCount < 10) {
    //         loopCount++;
    //         println(gguid);
    //         var t = taskInfoForWork('dy', gguid);
    //         println(JSON.stringify(t));
    //         if (t.taskList.length == 0) break;
    //         //将任务递交下去，如果任务需要签收，则先签收     
    //         for (var i = 0; i < t.taskList.length; i++) {
    //             var task = t.taskList[i];

    //             //可以递交，那么递交下去
    //             if (task.canSubmit) println(submitWork('dy', gguid, task.taskId));
    //             //需要先签收 ，那么以第一个候选人签收它
    //             if (task.canClaim) claimWork('dy', gguid, task.taskId, task.candidateUserList[0].userId);

    //         }


    //     }

    // }

    return 'over';

}


id: 66bb1347993294a6b3485918
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 16:07:25.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg) {
    println(arg);
    var param = JSON.parse(arg);

    var dsn = "";
    var sql = `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 and b.flow_instance_starttime is not null and a.state=0`;
    // var list = getListFromSQL2( dsn, sql);


    // var list = getListFromSQL2( '', `select * from  pz_yjd `) 
    // var list = getListFromSQL2( '', `select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh  group by gguid`) 

    // return list

    var ds = newDataStore(dsn, sql);
    ds.retrieve();
    println("select : " + ds.getSelectLastRetrieved())
    var count = ds.getRowCount();
    println('count: ' + count)
    for (var i = 0; i < count; i++) {
        var item = JSON.parse(ds.getJSONRow(i));
        var dayArr = item.flow_instance_starttime.replace(/ /g, '-').replace(/:/g, '-').replace(/\./g, '-').split('-');
        // println( 'item.flow_instance_starttime  ' + JSON.stringify(item.flow_instance_starttime) ) 
        println('dayArr  ' + JSON.stringify(dayArr))

        var confirmTime = formatDate(nextDate(createDate2(dayArr[0], dayArr[1], dayArr[2], dayArr[3], dayArr[4], dayArr[5]), item.qsqx != '0' ? item.qsqx : item.qsqx2), "yyyy.MM.dd HH:mm:ss");
        var nowTime = formatDate(currentDate(), "yyyy.MM.dd HH:mm:ss");

        println('confirmTime  ' + JSON.stringify(confirmTime))
        println('nowTime  ' + JSON.stringify(nowTime))

        if (nowTime >= confirmTime) {
            println('  item.id ' + item.id)
            runSQL(dsn, `update pz_yjd_pzh set state=1 where id='${item.id}'`);
        }
    }


    var list = getListFromSQL2('', `select * from  pz_yjd a left join (select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh  group by gguid) b on a.gguid=b.gguid where  a.flow_instance_state = 0 and b.count=0 `)

    return list

    list.forEach(item => {
        println("延长确认，自动确认");
        var gguid = item.gguid, workgguid = item.flow_process_definition_id.split(':')[0].replace('id_', '');


        //递交结束
        var loopCount = 0;
        while (loopCount < 10) {
            loopCount++;
            println(gguid);
            var t = taskInfoForWork(workgguid, gguid);
            println(JSON.stringify(t));
            if (t.taskList.length == 0) break;
            //将任务递交下去，如果任务需要签收，则先签收     
            for (var i = 0; i < t.taskList.length; i++) {
                var task = t.taskList[i];

                //可以递交，那么递交下去
                if (task.canSubmit) println(submitWork(workgguid, gguid, task.taskId));
                //需要先签收 ，那么以第一个候选人签收它
                if (task.canClaim) claimWork(workgguid, gguid, task.taskId, task.candidateUserList[0].userId);

            }


        }

    })

    return 'over';

}


id: 66bb1347993294a6b348591e
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 16:07:47.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg) {
    println(arg);
    var param = JSON.parse(arg);

    var dsn = "";
    var sql = `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 and b.flow_instance_starttime is not null and a.state=0`;
    // var list = getListFromSQL2( dsn, sql);


    // var list = getListFromSQL2( '', `select * from  pz_yjd `) 
    // var list = getListFromSQL2( '', `select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh  group by gguid`) 

    // return list

    var ds = newDataStore(dsn, sql);
    ds.retrieve();
    println("select : " + ds.getSelectLastRetrieved())
    var count = ds.getRowCount();
    println('count: ' + count)
    for (var i = 0; i < count; i++) {
        var item = JSON.parse(ds.getJSONRow(i));
        var dayArr = item.flow_instance_starttime.replace(/ /g, '-').replace(/:/g, '-').replace(/\./g, '-').split('-');
        // println( 'item.flow_instance_starttime  ' + JSON.stringify(item.flow_instance_starttime) ) 
        println('dayArr  ' + JSON.stringify(dayArr))

        var confirmTime = formatDate(nextDate(createDate2(dayArr[0], dayArr[1], dayArr[2], dayArr[3], dayArr[4], dayArr[5]), item.qsqx != '0' ? item.qsqx : item.qsqx2), "yyyy.MM.dd HH:mm:ss");
        var nowTime = formatDate(currentDate(), "yyyy.MM.dd HH:mm:ss");

        println('confirmTime  ' + JSON.stringify(confirmTime))
        println('nowTime  ' + JSON.stringify(nowTime))

        if (nowTime >= confirmTime) {
            println('  item.id ' + item.id)
            runSQL(dsn, `update pz_yjd_pzh set state=1 where id='${item.id}'`);
        }
    }


    var list = getListFromSQL2('', `select * from  pz_yjd a left join (select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh  group by gguid) b on a.gguid=b.gguid where  a.flow_instance_state = 0 and b.count=0 `)

    return list

    list.forEach(item => {
        println("延长确认，自动确认");
        var gguid = item.gguid, workgguid = item.flow_process_definition_id.split(':')[0].replace('id_', '');

    println( "workgguid  " + workgguid ) 

        //递交结束
        // var loopCount = 0;
        // while (loopCount < 10) {
        //     loopCount++;
        //     println(gguid);
        //     var t = taskInfoForWork(workgguid, gguid);
        //     println(JSON.stringify(t));
        //     if (t.taskList.length == 0) break;
        //     //将任务递交下去，如果任务需要签收，则先签收     
        //     for (var i = 0; i < t.taskList.length; i++) {
        //         var task = t.taskList[i];

        //         //可以递交，那么递交下去
        //         if (task.canSubmit) println(submitWork(workgguid, gguid, task.taskId));
        //         //需要先签收 ，那么以第一个候选人签收它
        //         if (task.canClaim) claimWork(workgguid, gguid, task.taskId, task.candidateUserList[0].userId);

        //     }


        // }

    })

    return 'over';

}


id: 66bb1347993294a6b3485924
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 16:07:52.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg) {
    println(arg);
    var param = JSON.parse(arg);

    var dsn = "";
    var sql = `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 and b.flow_instance_starttime is not null and a.state=0`;
    // var list = getListFromSQL2( dsn, sql);


    // var list = getListFromSQL2( '', `select * from  pz_yjd `) 
    // var list = getListFromSQL2( '', `select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh  group by gguid`) 

    // return list

    var ds = newDataStore(dsn, sql);
    ds.retrieve();
    println("select : " + ds.getSelectLastRetrieved())
    var count = ds.getRowCount();
    println('count: ' + count)
    for (var i = 0; i < count; i++) {
        var item = JSON.parse(ds.getJSONRow(i));
        var dayArr = item.flow_instance_starttime.replace(/ /g, '-').replace(/:/g, '-').replace(/\./g, '-').split('-');
        // println( 'item.flow_instance_starttime  ' + JSON.stringify(item.flow_instance_starttime) ) 
        println('dayArr  ' + JSON.stringify(dayArr))

        var confirmTime = formatDate(nextDate(createDate2(dayArr[0], dayArr[1], dayArr[2], dayArr[3], dayArr[4], dayArr[5]), item.qsqx != '0' ? item.qsqx : item.qsqx2), "yyyy.MM.dd HH:mm:ss");
        var nowTime = formatDate(currentDate(), "yyyy.MM.dd HH:mm:ss");

        println('confirmTime  ' + JSON.stringify(confirmTime))
        println('nowTime  ' + JSON.stringify(nowTime))

        if (nowTime >= confirmTime) {
            println('  item.id ' + item.id)
            runSQL(dsn, `update pz_yjd_pzh set state=1 where id='${item.id}'`);
        }
    }


    var list = getListFromSQL2('', `select * from  pz_yjd a left join (select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh  group by gguid) b on a.gguid=b.gguid where  a.flow_instance_state = 0 and b.count=0 `)

    return list

    list.forEach(item => {
        println("延长确认，自动确认");
        var gguid = item.gguid, workgguid = item.flow_process_definition_id.split(':')[0].replace('id_', '');

    println( "workgguid  " + workgguid ) 
    println( "gguid  " + gguid ) 

        //递交结束
        // var loopCount = 0;
        // while (loopCount < 10) {
        //     loopCount++;
        //     println(gguid);
        //     var t = taskInfoForWork(workgguid, gguid);
        //     println(JSON.stringify(t));
        //     if (t.taskList.length == 0) break;
        //     //将任务递交下去，如果任务需要签收，则先签收     
        //     for (var i = 0; i < t.taskList.length; i++) {
        //         var task = t.taskList[i];

        //         //可以递交，那么递交下去
        //         if (task.canSubmit) println(submitWork(workgguid, gguid, task.taskId));
        //         //需要先签收 ，那么以第一个候选人签收它
        //         if (task.canClaim) claimWork(workgguid, gguid, task.taskId, task.candidateUserList[0].userId);

        //     }


        // }

    })

    return 'over';

}


id: 66bb1347993294a6b348592a
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 16:08:05.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg) {
    println(arg);
    var param = JSON.parse(arg);

    var dsn = "";
    var sql = `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 and b.flow_instance_starttime is not null and a.state=0`;
    // var list = getListFromSQL2( dsn, sql);


    // var list = getListFromSQL2( '', `select * from  pz_yjd `) 
    // var list = getListFromSQL2( '', `select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh  group by gguid`) 

    // return list

    var ds = newDataStore(dsn, sql);
    ds.retrieve();
    println("select : " + ds.getSelectLastRetrieved())
    var count = ds.getRowCount();
    println('count: ' + count)
    for (var i = 0; i < count; i++) {
        var item = JSON.parse(ds.getJSONRow(i));
        var dayArr = item.flow_instance_starttime.replace(/ /g, '-').replace(/:/g, '-').replace(/\./g, '-').split('-');
        // println( 'item.flow_instance_starttime  ' + JSON.stringify(item.flow_instance_starttime) ) 
        println('dayArr  ' + JSON.stringify(dayArr))

        var confirmTime = formatDate(nextDate(createDate2(dayArr[0], dayArr[1], dayArr[2], dayArr[3], dayArr[4], dayArr[5]), item.qsqx != '0' ? item.qsqx : item.qsqx2), "yyyy.MM.dd HH:mm:ss");
        var nowTime = formatDate(currentDate(), "yyyy.MM.dd HH:mm:ss");

        println('confirmTime  ' + JSON.stringify(confirmTime))
        println('nowTime  ' + JSON.stringify(nowTime))

        if (nowTime >= confirmTime) {
            println('  item.id ' + item.id)
            runSQL(dsn, `update pz_yjd_pzh set state=1 where id='${item.id}'`);
        }
    }


    var list = getListFromSQL2('', `select * from  pz_yjd a left join (select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh  group by gguid) b on a.gguid=b.gguid where  a.flow_instance_state = 0 and b.count=0 `)


    list.forEach(item => {
        println("延长确认，自动确认");
        var gguid = item.gguid, workgguid = item.flow_process_definition_id.split(':')[0].replace('id_', '');

    println( "workgguid  " + workgguid ) 
    println( "gguid  " + gguid ) 

        //递交结束
        // var loopCount = 0;
        // while (loopCount < 10) {
        //     loopCount++;
        //     println(gguid);
        //     var t = taskInfoForWork(workgguid, gguid);
        //     println(JSON.stringify(t));
        //     if (t.taskList.length == 0) break;
        //     //将任务递交下去，如果任务需要签收，则先签收     
        //     for (var i = 0; i < t.taskList.length; i++) {
        //         var task = t.taskList[i];

        //         //可以递交，那么递交下去
        //         if (task.canSubmit) println(submitWork(workgguid, gguid, task.taskId));
        //         //需要先签收 ，那么以第一个候选人签收它
        //         if (task.canClaim) claimWork(workgguid, gguid, task.taskId, task.candidateUserList[0].userId);

        //     }


        // }

    })

    return 'over';

}


id: 66bb1347993294a6b3485933
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 16:08:32.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg) {
    println(arg);
    var param = JSON.parse(arg);

    var dsn = "";
    var sql = `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 and b.flow_instance_starttime is not null and a.state=0`;
    // var list = getListFromSQL2( dsn, sql);


    // var list = getListFromSQL2( '', `select * from  pz_yjd `) 
    // var list = getListFromSQL2( '', `select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh  group by gguid`) 

    // return list

    var ds = newDataStore(dsn, sql);
    ds.retrieve();
    println("select : " + ds.getSelectLastRetrieved())
    var count = ds.getRowCount();
    println('count: ' + count)
    for (var i = 0; i < count; i++) {
        var item = JSON.parse(ds.getJSONRow(i));
        var dayArr = item.flow_instance_starttime.replace(/ /g, '-').replace(/:/g, '-').replace(/\./g, '-').split('-');
        // println( 'item.flow_instance_starttime  ' + JSON.stringify(item.flow_instance_starttime) ) 
        println('dayArr  ' + JSON.stringify(dayArr))

        var confirmTime = formatDate(nextDate(createDate2(dayArr[0], dayArr[1], dayArr[2], dayArr[3], dayArr[4], dayArr[5]), item.qsqx != '0' ? item.qsqx : item.qsqx2), "yyyy.MM.dd HH:mm:ss");
        var nowTime = formatDate(currentDate(), "yyyy.MM.dd HH:mm:ss");

        println('confirmTime  ' + JSON.stringify(confirmTime))
        println('nowTime  ' + JSON.stringify(nowTime))

        if (nowTime >= confirmTime) {
            println('  item.id ' + item.id)
            runSQL(dsn, `update pz_yjd_pzh set state=1 where id='${item.id}'`);
        }
    }


    var list = getListFromSQL2('', `select * from  pz_yjd a left join (select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh  group by gguid) b on a.gguid=b.gguid where  a.flow_instance_state = 0 and b.count=0 `)


    list.forEach(item => {
        println("延长确认，自动确认");
        var gguid = item.gguid, workgguid = item.flow_process_definition_id.split(':')[0].replace('id_', '');

    println( "workgguid  " + workgguid ) 
    println( "gguid  " + gguid ) 

        //递交结束
        // var loopCount = 0;
        // while (loopCount < 10) {
        //     loopCount++;
        //     println(gguid);
        //     var t = taskInfoForWork(workgguid, gguid);
        //     println(JSON.stringify(t));
        //     if (t.taskList.length == 0) break;
        //     //将任务递交下去，如果任务需要签收，则先签收     
        //     for (var i = 0; i < t.taskList.length; i++) {
        //         var task = t.taskList[i];

        //         //可以递交，那么递交下去
        //         if (task.canSubmit) println(submitWork(workgguid, gguid, task.taskId));
        //         //需要先签收 ，那么以第一个候选人签收它
        //         if (task.canClaim) claimWork(workgguid, gguid, task.taskId, task.candidateUserList[0].userId);

        //     }


        // }

    })

    return list

    return 'over';

}


id: 66bb1347993294a6b3485937
scriptid: 669dc60c9932df22f60cad57
tablename: app_template
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 16:10:29.000
script:
/**
 * 一个单据打开，
 * 1 先对类型为“表”的结果集做数据异步检索
 * 2 全部表检索完成之后，再执行 formOpen 事件
 * 3 再根据  actio 执行 newOpen/viewOpen/editOpen 之一
 * 4 再执行  afterOpen
 * 5 对类型为“结果集”的且需要自动检索的结果集，做异步检索
 * 6 异步检索完成后，最后执行  formOpenOver 事件
 */
//@comment (group=表单事件,caption=表单初始化全部完成之后)
function formOpenOver() {
    var data = $pz_yjd_ds.getJSON(0);
    // console.log(data)

    if(urlArgs.action=='view'){
        
        book.getWorkSheet('main').getBrick('cb_import_pz').visible = false;

        book.getWorkSheet('汇总').getBrick('cb_add_pz').visible = false;
        book.getWorkSheet('清单').getBrick('cb_import').visible = false;
        book.getWorkSheet('清单').getBrick('cb_buildsum').visible = false;

        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;


        book.getWorkSheet('清单').cells('qsqx').visible = false;
        book.getWorkSheet('清单').cells('qsqx').clickable = false;

        book.getWorkSheet('清单').cells('state').visible = false;
        book.getWorkSheet('清单').cells('state').clickable = false;
    }else{
        book.getWorkSheet('清单').cells('c_db_deleterow').visible = true;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = true;
    }

    if(data.flow_instance_status.indexOf('接收方签收确认')>0){
        book.getWorkSheet('清单').cells('qsqx').editable = true;
        book.getWorkSheet('清单').cells('state').editable = true;
        
        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;
    }

}

//@comment (group=按钮,caption=凭证资料导入)
function cb_import_pz_onClick() {
    var p_gguid = currentGUID();

    back_get_pzdj_gguid(p_gguid, function(gguid){
        $.dialog({
            title: '凭证资料导入',
            boxWidth: '1000px',
            useBootstrap: false,
            content: `<iframe  style="width:100%;height:400px; border:0" src="billedit?id=pzdj${gguid?`&action=edit&gguid=${gguid}`:'&action=new'}&from_id=${p_gguid}"></iframe>`
        });
    })

    // let dlg= floatDialog( "凭证资料导入" ,"billlist" , "pzdj" , 1000,500, {} , "listToolbarVisible=true&editToolbarVisible=true&from_id="+currentGUID()  , function(val){alert(val);});
}


//@comment (group=按钮,caption=添加凭证号)
function cb_add_pz_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');

    sheet.cells('ny').setValue('');
    sheet.cells('pzh1').setValue('');
    sheet.cells('pzh2').setValue('');

    sheet.float('fa fa-cog', "添加凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 900, height: 400 });

}

//@comment (group=添加凭证号按钮,caption=取消)
function cb_cancel_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();
}

//@comment (group=添加凭证号按钮,caption=确认)
function cb_comfirn_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh1: sheet.cells('pzh1').getValue(),
        pzh2: sheet.cells('pzh2').getValue(),
    }

    if (data.pzh2 <= data.pzh1) {
        toastr.error('终止凭证号要比起始凭证号大');
        return false;
    }

    toastr.show("正在计算...");
    setTimeout(function () {
        back_add_pzh(data, function () {
            toastr.hide();
            toastr.info("导入完成");
            // $pz_yjd_ds.smartRetrieve();
            $pz_yjdex_ds.smartRetrieve();
            $pz_yjd_pzh_ds.smartRetrieve();
            $q_pz_yjd_pzh_ds.smartRetrieve();
        });
    }, 100);
}

function cb_import_onClick() {

    var sheet = book.getWorkSheet('导入凭证号');

    sheet.cells('ny').setValue('');
    sheet.cells('pzh').setValue('');

    sheet.float('fa fa-cog', "导入凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 500, height: 400 });


    // inputBox("提示", "请将凭证号粘贴在此", "", "", function (val) {
    //     toastr.show("正在计算...");
    //     setTimeout(function () {
    //         back_import_pzh(val, function () {
    //             toastr.hide();
    //             toastr.info("导入完成");
    //             $pz_yjd_ds.smartRetrieve();
    //             $pz_yjdex_ds.smartRetrieve();
    //             $pz_yjd_pzh_ds.smartRetrieve();
    //             $q_pz_yjd_pzh_ds.smartRetrieve();
    //         });
    //     }, 100);
    // }, false, {}, 10);
}


//@comment (group=导入凭证号按钮,caption=取消)
function cb_cancel2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();
}

//@comment (group=导入凭证号按钮,caption=确认)
function cb_comfirn2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh: sheet.cells('pzh').getValue(),
    }


    toastr.show("正在计算...");
    setTimeout(function () {
        back_import_pzh_data(data, function () {
            toastr.hide();
            toastr.info("导入完成");
            // $pz_yjd_ds.smartRetrieve();
            $pz_yjdex_ds.smartRetrieve();
            $pz_yjd_pzh_ds.smartRetrieve();
            $q_pz_yjd_pzh_ds.smartRetrieve();
        });
    }, 100);
}


function cb_buildsum_onClick() {
    $confirm("提示", "确信要根据凭证号清单生成凭证号汇总信息吗?", function () {
        toastr.show("正在计算...");
        setTimeout(function () {
            back_build_sum(function () {
                toastr.hide();
                toastr.info("导入完成");
                $pz_yjd_ds.smartRetrieve();
                $pz_yjdex_ds.smartRetrieve();
                $pz_yjd_pzh_ds.smartRetrieve();
                $q_pz_yjd_pzh_ds.smartRetrieve();

            });
        }, 100);

    });

}


/**
 * 单元格因为被编辑而改变。当用户通过编辑单元的值而让单元格发生值改变时本事件被触发。
 * 注意，当使用脚本 sheet.cells(row,col).setValue ( value) 来改变单元格的值时，本事件并不触发
 * @param sheet
 * @param cell
 * @param newValue
 * @param innerRow   当单元格没有绑定数据库或绑定到单行数据库时，本参数无意义。如果绑定一个
 * 多行数据库，则表示该单元所绑定的字段的第 innerRow行发生变化
 */
function cellValueChangedByEdit(sheet, cell, newValue, innerRow) {

    //通过别名来判断
    if (cell.alias == 'XXX') {

    }

    //通过数据库绑定情况来判断
    let bind= cell.bind;
    if( bind!=null &&  bind.dataSource=='q_pz_yjd_pzh' && bind.DBCol=='qsqx'){
        var qsqx = $pz_yjd_ds.getValue(0, 'qsqx');
        if(qsqx < newValue){
            $pz_yjd_ds.setValue(0, 'qsqx', newValue);
        }


    }


}


id: 66bb1347993294a6b3485945
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 16:11:32.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg) {
    println(arg);
    var param = JSON.parse(arg);

    var dsn = "";
    var sql = `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 and b.flow_instance_starttime is not null and a.state=0`;
    // var list = getListFromSQL2( dsn, sql);


    // var list = getListFromSQL2( '', `select * from  pz_yjd `) 
    // var list = getListFromSQL2( '', `select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh  group by gguid`) 

    // return list

    var ds = newDataStore(dsn, sql);
    ds.retrieve();
    println("select : " + ds.getSelectLastRetrieved())
    var count = ds.getRowCount();
    println('count: ' + count)
    for (var i = 0; i < count; i++) {
        var item = JSON.parse(ds.getJSONRow(i));
        var dayArr = item.flow_instance_starttime.replace(/ /g, '-').replace(/:/g, '-').replace(/\./g, '-').split('-');
        // println( 'item.flow_instance_starttime  ' + JSON.stringify(item.flow_instance_starttime) ) 
        println('dayArr  ' + JSON.stringify(dayArr))

        var confirmTime = formatDate(nextDate(createDate2(dayArr[0], dayArr[1], dayArr[2], dayArr[3], dayArr[4], dayArr[5]), item.qsqx != '0' ? item.qsqx : item.qsqx2), "yyyy.MM.dd HH:mm:ss");
        var nowTime = formatDate(currentDate(), "yyyy.MM.dd HH:mm:ss");

        println('confirmTime  ' + JSON.stringify(confirmTime))
        println('nowTime  ' + JSON.stringify(nowTime))

        if (nowTime >= confirmTime) {
            println('  item.id ' + item.id)
            runSQL(dsn, `update pz_yjd_pzh set state=1 where id='${item.id}'`);
        }
    }


    var list = getListFromSQL2('', `select * from  pz_yjd a left join (select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh  group by gguid) b on a.gguid=b.gguid where  a.flow_instance_state = 0 and b.count=0 `)


    list.forEach(item => {
        println("延长确认，自动确认");
        var gguid = item.gguid, workgguid = item.flow_process_definition_id.split(':')[0].replace('id_', '');

    println( "workgguid  " + workgguid ) 
    println( "gguid  " + gguid ) 

        //递交结束
        var loopCount = 0;
        while (loopCount < 10) {
            loopCount++;
            println(gguid);
            var t = taskInfoForWork(workgguid, gguid);
            println(JSON.stringify(t));
            if (t.taskList.length == 0) break;
            //将任务递交下去，如果任务需要签收，则先签收     
            for (var i = 0; i < t.taskList.length; i++) {
                var task = t.taskList[i];

                //可以递交，那么递交下去
                if (task.canSubmit) println(submitWork(workgguid, gguid, task.taskId));
                //需要先签收 ，那么以第一个候选人签收它
                if (task.canClaim) claimWork(workgguid, gguid, task.taskId, task.candidateUserList[0].userId);

            }


        }

    })

    return list

    return 'over';

}


id: 66bb1347993294a6b348594b
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 16:11:34.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg) {
    println(arg);
    var param = JSON.parse(arg);

    var dsn = "";
    var sql = `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 and b.flow_instance_starttime is not null and a.state=0`;
    // var list = getListFromSQL2( dsn, sql);


    // var list = getListFromSQL2( '', `select * from  pz_yjd `) 
    // var list = getListFromSQL2( '', `select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh  group by gguid`) 

    // return list

    var ds = newDataStore(dsn, sql);
    ds.retrieve();
    println("select : " + ds.getSelectLastRetrieved())
    var count = ds.getRowCount();
    println('count: ' + count)
    for (var i = 0; i < count; i++) {
        var item = JSON.parse(ds.getJSONRow(i));
        var dayArr = item.flow_instance_starttime.replace(/ /g, '-').replace(/:/g, '-').replace(/\./g, '-').split('-');
        // println( 'item.flow_instance_starttime  ' + JSON.stringify(item.flow_instance_starttime) ) 
        println('dayArr  ' + JSON.stringify(dayArr))

        var confirmTime = formatDate(nextDate(createDate2(dayArr[0], dayArr[1], dayArr[2], dayArr[3], dayArr[4], dayArr[5]), item.qsqx != '0' ? item.qsqx : item.qsqx2), "yyyy.MM.dd HH:mm:ss");
        var nowTime = formatDate(currentDate(), "yyyy.MM.dd HH:mm:ss");

        println('confirmTime  ' + JSON.stringify(confirmTime))
        println('nowTime  ' + JSON.stringify(nowTime))

        if (nowTime >= confirmTime) {
            println('  item.id ' + item.id)
            runSQL(dsn, `update pz_yjd_pzh set state=1 where id='${item.id}'`);
        }
    }


    var list = getListFromSQL2('', `select * from  pz_yjd a left join (select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh  group by gguid) b on a.gguid=b.gguid where  a.flow_instance_state = 0 and b.count=0 `)


    list.forEach(item => {
        println("延长确认，自动确认");
        var gguid = item.gguid, workgguid = item.flow_process_definition_id.split(':')[0].replace('id_', '');

        println("workgguid  " + workgguid)
        println("gguid  " + gguid)

        //递交结束
        var loopCount = 0;
        while (loopCount < 10) {
            loopCount++;
            println(gguid);
            var t = taskInfoForWork(workgguid, gguid);
            println(JSON.stringify(t));
            if (t.taskList.length == 0) break;
            //将任务递交下去，如果任务需要签收，则先签收     
            for (var i = 0; i < t.taskList.length; i++) {
                var task = t.taskList[i];

                //可以递交，那么递交下去
                if (task.canSubmit) println(submitWork(workgguid, gguid, task.taskId));
                //需要先签收 ，那么以第一个候选人签收它
                if (task.canClaim) claimWork(workgguid, gguid, task.taskId, task.candidateUserList[0].userId);

            }


        }

    })

    return list

    return 'over';

}


id: 66bb1539993294a6b3485951
scriptid: 66bb02cf993294a6b3485671
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 16:11:37.000
script:
/**
 * 脚本中心的脚本，以 main函数为执行入口，相关的参数放在arg中，它是一个JSON字符串化后的数据
 *
 */
function main(arg) {
    println(arg);
    var param = JSON.parse(arg);

    var dsn = "";
    var sql = `select a.*, b.flow_instance_starttime, b.qsqx as qsqx2 from pz_yjd_pzh a left join pz_yjd b on a.gguid=b.gguid where b.flow_instance_state = 0 and b.flow_instance_starttime is not null and a.state=0`;
    // var list = getListFromSQL2( dsn, sql);


    // var list = getListFromSQL2( '', `select * from  pz_yjd `) 
    // var list = getListFromSQL2( '', `select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh  group by gguid`) 

    // return list

    var ds = newDataStore(dsn, sql);
    ds.retrieve();
    println("select : " + ds.getSelectLastRetrieved())
    var count = ds.getRowCount();
    println('count: ' + count)
    for (var i = 0; i < count; i++) {
        var item = JSON.parse(ds.getJSONRow(i));
        var dayArr = item.flow_instance_starttime.replace(/ /g, '-').replace(/:/g, '-').replace(/\./g, '-').split('-');
        // println( 'item.flow_instance_starttime  ' + JSON.stringify(item.flow_instance_starttime) ) 
        println('dayArr  ' + JSON.stringify(dayArr))

        var confirmTime = formatDate(nextDate(createDate2(dayArr[0], dayArr[1], dayArr[2], dayArr[3], dayArr[4], dayArr[5]), item.qsqx != '0' ? item.qsqx : item.qsqx2), "yyyy.MM.dd HH:mm:ss");
        var nowTime = formatDate(currentDate(), "yyyy.MM.dd HH:mm:ss");

        println('confirmTime  ' + JSON.stringify(confirmTime))
        println('nowTime  ' + JSON.stringify(nowTime))

        if (nowTime >= confirmTime) {
            println('  item.id ' + item.id)
            runSQL(dsn, `update pz_yjd_pzh set state=1 where id='${item.id}'`);
        }
    }


    var list = getListFromSQL2('', `select * from  pz_yjd a left join (select gguid, sum(case when ifnull(state,0)=0 then 1 else 0 end) as count from  pz_yjd_pzh  group by gguid) b on a.gguid=b.gguid where  a.flow_instance_state = 0 and b.count=0 `)


    list.forEach(item => {
        println("延长确认，自动确认");
        var gguid = item.gguid, workgguid = item.flow_process_definition_id.split(':')[0].replace('id_', '');

        println("workgguid  " + workgguid)
        println("gguid  " + gguid)

        //递交结束
        var loopCount = 0;
        while (loopCount < 10) {
            loopCount++;
            println(gguid);
            var t = taskInfoForWork(workgguid, gguid);
            println(JSON.stringify(t));
            if (t.taskList.length == 0) break;
            //将任务递交下去，如果任务需要签收，则先签收     
            for (var i = 0; i < t.taskList.length; i++) {
                var task = t.taskList[i];

                //可以递交，那么递交下去
                if (task.canSubmit) println(submitWork(workgguid, gguid, task.taskId));
                //需要先签收 ，那么以第一个候选人签收它
                if (task.canClaim) claimWork(workgguid, gguid, task.taskId, task.candidateUserList[0].userId);

            }


        }

    })

    // return list

    return 'over';

}


id: 66bb1539993294a6b3485982
scriptid: 669dc6399932df22f60ce47f
tablename: app_template
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 16:22:23.000
script:
/**
 * 一个单据打开，
 * 1 先对类型为“表”的结果集做数据异步检索
 * 2 全部表检索完成之后，再执行 formOpen 事件
 * 3 再根据  actio 执行 newOpen/viewOpen/editOpen 之一
 * 4 再执行  afterOpen
 * 5 对类型为“结果集”的且需要自动检索的结果集，做异步检索
 * 6 异步检索完成后，最后执行  formOpenOver 事件
 */
//@comment (group=表单事件,caption=表单初始化全部完成之后)
function formOpenOver() {
    var data = $pz_yjd_ds.getJSON(0);
    // console.log(data)


    if(data.flow_instance_status.indexOf('接收方签收确认')>0){
        book.getWorkSheet('清单').cells('qsqx').editable = true;
        book.getWorkSheet('清单').cells('state').editable = true;
        
        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;
    }
    
    if(urlArgs.action=='view'){
        book.getWorkSheet('汇总').getBrick('cb_add_pz').visible = false;
        book.getWorkSheet('清单').getBrick('cb_import').visible = false;
        book.getWorkSheet('清单').getBrick('cb_buildsum').visible = false;

        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;


        book.getWorkSheet('清单').cells('qsqx').visible = false;
        book.getWorkSheet('清单').cells('qsqx').clickable = false;

        book.getWorkSheet('清单').cells('state').visible = false;
        book.getWorkSheet('清单').cells('state').clickable = false;
    }else{
        book.getWorkSheet('清单').cells('c_db_deleterow').visible = true;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = true;
    }

}

//@comment (group=按钮,caption=添加凭证号)
function cb_add_pz_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    
    sheet.cells('ny').setValue('');
    sheet.cells('pzh1').setValue('');
    sheet.cells('pzh2').setValue('');

    sheet.float('fa fa-cog', "添加凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 900, height: 400 });

}

//@comment (group=添加凭证号按钮,caption=取消)
function cb_cancel_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();
}

//@comment (group=添加凭证号按钮,caption=确认)
function cb_comfirn_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh1: sheet.cells('pzh1').getValue(),
        pzh2: sheet.cells('pzh2').getValue(),
    }
    
    if (data.pzh2 <= data.pzh1) {
        toastr.error( '终止凭证号要比起始凭证号大' );
        return false;
    }

    toastr.show("正在计算...");
        setTimeout(function () {
            back_add_pzh(data, function () {
                toastr.hide();
                toastr.info("导入完成");
                // $pz_yjd_ds.smartRetrieve();
                $pz_yjdex_ds.smartRetrieve();
                $pz_yjd_pzh_ds.smartRetrieve();
                $q_pz_yjd_pzh_ds.smartRetrieve();
            });
        }, 100);
}

function cb_import_onClick() {

    var sheet = book.getWorkSheet('导入凭证号');
    
    sheet.cells('ny').setValue('');
    sheet.cells('pzh').setValue('');

    sheet.float('fa fa-cog', "导入凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 500, height: 400 });


    // inputBox("提示", "请将凭证号粘贴在此", "", "", function (val) {
    //     toastr.show("正在计算...");
    //     setTimeout(function () {
    //         back_import_pzh(val, function () {
    //             toastr.hide();
    //             toastr.info("导入完成");
    //             $pz_yjd_ds.smartRetrieve();
    //             $pz_yjdex_ds.smartRetrieve();
    //             $pz_yjd_pzh_ds.smartRetrieve();
    //             $q_pz_yjd_pzh_ds.smartRetrieve();
    //         });
    //     }, 100);
    // }, false, {}, 10);
}


//@comment (group=导入凭证号按钮,caption=取消)
function cb_cancel2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();
}

//@comment (group=导入凭证号按钮,caption=确认)
function cb_comfirn2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh: sheet.cells('pzh').getValue(),
    }
    

    toastr.show("正在计算...");
        setTimeout(function () {
            back_import_pzh_data(data, function () {
                toastr.hide();
                toastr.info("导入完成");
                // $pz_yjd_ds.smartRetrieve();
                $pz_yjdex_ds.smartRetrieve();
                $pz_yjd_pzh_ds.smartRetrieve();
                $q_pz_yjd_pzh_ds.smartRetrieve();
            });
        }, 100);
}


function cb_buildsum_onClick() {
    $confirm("提示", "确信要根据凭证号清单生成凭证号汇总信息吗?", function () {
        toastr.show("正在计算...");
        setTimeout(function () {
            back_build_sum(function () {
                toastr.hide();
                toastr.info("导入完成");
                $pz_yjd_ds.smartRetrieve();
                $pz_yjdex_ds.smartRetrieve();
                $pz_yjd_pzh_ds.smartRetrieve();
                $q_pz_yjd_pzh_ds.smartRetrieve();

            });
        }, 100);

    });

}


/**
 * 单元格因为被编辑而改变。当用户通过编辑单元的值而让单元格发生值改变时本事件被触发。
 * 注意，当使用脚本 sheet.cells(row,col).setValue ( value) 来改变单元格的值时，本事件并不触发
 * @param sheet
 * @param cell
 * @param newValue
 * @param innerRow   当单元格没有绑定数据库或绑定到单行数据库时，本参数无意义。如果绑定一个
 * 多行数据库，则表示该单元所绑定的字段的第 innerRow行发生变化
 */
function cellValueChangedByEdit(sheet, cell, newValue, innerRow) {

    //通过别名来判断
    if (cell.alias == 'XXX') {

    }

    //通过数据库绑定情况来判断
    let bind= cell.bind;
    if( bind!=null &&  bind.dataSource=='q_pz_yjd_pzh' && bind.DBCol=='qsqx'){
        var qsqx = $pz_yjd_ds.getValue(0, 'qsqx');
        if(qsqx < newValue){
            $pz_yjd_ds.setValue(0, 'qsqx', newValue);
        }


    }


}


id: 66bb1539993294a6b3485986
scriptid: 669dc6399932df22f60ce47f
tablename: app_template
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 16:22:47.000
script:
/**
 * 一个单据打开，
 * 1 先对类型为“表”的结果集做数据异步检索
 * 2 全部表检索完成之后，再执行 formOpen 事件
 * 3 再根据  actio 执行 newOpen/viewOpen/editOpen 之一
 * 4 再执行  afterOpen
 * 5 对类型为“结果集”的且需要自动检索的结果集，做异步检索
 * 6 异步检索完成后，最后执行  formOpenOver 事件
 */
//@comment (group=表单事件,caption=表单初始化全部完成之后)
function formOpenOver() {
    var data = $pz_yjd_ds.getJSON(0);
    console.log(data.flow_instance_status.indexOf('接收方签收确认'))


    if(data.flow_instance_status.indexOf('接收方签收确认')>0){
        book.getWorkSheet('清单').cells('qsqx').editable = true;
        book.getWorkSheet('清单').cells('state').editable = true;
        
        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;
    }

    if(urlArgs.action=='view'){
        book.getWorkSheet('汇总').getBrick('cb_add_pz').visible = false;
        book.getWorkSheet('清单').getBrick('cb_import').visible = false;
        book.getWorkSheet('清单').getBrick('cb_buildsum').visible = false;

        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;


        book.getWorkSheet('清单').cells('qsqx').visible = false;
        book.getWorkSheet('清单').cells('qsqx').clickable = false;

        book.getWorkSheet('清单').cells('state').visible = false;
        book.getWorkSheet('清单').cells('state').clickable = false;
    }else{
        book.getWorkSheet('清单').cells('c_db_deleterow').visible = true;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = true;
    }

}

//@comment (group=按钮,caption=添加凭证号)
function cb_add_pz_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    
    sheet.cells('ny').setValue('');
    sheet.cells('pzh1').setValue('');
    sheet.cells('pzh2').setValue('');

    sheet.float('fa fa-cog', "添加凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 900, height: 400 });

}

//@comment (group=添加凭证号按钮,caption=取消)
function cb_cancel_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();
}

//@comment (group=添加凭证号按钮,caption=确认)
function cb_comfirn_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh1: sheet.cells('pzh1').getValue(),
        pzh2: sheet.cells('pzh2').getValue(),
    }
    
    if (data.pzh2 <= data.pzh1) {
        toastr.error( '终止凭证号要比起始凭证号大' );
        return false;
    }

    toastr.show("正在计算...");
        setTimeout(function () {
            back_add_pzh(data, function () {
                toastr.hide();
                toastr.info("导入完成");
                // $pz_yjd_ds.smartRetrieve();
                $pz_yjdex_ds.smartRetrieve();
                $pz_yjd_pzh_ds.smartRetrieve();
                $q_pz_yjd_pzh_ds.smartRetrieve();
            });
        }, 100);
}

function cb_import_onClick() {

    var sheet = book.getWorkSheet('导入凭证号');
    
    sheet.cells('ny').setValue('');
    sheet.cells('pzh').setValue('');

    sheet.float('fa fa-cog', "导入凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 500, height: 400 });


    // inputBox("提示", "请将凭证号粘贴在此", "", "", function (val) {
    //     toastr.show("正在计算...");
    //     setTimeout(function () {
    //         back_import_pzh(val, function () {
    //             toastr.hide();
    //             toastr.info("导入完成");
    //             $pz_yjd_ds.smartRetrieve();
    //             $pz_yjdex_ds.smartRetrieve();
    //             $pz_yjd_pzh_ds.smartRetrieve();
    //             $q_pz_yjd_pzh_ds.smartRetrieve();
    //         });
    //     }, 100);
    // }, false, {}, 10);
}


//@comment (group=导入凭证号按钮,caption=取消)
function cb_cancel2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();
}

//@comment (group=导入凭证号按钮,caption=确认)
function cb_comfirn2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh: sheet.cells('pzh').getValue(),
    }
    

    toastr.show("正在计算...");
        setTimeout(function () {
            back_import_pzh_data(data, function () {
                toastr.hide();
                toastr.info("导入完成");
                // $pz_yjd_ds.smartRetrieve();
                $pz_yjdex_ds.smartRetrieve();
                $pz_yjd_pzh_ds.smartRetrieve();
                $q_pz_yjd_pzh_ds.smartRetrieve();
            });
        }, 100);
}


function cb_buildsum_onClick() {
    $confirm("提示", "确信要根据凭证号清单生成凭证号汇总信息吗?", function () {
        toastr.show("正在计算...");
        setTimeout(function () {
            back_build_sum(function () {
                toastr.hide();
                toastr.info("导入完成");
                $pz_yjd_ds.smartRetrieve();
                $pz_yjdex_ds.smartRetrieve();
                $pz_yjd_pzh_ds.smartRetrieve();
                $q_pz_yjd_pzh_ds.smartRetrieve();

            });
        }, 100);

    });

}


/**
 * 单元格因为被编辑而改变。当用户通过编辑单元的值而让单元格发生值改变时本事件被触发。
 * 注意，当使用脚本 sheet.cells(row,col).setValue ( value) 来改变单元格的值时，本事件并不触发
 * @param sheet
 * @param cell
 * @param newValue
 * @param innerRow   当单元格没有绑定数据库或绑定到单行数据库时，本参数无意义。如果绑定一个
 * 多行数据库，则表示该单元所绑定的字段的第 innerRow行发生变化
 */
function cellValueChangedByEdit(sheet, cell, newValue, innerRow) {

    //通过别名来判断
    if (cell.alias == 'XXX') {

    }

    //通过数据库绑定情况来判断
    let bind= cell.bind;
    if( bind!=null &&  bind.dataSource=='q_pz_yjd_pzh' && bind.DBCol=='qsqx'){
        var qsqx = $pz_yjd_ds.getValue(0, 'qsqx');
        if(qsqx < newValue){
            $pz_yjd_ds.setValue(0, 'qsqx', newValue);
        }


    }


}


id: 66bb1539993294a6b348598a
scriptid: 669dc6399932df22f60ce47f
tablename: app_template
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 16:22:54.000
script:
/**
 * 一个单据打开，
 * 1 先对类型为“表”的结果集做数据异步检索
 * 2 全部表检索完成之后，再执行 formOpen 事件
 * 3 再根据  actio 执行 newOpen/viewOpen/editOpen 之一
 * 4 再执行  afterOpen
 * 5 对类型为“结果集”的且需要自动检索的结果集，做异步检索
 * 6 异步检索完成后，最后执行  formOpenOver 事件
 */
//@comment (group=表单事件,caption=表单初始化全部完成之后)
function formOpenOver() {
    var data = $pz_yjd_ds.getJSON(0);
    console.log(data.flow_instance_status, data.flow_instance_status.indexOf('接收方签收确认'))


    if(data.flow_instance_status.indexOf('接收方签收确认')>0){
        book.getWorkSheet('清单').cells('qsqx').editable = true;
        book.getWorkSheet('清单').cells('state').editable = true;
        
        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;
    }

    if(urlArgs.action=='view'){
        book.getWorkSheet('汇总').getBrick('cb_add_pz').visible = false;
        book.getWorkSheet('清单').getBrick('cb_import').visible = false;
        book.getWorkSheet('清单').getBrick('cb_buildsum').visible = false;

        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;


        book.getWorkSheet('清单').cells('qsqx').visible = false;
        book.getWorkSheet('清单').cells('qsqx').clickable = false;

        book.getWorkSheet('清单').cells('state').visible = false;
        book.getWorkSheet('清单').cells('state').clickable = false;
    }else{
        book.getWorkSheet('清单').cells('c_db_deleterow').visible = true;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = true;
    }

}

//@comment (group=按钮,caption=添加凭证号)
function cb_add_pz_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    
    sheet.cells('ny').setValue('');
    sheet.cells('pzh1').setValue('');
    sheet.cells('pzh2').setValue('');

    sheet.float('fa fa-cog', "添加凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 900, height: 400 });

}

//@comment (group=添加凭证号按钮,caption=取消)
function cb_cancel_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();
}

//@comment (group=添加凭证号按钮,caption=确认)
function cb_comfirn_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh1: sheet.cells('pzh1').getValue(),
        pzh2: sheet.cells('pzh2').getValue(),
    }
    
    if (data.pzh2 <= data.pzh1) {
        toastr.error( '终止凭证号要比起始凭证号大' );
        return false;
    }

    toastr.show("正在计算...");
        setTimeout(function () {
            back_add_pzh(data, function () {
                toastr.hide();
                toastr.info("导入完成");
                // $pz_yjd_ds.smartRetrieve();
                $pz_yjdex_ds.smartRetrieve();
                $pz_yjd_pzh_ds.smartRetrieve();
                $q_pz_yjd_pzh_ds.smartRetrieve();
            });
        }, 100);
}

function cb_import_onClick() {

    var sheet = book.getWorkSheet('导入凭证号');
    
    sheet.cells('ny').setValue('');
    sheet.cells('pzh').setValue('');

    sheet.float('fa fa-cog', "导入凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 500, height: 400 });


    // inputBox("提示", "请将凭证号粘贴在此", "", "", function (val) {
    //     toastr.show("正在计算...");
    //     setTimeout(function () {
    //         back_import_pzh(val, function () {
    //             toastr.hide();
    //             toastr.info("导入完成");
    //             $pz_yjd_ds.smartRetrieve();
    //             $pz_yjdex_ds.smartRetrieve();
    //             $pz_yjd_pzh_ds.smartRetrieve();
    //             $q_pz_yjd_pzh_ds.smartRetrieve();
    //         });
    //     }, 100);
    // }, false, {}, 10);
}


//@comment (group=导入凭证号按钮,caption=取消)
function cb_cancel2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();
}

//@comment (group=导入凭证号按钮,caption=确认)
function cb_comfirn2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh: sheet.cells('pzh').getValue(),
    }
    

    toastr.show("正在计算...");
        setTimeout(function () {
            back_import_pzh_data(data, function () {
                toastr.hide();
                toastr.info("导入完成");
                // $pz_yjd_ds.smartRetrieve();
                $pz_yjdex_ds.smartRetrieve();
                $pz_yjd_pzh_ds.smartRetrieve();
                $q_pz_yjd_pzh_ds.smartRetrieve();
            });
        }, 100);
}


function cb_buildsum_onClick() {
    $confirm("提示", "确信要根据凭证号清单生成凭证号汇总信息吗?", function () {
        toastr.show("正在计算...");
        setTimeout(function () {
            back_build_sum(function () {
                toastr.hide();
                toastr.info("导入完成");
                $pz_yjd_ds.smartRetrieve();
                $pz_yjdex_ds.smartRetrieve();
                $pz_yjd_pzh_ds.smartRetrieve();
                $q_pz_yjd_pzh_ds.smartRetrieve();

            });
        }, 100);

    });

}


/**
 * 单元格因为被编辑而改变。当用户通过编辑单元的值而让单元格发生值改变时本事件被触发。
 * 注意，当使用脚本 sheet.cells(row,col).setValue ( value) 来改变单元格的值时，本事件并不触发
 * @param sheet
 * @param cell
 * @param newValue
 * @param innerRow   当单元格没有绑定数据库或绑定到单行数据库时，本参数无意义。如果绑定一个
 * 多行数据库，则表示该单元所绑定的字段的第 innerRow行发生变化
 */
function cellValueChangedByEdit(sheet, cell, newValue, innerRow) {

    //通过别名来判断
    if (cell.alias == 'XXX') {

    }

    //通过数据库绑定情况来判断
    let bind= cell.bind;
    if( bind!=null &&  bind.dataSource=='q_pz_yjd_pzh' && bind.DBCol=='qsqx'){
        var qsqx = $pz_yjd_ds.getValue(0, 'qsqx');
        if(qsqx < newValue){
            $pz_yjd_ds.setValue(0, 'qsqx', newValue);
        }


    }


}


id: 66bb1539993294a6b348598e
scriptid: 669dc6399932df22f60ce47f
tablename: app_template
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 16:23:33.000
script:
/**
 * 一个单据打开，
 * 1 先对类型为“表”的结果集做数据异步检索
 * 2 全部表检索完成之后，再执行 formOpen 事件
 * 3 再根据  actio 执行 newOpen/viewOpen/editOpen 之一
 * 4 再执行  afterOpen
 * 5 对类型为“结果集”的且需要自动检索的结果集，做异步检索
 * 6 异步检索完成后，最后执行  formOpenOver 事件
 */
//@comment (group=表单事件,caption=表单初始化全部完成之后)
function formOpenOver() {
    var data = $pz_yjd_ds.getJSON(0);
    console.log(data, data.flow_instance_status, data.flow_instance_status.indexOf('接收方签收确认'))


    if(data.flow_instance_status.indexOf('接收方签收确认')>0){
        book.getWorkSheet('清单').cells('qsqx').editable = true;
        book.getWorkSheet('清单').cells('state').editable = true;
        
        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;
    }

    if(urlArgs.action=='view'){
        book.getWorkSheet('汇总').getBrick('cb_add_pz').visible = false;
        book.getWorkSheet('清单').getBrick('cb_import').visible = false;
        book.getWorkSheet('清单').getBrick('cb_buildsum').visible = false;

        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;


        book.getWorkSheet('清单').cells('qsqx').visible = false;
        book.getWorkSheet('清单').cells('qsqx').clickable = false;

        book.getWorkSheet('清单').cells('state').visible = false;
        book.getWorkSheet('清单').cells('state').clickable = false;
    }else{
        book.getWorkSheet('清单').cells('c_db_deleterow').visible = true;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = true;
    }

}

//@comment (group=按钮,caption=添加凭证号)
function cb_add_pz_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    
    sheet.cells('ny').setValue('');
    sheet.cells('pzh1').setValue('');
    sheet.cells('pzh2').setValue('');

    sheet.float('fa fa-cog', "添加凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 900, height: 400 });

}

//@comment (group=添加凭证号按钮,caption=取消)
function cb_cancel_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();
}

//@comment (group=添加凭证号按钮,caption=确认)
function cb_comfirn_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh1: sheet.cells('pzh1').getValue(),
        pzh2: sheet.cells('pzh2').getValue(),
    }
    
    if (data.pzh2 <= data.pzh1) {
        toastr.error( '终止凭证号要比起始凭证号大' );
        return false;
    }

    toastr.show("正在计算...");
        setTimeout(function () {
            back_add_pzh(data, function () {
                toastr.hide();
                toastr.info("导入完成");
                // $pz_yjd_ds.smartRetrieve();
                $pz_yjdex_ds.smartRetrieve();
                $pz_yjd_pzh_ds.smartRetrieve();
                $q_pz_yjd_pzh_ds.smartRetrieve();
            });
        }, 100);
}

function cb_import_onClick() {

    var sheet = book.getWorkSheet('导入凭证号');
    
    sheet.cells('ny').setValue('');
    sheet.cells('pzh').setValue('');

    sheet.float('fa fa-cog', "导入凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 500, height: 400 });


    // inputBox("提示", "请将凭证号粘贴在此", "", "", function (val) {
    //     toastr.show("正在计算...");
    //     setTimeout(function () {
    //         back_import_pzh(val, function () {
    //             toastr.hide();
    //             toastr.info("导入完成");
    //             $pz_yjd_ds.smartRetrieve();
    //             $pz_yjdex_ds.smartRetrieve();
    //             $pz_yjd_pzh_ds.smartRetrieve();
    //             $q_pz_yjd_pzh_ds.smartRetrieve();
    //         });
    //     }, 100);
    // }, false, {}, 10);
}


//@comment (group=导入凭证号按钮,caption=取消)
function cb_cancel2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();
}

//@comment (group=导入凭证号按钮,caption=确认)
function cb_comfirn2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh: sheet.cells('pzh').getValue(),
    }
    

    toastr.show("正在计算...");
        setTimeout(function () {
            back_import_pzh_data(data, function () {
                toastr.hide();
                toastr.info("导入完成");
                // $pz_yjd_ds.smartRetrieve();
                $pz_yjdex_ds.smartRetrieve();
                $pz_yjd_pzh_ds.smartRetrieve();
                $q_pz_yjd_pzh_ds.smartRetrieve();
            });
        }, 100);
}


function cb_buildsum_onClick() {
    $confirm("提示", "确信要根据凭证号清单生成凭证号汇总信息吗?", function () {
        toastr.show("正在计算...");
        setTimeout(function () {
            back_build_sum(function () {
                toastr.hide();
                toastr.info("导入完成");
                $pz_yjd_ds.smartRetrieve();
                $pz_yjdex_ds.smartRetrieve();
                $pz_yjd_pzh_ds.smartRetrieve();
                $q_pz_yjd_pzh_ds.smartRetrieve();

            });
        }, 100);

    });

}


/**
 * 单元格因为被编辑而改变。当用户通过编辑单元的值而让单元格发生值改变时本事件被触发。
 * 注意，当使用脚本 sheet.cells(row,col).setValue ( value) 来改变单元格的值时，本事件并不触发
 * @param sheet
 * @param cell
 * @param newValue
 * @param innerRow   当单元格没有绑定数据库或绑定到单行数据库时，本参数无意义。如果绑定一个
 * 多行数据库，则表示该单元所绑定的字段的第 innerRow行发生变化
 */
function cellValueChangedByEdit(sheet, cell, newValue, innerRow) {

    //通过别名来判断
    if (cell.alias == 'XXX') {

    }

    //通过数据库绑定情况来判断
    let bind= cell.bind;
    if( bind!=null &&  bind.dataSource=='q_pz_yjd_pzh' && bind.DBCol=='qsqx'){
        var qsqx = $pz_yjd_ds.getValue(0, 'qsqx');
        if(qsqx < newValue){
            $pz_yjd_ds.setValue(0, 'qsqx', newValue);
        }


    }


}


id: 66bb1539993294a6b3485992
scriptid: 669dc6399932df22f60ce47f
tablename: app_template
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 16:24:11.000
script:
/**
 * 一个单据打开，
 * 1 先对类型为“表”的结果集做数据异步检索
 * 2 全部表检索完成之后，再执行 formOpen 事件
 * 3 再根据  actio 执行 newOpen/viewOpen/editOpen 之一
 * 4 再执行  afterOpen
 * 5 对类型为“结果集”的且需要自动检索的结果集，做异步检索
 * 6 异步检索完成后，最后执行  formOpenOver 事件
 */
//@comment (group=表单事件,caption=表单初始化全部完成之后)
function formOpenOver() {
    var data = $pz_yjd_ds.getJSON(0);
    console.log(data, data.flow_instance_status, data.flow_instance_status.indexOf('接收方签收确认'))


    if(urlArgs.action=='view'){
        book.getWorkSheet('汇总').getBrick('cb_add_pz').visible = false;
        book.getWorkSheet('清单').getBrick('cb_import').visible = false;
        book.getWorkSheet('清单').getBrick('cb_buildsum').visible = false;

        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;


        book.getWorkSheet('清单').cells('qsqx').visible = false;
        book.getWorkSheet('清单').cells('qsqx').clickable = false;

        book.getWorkSheet('清单').cells('state').visible = false;
        book.getWorkSheet('清单').cells('state').clickable = false;
    }else{
        

        if(data.flow_instance_status.indexOf('接收方签收确认')>0){
            book.getWorkSheet('清单').cells('qsqx').editable = true;
            book.getWorkSheet('清单').cells('state').editable = true;
            
            book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
            book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;
        }else{
            book.getWorkSheet('清单').cells('c_db_deleterow').visible = true;
            book.getWorkSheet('清单').cells('c_db_deleterow').clickable = true;
        }
        
    }

}

//@comment (group=按钮,caption=添加凭证号)
function cb_add_pz_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    
    sheet.cells('ny').setValue('');
    sheet.cells('pzh1').setValue('');
    sheet.cells('pzh2').setValue('');

    sheet.float('fa fa-cog', "添加凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 900, height: 400 });

}

//@comment (group=添加凭证号按钮,caption=取消)
function cb_cancel_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();
}

//@comment (group=添加凭证号按钮,caption=确认)
function cb_comfirn_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh1: sheet.cells('pzh1').getValue(),
        pzh2: sheet.cells('pzh2').getValue(),
    }
    
    if (data.pzh2 <= data.pzh1) {
        toastr.error( '终止凭证号要比起始凭证号大' );
        return false;
    }

    toastr.show("正在计算...");
        setTimeout(function () {
            back_add_pzh(data, function () {
                toastr.hide();
                toastr.info("导入完成");
                // $pz_yjd_ds.smartRetrieve();
                $pz_yjdex_ds.smartRetrieve();
                $pz_yjd_pzh_ds.smartRetrieve();
                $q_pz_yjd_pzh_ds.smartRetrieve();
            });
        }, 100);
}

function cb_import_onClick() {

    var sheet = book.getWorkSheet('导入凭证号');
    
    sheet.cells('ny').setValue('');
    sheet.cells('pzh').setValue('');

    sheet.float('fa fa-cog', "导入凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 500, height: 400 });


    // inputBox("提示", "请将凭证号粘贴在此", "", "", function (val) {
    //     toastr.show("正在计算...");
    //     setTimeout(function () {
    //         back_import_pzh(val, function () {
    //             toastr.hide();
    //             toastr.info("导入完成");
    //             $pz_yjd_ds.smartRetrieve();
    //             $pz_yjdex_ds.smartRetrieve();
    //             $pz_yjd_pzh_ds.smartRetrieve();
    //             $q_pz_yjd_pzh_ds.smartRetrieve();
    //         });
    //     }, 100);
    // }, false, {}, 10);
}


//@comment (group=导入凭证号按钮,caption=取消)
function cb_cancel2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();
}

//@comment (group=导入凭证号按钮,caption=确认)
function cb_comfirn2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh: sheet.cells('pzh').getValue(),
    }
    

    toastr.show("正在计算...");
        setTimeout(function () {
            back_import_pzh_data(data, function () {
                toastr.hide();
                toastr.info("导入完成");
                // $pz_yjd_ds.smartRetrieve();
                $pz_yjdex_ds.smartRetrieve();
                $pz_yjd_pzh_ds.smartRetrieve();
                $q_pz_yjd_pzh_ds.smartRetrieve();
            });
        }, 100);
}


function cb_buildsum_onClick() {
    $confirm("提示", "确信要根据凭证号清单生成凭证号汇总信息吗?", function () {
        toastr.show("正在计算...");
        setTimeout(function () {
            back_build_sum(function () {
                toastr.hide();
                toastr.info("导入完成");
                $pz_yjd_ds.smartRetrieve();
                $pz_yjdex_ds.smartRetrieve();
                $pz_yjd_pzh_ds.smartRetrieve();
                $q_pz_yjd_pzh_ds.smartRetrieve();

            });
        }, 100);

    });

}


/**
 * 单元格因为被编辑而改变。当用户通过编辑单元的值而让单元格发生值改变时本事件被触发。
 * 注意，当使用脚本 sheet.cells(row,col).setValue ( value) 来改变单元格的值时，本事件并不触发
 * @param sheet
 * @param cell
 * @param newValue
 * @param innerRow   当单元格没有绑定数据库或绑定到单行数据库时，本参数无意义。如果绑定一个
 * 多行数据库，则表示该单元所绑定的字段的第 innerRow行发生变化
 */
function cellValueChangedByEdit(sheet, cell, newValue, innerRow) {

    //通过别名来判断
    if (cell.alias == 'XXX') {

    }

    //通过数据库绑定情况来判断
    let bind= cell.bind;
    if( bind!=null &&  bind.dataSource=='q_pz_yjd_pzh' && bind.DBCol=='qsqx'){
        var qsqx = $pz_yjd_ds.getValue(0, 'qsqx');
        if(qsqx < newValue){
            $pz_yjd_ds.setValue(0, 'qsqx', newValue);
        }


    }


}


id: 66bb1539993294a6b3485996
scriptid: 669dc6399932df22f60ce47f
tablename: app_template
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 16:24:34.000
script:
/**
 * 一个单据打开，
 * 1 先对类型为“表”的结果集做数据异步检索
 * 2 全部表检索完成之后，再执行 formOpen 事件
 * 3 再根据  actio 执行 newOpen/viewOpen/editOpen 之一
 * 4 再执行  afterOpen
 * 5 对类型为“结果集”的且需要自动检索的结果集，做异步检索
 * 6 异步检索完成后，最后执行  formOpenOver 事件
 */
//@comment (group=表单事件,caption=表单初始化全部完成之后)
function formOpenOver() {
    var data = $pz_yjd_ds.getJSON(0);

    if(urlArgs.action=='view'){
        book.getWorkSheet('汇总').getBrick('cb_add_pz').visible = false;
        book.getWorkSheet('清单').getBrick('cb_import').visible = false;
        book.getWorkSheet('清单').getBrick('cb_buildsum').visible = false;

        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;


        book.getWorkSheet('清单').cells('qsqx').visible = false;
        book.getWorkSheet('清单').cells('qsqx').clickable = false;

        book.getWorkSheet('清单').cells('state').visible = false;
        book.getWorkSheet('清单').cells('state').clickable = false;
    }else{
        

        if(data.flow_instance_status.indexOf('接收方签收确认')>0){
            book.getWorkSheet('清单').cells('qsqx').editable = true;
            book.getWorkSheet('清单').cells('state').editable = true;
            
            book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
            book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;
        }else{
            book.getWorkSheet('清单').cells('c_db_deleterow').visible = true;
            book.getWorkSheet('清单').cells('c_db_deleterow').clickable = true;
        }
        
    }

}

//@comment (group=按钮,caption=添加凭证号)
function cb_add_pz_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    
    sheet.cells('ny').setValue('');
    sheet.cells('pzh1').setValue('');
    sheet.cells('pzh2').setValue('');

    sheet.float('fa fa-cog', "添加凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 900, height: 400 });

}

//@comment (group=添加凭证号按钮,caption=取消)
function cb_cancel_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();
}

//@comment (group=添加凭证号按钮,caption=确认)
function cb_comfirn_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh1: sheet.cells('pzh1').getValue(),
        pzh2: sheet.cells('pzh2').getValue(),
    }
    
    if (data.pzh2 <= data.pzh1) {
        toastr.error( '终止凭证号要比起始凭证号大' );
        return false;
    }

    toastr.show("正在计算...");
        setTimeout(function () {
            back_add_pzh(data, function () {
                toastr.hide();
                toastr.info("导入完成");
                // $pz_yjd_ds.smartRetrieve();
                $pz_yjdex_ds.smartRetrieve();
                $pz_yjd_pzh_ds.smartRetrieve();
                $q_pz_yjd_pzh_ds.smartRetrieve();
            });
        }, 100);
}

function cb_import_onClick() {

    var sheet = book.getWorkSheet('导入凭证号');
    
    sheet.cells('ny').setValue('');
    sheet.cells('pzh').setValue('');

    sheet.float('fa fa-cog', "导入凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 500, height: 400 });


    // inputBox("提示", "请将凭证号粘贴在此", "", "", function (val) {
    //     toastr.show("正在计算...");
    //     setTimeout(function () {
    //         back_import_pzh(val, function () {
    //             toastr.hide();
    //             toastr.info("导入完成");
    //             $pz_yjd_ds.smartRetrieve();
    //             $pz_yjdex_ds.smartRetrieve();
    //             $pz_yjd_pzh_ds.smartRetrieve();
    //             $q_pz_yjd_pzh_ds.smartRetrieve();
    //         });
    //     }, 100);
    // }, false, {}, 10);
}


//@comment (group=导入凭证号按钮,caption=取消)
function cb_cancel2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();
}

//@comment (group=导入凭证号按钮,caption=确认)
function cb_comfirn2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh: sheet.cells('pzh').getValue(),
    }
    

    toastr.show("正在计算...");
        setTimeout(function () {
            back_import_pzh_data(data, function () {
                toastr.hide();
                toastr.info("导入完成");
                // $pz_yjd_ds.smartRetrieve();
                $pz_yjdex_ds.smartRetrieve();
                $pz_yjd_pzh_ds.smartRetrieve();
                $q_pz_yjd_pzh_ds.smartRetrieve();
            });
        }, 100);
}


function cb_buildsum_onClick() {
    $confirm("提示", "确信要根据凭证号清单生成凭证号汇总信息吗?", function () {
        toastr.show("正在计算...");
        setTimeout(function () {
            back_build_sum(function () {
                toastr.hide();
                toastr.info("导入完成");
                $pz_yjd_ds.smartRetrieve();
                $pz_yjdex_ds.smartRetrieve();
                $pz_yjd_pzh_ds.smartRetrieve();
                $q_pz_yjd_pzh_ds.smartRetrieve();

            });
        }, 100);

    });

}


/**
 * 单元格因为被编辑而改变。当用户通过编辑单元的值而让单元格发生值改变时本事件被触发。
 * 注意，当使用脚本 sheet.cells(row,col).setValue ( value) 来改变单元格的值时，本事件并不触发
 * @param sheet
 * @param cell
 * @param newValue
 * @param innerRow   当单元格没有绑定数据库或绑定到单行数据库时，本参数无意义。如果绑定一个
 * 多行数据库，则表示该单元所绑定的字段的第 innerRow行发生变化
 */
function cellValueChangedByEdit(sheet, cell, newValue, innerRow) {

    //通过别名来判断
    if (cell.alias == 'XXX') {

    }

    //通过数据库绑定情况来判断
    let bind= cell.bind;
    if( bind!=null &&  bind.dataSource=='q_pz_yjd_pzh' && bind.DBCol=='qsqx'){
        var qsqx = $pz_yjd_ds.getValue(0, 'qsqx');
        if(qsqx < newValue){
            $pz_yjd_ds.setValue(0, 'qsqx', newValue);
        }


    }


}


id: 66bb1539993294a6b348599a
scriptid: 669dc6399932df22f60ce47f
tablename: app_template
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 16:24:41.000
script:
/**
 * 一个单据打开，
 * 1 先对类型为“表”的结果集做数据异步检索
 * 2 全部表检索完成之后，再执行 formOpen 事件
 * 3 再根据  actio 执行 newOpen/viewOpen/editOpen 之一
 * 4 再执行  afterOpen
 * 5 对类型为“结果集”的且需要自动检索的结果集，做异步检索
 * 6 异步检索完成后，最后执行  formOpenOver 事件
 */
//@comment (group=表单事件,caption=表单初始化全部完成之后)
function formOpenOver() {
    var data = $pz_yjd_ds.getJSON(0);

    if(urlArgs.action=='view'){
        book.getWorkSheet('汇总').getBrick('cb_add_pz').visible = false;
        book.getWorkSheet('清单').getBrick('cb_import').visible = false;
        book.getWorkSheet('清单').getBrick('cb_buildsum').visible = false;

        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;


        book.getWorkSheet('清单').cells('qsqx').visible = false;
        book.getWorkSheet('清单').cells('qsqx').clickable = false;

        book.getWorkSheet('清单').cells('state').visible = false;
        book.getWorkSheet('清单').cells('state').clickable = false;
    }else{

        if(data.flow_instance_status.indexOf('接收方签收确认')>0){
            book.getWorkSheet('清单').cells('qsqx').editable = true;
            book.getWorkSheet('清单').cells('state').editable = true;
            
            book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
            book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;
        }else{
            book.getWorkSheet('清单').cells('c_db_deleterow').visible = true;
            book.getWorkSheet('清单').cells('c_db_deleterow').clickable = true;
        }
        
    }

}

//@comment (group=按钮,caption=添加凭证号)
function cb_add_pz_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    
    sheet.cells('ny').setValue('');
    sheet.cells('pzh1').setValue('');
    sheet.cells('pzh2').setValue('');

    sheet.float('fa fa-cog', "添加凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 900, height: 400 });

}

//@comment (group=添加凭证号按钮,caption=取消)
function cb_cancel_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();
}

//@comment (group=添加凭证号按钮,caption=确认)
function cb_comfirn_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh1: sheet.cells('pzh1').getValue(),
        pzh2: sheet.cells('pzh2').getValue(),
    }
    
    if (data.pzh2 <= data.pzh1) {
        toastr.error( '终止凭证号要比起始凭证号大' );
        return false;
    }

    toastr.show("正在计算...");
        setTimeout(function () {
            back_add_pzh(data, function () {
                toastr.hide();
                toastr.info("导入完成");
                // $pz_yjd_ds.smartRetrieve();
                $pz_yjdex_ds.smartRetrieve();
                $pz_yjd_pzh_ds.smartRetrieve();
                $q_pz_yjd_pzh_ds.smartRetrieve();
            });
        }, 100);
}

function cb_import_onClick() {

    var sheet = book.getWorkSheet('导入凭证号');
    
    sheet.cells('ny').setValue('');
    sheet.cells('pzh').setValue('');

    sheet.float('fa fa-cog', "导入凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 500, height: 400 });


    // inputBox("提示", "请将凭证号粘贴在此", "", "", function (val) {
    //     toastr.show("正在计算...");
    //     setTimeout(function () {
    //         back_import_pzh(val, function () {
    //             toastr.hide();
    //             toastr.info("导入完成");
    //             $pz_yjd_ds.smartRetrieve();
    //             $pz_yjdex_ds.smartRetrieve();
    //             $pz_yjd_pzh_ds.smartRetrieve();
    //             $q_pz_yjd_pzh_ds.smartRetrieve();
    //         });
    //     }, 100);
    // }, false, {}, 10);
}


//@comment (group=导入凭证号按钮,caption=取消)
function cb_cancel2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();
}

//@comment (group=导入凭证号按钮,caption=确认)
function cb_comfirn2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh: sheet.cells('pzh').getValue(),
    }
    

    toastr.show("正在计算...");
        setTimeout(function () {
            back_import_pzh_data(data, function () {
                toastr.hide();
                toastr.info("导入完成");
                // $pz_yjd_ds.smartRetrieve();
                $pz_yjdex_ds.smartRetrieve();
                $pz_yjd_pzh_ds.smartRetrieve();
                $q_pz_yjd_pzh_ds.smartRetrieve();
            });
        }, 100);
}


function cb_buildsum_onClick() {
    $confirm("提示", "确信要根据凭证号清单生成凭证号汇总信息吗?", function () {
        toastr.show("正在计算...");
        setTimeout(function () {
            back_build_sum(function () {
                toastr.hide();
                toastr.info("导入完成");
                $pz_yjd_ds.smartRetrieve();
                $pz_yjdex_ds.smartRetrieve();
                $pz_yjd_pzh_ds.smartRetrieve();
                $q_pz_yjd_pzh_ds.smartRetrieve();

            });
        }, 100);

    });

}


/**
 * 单元格因为被编辑而改变。当用户通过编辑单元的值而让单元格发生值改变时本事件被触发。
 * 注意，当使用脚本 sheet.cells(row,col).setValue ( value) 来改变单元格的值时，本事件并不触发
 * @param sheet
 * @param cell
 * @param newValue
 * @param innerRow   当单元格没有绑定数据库或绑定到单行数据库时，本参数无意义。如果绑定一个
 * 多行数据库，则表示该单元所绑定的字段的第 innerRow行发生变化
 */
function cellValueChangedByEdit(sheet, cell, newValue, innerRow) {

    //通过别名来判断
    if (cell.alias == 'XXX') {

    }

    //通过数据库绑定情况来判断
    let bind= cell.bind;
    if( bind!=null &&  bind.dataSource=='q_pz_yjd_pzh' && bind.DBCol=='qsqx'){
        var qsqx = $pz_yjd_ds.getValue(0, 'qsqx');
        if(qsqx < newValue){
            $pz_yjd_ds.setValue(0, 'qsqx', newValue);
        }


    }


}


id: 66bb1539993294a6b34859a1
scriptid: 669dc6249932df22f60cc8eb
tablename: app_template
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 16:25:04.000
script:
/**
 * 一个单据打开，
 * 1 先对类型为“表”的结果集做数据异步检索
 * 2 全部表检索完成之后，再执行 formOpen 事件
 * 3 再根据  actio 执行 newOpen/viewOpen/editOpen 之一
 * 4 再执行  afterOpen
 * 5 对类型为“结果集”的且需要自动检索的结果集，做异步检索
 * 6 异步检索完成后，最后执行  formOpenOver 事件
 */
//@comment (group=表单事件,caption=表单初始化全部完成之后)
function formOpenOver() {
    var data = $pz_yjd_ds.getJSON(0);
    // console.log(data)

    if(urlArgs.action=='view'){
        book.getWorkSheet('汇总').getBrick('cb_add_pz').visible = false;
        book.getWorkSheet('清单').getBrick('cb_import').visible = false;
        book.getWorkSheet('清单').getBrick('cb_buildsum').visible = false;

        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;


        book.getWorkSheet('清单').cells('qsqx').visible = false;
        book.getWorkSheet('清单').cells('qsqx').clickable = false;

        book.getWorkSheet('清单').cells('state').visible = false;
        book.getWorkSheet('清单').cells('state').clickable = false;
    }else{

        if(data.flow_instance_status.indexOf('接收方签收确认')>0){
            book.getWorkSheet('清单').cells('qsqx').editable = true;
            book.getWorkSheet('清单').cells('state').editable = true;
            
            book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
            book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;
        }else{
            book.getWorkSheet('清单').cells('c_db_deleterow').visible = true;
            book.getWorkSheet('清单').cells('c_db_deleterow').clickable = true;
        }

    }


}

//@comment (group=按钮,caption=添加凭证号)
function cb_add_pz_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    
    sheet.cells('ny').setValue('');
    sheet.cells('pzh1').setValue('');
    sheet.cells('pzh2').setValue('');

    sheet.float('fa fa-cog', "添加凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 900, height: 400 });

}

//@comment (group=添加凭证号按钮,caption=取消)
function cb_cancel_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();
}

//@comment (group=添加凭证号按钮,caption=确认)
function cb_comfirn_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh1: sheet.cells('pzh1').getValue(),
        pzh2: sheet.cells('pzh2').getValue(),
    }
    
    if (data.pzh2 <= data.pzh1) {
        toastr.error( '终止凭证号要比起始凭证号大' );
        return false;
    }

    toastr.show("正在计算...");
        setTimeout(function () {
            back_add_pzh(data, function () {
                toastr.hide();
                toastr.info("导入完成");
                // $pz_yjd_ds.smartRetrieve();
                $pz_yjdex_ds.smartRetrieve();
                $pz_yjd_pzh_ds.smartRetrieve();
                $q_pz_yjd_pzh_ds.smartRetrieve();
            });
        }, 100);
}

function cb_import_onClick() {

    var sheet = book.getWorkSheet('导入凭证号');
    
    sheet.cells('ny').setValue('');
    sheet.cells('pzh').setValue('');

    sheet.float('fa fa-cog', "导入凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 500, height: 400 });


    // inputBox("提示", "请将凭证号粘贴在此", "", "", function (val) {
    //     toastr.show("正在计算...");
    //     setTimeout(function () {
    //         back_import_pzh(val, function () {
    //             toastr.hide();
    //             toastr.info("导入完成");
    //             $pz_yjd_ds.smartRetrieve();
    //             $pz_yjdex_ds.smartRetrieve();
    //             $pz_yjd_pzh_ds.smartRetrieve();
    //             $q_pz_yjd_pzh_ds.smartRetrieve();
    //         });
    //     }, 100);
    // }, false, {}, 10);
}


//@comment (group=导入凭证号按钮,caption=取消)
function cb_cancel2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();
}

//@comment (group=导入凭证号按钮,caption=确认)
function cb_comfirn2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh: sheet.cells('pzh').getValue(),
    }
    

    toastr.show("正在计算...");
        setTimeout(function () {
            back_import_pzh_data(data, function () {
                toastr.hide();
                toastr.info("导入完成");
                // $pz_yjd_ds.smartRetrieve();
                $pz_yjdex_ds.smartRetrieve();
                $pz_yjd_pzh_ds.smartRetrieve();
                $q_pz_yjd_pzh_ds.smartRetrieve();
            });
        }, 100);
}


function cb_buildsum_onClick() {
    $confirm("提示", "确信要根据凭证号清单生成凭证号汇总信息吗?", function () {
        toastr.show("正在计算...");
        setTimeout(function () {
            back_build_sum(function () {
                toastr.hide();
                toastr.info("导入完成");
                $pz_yjd_ds.smartRetrieve();
                $pz_yjdex_ds.smartRetrieve();
                $pz_yjd_pzh_ds.smartRetrieve();
                $q_pz_yjd_pzh_ds.smartRetrieve();

            });
        }, 100);

    });

}


/**
 * 单元格因为被编辑而改变。当用户通过编辑单元的值而让单元格发生值改变时本事件被触发。
 * 注意，当使用脚本 sheet.cells(row,col).setValue ( value) 来改变单元格的值时，本事件并不触发
 * @param sheet
 * @param cell
 * @param newValue
 * @param innerRow   当单元格没有绑定数据库或绑定到单行数据库时，本参数无意义。如果绑定一个
 * 多行数据库，则表示该单元所绑定的字段的第 innerRow行发生变化
 */
function cellValueChangedByEdit(sheet, cell, newValue, innerRow) {

    //通过别名来判断
    if (cell.alias == 'XXX') {

    }

    //通过数据库绑定情况来判断
    let bind= cell.bind;
    if( bind!=null &&  bind.dataSource=='q_pz_yjd_pzh' && bind.DBCol=='qsqx'){
        var qsqx = $pz_yjd_ds.getValue(0, 'qsqx');
        if(qsqx < newValue){
            $pz_yjd_ds.setValue(0, 'qsqx', newValue);
        }


    }


}


id: 66bb1539993294a6b34859a8
scriptid: 669dc60c9932df22f60cad57
tablename: app_template
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 16:25:29.000
script:
/**
 * 一个单据打开，
 * 1 先对类型为“表”的结果集做数据异步检索
 * 2 全部表检索完成之后，再执行 formOpen 事件
 * 3 再根据  actio 执行 newOpen/viewOpen/editOpen 之一
 * 4 再执行  afterOpen
 * 5 对类型为“结果集”的且需要自动检索的结果集，做异步检索
 * 6 异步检索完成后，最后执行  formOpenOver 事件
 */
//@comment (group=表单事件,caption=表单初始化全部完成之后)
function formOpenOver() {
    var data = $pz_yjd_ds.getJSON(0);
    // console.log(data)

    if(urlArgs.action=='view'){
        
        book.getWorkSheet('main').getBrick('cb_import_pz').visible = false;

        book.getWorkSheet('汇总').getBrick('cb_add_pz').visible = false;
        book.getWorkSheet('清单').getBrick('cb_import').visible = false;
        book.getWorkSheet('清单').getBrick('cb_buildsum').visible = false;

        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;


        book.getWorkSheet('清单').cells('qsqx').visible = false;
        book.getWorkSheet('清单').cells('qsqx').clickable = false;

        book.getWorkSheet('清单').cells('state').visible = false;
        book.getWorkSheet('清单').cells('state').clickable = false;
    }else{
        
        if(data.flow_instance_status.indexOf('接收方签收确认')>0){
            book.getWorkSheet('清单').cells('qsqx').editable = true;
            book.getWorkSheet('清单').cells('state').editable = true;
            
            book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
            book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;
        }else{
            book.getWorkSheet('清单').cells('c_db_deleterow').visible = true;
            book.getWorkSheet('清单').cells('c_db_deleterow').clickable = true;
        }

    }

    if(data.flow_instance_status.indexOf('接收方签收确认')>0){
        book.getWorkSheet('清单').cells('qsqx').editable = true;
        book.getWorkSheet('清单').cells('state').editable = true;
        
        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;
    }

}

//@comment (group=按钮,caption=凭证资料导入)
function cb_import_pz_onClick() {
    var p_gguid = currentGUID();

    back_get_pzdj_gguid(p_gguid, function(gguid){
        $.dialog({
            title: '凭证资料导入',
            boxWidth: '1000px',
            useBootstrap: false,
            content: `<iframe  style="width:100%;height:400px; border:0" src="billedit?id=pzdj${gguid?`&action=edit&gguid=${gguid}`:'&action=new'}&from_id=${p_gguid}"></iframe>`
        });
    })

    // let dlg= floatDialog( "凭证资料导入" ,"billlist" , "pzdj" , 1000,500, {} , "listToolbarVisible=true&editToolbarVisible=true&from_id="+currentGUID()  , function(val){alert(val);});
}


//@comment (group=按钮,caption=添加凭证号)
function cb_add_pz_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');

    sheet.cells('ny').setValue('');
    sheet.cells('pzh1').setValue('');
    sheet.cells('pzh2').setValue('');

    sheet.float('fa fa-cog', "添加凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 900, height: 400 });

}

//@comment (group=添加凭证号按钮,caption=取消)
function cb_cancel_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();
}

//@comment (group=添加凭证号按钮,caption=确认)
function cb_comfirn_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh1: sheet.cells('pzh1').getValue(),
        pzh2: sheet.cells('pzh2').getValue(),
    }

    if (data.pzh2 <= data.pzh1) {
        toastr.error('终止凭证号要比起始凭证号大');
        return false;
    }

    toastr.show("正在计算...");
    setTimeout(function () {
        back_add_pzh(data, function () {
            toastr.hide();
            toastr.info("导入完成");
            // $pz_yjd_ds.smartRetrieve();
            $pz_yjdex_ds.smartRetrieve();
            $pz_yjd_pzh_ds.smartRetrieve();
            $q_pz_yjd_pzh_ds.smartRetrieve();
        });
    }, 100);
}

function cb_import_onClick() {

    var sheet = book.getWorkSheet('导入凭证号');

    sheet.cells('ny').setValue('');
    sheet.cells('pzh').setValue('');

    sheet.float('fa fa-cog', "导入凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 500, height: 400 });


    // inputBox("提示", "请将凭证号粘贴在此", "", "", function (val) {
    //     toastr.show("正在计算...");
    //     setTimeout(function () {
    //         back_import_pzh(val, function () {
    //             toastr.hide();
    //             toastr.info("导入完成");
    //             $pz_yjd_ds.smartRetrieve();
    //             $pz_yjdex_ds.smartRetrieve();
    //             $pz_yjd_pzh_ds.smartRetrieve();
    //             $q_pz_yjd_pzh_ds.smartRetrieve();
    //         });
    //     }, 100);
    // }, false, {}, 10);
}


//@comment (group=导入凭证号按钮,caption=取消)
function cb_cancel2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();
}

//@comment (group=导入凭证号按钮,caption=确认)
function cb_comfirn2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh: sheet.cells('pzh').getValue(),
    }


    toastr.show("正在计算...");
    setTimeout(function () {
        back_import_pzh_data(data, function () {
            toastr.hide();
            toastr.info("导入完成");
            // $pz_yjd_ds.smartRetrieve();
            $pz_yjdex_ds.smartRetrieve();
            $pz_yjd_pzh_ds.smartRetrieve();
            $q_pz_yjd_pzh_ds.smartRetrieve();
        });
    }, 100);
}


function cb_buildsum_onClick() {
    $confirm("提示", "确信要根据凭证号清单生成凭证号汇总信息吗?", function () {
        toastr.show("正在计算...");
        setTimeout(function () {
            back_build_sum(function () {
                toastr.hide();
                toastr.info("导入完成");
                $pz_yjd_ds.smartRetrieve();
                $pz_yjdex_ds.smartRetrieve();
                $pz_yjd_pzh_ds.smartRetrieve();
                $q_pz_yjd_pzh_ds.smartRetrieve();

            });
        }, 100);

    });

}


/**
 * 单元格因为被编辑而改变。当用户通过编辑单元的值而让单元格发生值改变时本事件被触发。
 * 注意，当使用脚本 sheet.cells(row,col).setValue ( value) 来改变单元格的值时，本事件并不触发
 * @param sheet
 * @param cell
 * @param newValue
 * @param innerRow   当单元格没有绑定数据库或绑定到单行数据库时，本参数无意义。如果绑定一个
 * 多行数据库，则表示该单元所绑定的字段的第 innerRow行发生变化
 */
function cellValueChangedByEdit(sheet, cell, newValue, innerRow) {

    //通过别名来判断
    if (cell.alias == 'XXX') {

    }

    //通过数据库绑定情况来判断
    let bind= cell.bind;
    if( bind!=null &&  bind.dataSource=='q_pz_yjd_pzh' && bind.DBCol=='qsqx'){
        var qsqx = $pz_yjd_ds.getValue(0, 'qsqx');
        if(qsqx < newValue){
            $pz_yjd_ds.setValue(0, 'qsqx', newValue);
        }


    }


}


id: 66bb1539993294a6b34859ac
scriptid: 669dc60c9932df22f60cad57
tablename: app_template
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 16:25:34.000
script:
/**
 * 一个单据打开，
 * 1 先对类型为“表”的结果集做数据异步检索
 * 2 全部表检索完成之后，再执行 formOpen 事件
 * 3 再根据  actio 执行 newOpen/viewOpen/editOpen 之一
 * 4 再执行  afterOpen
 * 5 对类型为“结果集”的且需要自动检索的结果集，做异步检索
 * 6 异步检索完成后，最后执行  formOpenOver 事件
 */
//@comment (group=表单事件,caption=表单初始化全部完成之后)
function formOpenOver() {
    var data = $pz_yjd_ds.getJSON(0);
    // console.log(data)

    if(urlArgs.action=='view'){
        
        book.getWorkSheet('main').getBrick('cb_import_pz').visible = false;

        book.getWorkSheet('汇总').getBrick('cb_add_pz').visible = false;
        book.getWorkSheet('清单').getBrick('cb_import').visible = false;
        book.getWorkSheet('清单').getBrick('cb_buildsum').visible = false;

        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;


        book.getWorkSheet('清单').cells('qsqx').visible = false;
        book.getWorkSheet('清单').cells('qsqx').clickable = false;

        book.getWorkSheet('清单').cells('state').visible = false;
        book.getWorkSheet('清单').cells('state').clickable = false;
    }else{
        
        if(data.flow_instance_status.indexOf('接收方签收确认')>0){
            book.getWorkSheet('清单').cells('qsqx').editable = true;
            book.getWorkSheet('清单').cells('state').editable = true;
            
            book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
            book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;
        }else{
            book.getWorkSheet('清单').cells('c_db_deleterow').visible = true;
            book.getWorkSheet('清单').cells('c_db_deleterow').clickable = true;
        }

    }

}

//@comment (group=按钮,caption=凭证资料导入)
function cb_import_pz_onClick() {
    var p_gguid = currentGUID();

    back_get_pzdj_gguid(p_gguid, function(gguid){
        $.dialog({
            title: '凭证资料导入',
            boxWidth: '1000px',
            useBootstrap: false,
            content: `<iframe  style="width:100%;height:400px; border:0" src="billedit?id=pzdj${gguid?`&action=edit&gguid=${gguid}`:'&action=new'}&from_id=${p_gguid}"></iframe>`
        });
    })

    // let dlg= floatDialog( "凭证资料导入" ,"billlist" , "pzdj" , 1000,500, {} , "listToolbarVisible=true&editToolbarVisible=true&from_id="+currentGUID()  , function(val){alert(val);});
}


//@comment (group=按钮,caption=添加凭证号)
function cb_add_pz_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');

    sheet.cells('ny').setValue('');
    sheet.cells('pzh1').setValue('');
    sheet.cells('pzh2').setValue('');

    sheet.float('fa fa-cog', "添加凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 900, height: 400 });

}

//@comment (group=添加凭证号按钮,caption=取消)
function cb_cancel_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();
}

//@comment (group=添加凭证号按钮,caption=确认)
function cb_comfirn_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh1: sheet.cells('pzh1').getValue(),
        pzh2: sheet.cells('pzh2').getValue(),
    }

    if (data.pzh2 <= data.pzh1) {
        toastr.error('终止凭证号要比起始凭证号大');
        return false;
    }

    toastr.show("正在计算...");
    setTimeout(function () {
        back_add_pzh(data, function () {
            toastr.hide();
            toastr.info("导入完成");
            // $pz_yjd_ds.smartRetrieve();
            $pz_yjdex_ds.smartRetrieve();
            $pz_yjd_pzh_ds.smartRetrieve();
            $q_pz_yjd_pzh_ds.smartRetrieve();
        });
    }, 100);
}

function cb_import_onClick() {

    var sheet = book.getWorkSheet('导入凭证号');

    sheet.cells('ny').setValue('');
    sheet.cells('pzh').setValue('');

    sheet.float('fa fa-cog', "导入凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 500, height: 400 });


    // inputBox("提示", "请将凭证号粘贴在此", "", "", function (val) {
    //     toastr.show("正在计算...");
    //     setTimeout(function () {
    //         back_import_pzh(val, function () {
    //             toastr.hide();
    //             toastr.info("导入完成");
    //             $pz_yjd_ds.smartRetrieve();
    //             $pz_yjdex_ds.smartRetrieve();
    //             $pz_yjd_pzh_ds.smartRetrieve();
    //             $q_pz_yjd_pzh_ds.smartRetrieve();
    //         });
    //     }, 100);
    // }, false, {}, 10);
}


//@comment (group=导入凭证号按钮,caption=取消)
function cb_cancel2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();
}

//@comment (group=导入凭证号按钮,caption=确认)
function cb_comfirn2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh: sheet.cells('pzh').getValue(),
    }


    toastr.show("正在计算...");
    setTimeout(function () {
        back_import_pzh_data(data, function () {
            toastr.hide();
            toastr.info("导入完成");
            // $pz_yjd_ds.smartRetrieve();
            $pz_yjdex_ds.smartRetrieve();
            $pz_yjd_pzh_ds.smartRetrieve();
            $q_pz_yjd_pzh_ds.smartRetrieve();
        });
    }, 100);
}


function cb_buildsum_onClick() {
    $confirm("提示", "确信要根据凭证号清单生成凭证号汇总信息吗?", function () {
        toastr.show("正在计算...");
        setTimeout(function () {
            back_build_sum(function () {
                toastr.hide();
                toastr.info("导入完成");
                $pz_yjd_ds.smartRetrieve();
                $pz_yjdex_ds.smartRetrieve();
                $pz_yjd_pzh_ds.smartRetrieve();
                $q_pz_yjd_pzh_ds.smartRetrieve();

            });
        }, 100);

    });

}


/**
 * 单元格因为被编辑而改变。当用户通过编辑单元的值而让单元格发生值改变时本事件被触发。
 * 注意，当使用脚本 sheet.cells(row,col).setValue ( value) 来改变单元格的值时，本事件并不触发
 * @param sheet
 * @param cell
 * @param newValue
 * @param innerRow   当单元格没有绑定数据库或绑定到单行数据库时，本参数无意义。如果绑定一个
 * 多行数据库，则表示该单元所绑定的字段的第 innerRow行发生变化
 */
function cellValueChangedByEdit(sheet, cell, newValue, innerRow) {

    //通过别名来判断
    if (cell.alias == 'XXX') {

    }

    //通过数据库绑定情况来判断
    let bind= cell.bind;
    if( bind!=null &&  bind.dataSource=='q_pz_yjd_pzh' && bind.DBCol=='qsqx'){
        var qsqx = $pz_yjd_ds.getValue(0, 'qsqx');
        if(qsqx < newValue){
            $pz_yjd_ds.setValue(0, 'qsqx', newValue);
        }


    }


}


id: 66bb188f993294a6b34859b3
scriptid: 662a47879932b5035f32efb0
tablename: app_template
clientip: 122.234.136.22
username: sa
createdate: 2024.08.13 16:25:51.000
script:
/**
 * 一个单据打开，
 * 1 先对类型为“表”的结果集做数据异步检索
 * 2 全部表检索完成之后，再执行 formOpen 事件
 * 3 再根据  actio 执行 newOpen/viewOpen/editOpen 之一
 * 4 再执行  afterOpen
 * 5 对类型为“结果集”的且需要自动检索的结果集，做异步检索
 * 6 异步检索完成后，最后执行  formOpenOver 事件
 */
//@comment (group=表单事件,caption=表单初始化全部完成之后)
function formOpenOver() {
    var data = $pz_yjd_ds.getJSON(0);
    // console.log(data)

    if(urlArgs.action=='view'){
        book.getWorkSheet('汇总').getBrick('cb_add_pz').visible = false;
        book.getWorkSheet('清单').getBrick('cb_import').visible = false;
        book.getWorkSheet('清单').getBrick('cb_buildsum').visible = false;

        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;


        book.getWorkSheet('清单').cells('qsqx').visible = false;
        book.getWorkSheet('清单').cells('qsqx').clickable = false;

        book.getWorkSheet('清单').cells('state').visible = false;
        book.getWorkSheet('清单').cells('state').clickable = false;
    }else{
        
        if(data.flow_instance_status.indexOf('接收方签收确认')>0){
            book.getWorkSheet('清单').cells('qsqx').editable = true;
            book.getWorkSheet('清单').cells('state').editable = true;
            
            book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
            book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;
        }else{
            book.getWorkSheet('清单').cells('c_db_deleterow').visible = true;
            book.getWorkSheet('清单').cells('c_db_deleterow').clickable = true;
        }

    }

}


//@comment (group=按钮,caption=添加凭证号)
function cb_add_pz_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');

    sheet.cells('ny').setValue('');
    sheet.cells('pzh1').setValue('');
    sheet.cells('pzh2').setValue('');

    sheet.float('fa fa-cog', "添加凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 900, height: 400 });

}

//@comment (group=添加凭证号按钮,caption=取消)
function cb_cancel_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();
}

//@comment (group=添加凭证号按钮,caption=确认)
function cb_comfirn_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh1: sheet.cells('pzh1').getValue(),
        pzh2: sheet.cells('pzh2').getValue(),
    }

    if (data.pzh2 <= data.pzh1) {
        toastr.error('终止凭证号要比起始凭证号大');
        return false;
    }

    toastr.show("正在计算...");
    setTimeout(function () {
        back_add_pzh(data, function () {
            toastr.hide();
            toastr.info("导入完成");
            // $pz_yjd_ds.smartRetrieve();
            $pz_yjdex_ds.smartRetrieve();
            $pz_yjd_pzh_ds.smartRetrieve();
            $q_pz_yjd_pzh_ds.smartRetrieve();
        });
    }, 100);
}

function cb_import_onClick() {

    var sheet = book.getWorkSheet('导入凭证号');

    sheet.cells('ny').setValue('');
    sheet.cells('pzh').setValue('');

    sheet.float('fa fa-cog', "导入凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 500, height: 400 });


    // inputBox("提示", "请将凭证号粘贴在此", "", "", function (val) {
    //     toastr.show("正在计算...");
    //     setTimeout(function () {
    //         back_import_pzh(val, function () {
    //             toastr.hide();
    //             toastr.info("导入完成");
    //             $pz_yjd_ds.smartRetrieve();
    //             $pz_yjdex_ds.smartRetrieve();
    //             $pz_yjd_pzh_ds.smartRetrieve();
    //             $q_pz_yjd_pzh_ds.smartRetrieve();
    //         });
    //     }, 100);
    // }, false, {}, 10);
}


//@comment (group=导入凭证号按钮,caption=取消)
function cb_cancel2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();
}

//@comment (group=导入凭证号按钮,caption=确认)
function cb_comfirn2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh: sheet.cells('pzh').getValue(),
    }


    toastr.show("正在计算...");
    setTimeout(function () {
        back_import_pzh_data(data, function () {
            toastr.hide();
            toastr.info("导入完成");
            // $pz_yjd_ds.smartRetrieve();
            $pz_yjdex_ds.smartRetrieve();
            $pz_yjd_pzh_ds.smartRetrieve();
            $q_pz_yjd_pzh_ds.smartRetrieve();
        });
    }, 100);
}


function cb_buildsum_onClick() {
    form.save(false, function () {
        $confirm("提示", "确信要根据凭证号清单生成凭证号汇总信息吗?", function () {
            toastr.show("正在计算...");
            setTimeout(function () {
                back_build_sum(function () {
                    toastr.hide();
                    toastr.info("导入完成");
                    $pz_yjd_ds.smartRetrieve();
                    $pz_yjdex_ds.smartRetrieve();
                    $pz_yjd_pzh_ds.smartRetrieve();
                    $q_pz_yjd_pzh_ds.smartRetrieve();

                });
            }, 100);

        });
    });

}

/**
 * 单元格因为被编辑而改变。当用户通过编辑单元的值而让单元格发生值改变时本事件被触发。
 * 注意，当使用脚本 sheet.cells(row,col).setValue ( value) 来改变单元格的值时，本事件并不触发
 * @param sheet
 * @param cell
 * @param newValue
 * @param innerRow   当单元格没有绑定数据库或绑定到单行数据库时，本参数无意义。如果绑定一个
 * 多行数据库，则表示该单元所绑定的字段的第 innerRow行发生变化
 */
function cellValueChangedByEdit(sheet, cell, newValue, innerRow) {

    //通过别名来判断
    if (cell.alias == 'XXX') {

    }

    //通过数据库绑定情况来判断
    let bind= cell.bind;
    if( bind!=null &&  bind.dataSource=='q_pz_yjd_pzh' && bind.DBCol=='qsqx'){
        var qsqx = $pz_yjd_ds.getValue(0, 'qsqx');
        if(qsqx < newValue){
            $pz_yjd_ds.setValue(0, 'qsqx', newValue);
        }


    }


}


id: 66bb6217993294a6b3485b3d
scriptid: 669dc60c9932df22f60cad57
tablename: app_template
clientip: 122.234.136.22
username: sa
createdate: 2024.08.14 09:58:10.000
script:
/**
 * 一个单据打开，
 * 1 先对类型为“表”的结果集做数据异步检索
 * 2 全部表检索完成之后，再执行 formOpen 事件
 * 3 再根据  actio 执行 newOpen/viewOpen/editOpen 之一
 * 4 再执行  afterOpen
 * 5 对类型为“结果集”的且需要自动检索的结果集，做异步检索
 * 6 异步检索完成后，最后执行  formOpenOver 事件
 */
//@comment (group=表单事件,caption=表单初始化全部完成之后)
function formOpenOver() {
    var data = $pz_yjd_ds.getJSON(0);
    // console.log(data)

    if(urlArgs.action=='view'){
        
        book.getWorkSheet('main').getBrick('cb_import_pz').visible = false;

        book.getWorkSheet('汇总').getBrick('cb_add_pz').visible = false;
        book.getWorkSheet('清单').getBrick('cb_import').visible = false;
        book.getWorkSheet('清单').getBrick('cb_buildsum').visible = false;

        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;


        book.getWorkSheet('清单').cells('qsqx').visible = false;
        book.getWorkSheet('清单').cells('qsqx').clickable = false;

        book.getWorkSheet('清单').cells('state').visible = false;
        book.getWorkSheet('清单').cells('state').clickable = false;
    }else{
        
        if(data.flow_instance_status.indexOf('接收方签收确认')>0){
            book.getWorkSheet('清单').cells('qsqx').editable = true;
            book.getWorkSheet('清单').cells('state').editable = true;
            
            book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
            book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;
        }else if(data.flow_instance_status.indexOf('结束')>0){
            book.getWorkSheet('清单').cells('qsqx').visible = true;
            book.getWorkSheet('清单').cells('state').visible = true;
        }else{
            book.getWorkSheet('清单').cells('c_db_deleterow').visible = true;
            book.getWorkSheet('清单').cells('c_db_deleterow').clickable = true;
        }

    }

}

//@comment (group=按钮,caption=凭证资料导入)
function cb_import_pz_onClick() {
    var p_gguid = currentGUID();

    back_get_pzdj_gguid(p_gguid, function(gguid){
        $.dialog({
            title: '凭证资料导入',
            boxWidth: '1000px',
            useBootstrap: false,
            content: `<iframe  style="width:100%;height:400px; border:0" src="billedit?id=pzdj${gguid?`&action=edit&gguid=${gguid}`:'&action=new'}&from_id=${p_gguid}"></iframe>`
        });
    })

    // let dlg= floatDialog( "凭证资料导入" ,"billlist" , "pzdj" , 1000,500, {} , "listToolbarVisible=true&editToolbarVisible=true&from_id="+currentGUID()  , function(val){alert(val);});
}


//@comment (group=按钮,caption=添加凭证号)
function cb_add_pz_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');

    sheet.cells('ny').setValue('');
    sheet.cells('pzh1').setValue('');
    sheet.cells('pzh2').setValue('');

    sheet.float('fa fa-cog', "添加凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 900, height: 400 });

}

//@comment (group=添加凭证号按钮,caption=取消)
function cb_cancel_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();
}

//@comment (group=添加凭证号按钮,caption=确认)
function cb_comfirn_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh1: sheet.cells('pzh1').getValue(),
        pzh2: sheet.cells('pzh2').getValue(),
    }

    if (data.pzh2 <= data.pzh1) {
        toastr.error('终止凭证号要比起始凭证号大');
        return false;
    }

    toastr.show("正在计算...");
    setTimeout(function () {
        back_add_pzh(data, function () {
            toastr.hide();
            toastr.info("导入完成");
            // $pz_yjd_ds.smartRetrieve();
            $pz_yjdex_ds.smartRetrieve();
            $pz_yjd_pzh_ds.smartRetrieve();
            $q_pz_yjd_pzh_ds.smartRetrieve();
        });
    }, 100);
}

function cb_import_onClick() {

    var sheet = book.getWorkSheet('导入凭证号');

    sheet.cells('ny').setValue('');
    sheet.cells('pzh').setValue('');

    sheet.float('fa fa-cog', "导入凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 500, height: 400 });


    // inputBox("提示", "请将凭证号粘贴在此", "", "", function (val) {
    //     toastr.show("正在计算...");
    //     setTimeout(function () {
    //         back_import_pzh(val, function () {
    //             toastr.hide();
    //             toastr.info("导入完成");
    //             $pz_yjd_ds.smartRetrieve();
    //             $pz_yjdex_ds.smartRetrieve();
    //             $pz_yjd_pzh_ds.smartRetrieve();
    //             $q_pz_yjd_pzh_ds.smartRetrieve();
    //         });
    //     }, 100);
    // }, false, {}, 10);
}


//@comment (group=导入凭证号按钮,caption=取消)
function cb_cancel2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();
}

//@comment (group=导入凭证号按钮,caption=确认)
function cb_comfirn2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh: sheet.cells('pzh').getValue(),
    }


    toastr.show("正在计算...");
    setTimeout(function () {
        back_import_pzh_data(data, function () {
            toastr.hide();
            toastr.info("导入完成");
            // $pz_yjd_ds.smartRetrieve();
            $pz_yjdex_ds.smartRetrieve();
            $pz_yjd_pzh_ds.smartRetrieve();
            $q_pz_yjd_pzh_ds.smartRetrieve();
        });
    }, 100);
}


function cb_buildsum_onClick() {
    $confirm("提示", "确信要根据凭证号清单生成凭证号汇总信息吗?", function () {
        toastr.show("正在计算...");
        setTimeout(function () {
            back_build_sum(function () {
                toastr.hide();
                toastr.info("导入完成");
                $pz_yjd_ds.smartRetrieve();
                $pz_yjdex_ds.smartRetrieve();
                $pz_yjd_pzh_ds.smartRetrieve();
                $q_pz_yjd_pzh_ds.smartRetrieve();

            });
        }, 100);

    });

}


/**
 * 单元格因为被编辑而改变。当用户通过编辑单元的值而让单元格发生值改变时本事件被触发。
 * 注意，当使用脚本 sheet.cells(row,col).setValue ( value) 来改变单元格的值时，本事件并不触发
 * @param sheet
 * @param cell
 * @param newValue
 * @param innerRow   当单元格没有绑定数据库或绑定到单行数据库时，本参数无意义。如果绑定一个
 * 多行数据库，则表示该单元所绑定的字段的第 innerRow行发生变化
 */
function cellValueChangedByEdit(sheet, cell, newValue, innerRow) {

    //通过别名来判断
    if (cell.alias == 'XXX') {

    }

    //通过数据库绑定情况来判断
    let bind= cell.bind;
    if( bind!=null &&  bind.dataSource=='q_pz_yjd_pzh' && bind.DBCol=='qsqx'){
        var qsqx = $pz_yjd_ds.getValue(0, 'qsqx');
        if(qsqx < newValue){
            $pz_yjd_ds.setValue(0, 'qsqx', newValue);
        }


    }


}


id: 66bb6217993294a6b3485b41
scriptid: 669dc60c9932df22f60cad57
tablename: app_template
clientip: 122.234.136.22
username: sa
createdate: 2024.08.14 09:58:26.000
script:
/**
 * 一个单据打开，
 * 1 先对类型为“表”的结果集做数据异步检索
 * 2 全部表检索完成之后，再执行 formOpen 事件
 * 3 再根据  actio 执行 newOpen/viewOpen/editOpen 之一
 * 4 再执行  afterOpen
 * 5 对类型为“结果集”的且需要自动检索的结果集，做异步检索
 * 6 异步检索完成后，最后执行  formOpenOver 事件
 */
//@comment (group=表单事件,caption=表单初始化全部完成之后)
function formOpenOver() {
    var data = $pz_yjd_ds.getJSON(0);
    // console.log(data)

    if(urlArgs.action=='view'){
        
        book.getWorkSheet('main').getBrick('cb_import_pz').visible = false;

        book.getWorkSheet('汇总').getBrick('cb_add_pz').visible = false;
        book.getWorkSheet('清单').getBrick('cb_import').visible = false;
        book.getWorkSheet('清单').getBrick('cb_buildsum').visible = false;

        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;


        book.getWorkSheet('清单').cells('qsqx').visible = false;
        book.getWorkSheet('清单').cells('qsqx').clickable = false;

        book.getWorkSheet('清单').cells('state').visible = false;
        book.getWorkSheet('清单').cells('state').clickable = false;

        if(data.flow_instance_status.indexOf('结束')>0){
            book.getWorkSheet('清单').cells('qsqx').visible = true;
            book.getWorkSheet('清单').cells('state').visible = true;
        }

    }else{
        
        if(data.flow_instance_status.indexOf('接收方签收确认')>0){
            book.getWorkSheet('清单').cells('qsqx').editable = true;
            book.getWorkSheet('清单').cells('state').editable = true;
            
            book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
            book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;
        } else{
            book.getWorkSheet('清单').cells('c_db_deleterow').visible = true;
            book.getWorkSheet('清单').cells('c_db_deleterow').clickable = true;
        }

    }

}

//@comment (group=按钮,caption=凭证资料导入)
function cb_import_pz_onClick() {
    var p_gguid = currentGUID();

    back_get_pzdj_gguid(p_gguid, function(gguid){
        $.dialog({
            title: '凭证资料导入',
            boxWidth: '1000px',
            useBootstrap: false,
            content: `<iframe  style="width:100%;height:400px; border:0" src="billedit?id=pzdj${gguid?`&action=edit&gguid=${gguid}`:'&action=new'}&from_id=${p_gguid}"></iframe>`
        });
    })

    // let dlg= floatDialog( "凭证资料导入" ,"billlist" , "pzdj" , 1000,500, {} , "listToolbarVisible=true&editToolbarVisible=true&from_id="+currentGUID()  , function(val){alert(val);});
}


//@comment (group=按钮,caption=添加凭证号)
function cb_add_pz_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');

    sheet.cells('ny').setValue('');
    sheet.cells('pzh1').setValue('');
    sheet.cells('pzh2').setValue('');

    sheet.float('fa fa-cog', "添加凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 900, height: 400 });

}

//@comment (group=添加凭证号按钮,caption=取消)
function cb_cancel_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();
}

//@comment (group=添加凭证号按钮,caption=确认)
function cb_comfirn_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh1: sheet.cells('pzh1').getValue(),
        pzh2: sheet.cells('pzh2').getValue(),
    }

    if (data.pzh2 <= data.pzh1) {
        toastr.error('终止凭证号要比起始凭证号大');
        return false;
    }

    toastr.show("正在计算...");
    setTimeout(function () {
        back_add_pzh(data, function () {
            toastr.hide();
            toastr.info("导入完成");
            // $pz_yjd_ds.smartRetrieve();
            $pz_yjdex_ds.smartRetrieve();
            $pz_yjd_pzh_ds.smartRetrieve();
            $q_pz_yjd_pzh_ds.smartRetrieve();
        });
    }, 100);
}

function cb_import_onClick() {

    var sheet = book.getWorkSheet('导入凭证号');

    sheet.cells('ny').setValue('');
    sheet.cells('pzh').setValue('');

    sheet.float('fa fa-cog', "导入凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 500, height: 400 });


    // inputBox("提示", "请将凭证号粘贴在此", "", "", function (val) {
    //     toastr.show("正在计算...");
    //     setTimeout(function () {
    //         back_import_pzh(val, function () {
    //             toastr.hide();
    //             toastr.info("导入完成");
    //             $pz_yjd_ds.smartRetrieve();
    //             $pz_yjdex_ds.smartRetrieve();
    //             $pz_yjd_pzh_ds.smartRetrieve();
    //             $q_pz_yjd_pzh_ds.smartRetrieve();
    //         });
    //     }, 100);
    // }, false, {}, 10);
}


//@comment (group=导入凭证号按钮,caption=取消)
function cb_cancel2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();
}

//@comment (group=导入凭证号按钮,caption=确认)
function cb_comfirn2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh: sheet.cells('pzh').getValue(),
    }


    toastr.show("正在计算...");
    setTimeout(function () {
        back_import_pzh_data(data, function () {
            toastr.hide();
            toastr.info("导入完成");
            // $pz_yjd_ds.smartRetrieve();
            $pz_yjdex_ds.smartRetrieve();
            $pz_yjd_pzh_ds.smartRetrieve();
            $q_pz_yjd_pzh_ds.smartRetrieve();
        });
    }, 100);
}


function cb_buildsum_onClick() {
    $confirm("提示", "确信要根据凭证号清单生成凭证号汇总信息吗?", function () {
        toastr.show("正在计算...");
        setTimeout(function () {
            back_build_sum(function () {
                toastr.hide();
                toastr.info("导入完成");
                $pz_yjd_ds.smartRetrieve();
                $pz_yjdex_ds.smartRetrieve();
                $pz_yjd_pzh_ds.smartRetrieve();
                $q_pz_yjd_pzh_ds.smartRetrieve();

            });
        }, 100);

    });

}


/**
 * 单元格因为被编辑而改变。当用户通过编辑单元的值而让单元格发生值改变时本事件被触发。
 * 注意，当使用脚本 sheet.cells(row,col).setValue ( value) 来改变单元格的值时，本事件并不触发
 * @param sheet
 * @param cell
 * @param newValue
 * @param innerRow   当单元格没有绑定数据库或绑定到单行数据库时，本参数无意义。如果绑定一个
 * 多行数据库，则表示该单元所绑定的字段的第 innerRow行发生变化
 */
function cellValueChangedByEdit(sheet, cell, newValue, innerRow) {

    //通过别名来判断
    if (cell.alias == 'XXX') {

    }

    //通过数据库绑定情况来判断
    let bind= cell.bind;
    if( bind!=null &&  bind.dataSource=='q_pz_yjd_pzh' && bind.DBCol=='qsqx'){
        var qsqx = $pz_yjd_ds.getValue(0, 'qsqx');
        if(qsqx < newValue){
            $pz_yjd_ds.setValue(0, 'qsqx', newValue);
        }


    }


}


id: 66bc0f82993294a6b3485b4c
scriptid: 662a47879932b5035f32efb0
tablename: app_template
clientip: 122.234.136.22
username: sa
createdate: 2024.08.14 10:00:00.000
script:
/**
 * 一个单据打开，
 * 1 先对类型为“表”的结果集做数据异步检索
 * 2 全部表检索完成之后，再执行 formOpen 事件
 * 3 再根据  actio 执行 newOpen/viewOpen/editOpen 之一
 * 4 再执行  afterOpen
 * 5 对类型为“结果集”的且需要自动检索的结果集，做异步检索
 * 6 异步检索完成后，最后执行  formOpenOver 事件
 */
//@comment (group=表单事件,caption=表单初始化全部完成之后)
function formOpenOver() {
    var data = $pz_yjd_ds.getJSON(0);
    // console.log(data)

    if(urlArgs.action=='view'){
        book.getWorkSheet('汇总').getBrick('cb_add_pz').visible = false;
        book.getWorkSheet('清单').getBrick('cb_import').visible = false;
        book.getWorkSheet('清单').getBrick('cb_buildsum').visible = false;

        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;


        book.getWorkSheet('清单').cells('qsqx').visible = false;
        book.getWorkSheet('清单').cells('qsqx').clickable = false;

        book.getWorkSheet('清单').cells('state').visible = false;
        book.getWorkSheet('清单').cells('state').clickable = false;

        if(data.flow_instance_status.indexOf('结束')>0){
            book.getWorkSheet('清单').cells('qsqx').visible = true;
            book.getWorkSheet('清单').cells('state').visible = true;
        }

    }else{
        
        if(data.flow_instance_status.indexOf('接收方签收确认')>0){
            book.getWorkSheet('清单').cells('qsqx').editable = true;
            book.getWorkSheet('清单').cells('state').editable = true;
            
            book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
            book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;
        }else{
            book.getWorkSheet('清单').cells('c_db_deleterow').visible = true;
            book.getWorkSheet('清单').cells('c_db_deleterow').clickable = true;
        }

    }

}


//@comment (group=按钮,caption=添加凭证号)
function cb_add_pz_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');

    sheet.cells('ny').setValue('');
    sheet.cells('pzh1').setValue('');
    sheet.cells('pzh2').setValue('');

    sheet.float('fa fa-cog', "添加凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 900, height: 400 });

}

//@comment (group=添加凭证号按钮,caption=取消)
function cb_cancel_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();
}

//@comment (group=添加凭证号按钮,caption=确认)
function cb_comfirn_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh1: sheet.cells('pzh1').getValue(),
        pzh2: sheet.cells('pzh2').getValue(),
    }

    if (data.pzh2 <= data.pzh1) {
        toastr.error('终止凭证号要比起始凭证号大');
        return false;
    }

    toastr.show("正在计算...");
    setTimeout(function () {
        back_add_pzh(data, function () {
            toastr.hide();
            toastr.info("导入完成");
            // $pz_yjd_ds.smartRetrieve();
            $pz_yjdex_ds.smartRetrieve();
            $pz_yjd_pzh_ds.smartRetrieve();
            $q_pz_yjd_pzh_ds.smartRetrieve();
        });
    }, 100);
}

function cb_import_onClick() {

    var sheet = book.getWorkSheet('导入凭证号');

    sheet.cells('ny').setValue('');
    sheet.cells('pzh').setValue('');

    sheet.float('fa fa-cog', "导入凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 500, height: 400 });


    // inputBox("提示", "请将凭证号粘贴在此", "", "", function (val) {
    //     toastr.show("正在计算...");
    //     setTimeout(function () {
    //         back_import_pzh(val, function () {
    //             toastr.hide();
    //             toastr.info("导入完成");
    //             $pz_yjd_ds.smartRetrieve();
    //             $pz_yjdex_ds.smartRetrieve();
    //             $pz_yjd_pzh_ds.smartRetrieve();
    //             $q_pz_yjd_pzh_ds.smartRetrieve();
    //         });
    //     }, 100);
    // }, false, {}, 10);
}


//@comment (group=导入凭证号按钮,caption=取消)
function cb_cancel2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();
}

//@comment (group=导入凭证号按钮,caption=确认)
function cb_comfirn2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh: sheet.cells('pzh').getValue(),
    }


    toastr.show("正在计算...");
    setTimeout(function () {
        back_import_pzh_data(data, function () {
            toastr.hide();
            toastr.info("导入完成");
            // $pz_yjd_ds.smartRetrieve();
            $pz_yjdex_ds.smartRetrieve();
            $pz_yjd_pzh_ds.smartRetrieve();
            $q_pz_yjd_pzh_ds.smartRetrieve();
        });
    }, 100);
}


function cb_buildsum_onClick() {
    form.save(false, function () {
        $confirm("提示", "确信要根据凭证号清单生成凭证号汇总信息吗?", function () {
            toastr.show("正在计算...");
            setTimeout(function () {
                back_build_sum(function () {
                    toastr.hide();
                    toastr.info("导入完成");
                    $pz_yjd_ds.smartRetrieve();
                    $pz_yjdex_ds.smartRetrieve();
                    $pz_yjd_pzh_ds.smartRetrieve();
                    $q_pz_yjd_pzh_ds.smartRetrieve();

                });
            }, 100);

        });
    });

}

/**
 * 单元格因为被编辑而改变。当用户通过编辑单元的值而让单元格发生值改变时本事件被触发。
 * 注意，当使用脚本 sheet.cells(row,col).setValue ( value) 来改变单元格的值时，本事件并不触发
 * @param sheet
 * @param cell
 * @param newValue
 * @param innerRow   当单元格没有绑定数据库或绑定到单行数据库时，本参数无意义。如果绑定一个
 * 多行数据库，则表示该单元所绑定的字段的第 innerRow行发生变化
 */
function cellValueChangedByEdit(sheet, cell, newValue, innerRow) {

    //通过别名来判断
    if (cell.alias == 'XXX') {

    }

    //通过数据库绑定情况来判断
    let bind= cell.bind;
    if( bind!=null &&  bind.dataSource=='q_pz_yjd_pzh' && bind.DBCol=='qsqx'){
        var qsqx = $pz_yjd_ds.getValue(0, 'qsqx');
        if(qsqx < newValue){
            $pz_yjd_ds.setValue(0, 'qsqx', newValue);
        }


    }


}


id: 66bc0f82993294a6b3485b51
scriptid: 669dc6249932df22f60cc8eb
tablename: app_template
clientip: 122.234.136.22
username: sa
createdate: 2024.08.14 10:00:04.000
script:
/**
 * 一个单据打开，
 * 1 先对类型为“表”的结果集做数据异步检索
 * 2 全部表检索完成之后，再执行 formOpen 事件
 * 3 再根据  actio 执行 newOpen/viewOpen/editOpen 之一
 * 4 再执行  afterOpen
 * 5 对类型为“结果集”的且需要自动检索的结果集，做异步检索
 * 6 异步检索完成后，最后执行  formOpenOver 事件
 */
//@comment (group=表单事件,caption=表单初始化全部完成之后)
function formOpenOver() {
    var data = $pz_yjd_ds.getJSON(0);
    // console.log(data)

    if(urlArgs.action=='view'){
        book.getWorkSheet('汇总').getBrick('cb_add_pz').visible = false;
        book.getWorkSheet('清单').getBrick('cb_import').visible = false;
        book.getWorkSheet('清单').getBrick('cb_buildsum').visible = false;

        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;


        book.getWorkSheet('清单').cells('qsqx').visible = false;
        book.getWorkSheet('清单').cells('qsqx').clickable = false;

        book.getWorkSheet('清单').cells('state').visible = false;
        book.getWorkSheet('清单').cells('state').clickable = false;

        if(data.flow_instance_status.indexOf('结束')>0){
            book.getWorkSheet('清单').cells('qsqx').visible = true;
            book.getWorkSheet('清单').cells('state').visible = true;
        }

    }else{

        if(data.flow_instance_status.indexOf('接收方签收确认')>0){
            book.getWorkSheet('清单').cells('qsqx').editable = true;
            book.getWorkSheet('清单').cells('state').editable = true;
            
            book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
            book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;
        }else{
            book.getWorkSheet('清单').cells('c_db_deleterow').visible = true;
            book.getWorkSheet('清单').cells('c_db_deleterow').clickable = true;
        }

    }


}

//@comment (group=按钮,caption=添加凭证号)
function cb_add_pz_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    
    sheet.cells('ny').setValue('');
    sheet.cells('pzh1').setValue('');
    sheet.cells('pzh2').setValue('');

    sheet.float('fa fa-cog', "添加凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 900, height: 400 });

}

//@comment (group=添加凭证号按钮,caption=取消)
function cb_cancel_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();
}

//@comment (group=添加凭证号按钮,caption=确认)
function cb_comfirn_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh1: sheet.cells('pzh1').getValue(),
        pzh2: sheet.cells('pzh2').getValue(),
    }
    
    if (data.pzh2 <= data.pzh1) {
        toastr.error( '终止凭证号要比起始凭证号大' );
        return false;
    }

    toastr.show("正在计算...");
        setTimeout(function () {
            back_add_pzh(data, function () {
                toastr.hide();
                toastr.info("导入完成");
                // $pz_yjd_ds.smartRetrieve();
                $pz_yjdex_ds.smartRetrieve();
                $pz_yjd_pzh_ds.smartRetrieve();
                $q_pz_yjd_pzh_ds.smartRetrieve();
            });
        }, 100);
}

function cb_import_onClick() {

    var sheet = book.getWorkSheet('导入凭证号');
    
    sheet.cells('ny').setValue('');
    sheet.cells('pzh').setValue('');

    sheet.float('fa fa-cog', "导入凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 500, height: 400 });


    // inputBox("提示", "请将凭证号粘贴在此", "", "", function (val) {
    //     toastr.show("正在计算...");
    //     setTimeout(function () {
    //         back_import_pzh(val, function () {
    //             toastr.hide();
    //             toastr.info("导入完成");
    //             $pz_yjd_ds.smartRetrieve();
    //             $pz_yjdex_ds.smartRetrieve();
    //             $pz_yjd_pzh_ds.smartRetrieve();
    //             $q_pz_yjd_pzh_ds.smartRetrieve();
    //         });
    //     }, 100);
    // }, false, {}, 10);
}


//@comment (group=导入凭证号按钮,caption=取消)
function cb_cancel2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();
}

//@comment (group=导入凭证号按钮,caption=确认)
function cb_comfirn2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh: sheet.cells('pzh').getValue(),
    }
    

    toastr.show("正在计算...");
        setTimeout(function () {
            back_import_pzh_data(data, function () {
                toastr.hide();
                toastr.info("导入完成");
                // $pz_yjd_ds.smartRetrieve();
                $pz_yjdex_ds.smartRetrieve();
                $pz_yjd_pzh_ds.smartRetrieve();
                $q_pz_yjd_pzh_ds.smartRetrieve();
            });
        }, 100);
}


function cb_buildsum_onClick() {
    $confirm("提示", "确信要根据凭证号清单生成凭证号汇总信息吗?", function () {
        toastr.show("正在计算...");
        setTimeout(function () {
            back_build_sum(function () {
                toastr.hide();
                toastr.info("导入完成");
                $pz_yjd_ds.smartRetrieve();
                $pz_yjdex_ds.smartRetrieve();
                $pz_yjd_pzh_ds.smartRetrieve();
                $q_pz_yjd_pzh_ds.smartRetrieve();

            });
        }, 100);

    });

}


/**
 * 单元格因为被编辑而改变。当用户通过编辑单元的值而让单元格发生值改变时本事件被触发。
 * 注意，当使用脚本 sheet.cells(row,col).setValue ( value) 来改变单元格的值时，本事件并不触发
 * @param sheet
 * @param cell
 * @param newValue
 * @param innerRow   当单元格没有绑定数据库或绑定到单行数据库时，本参数无意义。如果绑定一个
 * 多行数据库，则表示该单元所绑定的字段的第 innerRow行发生变化
 */
function cellValueChangedByEdit(sheet, cell, newValue, innerRow) {

    //通过别名来判断
    if (cell.alias == 'XXX') {

    }

    //通过数据库绑定情况来判断
    let bind= cell.bind;
    if( bind!=null &&  bind.dataSource=='q_pz_yjd_pzh' && bind.DBCol=='qsqx'){
        var qsqx = $pz_yjd_ds.getValue(0, 'qsqx');
        if(qsqx < newValue){
            $pz_yjd_ds.setValue(0, 'qsqx', newValue);
        }


    }


}


id: 66bc0f82993294a6b3485b56
scriptid: 669dc6399932df22f60ce47f
tablename: app_template
clientip: 122.234.136.22
username: sa
createdate: 2024.08.14 10:00:08.000
script:
/**
 * 一个单据打开，
 * 1 先对类型为“表”的结果集做数据异步检索
 * 2 全部表检索完成之后，再执行 formOpen 事件
 * 3 再根据  actio 执行 newOpen/viewOpen/editOpen 之一
 * 4 再执行  afterOpen
 * 5 对类型为“结果集”的且需要自动检索的结果集，做异步检索
 * 6 异步检索完成后，最后执行  formOpenOver 事件
 */
//@comment (group=表单事件,caption=表单初始化全部完成之后)
function formOpenOver() {
    var data = $pz_yjd_ds.getJSON(0);

    if(urlArgs.action=='view'){
        book.getWorkSheet('汇总').getBrick('cb_add_pz').visible = false;
        book.getWorkSheet('清单').getBrick('cb_import').visible = false;
        book.getWorkSheet('清单').getBrick('cb_buildsum').visible = false;

        book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
        book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;


        book.getWorkSheet('清单').cells('qsqx').visible = false;
        book.getWorkSheet('清单').cells('qsqx').clickable = false;

        book.getWorkSheet('清单').cells('state').visible = false;
        book.getWorkSheet('清单').cells('state').clickable = false;

        if(data.flow_instance_status.indexOf('结束')>0){
            book.getWorkSheet('清单').cells('qsqx').visible = true;
            book.getWorkSheet('清单').cells('state').visible = true;
        }

    }else{

        if(data.flow_instance_status.indexOf('接收方签收确认')>0){
            book.getWorkSheet('清单').cells('qsqx').editable = true;
            book.getWorkSheet('清单').cells('state').editable = true;
            
            book.getWorkSheet('清单').cells('c_db_deleterow').visible = false;
            book.getWorkSheet('清单').cells('c_db_deleterow').clickable = false;
        }else{
            book.getWorkSheet('清单').cells('c_db_deleterow').visible = true;
            book.getWorkSheet('清单').cells('c_db_deleterow').clickable = true;
        }
        
    }

}

//@comment (group=按钮,caption=添加凭证号)
function cb_add_pz_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    
    sheet.cells('ny').setValue('');
    sheet.cells('pzh1').setValue('');
    sheet.cells('pzh2').setValue('');

    sheet.float('fa fa-cog', "添加凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 900, height: 400 });

}

//@comment (group=添加凭证号按钮,caption=取消)
function cb_cancel_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();
}

//@comment (group=添加凭证号按钮,caption=确认)
function cb_comfirn_onClick() {
    var sheet = book.getWorkSheet('添加凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh1: sheet.cells('pzh1').getValue(),
        pzh2: sheet.cells('pzh2').getValue(),
    }
    
    if (data.pzh2 <= data.pzh1) {
        toastr.error( '终止凭证号要比起始凭证号大' );
        return false;
    }

    toastr.show("正在计算...");
        setTimeout(function () {
            back_add_pzh(data, function () {
                toastr.hide();
                toastr.info("导入完成");
                // $pz_yjd_ds.smartRetrieve();
                $pz_yjdex_ds.smartRetrieve();
                $pz_yjd_pzh_ds.smartRetrieve();
                $q_pz_yjd_pzh_ds.smartRetrieve();
            });
        }, 100);
}

function cb_import_onClick() {

    var sheet = book.getWorkSheet('导入凭证号');
    
    sheet.cells('ny').setValue('');
    sheet.cells('pzh').setValue('');

    sheet.float('fa fa-cog', "导入凭证号", {
        my: 'center',
        at: 'center',
        autoposition: 'down',
        offsetX: -5,
        offsetY: 5
    }, { width: 500, height: 400 });


    // inputBox("提示", "请将凭证号粘贴在此", "", "", function (val) {
    //     toastr.show("正在计算...");
    //     setTimeout(function () {
    //         back_import_pzh(val, function () {
    //             toastr.hide();
    //             toastr.info("导入完成");
    //             $pz_yjd_ds.smartRetrieve();
    //             $pz_yjdex_ds.smartRetrieve();
    //             $pz_yjd_pzh_ds.smartRetrieve();
    //             $q_pz_yjd_pzh_ds.smartRetrieve();
    //         });
    //     }, 100);
    // }, false, {}, 10);
}


//@comment (group=导入凭证号按钮,caption=取消)
function cb_cancel2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();
}

//@comment (group=导入凭证号按钮,caption=确认)
function cb_comfirn2_onClick() {
    var sheet = book.getWorkSheet('导入凭证号');
    sheet.floatPanelClose();

    var data = {
        ny: sheet.cells('ny').getValue(),
        pzh: sheet.cells('pzh').getValue(),
    }
    

    toastr.show("正在计算...");
        setTimeout(function () {
            back_import_pzh_data(data, function () {
                toastr.hide();
                toastr.info("导入完成");
                // $pz_yjd_ds.smartRetrieve();
                $pz_yjdex_ds.smartRetrieve();
                $pz_yjd_pzh_ds.smartRetrieve();
                $q_pz_yjd_pzh_ds.smartRetrieve();
            });
        }, 100);
}


function cb_buildsum_onClick() {
    $confirm("提示", "确信要根据凭证号清单生成凭证号汇总信息吗?", function () {
        toastr.show("正在计算...");
        setTimeout(function () {
            back_build_sum(function () {
                toastr.hide();
                toastr.info("导入完成");
                $pz_yjd_ds.smartRetrieve();
                $pz_yjdex_ds.smartRetrieve();
                $pz_yjd_pzh_ds.smartRetrieve();
                $q_pz_yjd_pzh_ds.smartRetrieve();

            });
        }, 100);

    });

}


/**
 * 单元格因为被编辑而改变。当用户通过编辑单元的值而让单元格发生值改变时本事件被触发。
 * 注意，当使用脚本 sheet.cells(row,col).setValue ( value) 来改变单元格的值时，本事件并不触发
 * @param sheet
 * @param cell
 * @param newValue
 * @param innerRow   当单元格没有绑定数据库或绑定到单行数据库时，本参数无意义。如果绑定一个
 * 多行数据库，则表示该单元所绑定的字段的第 innerRow行发生变化
 */
function cellValueChangedByEdit(sheet, cell, newValue, innerRow) {

    //通过别名来判断
    if (cell.alias == 'XXX') {

    }

    //通过数据库绑定情况来判断
    let bind= cell.bind;
    if( bind!=null &&  bind.dataSource=='q_pz_yjd_pzh' && bind.DBCol=='qsqx'){
        var qsqx = $pz_yjd_ds.getValue(0, 'qsqx');
        if(qsqx < newValue){
            $pz_yjd_ds.setValue(0, 'qsqx', newValue);
        }


    }


}


id: 66bc0f82993294a6b3485b60
scriptid: 662a47879932b5035f32efab
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.14 10:03:32.000
script:
function verifyGZL(gguid) {
    var count = getValueFromSQL2("", `select count(0) from pz_yjd_pzh where gguid='${gguid}' and qsqx is not null and qsqx>0`);
    println('verifyGZL count  ' + count)

    return count > 0 ? '有凭证式延迟确认，不能提交结束工作流！' : ''
}



/**
 * 工作结束
 * @param flow 流程定义
 * @param node 开始节点
 * @param gguid 单据的gguid

 */
//@comment (group=工作流事件,caption=工作结束)
function onWorkFlowEnd(flow, node, gguid) {
    // println( flow.id) ; //流程定义的ID
    println(gguid + "工作结束了");

    runSQL("", ` update pz_yjd_pzh set state=1 where gguid='${gguid}' and  ifnull(state, 0)=0`);

    runSQL("", `UPDATE pzbmx a
            INNER JOIN  pz_yjdex b  inner join pz_yjd c on (b.gguid=c.gguid) 
             ON a.pzh  >= b.pzh1 and a.pzh<= b.pzh2 and b.gguid=${gguid}
            SET a.pos  = c.towhere , a.memo = c.summary , a.state_jb=0, a.state_jy=0   ` , true);
}


function back_add_pzh(data) {
    var count = (data.pzh2 / 1) - (data.pzh1 / 1);


    var gguid = currentGUID();
    for (var i = 0; i <= count; i++) {
        var newid = newGuid();
        var pzh = (data.pzh1 / 1) + i;
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, ny, pzh, billtype) values ( ${newid} , ${gguid} , '${data.ny}', '${pzh}', '交办') `, true);
    }

    back_build_sum();
    return { success: true };

}

function back_import_pzh_data(data) {

    var t = data.pzh.split(/[\s]/);
    for (var i = 0; i < t.length; i++) {
        var pzh = t[i].trim();
        if (pzh == '') continue;
        var newid = newGuid();
        var gguid = currentGUID();
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, ny, pzh, billtype ) values ( ${newid} , ${gguid} , '${data.ny}' , '${pzh}', '交办') `, true);
    }
    back_build_sum();
}

function back_import_pzh(s) {
    var t = s.split(/[\s]/);
    for (var i = 0; i < t.length; i++) {
        var pzh = t[i].trim();
        if (pzh == '') continue;
        var newid = newGuid();
        var gguid = currentGUID();
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, pzh ) values ( ${newid} , ${gguid} , '${pzh}') `, true);
    }
    back_build_sum();
}

//  根据凭证号清单生成凭证号汇总信息 
function back_build_sum() {
    var gguid = currentGUID();
    $back_build_sum(gguid);
}


function $back_build_sum(gguid) {


    var sql = `
            
        SELECT
            MAX( ny ) as ny , MIN( pzh ) as pzh1 ,   MAX( pzh )  AS  pzh2,
        COUNT(*) AS c 
        FROM
        (
            SELECT
            ny,
            pzh,
            CONCAT(ny, pzh) as ny_pzh,
            @group_id := IF( pzh  = @prev_number + 1, @group_id, @group_id + 1) AS group_id,
            @prev_number := pzh 
            FROM
            pz_yjd_pzh,
            (SELECT @group_id := 0, @prev_number := NULL) AS vars 
                    where  gguid= ${gguid}
            ORDER BY
            ny_pzh 
        ) AS subquery
        GROUP BY
        group_id;
            
    ` ;

    println(sql);
    var tds = newDataStore("", sql);
    var n = tds.retrieve();

    runSQL("", `delete from  pz_yjdex where gguid= ${gguid} `, true);

    var pz_yjdex_ds = newDataStore("", "select * from pz_yjdex");
    pz_yjdex_ds.setUpdateProperty('pz_yjdex', 'id', '*', 'id');
    for (var i = 0; i < n; i++) {
        var row = pz_yjdex_ds.insertRow(9999);
        pz_yjdex_ds.setValue(row, {
            id: newGuid(), gguid: gguid, inner_xh: row + 1,
            billtype: '交办',
            ny: tds.getString(i, 'ny'),
            pzh1: tds.getString(i, "pzh1"),
            pzh2: tds.getString(i, "pzh2"),
            pzs: tds.getInt(i, "c")


        });
    }

    //
    pz_yjdex_ds.executeAfterUpdate(`update  pz_yjd  set pzs= (select count(*) from  pz_yjd_pzh where gguid= ${gguid} ) where   id= ${gguid}  `);
    pz_yjdex_ds.update(true);


}


/**
 * 单据点击保存，前端所有的操作被转译成3种操作:insert , delete , update ,
 *  并且可以在  beforeBillSaveOnServer 中返回一些SQL语句，可以在afterBillSaveOnServer中返回一些SQL语句
 *
 * 系统分别在需要的数据库连接中执行这些语句 ， 当所有语句执行成功后，事件被提交。一些细节如下 ：
 *
 * 1 如果单据中的表，属于不同的数据库连接，那么所有的SQL语句会以连接为单位，对语句进行批量执行
 * 2 这些语句的执行顺序是：对同一个数据库连接中的语句， 先执行 beforeBillSaveOnServer 中返回的SQL语句，再执行单据操作转译得到的SQL语句，
 *   再执行 afterBillSaveOnServer 中返回的SQL语句， 当多个（或一个）数据库连接执行完这些语句，且没有错误时，所有的数据库连接做提交，否则全部回滚
 * 3 不要在 beforeBillSaveOnServer 或 afterBillSaveOnServer 中直接执行数据库操作，而是返回SQL语句，让系统批量执行它们，并控制好事务
 * 4 当执行成功后，系统再执行事件函数  afterBillSaveSuccessfulOnServer 。 此事件中可以执行任意操作，它与单据保存事件结束后才被触发执行，
 *   与单据保存并不在一个事务中。
 *
 *
 * @param gguid  要删除记录的gguid ，等同于主表的id
 * @param session  一个JSON对象，用于在整个单据保存过程中的各个事件之间传递数据。本事件做为单据保存的最后一个事件，session对象在使用后将被丢弃
 *
 *
 * @return 本函数不需要返回值
 *
 */
//@comment (group=单据保存,caption=单据保存成功后)
function afterBillSaveSuccessfulOnServer(gguid, session) {

    $back_build_sum(gguid);
}


id: 66bc0f82993294a6b3485b69
scriptid: 669dc60c9932df22f60cad3b
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.14 10:04:22.000
script:
function verifyGZL(gguid) {
    var count = getValueFromSQL2( "", `select count(0) from pz_yjd_pzh where gguid='${gguid}' and qsqx is not null and qsqx>0`  );
    println( 'verifyGZL count  ' + count ) 

    return count>0?'有凭证式延迟确认，不能提交结束工作流！':''
}

/**
 * 工作结束
 * @param flow 流程定义
 * @param node 开始节点
 * @param gguid 单据的gguid

 */
//@comment (group=工作流事件,caption=工作结束)
function onWorkFlowEnd(flow, node, gguid) {
    // println( flow.id) ; //流程定义的ID
    println(gguid + "工作结束了");
    runSQL("", ` update pz_yjd_pzh set state=1 where gguid='${gguid}' and  ifnull(state, 0)=0`  );

    runSQL("", `UPDATE pzbmx a
            INNER JOIN  pz_yjdex b  inner join pz_yjd c on (b.gguid=c.gguid) 
             ON a.pzh  >= b.pzh1 and a.pzh<= b.pzh2 and b.gguid=${gguid}
            SET a.pos  = c.towhere , a.memo = c.summary, a.state_jb=1     ` , true);
}


function back_get_pzdj_gguid(from_id){
    return getStringFromSQL2( '', `select gguid from pzdj where from_id='${from_id}'`  ) 
}


function back_add_pzh(data) {
    var count = (data.pzh2 / 1) - (data.pzh1 / 1);


    var gguid = currentGUID();
    for (var i = 0; i <= count; i++) {
        var newid = newGuid();
        var pzh = (data.pzh1 / 1) + i;
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, ny, pzh, billtype) values ( ${newid} , ${gguid} , '${data.ny}', '${pzh}', '交回') `, true);
    }

    back_build_sum();
    return { success: true };

}

function back_import_pzh_data(data){

    var t = data.pzh.split(/[\s]/);
    for (var i = 0; i < t.length; i++) {
        var pzh = t[i].trim();
        if (pzh == '') continue;
        var newid = newGuid();
        var gguid = currentGUID();
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, ny, pzh, billtype ) values ( ${newid} , ${gguid} , '${data.ny}' , '${pzh}', '交回') `, true);
    }
    back_build_sum();
}

function back_import_pzh(s) {
    var t = s.split(/[\s]/);
    for (var i = 0; i < t.length; i++) {
        var pzh = t[i].trim();
        if (pzh == '') continue;
        var newid = newGuid();
        var gguid = currentGUID();
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, pzh ) values ( ${newid} , ${gguid} , '${pzh}') `, true);
    }
    back_build_sum();
}

//  根据凭证号清单生成凭证号汇总信息 
function back_build_sum() {
    var gguid = currentGUID();
    $back_build_sum(gguid);
}


function $back_build_sum(gguid) {


    var sql = `
            
        SELECT
            MAX( ny ) as ny , MIN( pzh ) as pzh1 ,   MAX( pzh )  AS  pzh2,
        COUNT(*) AS c 
        FROM
        (
            SELECT
            ny,
            pzh,
            CONCAT(ny, pzh) as ny_pzh,
            @group_id := IF( pzh  = @prev_number + 1, @group_id, @group_id + 1) AS group_id,
            @prev_number := pzh 
            FROM
            pz_yjd_pzh,
            (SELECT @group_id := 0, @prev_number := NULL) AS vars 
                    where  gguid= ${gguid}
            ORDER BY
            ny_pzh
        ) AS subquery
        GROUP BY
        group_id;
            
    ` ;

    println(sql);
    var tds = newDataStore("", sql);
    var n = tds.retrieve();

    runSQL("", `delete from  pz_yjdex where gguid= ${gguid} `, true);

    var pz_yjdex_ds = newDataStore("", "select * from pz_yjdex");
    pz_yjdex_ds.setUpdateProperty('pz_yjdex', 'id', '*', 'id');
    for (var i = 0; i < n; i++) {
        var row = pz_yjdex_ds.insertRow(9999);
        pz_yjdex_ds.setValue(row, {
            id: newGuid(), gguid: gguid, inner_xh: row + 1,
            billtype: '交回',
            ny: tds.getString(i, 'ny'),
            pzh1: tds.getString(i, "pzh1"),
            pzh2: tds.getString(i, "pzh2"),
            pzs: tds.getInt(i, "c")


        });
    }

    //
    pz_yjdex_ds.executeAfterUpdate(`update  pz_yjd  set pzs= (select count(*) from  pz_yjd_pzh where gguid= ${gguid} ) where   id= ${gguid}  `);
    pz_yjdex_ds.update(true);


}


/**
 * 单据点击保存，前端所有的操作被转译成3种操作:insert , delete , update ,
 *  并且可以在  beforeBillSaveOnServer 中返回一些SQL语句，可以在afterBillSaveOnServer中返回一些SQL语句
 *
 * 系统分别在需要的数据库连接中执行这些语句 ， 当所有语句执行成功后，事件被提交。一些细节如下 ：
 *
 * 1 如果单据中的表，属于不同的数据库连接，那么所有的SQL语句会以连接为单位，对语句进行批量执行
 * 2 这些语句的执行顺序是：对同一个数据库连接中的语句， 先执行 beforeBillSaveOnServer 中返回的SQL语句，再执行单据操作转译得到的SQL语句，
 *   再执行 afterBillSaveOnServer 中返回的SQL语句， 当多个（或一个）数据库连接执行完这些语句，且没有错误时，所有的数据库连接做提交，否则全部回滚
 * 3 不要在 beforeBillSaveOnServer 或 afterBillSaveOnServer 中直接执行数据库操作，而是返回SQL语句，让系统批量执行它们，并控制好事务
 * 4 当执行成功后，系统再执行事件函数  afterBillSaveSuccessfulOnServer 。 此事件中可以执行任意操作，它与单据保存事件结束后才被触发执行，
 *   与单据保存并不在一个事务中。
 *
 *
 * @param gguid  要删除记录的gguid ，等同于主表的id
 * @param session  一个JSON对象，用于在整个单据保存过程中的各个事件之间传递数据。本事件做为单据保存的最后一个事件，session对象在使用后将被丢弃
 *
 *
 * @return 本函数不需要返回值
 *
 */
//@comment (group=单据保存,caption=单据保存成功后)
function afterBillSaveSuccessfulOnServer(gguid, session) {

    $back_build_sum(gguid);
}


id: 66bc0f82993294a6b3485b72
scriptid: 669dc6249932df22f60cc8cf
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.14 10:04:28.000
script:
function verifyGZL(gguid) {
    var count = getValueFromSQL2( "", `select count(0) from pz_yjd_pzh where gguid='${gguid}' and qsqx is not null and qsqx>0`  );
    println( 'verifyGZL count  ' + count ) 

    return count>0?'有凭证式延迟确认，不能提交结束工作流！':''
}

/**
 * 工作结束
 * @param flow 流程定义
 * @param node 开始节点
 * @param gguid 单据的gguid

 */
//@comment (group=工作流事件,caption=工作结束)
function onWorkFlowEnd(flow, node, gguid) {
    // println( flow.id) ; //流程定义的ID
    println(gguid + "工作结束了");
    runSQL("", ` update pz_yjd_pzh set state=1 where gguid='${gguid}' and  ifnull(state, 0)=0`  );

    runSQL("", `UPDATE pzbmx a
            INNER JOIN  pz_yjdex b  inner join pz_yjd c on (b.gguid=c.gguid) 
             ON a.pzh  >= b.pzh1 and a.pzh<= b.pzh2 and b.gguid=${gguid}
            SET a.pos  = c.towhere , a.memo = c.summary, a.state_jy=1     ` , true);
}


function back_add_pzh(data) {
    var count = (data.pzh2 / 1) - (data.pzh1 / 1);


    var gguid = currentGUID();
    for (var i = 0; i <= count; i++) {
        var newid = newGuid();
        var pzh = (data.pzh1 / 1) + i;
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, ny, pzh, billtype) values ( ${newid} , ${gguid} , '${data.ny}', '${pzh}', '借阅') `, true);
    }

    back_build_sum();
    return { success: true };

}

function back_import_pzh_data(data){

    var t = data.pzh.split(/[\s]/);
    for (var i = 0; i < t.length; i++) {
        var pzh = t[i].trim();
        if (pzh == '') continue;
        var newid = newGuid();
        var gguid = currentGUID();
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, ny, pzh, billtype ) values ( ${newid} , ${gguid} , '${data.ny}' , '${pzh}', '借阅') `, true);
    }
    back_build_sum();
}

function back_import_pzh(s) {
    var t = s.split(/[\s]/);
    for (var i = 0; i < t.length; i++) {
        var pzh = t[i].trim();
        if (pzh == '') continue;
        var newid = newGuid();
        var gguid = currentGUID();
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, pzh ) values ( ${newid} , ${gguid} , '${pzh}') `, true);
    }
    back_build_sum();
}

//  根据凭证号清单生成凭证号汇总信息 
function back_build_sum() {
    var gguid = currentGUID();
    $back_build_sum(gguid);
}


function $back_build_sum(gguid) {


    var sql = `
            
        SELECT
            MAX( ny ) as ny , MIN( pzh ) as pzh1 ,   MAX( pzh )  AS  pzh2,
        COUNT(*) AS c 
        FROM
        (
            SELECT
            ny,
            pzh,
            CONCAT(ny, pzh) as ny_pzh,
            @group_id := IF( pzh  = @prev_number + 1, @group_id, @group_id + 1) AS group_id,
            @prev_number := pzh 
            FROM
            pz_yjd_pzh,
            (SELECT @group_id := 0, @prev_number := NULL) AS vars 
                    where  gguid= ${gguid}
            ORDER BY
            ny_pzh
        ) AS subquery
        GROUP BY
        group_id;
            
    ` ;

    println(sql);
    var tds = newDataStore("", sql);
    var n = tds.retrieve();

    runSQL("", `delete from  pz_yjdex where gguid= ${gguid} `, true);

    var pz_yjdex_ds = newDataStore("", "select * from pz_yjdex");
    pz_yjdex_ds.setUpdateProperty('pz_yjdex', 'id', '*', 'id');
    for (var i = 0; i < n; i++) {
        var row = pz_yjdex_ds.insertRow(9999);
        pz_yjdex_ds.setValue(row, {
            id: newGuid(), gguid: gguid, inner_xh: row + 1,
            billtype: '借阅',
            ny: tds.getString(i, 'ny'),
            pzh1: tds.getString(i, "pzh1"),
            pzh2: tds.getString(i, "pzh2"),
            pzs: tds.getInt(i, "c")


        });
    }

    //
    pz_yjdex_ds.executeAfterUpdate(`update  pz_yjd  set pzs= (select count(*) from  pz_yjd_pzh where gguid= ${gguid} ) where   id= ${gguid}  `);
    pz_yjdex_ds.update(true);


}


/**
 * 单据点击保存，前端所有的操作被转译成3种操作:insert , delete , update ,
 *  并且可以在  beforeBillSaveOnServer 中返回一些SQL语句，可以在afterBillSaveOnServer中返回一些SQL语句
 *
 * 系统分别在需要的数据库连接中执行这些语句 ， 当所有语句执行成功后，事件被提交。一些细节如下 ：
 *
 * 1 如果单据中的表，属于不同的数据库连接，那么所有的SQL语句会以连接为单位，对语句进行批量执行
 * 2 这些语句的执行顺序是：对同一个数据库连接中的语句， 先执行 beforeBillSaveOnServer 中返回的SQL语句，再执行单据操作转译得到的SQL语句，
 *   再执行 afterBillSaveOnServer 中返回的SQL语句， 当多个（或一个）数据库连接执行完这些语句，且没有错误时，所有的数据库连接做提交，否则全部回滚
 * 3 不要在 beforeBillSaveOnServer 或 afterBillSaveOnServer 中直接执行数据库操作，而是返回SQL语句，让系统批量执行它们，并控制好事务
 * 4 当执行成功后，系统再执行事件函数  afterBillSaveSuccessfulOnServer 。 此事件中可以执行任意操作，它与单据保存事件结束后才被触发执行，
 *   与单据保存并不在一个事务中。
 *
 *
 * @param gguid  要删除记录的gguid ，等同于主表的id
 * @param session  一个JSON对象，用于在整个单据保存过程中的各个事件之间传递数据。本事件做为单据保存的最后一个事件，session对象在使用后将被丢弃
 *
 *
 * @return 本函数不需要返回值
 *
 */
//@comment (group=单据保存,caption=单据保存成功后)
function afterBillSaveSuccessfulOnServer(gguid, session) {

    $back_build_sum(gguid);
}


id: 66bc0f82993294a6b3485b7b
scriptid: 669dc6399932df22f60ce463
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.14 10:04:34.000
script:
function verifyGZL(gguid) {
    var count = getValueFromSQL2( "", `select count(0) from pz_yjd_pzh where gguid='${gguid}' and qsqx is not null and qsqx>0`  );
    println( 'verifyGZL count  ' + count ) 

    return count>0?'有凭证式延迟确认，不能提交结束工作流！':''
}

/**
 * 工作结束
 * @param flow 流程定义
 * @param node 开始节点
 * @param gguid 单据的gguid

 */
//@comment (group=工作流事件,caption=工作结束)
function onWorkFlowEnd(flow, node, gguid) {
    // println( flow.id) ; //流程定义的ID
    println(gguid + "工作结束了");
    runSQL("", ` update pz_yjd_pzh set state=1 where gguid='${gguid}' and  ifnull(state, 0)=0`  );

    runSQL("", `UPDATE pzbmx a
            INNER JOIN  pz_yjdex b  inner join pz_yjd c on (b.gguid=c.gguid) 
             ON a.pzh  >= b.pzh1 and a.pzh<= b.pzh2 and b.gguid=${gguid}
            SET a.pos  = c.towhere , a.memo = c.summary , a.state_jy=0    ` , true);
}


function back_add_pzh(data) {
    var count = (data.pzh2 / 1) - (data.pzh1 / 1);


    var gguid = currentGUID();
    for (var i = 0; i <= count; i++) {
        var newid = newGuid();
        var pzh = (data.pzh1 / 1) + i;
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, ny, pzh, billtype) values ( ${newid} , ${gguid} , '${data.ny}', '${pzh}', '归还') `, true);
    }

    back_build_sum();
    return { success: true };

}

function back_import_pzh_data(data){

    var t = data.pzh.split(/[\s]/);
    for (var i = 0; i < t.length; i++) {
        var pzh = t[i].trim();
        if (pzh == '') continue;
        var newid = newGuid();
        var gguid = currentGUID();
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, ny, pzh, billtype ) values ( ${newid} , ${gguid} , '${data.ny}' , '${pzh}', '归还') `, true);
    }
    back_build_sum();
}

function back_import_pzh(s) {
    var t = s.split(/[\s]/);
    for (var i = 0; i < t.length; i++) {
        var pzh = t[i].trim();
        if (pzh == '') continue;
        var newid = newGuid();
        var gguid = currentGUID();
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, pzh ) values ( ${newid} , ${gguid} , '${pzh}') `, true);
    }
    back_build_sum();
}

//  根据凭证号清单生成凭证号汇总信息 
function back_build_sum() {
    var gguid = currentGUID();
    $back_build_sum(gguid);
}


function $back_build_sum(gguid) {


    var sql = `
            
        SELECT
            MAX( ny ) as ny , MIN( pzh ) as pzh1 ,   MAX( pzh )  AS  pzh2,
        COUNT(*) AS c 
        FROM
        (
            SELECT
            ny,
            pzh,
            CONCAT(ny, pzh) as ny_pzh,
            @group_id := IF( pzh  = @prev_number + 1, @group_id, @group_id + 1) AS group_id,
            @prev_number := pzh 
            FROM
            pz_yjd_pzh,
            (SELECT @group_id := 0, @prev_number := NULL) AS vars 
                    where  gguid= ${gguid}
            ORDER BY
            ny_pzh
        ) AS subquery
        GROUP BY
        group_id;
            
    ` ;

    println(sql);
    var tds = newDataStore("", sql);
    var n = tds.retrieve();

    runSQL("", `delete from  pz_yjdex where gguid= ${gguid} `, true);

    var pz_yjdex_ds = newDataStore("", "select * from pz_yjdex");
    pz_yjdex_ds.setUpdateProperty('pz_yjdex', 'id', '*', 'id');
    for (var i = 0; i < n; i++) {
        var row = pz_yjdex_ds.insertRow(9999);
        pz_yjdex_ds.setValue(row, {
            id: newGuid(), gguid: gguid, inner_xh: row + 1,
            billtype: '归还',
            ny: tds.getString(i, 'ny'),
            pzh1: tds.getString(i, "pzh1"),
            pzh2: tds.getString(i, "pzh2"),
            pzs: tds.getInt(i, "c")


        });
    }

    //
    pz_yjdex_ds.executeAfterUpdate(`update  pz_yjd  set pzs= (select count(*) from  pz_yjd_pzh where gguid= ${gguid} ) where   id= ${gguid}  `);
    pz_yjdex_ds.update(true);


}


/**
 * 单据点击保存，前端所有的操作被转译成3种操作:insert , delete , update ,
 *  并且可以在  beforeBillSaveOnServer 中返回一些SQL语句，可以在afterBillSaveOnServer中返回一些SQL语句
 *
 * 系统分别在需要的数据库连接中执行这些语句 ， 当所有语句执行成功后，事件被提交。一些细节如下 ：
 *
 * 1 如果单据中的表，属于不同的数据库连接，那么所有的SQL语句会以连接为单位，对语句进行批量执行
 * 2 这些语句的执行顺序是：对同一个数据库连接中的语句， 先执行 beforeBillSaveOnServer 中返回的SQL语句，再执行单据操作转译得到的SQL语句，
 *   再执行 afterBillSaveOnServer 中返回的SQL语句， 当多个（或一个）数据库连接执行完这些语句，且没有错误时，所有的数据库连接做提交，否则全部回滚
 * 3 不要在 beforeBillSaveOnServer 或 afterBillSaveOnServer 中直接执行数据库操作，而是返回SQL语句，让系统批量执行它们，并控制好事务
 * 4 当执行成功后，系统再执行事件函数  afterBillSaveSuccessfulOnServer 。 此事件中可以执行任意操作，它与单据保存事件结束后才被触发执行，
 *   与单据保存并不在一个事务中。
 *
 *
 * @param gguid  要删除记录的gguid ，等同于主表的id
 * @param session  一个JSON对象，用于在整个单据保存过程中的各个事件之间传递数据。本事件做为单据保存的最后一个事件，session对象在使用后将被丢弃
 *
 *
 * @return 本函数不需要返回值
 *
 */
//@comment (group=单据保存,caption=单据保存成功后)
function afterBillSaveSuccessfulOnServer(gguid, session) {

    $back_build_sum(gguid);
}


id: 66bc0f82993294a6b3485b81
scriptid: 669dc6399932df22f60ce463
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.14 10:05:12.000
script:
function verifyGZL(gguid) {
    var count = getValueFromSQL2( "", `select count(0) from pz_yjd_pzh where gguid='${gguid}' and qsqx is not null and qsqx>0`  );
    println( 'verifyGZL count  ' + count ) 

    return count>0?'有凭证式延迟确认，不能提交结束工作流！':''
}


/**
 * 在已结束的流程被撤销结束后，触发本事件
 * 无需返回值
 * @param gguid 单据的gguid
 *
 */
//@comment (group=工作流事件,caption=x结束的流程被撤销结束后)
function afterFinishedWorkRollbacked ( gguid ) {
    runSQL("", ` update pz_yjd_pzh set state=0 where gguid='${gguid}' and  state=1`  );
}



/**
 * 工作结束
 * @param flow 流程定义
 * @param node 开始节点
 * @param gguid 单据的gguid

 */
//@comment (group=工作流事件,caption=工作结束)
function onWorkFlowEnd(flow, node, gguid) {
    // println( flow.id) ; //流程定义的ID
    println(gguid + "工作结束了");
    runSQL("", ` update pz_yjd_pzh set state=1 where gguid='${gguid}' and  ifnull(state, 0)=0`  );

    runSQL("", `UPDATE pzbmx a
            INNER JOIN  pz_yjdex b  inner join pz_yjd c on (b.gguid=c.gguid) 
             ON a.pzh  >= b.pzh1 and a.pzh<= b.pzh2 and b.gguid=${gguid}
            SET a.pos  = c.towhere , a.memo = c.summary , a.state_jy=0    ` , true);
}


function back_add_pzh(data) {
    var count = (data.pzh2 / 1) - (data.pzh1 / 1);


    var gguid = currentGUID();
    for (var i = 0; i <= count; i++) {
        var newid = newGuid();
        var pzh = (data.pzh1 / 1) + i;
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, ny, pzh, billtype) values ( ${newid} , ${gguid} , '${data.ny}', '${pzh}', '归还') `, true);
    }

    back_build_sum();
    return { success: true };

}

function back_import_pzh_data(data){

    var t = data.pzh.split(/[\s]/);
    for (var i = 0; i < t.length; i++) {
        var pzh = t[i].trim();
        if (pzh == '') continue;
        var newid = newGuid();
        var gguid = currentGUID();
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, ny, pzh, billtype ) values ( ${newid} , ${gguid} , '${data.ny}' , '${pzh}', '归还') `, true);
    }
    back_build_sum();
}

function back_import_pzh(s) {
    var t = s.split(/[\s]/);
    for (var i = 0; i < t.length; i++) {
        var pzh = t[i].trim();
        if (pzh == '') continue;
        var newid = newGuid();
        var gguid = currentGUID();
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, pzh ) values ( ${newid} , ${gguid} , '${pzh}') `, true);
    }
    back_build_sum();
}

//  根据凭证号清单生成凭证号汇总信息 
function back_build_sum() {
    var gguid = currentGUID();
    $back_build_sum(gguid);
}


function $back_build_sum(gguid) {


    var sql = `
            
        SELECT
            MAX( ny ) as ny , MIN( pzh ) as pzh1 ,   MAX( pzh )  AS  pzh2,
        COUNT(*) AS c 
        FROM
        (
            SELECT
            ny,
            pzh,
            CONCAT(ny, pzh) as ny_pzh,
            @group_id := IF( pzh  = @prev_number + 1, @group_id, @group_id + 1) AS group_id,
            @prev_number := pzh 
            FROM
            pz_yjd_pzh,
            (SELECT @group_id := 0, @prev_number := NULL) AS vars 
                    where  gguid= ${gguid}
            ORDER BY
            ny_pzh
        ) AS subquery
        GROUP BY
        group_id;
            
    ` ;

    println(sql);
    var tds = newDataStore("", sql);
    var n = tds.retrieve();

    runSQL("", `delete from  pz_yjdex where gguid= ${gguid} `, true);

    var pz_yjdex_ds = newDataStore("", "select * from pz_yjdex");
    pz_yjdex_ds.setUpdateProperty('pz_yjdex', 'id', '*', 'id');
    for (var i = 0; i < n; i++) {
        var row = pz_yjdex_ds.insertRow(9999);
        pz_yjdex_ds.setValue(row, {
            id: newGuid(), gguid: gguid, inner_xh: row + 1,
            billtype: '归还',
            ny: tds.getString(i, 'ny'),
            pzh1: tds.getString(i, "pzh1"),
            pzh2: tds.getString(i, "pzh2"),
            pzs: tds.getInt(i, "c")


        });
    }

    //
    pz_yjdex_ds.executeAfterUpdate(`update  pz_yjd  set pzs= (select count(*) from  pz_yjd_pzh where gguid= ${gguid} ) where   id= ${gguid}  `);
    pz_yjdex_ds.update(true);


}


/**
 * 单据点击保存，前端所有的操作被转译成3种操作:insert , delete , update ,
 *  并且可以在  beforeBillSaveOnServer 中返回一些SQL语句，可以在afterBillSaveOnServer中返回一些SQL语句
 *
 * 系统分别在需要的数据库连接中执行这些语句 ， 当所有语句执行成功后，事件被提交。一些细节如下 ：
 *
 * 1 如果单据中的表，属于不同的数据库连接，那么所有的SQL语句会以连接为单位，对语句进行批量执行
 * 2 这些语句的执行顺序是：对同一个数据库连接中的语句， 先执行 beforeBillSaveOnServer 中返回的SQL语句，再执行单据操作转译得到的SQL语句，
 *   再执行 afterBillSaveOnServer 中返回的SQL语句， 当多个（或一个）数据库连接执行完这些语句，且没有错误时，所有的数据库连接做提交，否则全部回滚
 * 3 不要在 beforeBillSaveOnServer 或 afterBillSaveOnServer 中直接执行数据库操作，而是返回SQL语句，让系统批量执行它们，并控制好事务
 * 4 当执行成功后，系统再执行事件函数  afterBillSaveSuccessfulOnServer 。 此事件中可以执行任意操作，它与单据保存事件结束后才被触发执行，
 *   与单据保存并不在一个事务中。
 *
 *
 * @param gguid  要删除记录的gguid ，等同于主表的id
 * @param session  一个JSON对象，用于在整个单据保存过程中的各个事件之间传递数据。本事件做为单据保存的最后一个事件，session对象在使用后将被丢弃
 *
 *
 * @return 本函数不需要返回值
 *
 */
//@comment (group=单据保存,caption=单据保存成功后)
function afterBillSaveSuccessfulOnServer(gguid, session) {

    $back_build_sum(gguid);
}


id: 66bc0f82993294a6b3485b87
scriptid: 669dc6249932df22f60cc8cf
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.14 10:05:17.000
script:
function verifyGZL(gguid) {
    var count = getValueFromSQL2( "", `select count(0) from pz_yjd_pzh where gguid='${gguid}' and qsqx is not null and qsqx>0`  );
    println( 'verifyGZL count  ' + count ) 

    return count>0?'有凭证式延迟确认，不能提交结束工作流！':''
}

/**
 * 在已结束的流程被撤销结束后，触发本事件
 * 无需返回值
 * @param gguid 单据的gguid
 *
 */
//@comment (group=工作流事件,caption=x结束的流程被撤销结束后)
function afterFinishedWorkRollbacked ( gguid ) {
    runSQL("", ` update pz_yjd_pzh set state=0 where gguid='${gguid}' and  state=1`  );
}
/**
 * 工作结束
 * @param flow 流程定义
 * @param node 开始节点
 * @param gguid 单据的gguid

 */
//@comment (group=工作流事件,caption=工作结束)
function onWorkFlowEnd(flow, node, gguid) {
    // println( flow.id) ; //流程定义的ID
    println(gguid + "工作结束了");
    runSQL("", ` update pz_yjd_pzh set state=1 where gguid='${gguid}' and  ifnull(state, 0)=0`  );

    runSQL("", `UPDATE pzbmx a
            INNER JOIN  pz_yjdex b  inner join pz_yjd c on (b.gguid=c.gguid) 
             ON a.pzh  >= b.pzh1 and a.pzh<= b.pzh2 and b.gguid=${gguid}
            SET a.pos  = c.towhere , a.memo = c.summary, a.state_jy=1     ` , true);
}


function back_add_pzh(data) {
    var count = (data.pzh2 / 1) - (data.pzh1 / 1);


    var gguid = currentGUID();
    for (var i = 0; i <= count; i++) {
        var newid = newGuid();
        var pzh = (data.pzh1 / 1) + i;
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, ny, pzh, billtype) values ( ${newid} , ${gguid} , '${data.ny}', '${pzh}', '借阅') `, true);
    }

    back_build_sum();
    return { success: true };

}

function back_import_pzh_data(data){

    var t = data.pzh.split(/[\s]/);
    for (var i = 0; i < t.length; i++) {
        var pzh = t[i].trim();
        if (pzh == '') continue;
        var newid = newGuid();
        var gguid = currentGUID();
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, ny, pzh, billtype ) values ( ${newid} , ${gguid} , '${data.ny}' , '${pzh}', '借阅') `, true);
    }
    back_build_sum();
}

function back_import_pzh(s) {
    var t = s.split(/[\s]/);
    for (var i = 0; i < t.length; i++) {
        var pzh = t[i].trim();
        if (pzh == '') continue;
        var newid = newGuid();
        var gguid = currentGUID();
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, pzh ) values ( ${newid} , ${gguid} , '${pzh}') `, true);
    }
    back_build_sum();
}

//  根据凭证号清单生成凭证号汇总信息 
function back_build_sum() {
    var gguid = currentGUID();
    $back_build_sum(gguid);
}


function $back_build_sum(gguid) {


    var sql = `
            
        SELECT
            MAX( ny ) as ny , MIN( pzh ) as pzh1 ,   MAX( pzh )  AS  pzh2,
        COUNT(*) AS c 
        FROM
        (
            SELECT
            ny,
            pzh,
            CONCAT(ny, pzh) as ny_pzh,
            @group_id := IF( pzh  = @prev_number + 1, @group_id, @group_id + 1) AS group_id,
            @prev_number := pzh 
            FROM
            pz_yjd_pzh,
            (SELECT @group_id := 0, @prev_number := NULL) AS vars 
                    where  gguid= ${gguid}
            ORDER BY
            ny_pzh
        ) AS subquery
        GROUP BY
        group_id;
            
    ` ;

    println(sql);
    var tds = newDataStore("", sql);
    var n = tds.retrieve();

    runSQL("", `delete from  pz_yjdex where gguid= ${gguid} `, true);

    var pz_yjdex_ds = newDataStore("", "select * from pz_yjdex");
    pz_yjdex_ds.setUpdateProperty('pz_yjdex', 'id', '*', 'id');
    for (var i = 0; i < n; i++) {
        var row = pz_yjdex_ds.insertRow(9999);
        pz_yjdex_ds.setValue(row, {
            id: newGuid(), gguid: gguid, inner_xh: row + 1,
            billtype: '借阅',
            ny: tds.getString(i, 'ny'),
            pzh1: tds.getString(i, "pzh1"),
            pzh2: tds.getString(i, "pzh2"),
            pzs: tds.getInt(i, "c")


        });
    }

    //
    pz_yjdex_ds.executeAfterUpdate(`update  pz_yjd  set pzs= (select count(*) from  pz_yjd_pzh where gguid= ${gguid} ) where   id= ${gguid}  `);
    pz_yjdex_ds.update(true);


}


/**
 * 单据点击保存，前端所有的操作被转译成3种操作:insert , delete , update ,
 *  并且可以在  beforeBillSaveOnServer 中返回一些SQL语句，可以在afterBillSaveOnServer中返回一些SQL语句
 *
 * 系统分别在需要的数据库连接中执行这些语句 ， 当所有语句执行成功后，事件被提交。一些细节如下 ：
 *
 * 1 如果单据中的表，属于不同的数据库连接，那么所有的SQL语句会以连接为单位，对语句进行批量执行
 * 2 这些语句的执行顺序是：对同一个数据库连接中的语句， 先执行 beforeBillSaveOnServer 中返回的SQL语句，再执行单据操作转译得到的SQL语句，
 *   再执行 afterBillSaveOnServer 中返回的SQL语句， 当多个（或一个）数据库连接执行完这些语句，且没有错误时，所有的数据库连接做提交，否则全部回滚
 * 3 不要在 beforeBillSaveOnServer 或 afterBillSaveOnServer 中直接执行数据库操作，而是返回SQL语句，让系统批量执行它们，并控制好事务
 * 4 当执行成功后，系统再执行事件函数  afterBillSaveSuccessfulOnServer 。 此事件中可以执行任意操作，它与单据保存事件结束后才被触发执行，
 *   与单据保存并不在一个事务中。
 *
 *
 * @param gguid  要删除记录的gguid ，等同于主表的id
 * @param session  一个JSON对象，用于在整个单据保存过程中的各个事件之间传递数据。本事件做为单据保存的最后一个事件，session对象在使用后将被丢弃
 *
 *
 * @return 本函数不需要返回值
 *
 */
//@comment (group=单据保存,caption=单据保存成功后)
function afterBillSaveSuccessfulOnServer(gguid, session) {

    $back_build_sum(gguid);
}


id: 66bc0f82993294a6b3485b8d
scriptid: 669dc6249932df22f60cc8cf
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.14 10:05:21.000
script:
function verifyGZL(gguid) {
    var count = getValueFromSQL2( "", `select count(0) from pz_yjd_pzh where gguid='${gguid}' and qsqx is not null and qsqx>0`  );
    println( 'verifyGZL count  ' + count ) 

    return count>0?'有凭证式延迟确认，不能提交结束工作流！':''
}

/**
 * 在已结束的流程被撤销结束后，触发本事件
 * 无需返回值
 * @param gguid 单据的gguid
 *
 */
//@comment (group=工作流事件,caption=x结束的流程被撤销结束后)
function afterFinishedWorkRollbacked ( gguid ) {
    runSQL("", ` update pz_yjd_pzh set state=0 where gguid='${gguid}' and  state=1`  );
}

/**
 * 工作结束
 * @param flow 流程定义
 * @param node 开始节点
 * @param gguid 单据的gguid

 */
//@comment (group=工作流事件,caption=工作结束)
function onWorkFlowEnd(flow, node, gguid) {
    // println( flow.id) ; //流程定义的ID
    println(gguid + "工作结束了");
    runSQL("", ` update pz_yjd_pzh set state=1 where gguid='${gguid}' and  ifnull(state, 0)=0`  );

    runSQL("", `UPDATE pzbmx a
            INNER JOIN  pz_yjdex b  inner join pz_yjd c on (b.gguid=c.gguid) 
             ON a.pzh  >= b.pzh1 and a.pzh<= b.pzh2 and b.gguid=${gguid}
            SET a.pos  = c.towhere , a.memo = c.summary, a.state_jy=1     ` , true);
}


function back_add_pzh(data) {
    var count = (data.pzh2 / 1) - (data.pzh1 / 1);


    var gguid = currentGUID();
    for (var i = 0; i <= count; i++) {
        var newid = newGuid();
        var pzh = (data.pzh1 / 1) + i;
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, ny, pzh, billtype) values ( ${newid} , ${gguid} , '${data.ny}', '${pzh}', '借阅') `, true);
    }

    back_build_sum();
    return { success: true };

}

function back_import_pzh_data(data){

    var t = data.pzh.split(/[\s]/);
    for (var i = 0; i < t.length; i++) {
        var pzh = t[i].trim();
        if (pzh == '') continue;
        var newid = newGuid();
        var gguid = currentGUID();
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, ny, pzh, billtype ) values ( ${newid} , ${gguid} , '${data.ny}' , '${pzh}', '借阅') `, true);
    }
    back_build_sum();
}

function back_import_pzh(s) {
    var t = s.split(/[\s]/);
    for (var i = 0; i < t.length; i++) {
        var pzh = t[i].trim();
        if (pzh == '') continue;
        var newid = newGuid();
        var gguid = currentGUID();
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, pzh ) values ( ${newid} , ${gguid} , '${pzh}') `, true);
    }
    back_build_sum();
}

//  根据凭证号清单生成凭证号汇总信息 
function back_build_sum() {
    var gguid = currentGUID();
    $back_build_sum(gguid);
}


function $back_build_sum(gguid) {


    var sql = `
            
        SELECT
            MAX( ny ) as ny , MIN( pzh ) as pzh1 ,   MAX( pzh )  AS  pzh2,
        COUNT(*) AS c 
        FROM
        (
            SELECT
            ny,
            pzh,
            CONCAT(ny, pzh) as ny_pzh,
            @group_id := IF( pzh  = @prev_number + 1, @group_id, @group_id + 1) AS group_id,
            @prev_number := pzh 
            FROM
            pz_yjd_pzh,
            (SELECT @group_id := 0, @prev_number := NULL) AS vars 
                    where  gguid= ${gguid}
            ORDER BY
            ny_pzh
        ) AS subquery
        GROUP BY
        group_id;
            
    ` ;

    println(sql);
    var tds = newDataStore("", sql);
    var n = tds.retrieve();

    runSQL("", `delete from  pz_yjdex where gguid= ${gguid} `, true);

    var pz_yjdex_ds = newDataStore("", "select * from pz_yjdex");
    pz_yjdex_ds.setUpdateProperty('pz_yjdex', 'id', '*', 'id');
    for (var i = 0; i < n; i++) {
        var row = pz_yjdex_ds.insertRow(9999);
        pz_yjdex_ds.setValue(row, {
            id: newGuid(), gguid: gguid, inner_xh: row + 1,
            billtype: '借阅',
            ny: tds.getString(i, 'ny'),
            pzh1: tds.getString(i, "pzh1"),
            pzh2: tds.getString(i, "pzh2"),
            pzs: tds.getInt(i, "c")


        });
    }

    //
    pz_yjdex_ds.executeAfterUpdate(`update  pz_yjd  set pzs= (select count(*) from  pz_yjd_pzh where gguid= ${gguid} ) where   id= ${gguid}  `);
    pz_yjdex_ds.update(true);


}


/**
 * 单据点击保存，前端所有的操作被转译成3种操作:insert , delete , update ,
 *  并且可以在  beforeBillSaveOnServer 中返回一些SQL语句，可以在afterBillSaveOnServer中返回一些SQL语句
 *
 * 系统分别在需要的数据库连接中执行这些语句 ， 当所有语句执行成功后，事件被提交。一些细节如下 ：
 *
 * 1 如果单据中的表，属于不同的数据库连接，那么所有的SQL语句会以连接为单位，对语句进行批量执行
 * 2 这些语句的执行顺序是：对同一个数据库连接中的语句， 先执行 beforeBillSaveOnServer 中返回的SQL语句，再执行单据操作转译得到的SQL语句，
 *   再执行 afterBillSaveOnServer 中返回的SQL语句， 当多个（或一个）数据库连接执行完这些语句，且没有错误时，所有的数据库连接做提交，否则全部回滚
 * 3 不要在 beforeBillSaveOnServer 或 afterBillSaveOnServer 中直接执行数据库操作，而是返回SQL语句，让系统批量执行它们，并控制好事务
 * 4 当执行成功后，系统再执行事件函数  afterBillSaveSuccessfulOnServer 。 此事件中可以执行任意操作，它与单据保存事件结束后才被触发执行，
 *   与单据保存并不在一个事务中。
 *
 *
 * @param gguid  要删除记录的gguid ，等同于主表的id
 * @param session  一个JSON对象，用于在整个单据保存过程中的各个事件之间传递数据。本事件做为单据保存的最后一个事件，session对象在使用后将被丢弃
 *
 *
 * @return 本函数不需要返回值
 *
 */
//@comment (group=单据保存,caption=单据保存成功后)
function afterBillSaveSuccessfulOnServer(gguid, session) {

    $back_build_sum(gguid);
}


id: 66bc0f82993294a6b3485b93
scriptid: 662a47879932b5035f32efab
tablename: app_script
clientip: 122.234.136.22
username: sa
createdate: 2024.08.14 10:05:23.000
script:
function verifyGZL(gguid) {
    var count = getValueFromSQL2("", `select count(0) from pz_yjd_pzh where gguid='${gguid}' and qsqx is not null and qsqx>0`);
    println('verifyGZL count  ' + count)

    return count > 0 ? '有凭证式延迟确认，不能提交结束工作流！' : ''
}


/**
 * 在已结束的流程被撤销结束后，触发本事件
 * 无需返回值
 * @param gguid 单据的gguid
 *
 */
//@comment (group=工作流事件,caption=x结束的流程被撤销结束后)
function afterFinishedWorkRollbacked ( gguid ) {
    runSQL("", ` update pz_yjd_pzh set state=0 where gguid='${gguid}' and  state=1`  );
}



/**
 * 工作结束
 * @param flow 流程定义
 * @param node 开始节点
 * @param gguid 单据的gguid

 */
//@comment (group=工作流事件,caption=工作结束)
function onWorkFlowEnd(flow, node, gguid) {
    // println( flow.id) ; //流程定义的ID
    println(gguid + "工作结束了");

    runSQL("", ` update pz_yjd_pzh set state=1 where gguid='${gguid}' and  ifnull(state, 0)=0`);

    runSQL("", `UPDATE pzbmx a
            INNER JOIN  pz_yjdex b  inner join pz_yjd c on (b.gguid=c.gguid) 
             ON a.pzh  >= b.pzh1 and a.pzh<= b.pzh2 and b.gguid=${gguid}
            SET a.pos  = c.towhere , a.memo = c.summary , a.state_jb=0, a.state_jy=0   ` , true);
}


function back_add_pzh(data) {
    var count = (data.pzh2 / 1) - (data.pzh1 / 1);


    var gguid = currentGUID();
    for (var i = 0; i <= count; i++) {
        var newid = newGuid();
        var pzh = (data.pzh1 / 1) + i;
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, ny, pzh, billtype) values ( ${newid} , ${gguid} , '${data.ny}', '${pzh}', '交办') `, true);
    }

    back_build_sum();
    return { success: true };

}

function back_import_pzh_data(data) {

    var t = data.pzh.split(/[\s]/);
    for (var i = 0; i < t.length; i++) {
        var pzh = t[i].trim();
        if (pzh == '') continue;
        var newid = newGuid();
        var gguid = currentGUID();
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, ny, pzh, billtype ) values ( ${newid} , ${gguid} , '${data.ny}' , '${pzh}', '交办') `, true);
    }
    back_build_sum();
}

function back_import_pzh(s) {
    var t = s.split(/[\s]/);
    for (var i = 0; i < t.length; i++) {
        var pzh = t[i].trim();
        if (pzh == '') continue;
        var newid = newGuid();
        var gguid = currentGUID();
        runSQL("", `insert into  pz_yjd_pzh (id, gguid, pzh ) values ( ${newid} , ${gguid} , '${pzh}') `, true);
    }
    back_build_sum();
}

//  根据凭证号清单生成凭证号汇总信息 
function back_build_sum() {
    var gguid = currentGUID();
    $back_build_sum(gguid);
}


function $back_build_sum(gguid) {


    var sql = `
            
        SELECT
            MAX( ny ) as ny , MIN( pzh ) as pzh1 ,   MAX( pzh )  AS  pzh2,
        COUNT(*) AS c 
        FROM
        (
            SELECT
            ny,
            pzh,
            CONCAT(ny, pzh) as ny_pzh,
            @group_id := IF( pzh  = @prev_number + 1, @group_id, @group_id + 1) AS group_id,
            @prev_number := pzh 
            FROM
            pz_yjd_pzh,
            (SELECT @group_id := 0, @prev_number := NULL) AS vars 
                    where  gguid= ${gguid}
            ORDER BY
            ny_pzh 
        ) AS subquery
        GROUP BY
        group_id;
            
    ` ;

    println(sql);
    var tds = newDataStore("", sql);
    var n = tds.retrieve();

    runSQL("", `delete from  pz_yjdex where gguid= ${gguid} `, true);

    var pz_yjdex_ds = newDataStore("", "select * from pz_yjdex");
    pz_yjdex_ds.setUpdateProperty('pz_yjdex', 'id', '*', 'id');
    for (var i = 0; i < n; i++) {
        var row = pz_yjdex_ds.insertRow(9999);
        pz_yjdex_ds.setValue(row, {
            id: newGuid(), gguid: gguid, inner_xh: row + 1,
            billtype: '交办',
            ny: tds.getString(i, 'ny'),
            pzh1: tds.getString(i, "pzh1"),
            pzh2: tds.getString(i, "pzh2"),
            pzs: tds.getInt(i, "c")


        });
    }

    //
    pz_yjdex_ds.executeAfterUpdate(`update  pz_yjd  set pzs= (select count(*) from  pz_yjd_pzh where gguid= ${gguid} ) where   id= ${gguid}  `);
    pz_yjdex_ds.update(true);


}


/**
 * 单据点击保存，前端所有的操作被转译成3种操作:insert , delete , update ,
 *  并且可以在  beforeBillSaveOnServer 中返回一些SQL语句，可以在afterBillSaveOnServer中返回一些SQL语句
 *
 * 系统分别在需要的数据库连接中执行这些语句 ， 当所有语句执行成功后，事件被提交。一些细节如下 ：
 *
 * 1 如果单据中的表，属于不同的数据库连接，那么所有的SQL语句会以连接为单位，对语句进行批量执行
 * 2 这些语句的执行顺序是：对同一个数据库连接中的语句， 先执行 beforeBillSaveOnServer 中返回的SQL语句，再执行单据操作转译得到的SQL语句，
 *   再执行 afterBillSaveOnServer 中返回的SQL语句， 当多个（或一个）数据库连接执行完这些语句，且没有错误时，所有的数据库连接做提交，否则全部回滚
 * 3 不要在 beforeBillSaveOnServer 或 afterBillSaveOnServer 中直接执行数据库操作，而是返回SQL语句，让系统批量执行它们，并控制好事务
 * 4 当执行成功后，系统再执行事件函数  afterBillSaveSuccessfulOnServer 。 此事件中可以执行任意操作，它与单据保存事件结束后才被触发执行，
 *   与单据保存并不在一个事务中。
 *
 *
 * @param gguid  要删除记录的gguid ，等同于主表的id
 * @param session  一个JSON对象，用于在整个单据保存过程中的各个事件之间传递数据。本事件做为单据保存的最后一个事件，session对象在使用后将被丢弃
 *
 *
 * @return 本函数不需要返回值
 *
 */
//@comment (group=单据保存,caption=单据保存成功后)
function afterBillSaveSuccessfulOnServer(gguid, session) {

    $back_build_sum(gguid);
}


