//plist是List<Object[]> plist = cancelDAO.proTotal(handbookCode);// 每成品出口总量
for (Iterator<Object[]> pit = plist.iterator(); pit.hasNext();) {// 每成品出口总量
System.out.println(deng+"| 大循环 begin|="+sf.format(new Date()));
Object[] pobj = pit.next();
Long serialnum = Long.valueOf(pobj[1].toString());// 成品货号
double exWeight = Double.valueOf((pobj[2]==null?0:pobj[2]).toString());// 成品出口总数
gw=ftcCusCustomsDAO.findgg3(handbookCode, serialnum,pobj[0].toString());
exWeight+=gw;
for (Iterator<Object[]> p = pslist.iterator(); p.hasNext();) {// 每成品出口总量
Object[] ps = p.next();
Long serialnum1 = Long.valueOf(ps[1].toString());// 成品货号1
Long sequenceNumber1 = Long.valueOf(ps[3].toString());// 料件货号1
if (serialnum.equals(serialnum1)&& sequenceNumber.equals(sequenceNumber1)) {
String sort = ps[7].toString();
String sortId = ps[6].toString();
Double sweight = Double.valueOf((ps[4]==null?0:ps[4]).toString());
double wasteRate = Double.valueOf((ps[5]==null?0:ps[5]).toString());// 备案无形损耗率(实际上数据是备案损耗率)
// System.out.println(ps[2]+":"+sweight);
double fwasteRate = 0d;
double wastWei = 0d;
Double sinWaste = null;
double wasteRateRand = 0;// 随机损耗率
// 其实就是取得FtcPactWaste表中的实际损耗率
if (sweight > 0) { boolean wasteFlag = true;// 是否存在保存的损耗
for (Iterator<FtcPactWaste> wasteIt = wasteList
.iterator(); wasteIt.hasNext();) {
FtcPactWaste ftcPactWaste = wasteIt.next();
Long serialnum2 = ftcPactWaste
.getSerialnum();// 成品货号1
Long sequenceNumber2 = ftcPactWaste
.getSequenceNumber();// 料件货号1 if (serialnum.equals(serialnum2)&& sequenceNumber.equals(sequenceNumber2)) {
wasteFlag = false;
wasteRateRand = ftcPactWaste.getWasteRateFact();// 损耗率
fwasteRate = wasteRateRand;
wastWei = ftcPactWaste.getAerWeight();// 损耗数量---无形损耗重
cancel.setRe1("0");
wasteIt.remove();
break;
}
} if (wasteFlag) {// 没有保存的损耗在此计算
if (wasteRate > 0) {// 备案损耗率
/*
 * 启艺随即损耗的算法
 */
// wasteRate = wasteRate * 0.01;
// wasteRateRand =
// RandomValue.randNum(wasteRate - 0.01,
// wasteRate, 5);
// wastWei = (sweight / (1 -
// wasteRateRand)) - sweight;// 随机损耗数量
cancel.setRe1("1");
} else {
cancel.setRe1("0");
}
} canWeight = canWeight + sweight;// 出口料件合计
sinWaste = sweight / FormatDouble.format(exWeight,2);// 单耗
sinWaste = FormatDouble.format(sinWaste, hxws);// 核销时的位数根据公司编号查,保存到数据库
sweight = FormatDouble.format(sweight, 2); wastWei = FormatDouble.format(wastWei, 2); wasteTotal += wastWei;// 损耗合计
FtcPactWaste ftcPactWaste = new FtcPactWaste();
ftcPactWaste.setPactId(pactId);
ftcPactWaste.setRecordCode(handbookCode);
ftcPactWaste.setProname(pobj[0].toString());
ftcPactWaste.setSerialnum(serialnum);
ftcPactWaste.setStuffName(ps[2].toString());
ftcPactWaste.setSequenceNumber(sequenceNumber);
ftcPactWaste.setWasteRate(wasteRate);
ftcPactWaste.setWasteRateFact(wasteRateRand);
ftcPactWaste.setStuffWeight(sweight);
ftcPactWaste.setAerWeight(wastWei);
ftcPactWaste.setSort(sort);
ftcPactWaste.setSortId(sortId);
proWaste.add(ftcPactWaste);
} else {
sweight = null;
}

if (size < max && size >= min) {// 显示7个
if (setCan == zero) {
cancel.setSerialnum1(serialnum1);
cancel.setTotalWeight1(sweight);
cancel.setSinRate1(sinWaste);
cancel.setFwasteRate1(fwasteRate);
if(sort.equals("辅料")){
cancel.setSinRate8(99.9);
}
} else if (setCan == one) {
cancel.setSerialnum2(serialnum1);
cancel.setTotalWeight2(sweight);
cancel.setSinRate2(sinWaste);
cancel.setFwasteRate2(fwasteRate);
if(sort.equals("辅料")){
cancel.setSinRate8(99.9);
}
} else if (setCan == two) {
cancel.setSerialnum3(serialnum1);
cancel.setTotalWeight3(sweight);
cancel.setSinRate3(sinWaste);
cancel.setFwasteRate3(fwasteRate);
if(sort.equals("辅料")){
cancel.setSinRate8(99.9);
}
} else if (setCan == three) {
cancel.setSerialnum4(serialnum1);
cancel.setTotalWeight4(sweight);
cancel.setSinRate4(sinWaste);
cancel.setFwasteRate4(fwasteRate);
if(sort.equals("辅料")){
cancel.setSinRate8(99.9);
}
} else if (setCan == four) {
cancel.setSerialnum5(serialnum1);
cancel.setTotalWeight5(sweight);
cancel.setSinRate5(sinWaste);
cancel.setFwasteRate5(fwasteRate);
if(sort.equals("辅料")){
cancel.setSinRate8(99.9);
}
} else if (setCan == five) {
cancel.setSerialnum6(serialnum1);
cancel.setTotalWeight6(sweight);
cancel.setSinRate6(sinWaste);
cancel.setFwasteRate6(fwasteRate);
if(sort.equals("辅料")){
cancel.setSinRate8(99.9);
}
} else if (setCan == six) {
cancel.setSerialnum7(serialnum1);
cancel.setTotalWeight7(sweight);
cancel.setSinRate7(sinWaste);
cancel.setFwasteRate7(fwasteRate);
if(sort.equals("辅料")){
cancel.setSinRate8(99.9);
}
}
}
p.remove();
break;
}
}
if (size >= min){
setCan++;
}
size++;
System.out.println(deng+"| 大循环 end|="+sf.format(new Date())+"\n-----------------------");

}