con_ele_sign_cancel.lsc 4.06 KB
Newer Older
congzhao's avatar
congzhao committed
1 2 3 4 5 6 7
<?xml version="1.0" encoding="UTF-8"?>
<a:service xmlns:a="http://www.leaf-framework.org/application" xmlns:s="leaf.plugin.script" trace="true">
    <a:init-procedure>
        <s:server-script><![CDATA[
            importPackage(java.io);
            importPackage(Packages.com.hand.elecon.httpost);

8
            var up_file_token_url = info_query('UP_FILE_TOKEN_URL').code_value;
congzhao's avatar
congzhao committed
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
            //系统参数获取
            function info_query(parameter_code) {
                var info = new Object();
                var data = null;
                var parameter_map = $bm('wx.WX100.sys_parameter_value').queryAsMap({
                    parameter_code:parameter_code
                });
                var data = parameter_map.getChildren();
                info.code_value = data[0].code_value;
                return info;
            }

            //获取电子签署的flow_id
            var sign_cancel_bm = $bm('cont.CON505.contract_sign_cancel');
            var sign_cancel_map = sign_cancel_bm.queryAsMap({
                contract_id:$ctx.parameter.contract_id
            });
26 27 28 29 30 31 32
            var sign_cancel_data = sign_cancel_map.getChildren();
            var revoke_flows = [];
            for (var i = 0; i < sign_cancel_data.length;i++){
                revoke_flows.push({
                    "flowId":sign_cancel_data[i].ele_flow_id
                });
            }
congzhao's avatar
congzhao committed
33
            var revokeParam = {
34
                revokeFlows:revoke_flows
congzhao's avatar
congzhao committed
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
            }
            //调用中台取消流程
            var info = info_query('HL_SIGN_FLOW_CANCEL');
            var httpUrl = info.code_value;
            var logs_bm = $bm('wx.WX100.con_ele_savelogs');
            try {
                var token_sign_result = EleFileUpHttpPost.post(up_file_token_url, null, null);
            } catch (e) {
                raise_app_error('上传文件获取token失败,请联系技术人员检查!');
            }
            var token_sign_result_ob = JSON.parse(token_sign_result);
            var access_sign_token = token_sign_result_ob.access_token;
            var result = EleFileUpHttpPost.post(httpUrl, JSON.stringify(revokeParam), access_sign_token);
            logs_bm.insert({
                contract_id:$ctx.parameter.contract_id,
                httpurl:httpUrl,
                jsonPut:JSON.stringify(revokeParam),
                jsonResult:result,
                tokenResult:token_sign_result
            });
            var result_ob = JSON.parse(result); //根据返回参数形式再定
56
            var revoke_flag_update_bm = $bm('cont.CON505.contract_revoke_flag_update');
congzhao's avatar
congzhao committed
57 58 59 60 61
            if (result_ob.code != 0) {
                //rollback
                $bm('wx.WX100.rollback').update();
                raise_app_error('取消签约失败,请联系技术人员检查!');
            }else if(result_ob.code == 0){
62 63
                var revokeFlows = result_ob.revokeFlows;
                var all_revoke_flag = 'Y';
64
                var error_message;
65
                var result;
66 67 68 69 70 71 72 73
                for (var i = 0; i < revokeFlows.length; i++) {
                    if(revokeFlows[i].result == 0){
                        revoke_flag_update_bm.update({
                            contract_id:$ctx.parameter.contract_id,
                            flow_id:revokeFlows[i].flowId
                        });
                    }else{
                        all_revoke_flag = 'N';
74
                        result = revokeFlows[i].result;
75
                        error_message = revokeFlows[i].msg;
76 77 78 79 80 81 82
                    }
                }
                if(all_revoke_flag == 'Y'){
                    sign_cancel_bm.execute({
                        contract_id:$ctx.parameter.contract_id
                    });
                }else{
83 84 85 86 87
                    if(result = '1437111'){
                        $ctx.parameter.message = '签约已完毕,不可取消';
                    }else{
                        $ctx.parameter.message = error_message;
                    }
88
                }
congzhao's avatar
congzhao committed
89 90 91
            }
            ]]></s:server-script>
    </a:init-procedure>
92
<a:service-output output="/parameter"/>
congzhao's avatar
congzhao committed
93
</a:service>