凯特-王少龙 发表于 2022-4-18 17:15:56

【后端系列】JEPaaS变更功能标准化实现

本帖最后由 凯特-王少龙 于 2022-4-21 17:46 编辑

一、实现效果
变更功能标准化实现方式。
二、实现思路
1.使用工作流引擎调用后台方法。
2.在审核成功后对变更内容修改。
三、具体操作


1.在资源表定义规范的变更字段,在需要变更的字段后添加_BG。


2.变更功能调用后台功能存在两种实现方式
业务流:


审核:在功能审核成功后对变更内容修改
3.在调用的后端方法中使用方法对变更的信息进行更新。

四、相关代码(可选)

@Override
    public void doPotBgWfEnd(WfEventSubmitInfo submitInfo) {
      DynaBean dynaBean=submitInfo.getDynaBean();
      DynaBean pot = serviceTemplate.selectOneByPk("GTHR_POT", dynaBean.getStr("GTHR_POT_ID"));
      if(pot==null){
            return;
      }
      //找到变更的表
      DynaBean table= BeanUtils.getInstance().getResourceTable("GTHR_POT_BG");
      //获取到表的所有列
      List<DynaBean> columns= (List<DynaBean>) table.get(BeanUtils.KEY_TABLE_COLUMNS);
      Set<String> bgFields=new HashSet<>();
      for(DynaBean column:columns){
                        //获取到表的字段
            String columnCode=column.getStr("TABLECOLUMN_CODE");
                        //对结尾为_BG的字段进行封装
            if(columnCode.endsWith("_BG")){
                bgFields.add(columnCode);
            }
      }
      for(String bgField:bgFields){
                        //将以_BG结尾的字段进行截取,对应上变更前的字段,进行赋值
            String fieldCode=bgField.substring(0,bgField.lastIndexOf("_BG"));
            pot.set(fieldCode,dynaBean.getStr(bgField));
      }
      serviceTemplate.update(pot);
    }五、总结(可选)
使用该方法可以标准化实现变更,在以后如果功能需要添加变更,无需修改后台代码,具有较强的复用性。



页: [1]
查看完整版本: 【后端系列】JEPaaS变更功能标准化实现