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) {
// 先判断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) {
if(itemMap.get("id").equals(vo.getHVO().getPk_reportbill())){
//nchecknum 检验主数量
//ncheckastnum 检验数量
//neliginum 合格主数量
//neligiastnum 合格数量
//nuneliginum 不合格主数量
//nuneligiastnum 不合格数量
vo.getHVO().setStatus(VOStatus.UPDATED);
// 检验主数量
vo.getHVO().setNchecknum(new UFDouble((Double)itemMap.get("nchecknum")));
// 检验数量
// 校验itemMap的id是否为必填存在且不为null
if (itemMap == null || !itemMap.containsKey("id") || itemMap.get("id") == null) {
continue;
}
// 比较id是否匹配双方都已校验非null
if (!itemMap.get("id").equals(pkReportbill)) {
continue;
}
// 匹配成功更新状态
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")));
// 合格主数量
}
// 合格主数量
if (itemMap.containsKey("neliginum") && itemMap.get("neliginum") instanceof Double) {
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().setNuneligiastnum(new UFDouble((Double)itemMap.get("nuneligiastnum")));
this.appendPseudoColumn(vo);
List<Map<String, Object>> mapList = (List<Map<String, Object>>) itemMap.get("children");
if(!mapList.isEmpty()){
for (int i = 0; i < vo.getBVO().length; i++) {
for (Map<String, Object> childMap : mapList) {
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());
vo.getBVO()[i].setStatus(VOStatus.UPDATED);
}
}
}
// 不合格数量
if (itemMap.containsKey("nuneligiastnum") && itemMap.get("nuneligiastnum") instanceof Double) {
vo.getHVO().setNuneligiastnum(new UFDouble((Double) itemMap.get("nuneligiastnum")));
}
this.appendPseudoColumn(vo);
// 处理子列表先判断是否为有效列表
Object childrenObj = itemMap.get("children");
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());
}
}
}
}
}