遍历List中的Map集合

来源:互联网 发布:京东下单软件 编辑:程序博客网 时间:2024/06/05 15:41
// list 是传入的表身数据
List<TfPss> list = new ArrayList<TfPss>();

for(int i=0;i<mfPssWithBLOBs.getParams().size();i++){
TfPss tfPss= new TfPss();
BeanUtils.copyProperties(mfPssWithBLOBs.getParams().get(i), tfPss);
list.add(tfPss);
}
//listFlg   是用于前台出数量标红或标蓝返回的集合
List<PurchaseReturnBean> listFlg = new ArrayList<PurchaseReturnBean>();
//作为标识,在进行存盘前,判断单据数量校验是否通过
int okFlg = 0;
// 遍历集合   校验退回单与进货单数量是否符合
for (int i = 0; i < list.size(); i++) {
PurchaseReturnBean purchaseReturnBean = new PurchaseReturnBean();
// 验证数量
String sqlId1  ="com.ifm.mappers.purchase.qtyCheck.qtyCheck";
double tal=0;
//如果有来源单  验证来源单的可退回量
if(list.get(i).getOsNo() != null && !"".equals(list.get(i).getOsNo())){
Map<String, Object> map1 = new HashMap<>();

//验证前置单据可用数量 = 单据数量-已退回量-未审核已退回量+这张单据的数量
map1.put("OS_NO", list.get(i).getOsNo());
map1.put("preItm", list.get(i).getPreItm());
map1.put("PS_NO", mfPssWithBLOBs.getPsNo());
tal = commonService.getOne(sqlId1, map1);

if (tal < Double.valueOf(list.get(i).getQty().toString())) {
purchaseReturnBean.setQtyFlg("1");
okFlg++;
}
}
listFlg.add(purchaseReturnBean);

}

// 退回单数量附和进货单数量,校验库存数量
if (okFlg > 0) {
json.setList(listFlg);
json.setMsg(XmlMapperLoader.getPmtmap().get("sys_check_backQty"));//"插入失败,退回数量大于进货单数量!"
return json.success(false);
}else{
// 创建一条sql,根据品号,批号,仓库查询所有符合条件的 库存数量
String sqlId = "com.ifm.mappers.purchase.incomingBack.getBatRec1";
// 创建一个list 把传入数据的list中的品号+批号+仓库 放入list 作为查询的参数
List<String> list1 = new ArrayList<String>();
for(int i=0;i<list.size();i++){
for(int j=i+1;j<list.size();j++){
if(list.get(i).getPrdNo().equals(list.get(j).getPrdNo())
&&  list.get(i).getBatNo().equals(list.get(j).getBatNo())
&& list.get(i).getWh().equals(list.get(j).getWh())){
list.get(i).setQty(BigDecimal.valueOf(
Double.parseDouble(list.get(i).getQty().toString())+
Double.parseDouble(list.get(j).getQty().toString())));
list.remove(j);
j-=1;


}

}
list1.add(list.get(i).getPrdNo()+list.get(i).getBatNo()+list.get(i).getWh());
}
Map<String, Object> map = new HashMap<>();
map.put("list1",list1 );
//查寻出所有符合条件的产品
List<BatRec1> list2= commonService.getList(sqlId, map);
//将查出产品放入map中
Map<String, Object> map1 = new HashMap<>();
for (int i = 0; i < list2.size(); i++) {
map1.put(list2.get(i).getPrdNo()+list2.get(i).getBatNo()+list2.get(i).getWh(),list2.get(i).getQty());
}
//用传入的数据与查询出的数据比较,校验库存
for (int i = 0; i < list.size(); i++) {
if(map1.get(list.get(i).getPrdNo()+list.get(i).getBatNo()+list.get(i).getWh())==null
|| Double.valueOf(map1.get(list.get(i).getPrdNo()+list.get(i).getBatNo()+list.get(i).getWh()).toString())<Double.valueOf(list.get(i).getQty().toString())){
PurchaseReturnBean purchaseReturnBean = new PurchaseReturnBean();
purchaseReturnBean.setPrdNo(list.get(i).getPrdNo());
purchaseReturnBean.setQtyFlg("2");
listFlg.add(purchaseReturnBean);
okFlg++;
}
}
}

if (okFlg > 0) {
json.setList(listFlg);
json.setMsg(XmlMapperLoader.getPmtmap().get("sys_check_BAT_REC1_qty"));//正在生成出库通知单"插入失败,退回数量库存不足!");
return json.success(false);
} else {
boo=mfPssPBService.insert(mfPssWithBLOBs, userinfo.getSessionUsername(), json)==1;
}

原创粉丝点击