ecology_dev/常用信息.md

15 KiB
Raw Blame History

常用的数据信息

其他

维护人员: youhong.ai

  • 缓存地址: /commcache/cacheMonitor.jsp
  • 移动端流程模拟地址: /spa/workflow/static4mobile/index.html#/center/doing

常用代码

前端

1.获取用户信息

维护人员youhong.ai

const userInfo = JSON.parse(localStorage.getItem("theme-account"))

2.ecode访问上传的resource静态文件

let src = "/cloudstore/release/${appId}/resources/"

3.获取url参数

维护人员: youHong.ai

getQueryString = (name) => {
    let reg = new RegExp("(^|&|\/?)" + name + "=([^&]*)(&|$)", "i");
    let searchStr = window.location.href
    if (searchStr.startsWith('&')) {
        searchStr = searchStr.substr(1)
    }
    search = searchStr.match(reg)
    if (search != null) {
        return unescape(search[2]);
    }
    return null;
}

4.ajax请求

维护人员: youHong.ai

  class ApiUtils {
    static request = (url, type = "GET", data, isAsync = true, success = () => {
    }, error = () => {
    }, complete = () => {
    }, contentType = 'application/json', beforeSend = () => {
    }) => {
        let options = {
            url,
            type,
            dataType: "json",
            contentType,
            async: isAsync,
            data,
            beforeSend,
            success,
            error,
            complete,
        }
        if (contentType == 'application/json') {
            options.data = JSON.stringify(data)
        }
        return $.ajax(options)
    }

}

5.通过js获取react组件操作组件内部数据

function FindReact(dom, traverseUp = 0) {
    const key = Object.keys(dom).find(key => {
        return key.startsWith("__reactFiber$") // react 17+
            || key.startsWith("__reactInternalInstance$"); // react <17
    });
    const domFiber = dom[key];
    if (domFiber == null) return null;

    // react <16
    if (domFiber._currentElement) {
        let compFiber = domFiber._currentElement._owner;
        for (let i = 0; i < traverseUp; i++) {
            compFiber = compFiber._currentElement._owner;
        }
        return compFiber._instance;
    }

    // react 16+
    const GetCompFiber = fiber => {
        let parentFiber = fiber.return;
        while (typeof parentFiber.type == "string") {
            parentFiber = parentFiber.return;
        }
        return parentFiber;
    };
    let compFiber = GetCompFiber(domFiber);
    for (let i = 0; i < traverseUp; i++) {
        compFiber = GetCompFiber(compFiber);
    }
    return compFiber.stateNode;
}

// 用法
const someElement = document.getElementById("someElement");
const myComp = FindReact(someElement);
myComp.setState({test1: test2});

6.ecode集成iconfont

/*修改url字体文件上传到cloudstore/iconfont/xx/下,没有目录自己创建*/
/*修改font-family,命名为其他名称防止与系统自带的或与其他iconfont冲突*/
@font-face {
    font-family: "cus_iconfont"; /* Project id 3789451 */
    src: url('/cloudstore/iconfont/pcn/iconfont.woff2?t=1669223019749') format('woff2'),
    url('/cloudstore/iconfont/pcn/iconfont.woff?t=1669223019749') format('woff'),
    url('/cloudstore/iconfont/pcn/iconfont.ttf?t=1669223019749') format('truetype');
}

/*修改iconfont类名为font-family的名称*/
.cus_iconfont {
    font-family: "cus_iconfont" !important;
    font-size: 16px;
    font-style: normal;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

数据库

备份mysql数据库

维护人员: youHong.ai

mysqldump -uroot -p'passowrd' --single-transaction -R -E --databases ecology_dev> /tmp/ecology_dev_back.sql

mysql常用视图

-- 流程类型视图,可用于数据集成或流览按钮
create
or replace view workflow_type_info_view as
select wb.id,
       wb.workflowname,
       wt.typename,
       wb.workflowdesc,
       (IF(wb.version is null, 1, wb.version)) version
from workflow_base wb
         RIGHT JOIN workflow_type wt on wb.workflowtype = wt.id;

-- 流程表单视图,用于流览按钮或数据集成,配置流程类型表可以用字段联动获取流程表表名
create
or replace view workflow_table_view as
select base.id,
       base.workflowname,
       base.formid,
       bill.tablename,
       (IF(base.version is null, 1, base.version)) version
from workflow_bill bill
         join workflow_base base on base.formid = bill.id;

-- 流程明细表信息,可用流程主表查询对应的明细表信息,用于流览框
create
or replace view workflow_detail_table_view as
select CONCAT(bill.id, '-', base.id) id,
       bill.id                       bill_id,
       base.id                       workflow_id,
       base.workflowname,
       base.formid                   main_formid,
       bill.tablename
from workflow_billdetailtable bill
         join workflow_base base on base.formid = bill.billid;

-- 流程和建模字段视图更具流程和建模的billid可以查询流程和建模中的字段信息
create
or replace view workflow_field_table_view as
select wb.id,
       wb.fieldname,
       concat(ht.indexdesc, '', wb.fieldname) indexdesc,
       (
           case
               when wb.detailtable is null then (select distinct tablename from workflow_bill where id = wb.billid)
               when wb.detailtable = ''
                   then (select distinct tablename from workflow_bill where id = wb.billid)
               else wb.detailtable
               end
           )                                   tablename,
       billid,
       (
           case
               when wb.detailtable = '' then 'main table'
               when wb.detailtable is null then 'main table'
               else wb.detailtable end
           )                                   showtablename,
       (case
            when wb.fieldhtmltype = '1' then '单行文本框'
            when wb.FIELDHTMLTYPE = '2' then '多行文本框'
            when wb.FIELDHTMLTYPE = '3' then '流览框'
            when wb.FIELDHTMLTYPE = '4' then 'check框'
            when wb.FIELDHTMLTYPE = '5' then '选择框'
            else '附件上传' end)               fieldhtmltype
from workflow_billfield wb
         left join htmllabelindex ht on wb.fieldlabel = ht.id;

-- 建模表信息视图
create
or replace view mode_bill_info_view as
select bill.id, bill.tablename, hti.indexdesc
from workflow_bill bill
         left join htmllabelindex hti on hti.id = bill.namelabel
where bill.id < 0
  and bill.tablename like 'uf%';

-- 流程节点信息视图
create
or replace view workflow_node_info_view as
select distinct nb.id,
                nb.nodename,
                (case when wb.version is null then 1 else wb.version end) version,
                fn.workflowid
from workflow_nodebase nb
         left join workflow_flownode fn on nb.id = fn.nodeid
         left join workflow_base wb on wb.id = fn.workflowid;

oracle常用视图与mysql对应

create
or replace view workflow_type_info_view as
select wb.id,
       wb.workflowname,
       wt.typename,
       wb.workflowdesc,
       (IF(wb.version is null, 1, wb.version)) version
from workflow_base wb
         RIGHT JOIN workflow_type wt on wb.workflowtype = wt.id
    /

create
or replace view workflow_table_view as
select base.id,
       base.workflowname,
       base.formid,
       bill.tablename,
       (IF(base.version is null, 1, base.version)) version
from workflow_bill bill
         join workflow_base base on base.formid = bill.id
    /

create
or replace view workflow_detail_table_view as
select (bill.id || '-' || base.id) id,
       bill.id                     bill_id,
       base.id                     workflow_id,
       base.workflowname,
       base.formid                 main_formid,
       bill.tablename
from workflow_billdetailtable bill
         join workflow_base base on base.formid = bill.billid
    /


create
or replace view workflow_field_table_view as
select wb.id,
       wb.fieldname,
       (ht.indexdesc || '' || wb.fieldname) indexdesc,
       (
           case
               when wb.detailtable is null then (select distinct tablename from workflow_bill where id = wb.billid)
               when wb.detailtable = ''
                   then (select distinct tablename from workflow_bill where id = wb.billid)
               else wb.detailtable
               end
           )                                 tablename,
       billid,
       (
           case
               when wb.detailtable = '' then 'main table'
               when wb.detailtable is null then 'main table'
               else wb.detailtable end
           )                                 showtablename,
       (case
            when wb.fieldhtmltype = '1' then '单行文本框'
            when wb.FIELDHTMLTYPE = '2' then '多行文本框'
            when wb.FIELDHTMLTYPE = '3' then '流览框'
            when wb.FIELDHTMLTYPE = '4' then 'check框'
            when wb.FIELDHTMLTYPE = '5' then '选择框'
            else '附件上传' end)             fieldhtmltype
from workflow_billfield wb
         left join htmllabelindex ht on wb.fieldlabel = ht.id
    /

create
or replace view mode_bill_info_view as
select bill.id, bill.tablename, hti.indexdesc
from workflow_bill bill
         left join htmllabelindex hti on hti.id = bill.namelabel
where bill.id < 0
  and bill.tablename like 'uf%'
    /

create
or replace view workflow_node_info_view as
select distinct nb.id,
                nb.nodename,
                (case when wb.version is null then 1 else wb.version end) version,
                fn.workflowid
from workflow_nodebase nb
         left join workflow_flownode fn on nb.id = fn.nodeid
         left join workflow_base wb on wb.id = fn.workflowid
    /

sqlserver常用视图与mysql对应

create view workflow_type_info_view as
select wb.id,
       wb.workflowname,
       wt.typename,
       wb.workflowdesc,
       (
           IF(wb.version is null, 1, wb.version)) version
from workflow_base wb
         RIGHT JOIN workflow_type wt on wb.workflowtype = wt.id;

create
or replace view workflow_table_view as
select base.id,
       base.workflowname,
       base.formid,
       bill.tablename,
       (
           IF(base.version is null, 1, base.version)) version
from workflow_bill bill
         join workflow_base base on base.formid = bill.id;

create
or replace view workflow_detail_table_view as
select (bill.id + '-' + base.id) id,
       bill.id                   bill_id,
       base.id                   workflow_id,
       base.workflowname,
       base.formid               main_formid,
       bill.tablename
from workflow_billdetailtable bill
         join workflow_base base on base.formid = bill.billid;


create view workflow_field_table_view as
select wb.id,
       wb.fieldname,
       (ht.indexdesc + '' + wb.fieldname) indexdesc,
       (
           case
               when wb.detailtable is null then (select distinct tablename from workflow_bill where id = wb.billid)
               when wb.detailtable = ''
                   then (select distinct tablename from workflow_bill where id = wb.billid)
               else wb.detailtable
               end
           )                               tablename,
       billid,
       (
           case
               when wb.detailtable = '' then 'main table'
               when wb.detailtable is null then 'main table'
               else wb.detailtable end
           )                               showtablename,
       (case
            when wb.fieldhtmltype = '1' then '单行文本框'
            when wb.FIELDHTMLTYPE = '2' then '多行文本框'
            when wb.FIELDHTMLTYPE = '3' then '流览框'
            when wb.FIELDHTMLTYPE = '4' then 'check框'
            when wb.FIELDHTMLTYPE = '5' then '选择框'
            else '附件上传' end)           fieldhtmltype
from workflow_billfield wb
         left join htmllabelindex ht on wb.fieldlabel = ht.id;

create view mode_bill_info_view as
select bill.id, bill.tablename, hti.indexdesc
from workflow_bill bill
         left join htmllabelindex hti on hti.id = bill.namelabel
where bill.id < 0
  and bill.tablename like 'uf%';

create view workflow_node_info_view as
select distinct nb.id,
                nb.nodename,
                (case when wb.version is null then 1 else wb.version end) version,
                fn.workflowid
from workflow_nodebase nb
         left join workflow_flownode fn on nb.id = fn.nodeid
         left join workflow_base wb on wb.id = fn.workflowid;

后端

1.后端根据请求获取登录用户信息

维护人员xuanran.wang

//@Context HttpServletRequest request, @Context HttpServletResponse response
User logInUser=HrmUserVarify.getUser(request,response);
// 传入id会将此人员信息带出
        User user=new User(id);
// 获取人员id
        user.getUID();

2.发送邮件

维护人员xuanran.wang

/**
 * <h1>发送邮件</h1>
 * @param address 邮箱地址
 * @param title 标题
 * @param content 正文
 **/
EmailWorkRunnable.threadModeReminder(address,title,content);

维护人员: youHong.ai

/**
 * <h2>发送附件邮件</h2>
 * @param sendTo  收件人邮箱地址(多个值之间用英文逗号分隔)
 * @param sendCc  抄送人邮箱地址(多个值之间用英文逗号分隔)
 * @param sendBcc  密送人邮箱地址(多个值之间用英文逗号分隔)
 * @param subject  主题
 * @param content  内容
 * @param imageFileIds 附件id
 */
EmailWorkRunnable.threadModeReminder(sendTo,sendCc,sendBcc,subject,content,imageFileIds);

或者

/*
  @param sendTo  收件人邮箱地址(多个值之间用英文逗号分隔)
  @param sendCc  抄送人邮箱地址(多个值之间用英文逗号分隔)
  @param sendBcc  密送人邮箱地址(多个值之间用英文逗号分隔)
  @param subject  主题
  @param content  内容
  @param imageFileIds 附件id
 */
EmailWorkRunnable emailWorkRunable=new EmailWorkRunnable(sendTo,sendCc,sendBcc,subject,content);
        emailWorkRunable.setImagefileids(imageFileIds);
        MailCommonUtils.executeThreadPool(EmailPoolSubTypeEnum.EMAIL_SYS_ALTER.toString(),emailWorkRunable);

3.短信服务

维护人员xuanran.wang

public class SendSms implements SmsService {
    @Override
    public boolean sendSMS(String smsId, String number, String msg) {
        //执行短信调用接口逻辑
        return SMSUtil.sendSms(number, msg, url, sn, pwd);
    }
}

4.三方插件文档转PDF(培训群找过来的)

维护人员xuanran.wang

//wps转PDF
DocImagefileToPdfUseWps toPdfUseWps=new DocImagefileToPdfUseWps();
        newimagefileid=toPdfUseWps.officeDocumetnToPdfByImagefileid(docimagefileid);

//永中转PDF
        DocImagefileToPdf yozoToPdf=new DocImagefileToPdf();
        newimagefileid=yozoToPdf.officeDocumetnToPdfByImagefileid(docimagefileid);