diff --git a/ic/src/public/nc/vo/ic/onhand/define/ICBillPickResults.java b/ic/src/public/nc/vo/ic/onhand/define/ICBillPickResults.java
index 14a2af4..72641a0 100644
--- a/ic/src/public/nc/vo/ic/onhand/define/ICBillPickResults.java
+++ b/ic/src/public/nc/vo/ic/onhand/define/ICBillPickResults.java
@@ -34,10 +34,10 @@ import nc.vo.pubapp.util.VORowNoUtils;
*
* 单据现存量捡货结果
*
- * @version 本版本号
- * @since 上一版本号
* @author yangb
+ * @version 本版本号
* @time 2010-4-16 下午01:05:00
+ * @since 上一版本号
*/
public class ICBillPickResults implements Serializable {
@@ -60,7 +60,7 @@ public class ICBillPickResults implements Serializable {
// 精度的工具类
private transient ScaleUtils scale;
- //标识是否为预留拣货
+ // 标识是否为预留拣货
private boolean isResPick = false;
/**
@@ -106,12 +106,12 @@ public class ICBillPickResults implements Serializable {
for (int i = 0; i < this.originbillbodyvos.length; i++) {
bodyvos = this.getPickBodys(i);
if (bodyvos == null || bodyvos.length <= 0) {
- //如果没有拣到,返回originvo,并在备注上提示现存量不足
+ // 如果没有拣到,返回originvo,并在备注上提示现存量不足
this.originbillbodyvos[i].setVnotebody(OnhandRes.getOnhandErro());
retlist.add(this.originbillbodyvos[i]);
continue;
}
- //如果拣货后有对应的数据,根据拣货的结果处理拣货行(bodyvos)上的备注
+ // 如果拣货后有对应的数据,根据拣货的结果处理拣货行(bodyvos)上的备注
this.processBodyNote(this.originbillbodyvos[i], bodyvos);
CollectionUtils.addArrayToList(retlist, bodyvos);
}
@@ -124,7 +124,7 @@ public class ICBillPickResults implements Serializable {
/**
* 处理表体备注,如果原始行应发数量大于对应拣货结果总结存,报现存量不足
*
- * @param orivo 原始行
+ * @param orivo 原始行
* @param curvos 拣货结果
*/
private void processBodyNote(ICBillBodyVO orivo, ICBillBodyVO[] curvos) {
@@ -185,14 +185,14 @@ public class ICBillPickResults implements Serializable {
bodyvo.setCgeneralbid(null);
bodyvo.setCrowno(null);
bodyvo.setPseudoColumn(bodyvo.getPseudoColumn());
- //bodyvo.setNshouldnum(null);
- //bodyvo.setNshouldassistnum(null);
+ // bodyvo.setNshouldnum(null);
+ // bodyvo.setNshouldassistnum(null);
}
- //因为存在实发数量拣货,需要
+ // 因为存在实发数量拣货,需要
this.synBodyData(bodyvo, lbalances.get(0));
ICLocationVO[] locs = null;
List listlocs = new ArrayList();
- //因为存在实发数量拣货,需清除原有的数量
+ // 因为存在实发数量拣货,需清除原有的数量
bodyvo.setNnum(null);
bodyvo.setNassistnum(null);
for (BalanceOnhandRes balance : lbalances) {
@@ -204,7 +204,7 @@ public class ICBillPickResults implements Serializable {
.adjustNumScale(nnum, bodyvo.getCunitid()));
bodyvo.setNassistnum(this.getScale().adjustNumScale(nassistnum,
bodyvo.getCastunitid()));
- //不处理毛重
+ // 不处理毛重
/*bodyvo.setNgrossnum(NCBaseTypeUtils.add(bodyvo.getNgrossnum(),
balance.getNgrossnum()));*/
locs = balance.getLocatonVO(bodyvo);
@@ -213,27 +213,27 @@ public class ICBillPickResults implements Serializable {
}
CollectionUtils.addArrayToList(listlocs, locs);
}
- //拆行的话需要清空拆出来的行的应发数量
- if(rowCount > 1) {
+ // 拆行的话需要清空拆出来的行的应发数量
+ if (rowCount > 1) {
// bodyvo.setNshouldnum(null);
// bodyvo.setNshouldassistnum(null);
- //78--2025年4月9日19点11分--sdlizheng--实发传输到应发,最后一行做合计处理--start
+ // 78--2025年4月9日19点11分--sdlizheng--实发传输到应发,最后一行做合计处理--start
bodyvo.setNshouldnum(retlist.get(0).getNshouldnum());
bodyvo.setNshouldassistnum(retlist.get(0).getNshouldassistnum());
- //78--2025年4月9日19点11分--sdlizheng--实发传输到应发,最后一行做合计处理--start
+ // 78--2025年4月9日19点11分--sdlizheng--实发传输到应发,最后一行做合计处理--start
}
if (listlocs.size() > 0) {
- //清除重复的孙表数据
+ // 清除重复的孙表数据
// listlocs = clearDuplicatelvo(bodyvo, listlocs);
- //处理修改时 带有孙表的自动拣货 重复出库问题 因为拣货把删除的数据给覆盖了 这里补充上
+ // 处理修改时 带有孙表的自动拣货 重复出库问题 因为拣货把删除的数据给覆盖了 这里补充上
ICLocationVO[] originLocationVos = bodyvo.getLocationVOs();
if (originLocationVos != null && originLocationVos.length > 0) {
- for (ICLocationVO lvo: originLocationVos) {
+ for (ICLocationVO lvo : originLocationVos) {
lvo.setStatus(VOStatus.DELETED);
listlocs.add(lvo);
}
}
- //处理修改时 带有孙表的自动拣货 重复出库问题 因为拣货把删除的数据给覆盖了 这里补充上
+ // 处理修改时 带有孙表的自动拣货 重复出库问题 因为拣货把删除的数据给覆盖了 这里补充上
bodyvo.setLocationVOs(listlocs.toArray((ICLocationVO[]) Array
.newInstance(listlocs.get(0).getClass(), listlocs.size())));
// 检出
@@ -252,33 +252,34 @@ public class ICBillPickResults implements Serializable {
/**
* 预处理拣货结果,序列号拣货的优先,然后在不满足需求的前提下再加上全捡的部分结果
+ *
* @param resList
* @param bodyvo
*/
private List prepare(List resList, ICBillBodyVO bodyvo) {
List ret = new ArrayList();
String snField = SysInitGroupQuery.isSNEnabled() ? ICPubMetaNameConst.PK_SERIALCODE : OnhandSNVO.VSNCODE;
- //行上没有序列号单位,认为不是序列号管理,不做处理
+ // 行上没有序列号单位,认为不是序列号管理,不做处理
Map mapInvvos = new ICBSContext().getInvInfo().getMapInvCalBodyVO(bodyvo.getPk_org(),
- new String[] {bodyvo.getCmaterialvid()});
- if(mapInvvos == null) {
+ new String[]{bodyvo.getCmaterialvid()});
+ if (mapInvvos == null) {
return resList;
}
InvCalBodyVO invvo = mapInvvos.get(bodyvo.getCmaterialvid());
- if(invvo == null || !ValueCheckUtil.isTrue(invvo.getSerialmanaflag())) {
+ if (invvo == null || !ValueCheckUtil.isTrue(invvo.getSerialmanaflag())) {
return resList;
}
// if( bodyvo.getCSnunitid() == null) {
// return resList;
// }
- //序列号需求数量的字段
+ // 序列号需求数量的字段
String snNumReqField = invvo.getSernumunit() != null && invvo.getSernumunit().equals(bodyvo.getCastunitid()) ?
ICPubMetaNameConst.NSHOULDASSISTNUM : ICPubMetaNameConst.NSHOULDNUM;
- //获取序列号拣货捡出的序列号集合
+ // 获取序列号拣货捡出的序列号集合
Set bySNValues = new HashSet();
- //第一次循环,找出序列号拣货捡出的所有序列号
- for(BalanceOnhandRes res : resList) {
- if(res.isBySN()) {
+ // 第一次循环,找出序列号拣货捡出的所有序列号
+ for (BalanceOnhandRes res : resList) {
+ if (res.isBySN()) {
List locs = res.getListsnvo();
if (locs == null || locs.size() <= 0) {
continue;
@@ -288,15 +289,15 @@ public class ICBillPickResults implements Serializable {
}
}
- int needNum = ((UFDouble)bodyvo.getAttributeValue(snNumReqField)).intValue() - bySNValues.size();
+ int needNum = ((UFDouble) bodyvo.getAttributeValue(snNumReqField)).intValue() - bySNValues.size();
ICLocationVO[] blvos = getLVOsBySNField(bodyvo, snField);
Set bsns = VOEntityUtil.getVOsValueSet(blvos, snField);
- int needsnNum = ((UFDouble)bodyvo.getAttributeValue(snNumReqField)).intValue()-blvos.length;
- //第二次循环,对于非序列号拣货捡出的结果,移除其中已有的序列号结果,如果最终结果为空,则移除这条结果
- for(BalanceOnhandRes res : resList) {
- if(res.isBySN()) {
+ int needsnNum = ((UFDouble) bodyvo.getAttributeValue(snNumReqField)).intValue() - blvos.length;
+ // 第二次循环,对于非序列号拣货捡出的结果,移除其中已有的序列号结果,如果最终结果为空,则移除这条结果
+ for (BalanceOnhandRes res : resList) {
+ if (res.isBySN()) {
ret.add(res);
- }else {
+ } else {
List locs = res.getListsnvo();
if (locs == null || locs.size() <= 0) {
ret.add(res);
@@ -304,22 +305,22 @@ public class ICBillPickResults implements Serializable {
}
List list = new ArrayList();
String[] lpks = VOEntityUtil.getVOsValuesNotDel(blvos, ICLocationVO.PK_SERIALCODE, String.class);
- for(OnhandSNVO lvo : locs) {
- if(needsnNum > 0) {
- if(lpks != null) {
- if(lvo.getAttributeValue(snField) != null && !Arrays.asList(lpks).contains(lvo.getPk_serialcode())) {
+ for (OnhandSNVO lvo : locs) {
+ if (needsnNum > 0) {
+ if (lpks != null) {
+ if (lvo.getAttributeValue(snField) != null && !Arrays.asList(lpks).contains(lvo.getPk_serialcode())) {
list.add(lvo);
needsnNum--;
}
} else {
- if(lvo.getAttributeValue(snField) != null) {
+ if (lvo.getAttributeValue(snField) != null) {
list.add(lvo);
needsnNum--;
}
}
}
}
- if(list.size() > 0) {
+ if (list.size() > 0) {
res.setListsnvo(list);
// 根据孙表数量计算表体数量
UFDouble[] sums = VOEntityUtil.sumVOsFieldValuesNotDel(list.toArray(new OnhandSNVO[0]),
@@ -327,7 +328,7 @@ public class ICBillPickResults implements Serializable {
res.setNastnum(new UFDouble(list.size()));
res.setNnum(sums[0]);
ret.add(res);
- }else {
+ } else {
res.setListsnvo(null);
}
}
@@ -337,17 +338,18 @@ public class ICBillPickResults implements Serializable {
/**
* 有的场景会向后台传序列号的编码,不传序列号的主键,这个时候认为没有传孙表数据
+ *
* @param bodyvo
* @param snField
* @return
*/
private ICLocationVO[] getLVOsBySNField(ICBillBodyVO bodyvo, String snField) {
- if(bodyvo.getLocationVOs() == null) {
- return new ICLocationVO[] {};
+ if (bodyvo.getLocationVOs() == null) {
+ return new ICLocationVO[]{};
}
List list = new ArrayList();
- for(ICLocationVO lvo : bodyvo.getLocationVOs()) {
- if(lvo.getAttributeValue(snField) != null && lvo.getStatus() != VOStatus.DELETED) {
+ for (ICLocationVO lvo : bodyvo.getLocationVOs()) {
+ if (lvo.getAttributeValue(snField) != null && lvo.getStatus() != VOStatus.DELETED) {
list.add(lvo);
}
}
@@ -361,7 +363,7 @@ public class ICBillPickResults implements Serializable {
return;
}
// 根据孙表数量计算表体数量
- UFDouble[] sums = VOEntityUtil.sumVOsFieldValuesNotDel(locs, new String[]{ICLocationVO.NNUM,ICLocationVO.NASSISTNUM});
+ UFDouble[] sums = VOEntityUtil.sumVOsFieldValuesNotDel(locs, new String[]{ICLocationVO.NNUM, ICLocationVO.NASSISTNUM});
bodyvo.setNnum(sums[0]);
bodyvo.setNassistnum(sums[1]);
}
@@ -375,7 +377,7 @@ public class ICBillPickResults implements Serializable {
new HashMap>();
if (this.pickresults != null && this.pickresults.size() > 0) {
for (OnhandBalanceResult result : this.pickresults) {
- if(result.getOnhandReq()!= null) {
+ if (result.getOnhandReq() != null) {
this.maponhandbalanceresult.put(result.getOnhandReq().getRowno(),
result);
}
@@ -396,7 +398,7 @@ public class ICBillPickResults implements Serializable {
List lbalance = null;
for (BalanceOnhandRes balance : lbalances) {
key = OnhandVOTools.getAstDimContentKey(balance.getOnhanddimvo());
- key = key+balance.getCgeneralbid()+balance.getOnhanddimvo().getClocationid();
+ key = key + balance.getCgeneralbid() + balance.getOnhanddimvo().getClocationid();
lbalance = mapgroup.get(key);
if (lbalance == null) {
lbalance = new ArrayList();
@@ -420,16 +422,17 @@ public class ICBillPickResults implements Serializable {
// TODO 精度未处理 等待公共方法
ICBSContext context = new ICBSContext();
for (int i = 0; i < bodyvos.length; i++) {
- bodyvos[i].setNcostmny(NCBaseTypeUtils.mult(bodyvos[i].getNcostprice(),
+ UFDouble ncostprice = (bodyvos[i].getNcostprice() == null) ? UFDouble.ZERO_DBL : bodyvos[i].getNcostprice();
+ bodyvos[i].setNcostmny(NCBaseTypeUtils.mult(ncostprice,
bodyvos[i].getNnum()));
bodyvos[i].setNplannedmny(NCBaseTypeUtils.mult(
bodyvos[i].getNplannedprice(), bodyvos[i].getNnum()));
// 实发数量和主数量都为空时,不补业务日期
- if(bodyvos[i].getNnum() == null && bodyvos[i].getNassistnum() == null){
+ if (bodyvos[i].getNnum() == null && bodyvos[i].getNassistnum() == null) {
continue;
}
// 如果业务日期为空的话,补充 modify by guozhq
- if(bodyvos[i].getDbizdate() == null) {
+ if (bodyvos[i].getDbizdate() == null) {
bodyvos[i].setDbizdate(context.getBizDate());
}
}
@@ -449,6 +452,7 @@ public class ICBillPickResults implements Serializable {
// locvo.setNinspaceassistnum(balance.getNastnum());
// locvo.setNingrossnum(balance.getNgrossnum());
// }
+
/**
* 设置捡货后的表体数据
*/
@@ -456,9 +460,9 @@ public class ICBillPickResults implements Serializable {
if (bodyvo == null || res == null) {
return;
}
- //现存量维度的单位和单据界面的辅单位不能同步
- String[] onhandDims=StringUtil.getArrayWithOutStr(OnhandDimVO.getDimContentFields(),
- OnhandDimVO.CASTUNITID );
+ // 现存量维度的单位和单据界面的辅单位不能同步
+ String[] onhandDims = StringUtil.getArrayWithOutStr(OnhandDimVO.getDimContentFields(),
+ OnhandDimVO.CASTUNITID);
OnhandDimVO handdimvo = res.getOnhanddimvo();
for (String field : OnhandDimVO.getDimContentFields()) {
if (field.equals(OnhandDimVO.VCHANGERATE)) {
@@ -473,7 +477,7 @@ public class ICBillPickResults implements Serializable {
}
}
VOEntityUtil.copyVOByVO(bodyvo, onhandDims,
- res.getOnhanddimvo(),onhandDims);
+ res.getOnhanddimvo(), onhandDims);
bodyvo.setCcorrespondtype(res.getCbilltype());
bodyvo.setCcorrespondtranstype(res.getVtrantypecode());