|
@@ -279,8 +279,10 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
}
|
|
|
}
|
|
|
// 销售出库的物料
|
|
|
- List<FabricPoOrderOut> poSaleOutList = fabricLossMapper.getOmInSaleOutList(invIdList);
|
|
|
- fabricPoOrderOutList.addAll(poSaleOutList);
|
|
|
+ if (invIdList.size()>0) {
|
|
|
+ List<FabricPoOrderOut> poSaleOutList = fabricLossMapper.getOmInSaleOutList(invIdList);
|
|
|
+ fabricPoOrderOutList.addAll(poSaleOutList);
|
|
|
+ }
|
|
|
fabricPoOrderOutList.addAll(poOrderStockList);
|
|
|
// 形态转换物料替换成形态转换前的,并吧转换前物料,数量设置
|
|
|
List<FabricPoOrderOut> tmpOutList = new ArrayList<>();
|
|
@@ -583,6 +585,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
if (fabricOMOrderListAll.size() == 0){
|
|
|
ret.setSuccess(false);
|
|
|
ret.setMessage("本计划没有面料委外,无面损表");
|
|
|
+ return;
|
|
|
}
|
|
|
|
|
|
// 委外订单分组,MODetailsID会包含多个号,逗号分割
|
|
@@ -789,7 +792,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
// 获取材料出库
|
|
|
// 获取委外订单行id,出库物料信息,出库数量
|
|
|
List<FabricMoOrderCK> rowOutList = fabricLossMapper.getOmRowOutList(code);
|
|
|
- rowOutList = rowOutList.stream().filter(e->e.getIQuantityOut()>0).collect(Collectors.toList());
|
|
|
+ rowOutList = rowOutList.stream().filter(e->e.getIQuantityOut()!=0).collect(Collectors.toList());
|
|
|
rowOutList.forEach(e->e.setBCurPlan(false));
|
|
|
// 委外入库
|
|
|
List<FabricMoOrderRK> rowInList = fabricLossMapper.getOmInDetailList(code);
|
|
@@ -816,7 +819,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
setAssemVouchInPriceList(otherInList);
|
|
|
}
|
|
|
// 设置非本次委外加工出入库成本
|
|
|
- List<FabricMoOrderCK> findOutList = rowOutList.stream().filter(e->e.getIQuantityOut()>0).collect(Collectors.toList());
|
|
|
+ List<FabricMoOrderCK> findOutList = rowOutList.stream().filter(e->e.getIQuantityOut()!=0).collect(Collectors.toList());
|
|
|
List<FabricMoOrderCK> calCkList = new ArrayList<>();
|
|
|
for (FabricMoOrderCK outItem : findOutList){
|
|
|
// 先设置本次采购入库的
|
|
@@ -828,7 +831,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
- if (outItem.getIQuantityOut()<=0){
|
|
|
+ if (outItem.getIQuantityOut()==0){
|
|
|
continue;
|
|
|
}
|
|
|
// 设置非本次委外和其他入库的
|
|
@@ -836,7 +839,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
for (FabricCommonIn inItem : findOtherInList){
|
|
|
FabricMoOrderCK calItem = outItem.getByCommonIn(editOmList, inItem);
|
|
|
calCkList.add(calItem);
|
|
|
- if (outItem.getIQuantityOut()<=0){
|
|
|
+ if (outItem.getIQuantityOut()==0){
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
@@ -1175,6 +1178,16 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
for (FabricCommonIn commonIn : commonInList){
|
|
|
if ("转换入库".equalsIgnoreCase(commonIn.getCBusType()) && commonIn.getInvId().equalsIgnoreCase(orgIn.getCInvIdFinal())) {
|
|
|
commonIn.setIPrice(iPrice);
|
|
|
+ if (finRkOpt.isPresent()){
|
|
|
+ FabricMoOrderRK rk = finRkOpt.get();
|
|
|
+ commonIn.setCBusType("委外加工");
|
|
|
+ commonIn.setCCode(rk.getCCode());
|
|
|
+ commonIn.setCPlanCode(rk.getCPlanCode());
|
|
|
+ commonIn.setCVCName(rk.getCVCName());
|
|
|
+ commonIn.setCVenName(rk.getCVenName());
|
|
|
+ commonIn.setCVenAbbName(rk.getCVenAbbName());
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -1261,7 +1274,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
}
|
|
|
}
|
|
|
// 去掉出库为0的数据
|
|
|
- moOrderCKList = moOrderCKList.stream().filter(e->DoubleOperation.sub(e.getIQuantityOut(), e.getITempUseSum()) > 0).collect(Collectors.toList());
|
|
|
+ moOrderCKList = moOrderCKList.stream().filter(e->DoubleOperation.sub(e.getIQuantityOut(), e.getITempUseSum()) != 0).collect(Collectors.toList());
|
|
|
// 获取成衣委外出库内容
|
|
|
List<FabricMoOrderCK> moOrderCKList19 = fabricLossMapper.getOmOutList19(code);
|
|
|
moOrderCKList19.forEach(e->{e.setITempUseSum(0.0);e.setCSourceInvId("");e.setCInvCCodeOut("19");});
|
|
@@ -1306,13 +1319,13 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
continue;
|
|
|
}
|
|
|
// 已经扣减的去掉
|
|
|
- if (DoubleOperation.sub(moOrderCK.getIQuantityOut(),moOrderCK.getITempUseSum())<=0){
|
|
|
+ if (DoubleOperation.sub(moOrderCK.getIQuantityOut(),moOrderCK.getITempUseSum())==0){
|
|
|
continue;
|
|
|
}
|
|
|
FabricPoOrderOut poOrderOut = FabricPoOrderOut.getByMoOut(moOrderCK);
|
|
|
// 批号是期初的,或者普通采购入库的非杂纱,算来源余纱
|
|
|
if ("期初".equalsIgnoreCase(moOrderCK.getCBatchOut()) ||
|
|
|
- "普通采购".equalsIgnoreCase(moOrderCK.getCBusType()) && !"杂纱".equalsIgnoreCase(moOrderCK.getCInvNameOut())){
|
|
|
+ "普通采购".equalsIgnoreCase(moOrderCK.getCBusType()) && !"杂纱".equalsIgnoreCase(moOrderCK.getCInvNameOut())){
|
|
|
lyysList.add(poOrderOut);
|
|
|
}else if ("其他入库".equalsIgnoreCase(moOrderCK.getCBusType()) ||
|
|
|
"转换入库".equalsIgnoreCase(moOrderCK.getCBusType()) ||
|
|
@@ -1407,11 +1420,24 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- // 所有出库-销售出库
|
|
|
- allOutList.addAll(fabricLossMapper.getOmOutList19(code));
|
|
|
- // 所有出库-成衣材料出库
|
|
|
- allOutList.addAll(fabricLossMapper.getSaleOutList(code));
|
|
|
-
|
|
|
+ // 销售出库和成衣出库
|
|
|
+ List<FabricMoOrderCK> otherOutList = new ArrayList<>();
|
|
|
+ otherOutList.addAll(fabricLossMapper.getOmOutList19(code));// 销售出库
|
|
|
+ otherOutList.addAll(fabricLossMapper.getSaleOutList(code));// 成衣材料出库
|
|
|
+ allOutList.addAll(otherOutList);
|
|
|
+ allOutList.forEach(e->e.setCSourceInvId(""));
|
|
|
+
|
|
|
+ // 获取委外订单出库物料入库详情
|
|
|
+ if (otherOutList.size()>0) {
|
|
|
+ List<String> invIdList = new ArrayList<>();
|
|
|
+ otherOutList.forEach(e -> invIdList.add(e.getInvOutId()));
|
|
|
+ List<FabricCommonIn> inList = fabricLossMapper.getInListByInvId(invIdList);
|
|
|
+ inList = getAssemVouchSourceInvId(inList);
|
|
|
+ for (FabricCommonIn item : inList) {
|
|
|
+ List<FabricMoOrderCK> findList = otherOutList.stream().filter(e -> e.getInvOutId().equalsIgnoreCase(item.getInvId())).collect(Collectors.toList());
|
|
|
+ findList.forEach(e -> e.setCSourceInvId(item.getCSourceInvId()));
|
|
|
+ }
|
|
|
+ }
|
|
|
// 入 - 出 : 出大于0 的,是转入;入大于0 的是转出
|
|
|
for (FabricPoOrderIn itemIn : allInList){
|
|
|
Double inLeft = itemIn.getIQuantity();
|
|
@@ -1435,8 +1461,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
List<FabricCostInvoiceDetail> costInvoiceDetailList = new ArrayList<>();
|
|
|
|
|
|
for (FabricMoOrderCK itemOut : allOutList){
|
|
|
- if (itemOut.getIQuantityOut()>0 &&
|
|
|
- itemOut.getIQuantityOut()!=0) {
|
|
|
+ if (DoubleOperation.getScale(itemOut.getIQuantityOut(),4)!=0) {
|
|
|
FabricCostInvoiceDetail costInvoiceDetail = FabricCostInvoiceDetail.get(itemOut,"转入成本");
|
|
|
Optional<FabricCostInvoiceDetail> findOpt = costInvoiceDetailList.stream().filter(e -> e.getId().equalsIgnoreCase(costInvoiceDetail.getId())).findFirst();
|
|
|
if (findOpt.isPresent()) {
|
|
@@ -1476,8 +1501,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
// 转出成本,设置详情
|
|
|
costInvoiceDetailList = new ArrayList<>();
|
|
|
for (FabricPoOrderIn itemIn : allInList){
|
|
|
- if (itemIn.getIQuantity()>0 &&
|
|
|
- DoubleOperation.mul(itemIn.getIQuantity(),itemIn.getIPrice(), 2)!=0) {
|
|
|
+ if (DoubleOperation.mul(itemIn.getIQuantity(),itemIn.getIPrice(), 2)!=0) {
|
|
|
FabricCostInvoiceDetail costInvoiceDetail = FabricCostInvoiceDetail.get(itemIn,"转出成本");
|
|
|
Optional<FabricCostInvoiceDetail> findOpt = costInvoiceDetailList.stream().filter(e->e.getId().equalsIgnoreCase(costInvoiceDetail.getId())).findFirst();
|
|
|
if (findOpt.isPresent()){
|
|
@@ -1511,4 +1535,56 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
return costInvoiceList;
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 设置物料形态转换入库的原始物料编号
|
|
|
+ * findOtherInList - 其他入库数量及单价
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private List<FabricCommonIn> getAssemVouchSourceInvId(List<FabricCommonIn> commonInList){
|
|
|
+
|
|
|
+ commonInList = commonInList.stream().filter(e->"转换入库".equalsIgnoreCase(e.getCBusType())).collect(Collectors.toList());
|
|
|
+ // 如果形态转换物料,转换前入库是转换入库,获取源头入库单
|
|
|
+ List<FabricAssemVouchsOrgIn> assemVouchsInvIdList = new ArrayList<>();// 形态转换物料id
|
|
|
+ for (FabricCommonIn commonIn : commonInList) {
|
|
|
+ FabricAssemVouchsOrgIn orgIn = new FabricAssemVouchsOrgIn();
|
|
|
+ orgIn.setCInvIdFinal(commonIn.getInvId());
|
|
|
+ orgIn.setCInvIdAfter(commonIn.getInvId());
|
|
|
+ orgIn.setCBusType(commonIn.getCBusType());
|
|
|
+ assemVouchsInvIdList.add(orgIn);
|
|
|
+ }
|
|
|
+ // 获取物业原始入库单信息
|
|
|
+ while (assemVouchsInvIdList.stream().filter(e->"转换入库".equalsIgnoreCase(e.getCBusType())).count()>0){
|
|
|
+ // 获取转换入库物料id
|
|
|
+ List<String> invIdList = assemVouchsInvIdList.stream().filter(e->"转换入库".equalsIgnoreCase(e.getCBusType())).map(FabricAssemVouchsOrgIn::getCInvIdAfter).collect(Collectors.toList());
|
|
|
+ // 获取转换前入入库内容
|
|
|
+ List<FabricAssemVouchsOrgIn> orgInList = fabricLossMapper.getAssemVouchsOrgInList(invIdList);
|
|
|
+ if (orgInList.size() == 0){
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ for (FabricAssemVouchsOrgIn item : assemVouchsInvIdList){
|
|
|
+ if ("转换入库".equalsIgnoreCase(item.getCBusType())){
|
|
|
+ Optional<FabricAssemVouchsOrgIn> findOpt = orgInList.stream().filter(e->e.getCInvIdAfter().equals(item.getCInvIdAfter())).findFirst();
|
|
|
+
|
|
|
+ if (findOpt.isPresent()){
|
|
|
+ FabricAssemVouchsOrgIn findItem = findOpt.get();
|
|
|
+ item.setCBusType(findItem.getCBusType());
|
|
|
+ item.setCTableName(findItem.getCTableName());
|
|
|
+ item.setCInvIdAfter(findItem.getCInvIdBefore());
|
|
|
+ item.setAutoId(findItem.getAutoId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for (FabricCommonIn commonIn : commonInList){
|
|
|
+ Optional<FabricAssemVouchsOrgIn> findOpt = assemVouchsInvIdList.stream().filter(e->e.getCInvIdFinal().equals(commonIn.getInvId())).findFirst();
|
|
|
+ if (findOpt.isPresent()){
|
|
|
+ commonIn.setCSourceInvId(findOpt.get().getCInvIdAfter());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return commonInList;
|
|
|
+
|
|
|
+ }
|
|
|
}
|