检查检验报告的思路流程不同,区别如下:
-
1、检查报告存于TB_RIS_Report、TB_RIS_Report2表中。
若中心端和前置机数据库中存在 59数据库中没有 的数据,则标志为需要补传。由维护人员选择需要补传的报告数据进行补传。
-
2、检验报告单的表头存于TB_LIS_Report,表内容存于TB_LIS_Indicator表中。
① 若中心端和前置机数据库中存在 59数据库中没有 的Report数据,则标志为需要补传。
② 若中心端和前置机数据库中存在 59数据库中没有 的Indicators数据,则标志为需要补传。
由维护人员选择需要补传的报告数据进行补传。
(一)检验报告单
流程图:
开发步骤:
1、查询59、中心端、前置机数据库的报告数据,以RisReport对象格式存入集合List1,List2,List3;
2、合并三个List得到集合List_all,由RisReport的flag属性标志该对象存在哪个数据库。(0表示存在59,1存在中心端,2存在前置机)
同一条数据的优先级:中心端>前置机>59。
reportList_all.addAll(reportList_59);
reportList_qzj.removeAll(reportList_all);
reportList_all.addAll(reportList_qzj);
reportList_center.removeAll(reportList_all);
reportList_all.addAll(reportList_center);
map.put("listAll",reportList_all);
3、将数据集合展现在前台页面,并设置flag属性为1和2的数据可以补传。点击按钮启动补传方法。
(二)检验报告单
流程图:
开发步骤:
1、查询59、中心端、前置机数据库的报告数据,以LisReport对象格式存入集合List1,List2,List3;
2、遍历List1数据,以每条数据的报告单号为主键查询59、中心端、前置机的Indicator报告指标数据,以indFlag标志Indicator存在状态(0:Ind不存在59/中心端/前置机,1:59有 ,2:中心端有59无,3:前置机有59无)。
for(int i=0;i<reportList59.size();i++){
if(iqueryDao.check59Indicator(reportList59.get(i).getYljgdm(),reportList59.get(i).getBgdh(),reportList59.get(i).getBgrq())){
//如果59有,indFlag为1
Report r=reportList59.get(i);
r.setIndFlag(1);
reportList59.set(i,r);
}else if(iqueryDao.checkCenterIndicator(reportList59.get(i).getYljgdm(),reportList59.get(i).getBgdh(),reportList59.get(i).getBgrq())){
//如果59没有,中心端有,indFlag为2
Report r=reportList59.get(i);
r.setIndFlag(2);
reportList59.set(i,r);
}else if(iqueryDao.checkQzjIndicator(reportList59.get(i).getYljgdm(),reportList59.get(i).getBgdh(),reportList59.get(i).getBgrq())){
//如果59没有,前置机有,indFlag为3
Report r=reportList59.get(i);
r.setIndFlag(3);
reportList59.set(i,r);
}
}
3、合并List1、List2、List3得到集合List_all,由RisReport的flag属性标志该对象存在哪个数据库。(0表示存在59,1存在中心端,2存在前置机)
同一条数据的优先级:中心端>前置机>59。
reportListQzj.removeAll(reportList59);
reportList59.addAll(reportListQzj);
reportListCenter.removeAll(reportList59);
reportList59.addAll(reportListCenter);
map.put("listAll",reportList59);
4、将数据集合展现在前台页面,并设置flag属性为1和2、indFlag为2,3的数据可以补传。点击按钮启动补传方法。