说明:对于一对多关联的两张表(a --> b 是1 --> n),根据b表的某个属性来确定a表的相关属性
示例:header --> details(1 --> n),根据detailsLineStatus来确定headerStatus
public void updateHeaderStatus(Header header) { //查询明细 DetailsSearch search = new DetailsSearch(); search.setHeaderNo(header.getHeaderNo()); Listlist = detailsMapper.find(search); //数量临时变量 int countMax = 0;//最大状态的单据行的个数 int countAll = list.size();//单据行数 String statusMax = Consts.ASN_STATUS_00;//初始化最大状态 //遍历所有明细 for (Details d : list) { //统计状态个数 String detailsLineStatus = d.getDetailsLineStatus(); if (statusMax.compareTo(detailsLineStatus) == 0) { countMax++; } if (statusMax.compareTo(detailsLineStatus) < 0) { statusMax = detailsLineStatus; countMax = 1; } } //计算头状态 String headerStatus = null; if (countAll == countMax) {//所有明细相同状态 headerStatus = statusMax; } else {//明细状态各不相同 if (v1.equals(statusMax)) {//明细某一完全状态 asnStatus = 'v1降一级';//设置头部为某一非完全状态 } else {//其他状态 headerStatus = statusMax; } } header.setHeaderStatus(headerStatus); headerMapper.updateByPrimaryKeySelective(header);}