This commit is contained in:
lihao 2025-08-13 10:45:35 +08:00
parent cd74df2de8
commit e4278e30cb
1 changed files with 94 additions and 29 deletions

View File

@ -84,41 +84,106 @@ public class QcconclusionRestResource extends QcBaseRestResource {
} }
} }
for (ReportVO vo : vos) { for (ReportVO vo : vos) {
// 先判断vo和其HVO是否为null避免NPE
if (vo == null || vo.getHVO() == null) {
continue;
}
Object pkReportbill = vo.getHVO().getPk_reportbill();
// 校验HVO的pk_reportbill是否为必填不为null
if (pkReportbill == null) {
continue;
}
for (Map<String, Object> itemMap : itemMaps) { for (Map<String, Object> itemMap : itemMaps) {
if(itemMap.get("id").equals(vo.getHVO().getPk_reportbill())){ // 校验itemMap的id是否为必填存在且不为null
//nchecknum 检验主数量 if (itemMap == null || !itemMap.containsKey("id") || itemMap.get("id") == null) {
//ncheckastnum 检验数量 continue;
//neliginum 合格主数量 }
//neligiastnum 合格数量 // 比较id是否匹配双方都已校验非null
//nuneliginum 不合格主数量 if (!itemMap.get("id").equals(pkReportbill)) {
//nuneligiastnum 不合格数量 continue;
vo.getHVO().setStatus(VOStatus.UPDATED); }
// 检验主数量
vo.getHVO().setNchecknum(new UFDouble((Double)itemMap.get("nchecknum"))); // 匹配成功更新状态
// 检验数量 vo.getHVO().setStatus(VOStatus.UPDATED);
// 处理数量字段存在且不为null才赋值
// 检验主数量
if (itemMap.containsKey("nchecknum") && itemMap.get("nchecknum") instanceof Double) {
vo.getHVO().setNchecknum(new UFDouble((Double) itemMap.get("nchecknum")));
}
// 检验数量
if (itemMap.containsKey("ncheckastnum") && itemMap.get("ncheckastnum") instanceof Double) {
vo.getHVO().setNcheckastnum(new UFDouble((Double) itemMap.get("ncheckastnum"))); vo.getHVO().setNcheckastnum(new UFDouble((Double) itemMap.get("ncheckastnum")));
// 合格主数量 }
// 合格主数量
if (itemMap.containsKey("neliginum") && itemMap.get("neliginum") instanceof Double) {
vo.getHVO().setNeliginum(new UFDouble((Double) itemMap.get("neliginum"))); vo.getHVO().setNeliginum(new UFDouble((Double) itemMap.get("neliginum")));
// 合格数量 }
vo.getHVO().setNeligiastnum(new UFDouble((Double)itemMap.get("neligiastnum"))); // 合格数量
// 不合格主数量 if (itemMap.containsKey("neligiastnum") && itemMap.get("neligiastnum") instanceof Double) {
vo.getHVO().setNeligiastnum(new UFDouble((Double) itemMap.get("neligiastnum")));
}
// 不合格主数量
if (itemMap.containsKey("nuneliginum") && itemMap.get("nuneliginum") instanceof Double) {
vo.getHVO().setNuneliginum(new UFDouble((Double) itemMap.get("nuneliginum"))); vo.getHVO().setNuneliginum(new UFDouble((Double) itemMap.get("nuneliginum")));
// 不合格数量 }
vo.getHVO().setNuneligiastnum(new UFDouble((Double)itemMap.get("nuneligiastnum"))); // 不合格数量
this.appendPseudoColumn(vo); if (itemMap.containsKey("nuneligiastnum") && itemMap.get("nuneligiastnum") instanceof Double) {
List<Map<String, Object>> mapList = (List<Map<String, Object>>) itemMap.get("children"); vo.getHVO().setNuneligiastnum(new UFDouble((Double) itemMap.get("nuneligiastnum")));
if(!mapList.isEmpty()){ }
for (int i = 0; i < vo.getBVO().length; i++) {
for (Map<String, Object> childMap : mapList) { this.appendPseudoColumn(vo);
if(vo.getBVO()[i].getCrowno().equals(childMap.get("crowno"))){
vo.getBVO()[i].setNnum(new UFDouble((Double)childMap.get("nnum"))); // 处理子列表先判断是否为有效列表
vo.getBVO()[i].setFprocessjudge(((Double)childMap.get("fprocessjudge")).intValue()); Object childrenObj = itemMap.get("children");
vo.getBVO()[i].setStatus(VOStatus.UPDATED); if (!(childrenObj instanceof List)) {
} continue;
} }
List<Map<String, Object>> mapList = (List<Map<String, Object>>) childrenObj;
if (mapList.isEmpty()) {
continue;
}
// 处理BVO数组先判断数组是否为null
ReportItemVO[] bvos = vo.getBVO();
if (bvos == null) {
continue;
}
for (int i = 0; i < bvos.length; i++) {
ReportItemVO bvo = bvos[i];
// 跳过null的BVO
if (bvo == null) {
continue;
}
// 校验BVO的crowno是否为必填不为null
String bvoCrowno = bvo.getCrowno();
if (bvoCrowno == null) {
continue;
}
for (Map<String, Object> childMap : mapList) {
// 校验childMap的crowno是否为必填存在且不为null
if (childMap == null || !childMap.containsKey("crowno") || childMap.get("crowno") == null) {
continue;
}
// 比较crowno是否匹配
if (!bvoCrowno.equals(childMap.get("crowno"))) {
continue;
}
// 匹配成功更新子项字段存在且不为null才赋值
bvo.setStatus(VOStatus.UPDATED);
// 子项数量
if (childMap.containsKey("nnum") && childMap.get("nnum") instanceof Double) {
bvo.setNnum(new UFDouble((Double) childMap.get("nnum")));
}
// 处理判断状态
if (childMap.containsKey("fprocessjudge") && childMap.get("fprocessjudge") instanceof Double) {
bvo.setFprocessjudge(((Double) childMap.get("fprocessjudge")).intValue());
} }
} }
} }
} }
} }