欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

E9环境通过数据库后台开发解决前端代码问题

程序员文章站 2022-06-02 16:49:02
...

问题:E7环境下在hrmsubcompany新增了两个字段公司层级和所属业务主体,E8时通过JSP代码保存到主表中,在升级到E9环境后,该代码无效了。经开发沟通实现太麻烦,先采用数据库端处理圆满解决此问题。

E8代码:
SubCompanyOperation.jsp

//插入点1
String gscj = Util.fromScreen(fu.getParameter("gscj"),user.getLanguage());
String ssywzt = Util.fromScreen(fu.getParameter("ssywzt"),user.getLanguage());

//插入点2
	String sql3="update HrmSubCompany set subcompanycode = '" + subcompanycode + "'";
	if(user.getUID() == 1) sql3 += ", limitUsers = "+limitUsers;
	sql3 +=", gscj = '"+gscj+"' ";//公司层级
	sql3 +=", ssywzt = '"+ssywzt+"' ";//所属业务主体

//插入点3
	String sql3="update HrmSubCompany set subcompanycode = '" + subcompanycode + "'";
	if(user.getUID() == 1) sql3 += ", limitUsers = "+limitUsers;
    sql3 +=", gscj = '"+gscj+"' ";//公司层级
    sql3 +=", ssywzt = '"+ssywzt+"' ";//所属业务主体

在升级E9时,作同样的修改,没有生效,原因是现有E9前后端分离,已经不用此代码。

解决方案:
在OA端使用新功能在hrmsubcompanydefined新建这两个自定义字段,字段名后系统自动增加了一个X。将原有两个字段隐藏。这个操作由OA系统管理员作。

1、检查两边数据有效性。新的字段没有值。

select id,gscj,ssywzt from  hrmsubcompany 
select id,subcomid,gscjx,ssywztx from hrmsubcompanydefined

2、将原有字段同步到新字段中,并验证数据一致。

update hrmsubcompanydefined a set gscjx = (select gscj from  hrmsubcompany b where a.subcomid = b.id ) 
update hrmsubcompanydefined a set ssywztx = (select ssywzt from  hrmsubcompany b where a.subcomid = b.id ) 
select b.id,b.gscj,b.ssywzt,a.gscjx,a.ssywztx from  hrmsubcompanydefined a inner join   hrmsubcompany b on a.subcomid = b.id 

3、启用触发器并编辑无误。

 create or replace trigger YH_T_on_hrmsubcom
 after INSERT OR UPDATE of gscjx,ssywztx,subcomid 
 on hrmsubcompanydefined  
  for each row  
  begin  
  update hrmsubcompany set gscj = :new.gscjx,ssywztx = :new.ssywztx  where id = :new.subcomid;  
  end; 

4、验证功能
后台验证:修改一下字段值并检查字段发生了同步修改。

 select id,gscj,ssywzt from  hrmsubcompany where id = 50
 update hrmsubcompanydefined a set gscjx = 1  where subcomid = 50
 select id,gscj,ssywzt from  hrmsubcompany where id = 50
 update hrmsubcompanydefined a set gscjx = 3  where subcomid = 50
 select id,gscj,ssywzt from  hrmsubcompany where id = 50
 

前台验证:由OA系统管理员在前台修改或新增一个分步后,可以从新字段自动同步到旧字段中。

相关标签: ECOLOGY ORACEL