|
@@ -574,6 +574,15 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
fabricPoOrder.getId().equalsIgnoreCase(e.getParentId())).collect(Collectors.toList());
|
|
|
fabricPoOrder.setFabricPoOrderInList(tmpFabricPoOrderInList);
|
|
|
|
|
|
+ // 设置仓库库存
|
|
|
+ List<FabricPoOrderOut> curOutList = new ArrayList<>();
|
|
|
+ fabricPoOrder.setFabricPoOrderOutList(curOutList);
|
|
|
+ List<FabricPoOrderOut> findPoOrderStockList = poOrderStockList.stream().filter(e->
|
|
|
+ fabricPoOrder.getId().equalsIgnoreCase(e.getParentId())).collect(Collectors.toList());
|
|
|
+ if (oConvertUtils.listIsNotEmpty(findPoOrderStockList)) {
|
|
|
+ curOutList.addAll(findPoOrderStockList);
|
|
|
+ }
|
|
|
+
|
|
|
// 设置被其他委外订单使用信息
|
|
|
List<FabricPoOrderOut> findFabricPoOrderOutList = fabricPoOrderOutList.stream().filter(e->
|
|
|
oConvertUtils.getString(e.getCInvCode()).equals(oConvertUtils.getString(fabricPoOrder.getCInvCode())) &&
|
|
@@ -596,13 +605,8 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
}
|
|
|
|
|
|
}
|
|
|
- // 设置仓库库存
|
|
|
- List<FabricPoOrderOut> findPoOrderStockList = poOrderStockList.stream().filter(e->
|
|
|
- fabricPoOrder.getId().equalsIgnoreCase(e.getParentId())).collect(Collectors.toList());
|
|
|
- if (oConvertUtils.listIsNotEmpty(findPoOrderStockList)) {
|
|
|
- findFabricPoOrderOutList.addAll(findPoOrderStockList);
|
|
|
- }
|
|
|
- fabricPoOrder.setFabricPoOrderOutList(findFabricPoOrderOutList);
|
|
|
+ curOutList.addAll(findFabricPoOrderOutList);
|
|
|
+
|
|
|
}
|
|
|
ret.setFabricPoOrderList(fabricPoOrderList);
|
|
|
}
|
|
@@ -780,7 +784,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
}
|
|
|
//获取委外订单运费发票金额
|
|
|
List<FabricCostInvoice> fabricCostInvoiceList3 = fabricLossMapper.getOmInvoiceMoneyYfList(code);
|
|
|
- Double dMoneyYf = fabricCostInvoiceList3.stream().mapToDouble(FabricCostInvoice::getIMoney).sum(); // 运费总金额
|
|
|
+ //Double dMoneyYf = fabricCostInvoiceList3.stream().mapToDouble(FabricCostInvoice::getIMoney).sum(); // 运费总金额
|
|
|
fabricCostInvoiceList.addAll(fabricCostInvoiceList3);
|
|
|
// 织、染、印排序
|
|
|
fabricCostInvoiceList.forEach(e->{
|
|
@@ -801,11 +805,11 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
fabricCostInvoiceList.addAll(inoutCostList);
|
|
|
|
|
|
// 第一行转出成本减去运费发票
|
|
|
- Optional<FabricCostInvoice> findOutInvoiceOpt = inoutCostList.stream().filter(e->"转出成本".equalsIgnoreCase(e.getCBusType())).findFirst();
|
|
|
- if (findOutInvoiceOpt.isPresent()){
|
|
|
- FabricCostInvoice findOutInvoice = findOutInvoiceOpt.get();
|
|
|
- findOutInvoice.setIMoney(DoubleOperation.sub(findOutInvoice.getIMoney(),dMoneyYf));
|
|
|
- }
|
|
|
+// Optional<FabricCostInvoice> findOutInvoiceOpt = inoutCostList.stream().filter(e->"转出成本".equalsIgnoreCase(e.getCBusType())).findFirst();
|
|
|
+// if (findOutInvoiceOpt.isPresent()){
|
|
|
+// FabricCostInvoice findOutInvoice = findOutInvoiceOpt.get();
|
|
|
+// findOutInvoice.setIMoney(DoubleOperation.sub(findOutInvoice.getIMoney(),dMoneyYf));
|
|
|
+// }
|
|
|
// 设置保存的无税金额
|
|
|
if (editData != null){
|
|
|
List<FabricCostInvoice> costInvoiceList = editData.getFabricCostInvoiceList();
|
|
@@ -904,6 +908,12 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ // 其他入库的,匹配本计划号的排前面
|
|
|
+ List<FabricCommonIn> otherInList1 = new ArrayList<>();
|
|
|
+ otherInList1.addAll(otherInList.stream().filter(e->oConvertUtils.getString(e.getCPlanCode()).indexOf(code)>-1).collect(Collectors.toList()));
|
|
|
+ otherInList1.addAll(otherInList.stream().filter(e->oConvertUtils.getString(e.getCPlanCode()).indexOf(code)==-1).collect(Collectors.toList()));
|
|
|
+ otherInList = otherInList1;
|
|
|
+
|
|
|
// 设置非本次委外加工出入库成本
|
|
|
List<FabricMoOrderCK> findOutList = rowOutList.stream().filter(e->e.getIQuantityOut()!=0).collect(Collectors.toList());
|
|
|
List<FabricMoOrderCK> calCkList = new ArrayList<>();
|
|
@@ -936,11 +946,12 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
bFind = false;
|
|
|
for (FabricOMOrder omOrder : omOrderList){
|
|
|
// 已经设置过的忽略
|
|
|
- if (omOrder.getFabricMoOrderCKList() != null){
|
|
|
- break;
|
|
|
+ if (omOrder.getFabricMoOrderRKList() != null){
|
|
|
+ continue;
|
|
|
}
|
|
|
// 不存在未算成本的出库单
|
|
|
- if (rowOutList.stream().filter(e->e.getIQuantityOut()>0&&omOrder.getMODetailsID().indexOf(e.getMODetailsID().toString())>-1).count() == 0) {
|
|
|
+ if (rowOutList.stream().filter(e->DoubleOperation.mul(e.getIQuantityOut(),1.0,4)>0&&
|
|
|
+ omOrder.getMODetailsID().indexOf(e.getMODetailsID().toString())>-1).count() == 0) {
|
|
|
bFind = true;
|
|
|
// 设置订单出库明细
|
|
|
List<FabricMoOrderCK> findCkList = calCkList.stream().filter(e -> omOrder.getMODetailsID().indexOf(e.getMODetailsID().toString()) > -1).collect(Collectors.toList());
|
|
@@ -981,6 +992,16 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
}
|
|
|
|
|
|
}while(bFind);
|
|
|
+
|
|
|
+ // 没计算成本的设置为0
|
|
|
+ for (FabricMoOrderCK item : calCkList){
|
|
|
+ if (item.getIMoney() == null){
|
|
|
+ item.setIMoney(0.0);
|
|
|
+ }
|
|
|
+ if (item.getIPrice() == null){
|
|
|
+ item.setIPrice(0.0);
|
|
|
+ }
|
|
|
+ }
|
|
|
// 设置没计算成本的内容
|
|
|
for (FabricOMOrder omOrder : omOrderList){
|
|
|
if (omOrder.getFabricMoOrderCKList() == null){
|
|
@@ -1160,7 +1181,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
}
|
|
|
int deep = 0;// 查询深度
|
|
|
// 获取物业原始入库单信息
|
|
|
- while (assemVouchsInvIdList.stream().filter(e->"转换入库".equalsIgnoreCase(e.getCBusType())).count()>0 && deep < 10){
|
|
|
+ while (assemVouchsInvIdList.stream().filter(e->"转换入库".equalsIgnoreCase(e.getCBusType())).count()>0 && deep < 5){
|
|
|
// 获取转换入库物料id
|
|
|
List<String> invIdList = assemVouchsInvIdList.stream().filter(e->"转换入库".equalsIgnoreCase(e.getCBusType())).map(FabricAssemVouchsOrgIn::getCInvIdAfter).collect(Collectors.toList());
|
|
|
// 获取转换前入入库内容
|
|
@@ -1393,7 +1414,55 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
moOrderCKList.addAll(moOrderCKList19);
|
|
|
// 根据采购订单轮询,设置分配数量、余纱、损耗
|
|
|
List<FabricPoOrder> poOrderList = ret.getFabricPoOrderList();
|
|
|
+ // 计算每行入库被委外使用的数量,余纱数量为入库-使用,去掉余纱链接多余数量
|
|
|
+ List<FabricMoOrderCK> cpCkList = JSON.parseArray(JSON.toJSONString(moOrderCKList), FabricMoOrderCK.class);
|
|
|
+ for (FabricPoOrder poOrder : poOrderList){
|
|
|
+ Double dOutSum = 0.0;
|
|
|
+ if (oConvertUtils.listIsNotEmpty(poOrder.getFabricPoOrderInList())) {
|
|
|
+ for (FabricPoOrderIn orderIn : poOrder.getFabricPoOrderInList()) {
|
|
|
+ Double dInLeft = orderIn.getIQuantity(); // 入库剩余数量
|
|
|
+ for (FabricMoOrderCK ck : cpCkList){
|
|
|
+ if (!ck.getInvOutId().equalsIgnoreCase(orderIn.getInvId()) &&
|
|
|
+ !ck.getCSourceInvId().equalsIgnoreCase(orderIn.getInvId())){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ Double dCurOutSum = DoubleOperation.sub(ck.getIQuantityOut(),ck.getITempUseSum()); // 出库单出库数量
|
|
|
+ if (dCurOutSum<=0){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ Double dRealOut = Math.min(dInLeft,dCurOutSum);// 对比入库单,本条出库数量
|
|
|
+ ck.setITempUseSum(DoubleOperation.add(ck.getITempUseSum(),dRealOut));// 出库累计数量
|
|
|
+ dInLeft = DoubleOperation.sub(dInLeft,dRealOut); // 入库剩余数量
|
|
|
+ dOutSum = DoubleOperation.add(dOutSum, dRealOut);
|
|
|
+ if (dInLeft<=0){
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ Double dLeft = DoubleOperation.sub(poOrder.getIQuantityIn(), dOutSum);
|
|
|
|
|
|
+ if (oConvertUtils.listIsNotEmpty(poOrder.getFabricPoOrderOutList() )){
|
|
|
+ int index = 0;
|
|
|
+ Double dCalLeft = 0.0;
|
|
|
+ for (;index<poOrder.getFabricPoOrderOutList().size();index++){
|
|
|
+ FabricPoOrderOut orderOut = poOrder.getFabricPoOrderOutList().get(index);
|
|
|
+ dCalLeft = DoubleOperation.add(dCalLeft, orderOut.getIQuantity());
|
|
|
+ if (dCalLeft>dLeft){
|
|
|
+ Double diff = DoubleOperation.sub(dCalLeft, dLeft);
|
|
|
+ orderOut.setIQuantity(DoubleOperation.sub(orderOut.getIQuantity(),diff));
|
|
|
+ if (orderOut.getIQuantity() == 0){
|
|
|
+ index--;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ while (poOrder.getFabricPoOrderOutList().size()>index+1){
|
|
|
+ poOrder.getFabricPoOrderOutList().remove(poOrder.getFabricPoOrderOutList().size()-1);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
/*
|
|
|
for (FabricPoOrder poOrder : poOrderList){
|
|
|
Double dOutSum = 0.0;
|
|
@@ -1645,8 +1714,14 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
}
|
|
|
// 销售出库和成衣出库
|
|
|
List<FabricMoOrderCK> otherOutList = new ArrayList<>();
|
|
|
- otherOutList.addAll(fabricLossMapper.getOmOutList19(code));// 成衣材料出库
|
|
|
- otherOutList.addAll(fabricLossMapper.getSaleOutList(code));// 销售出库
|
|
|
+ List<FabricMoOrderCK> outList1 = fabricLossMapper.getOmOutList19(code);// 成衣材料出库
|
|
|
+ if (oConvertUtils.listIsNotEmpty(outList1)){
|
|
|
+ otherOutList.addAll(outList1);
|
|
|
+ }
|
|
|
+ outList1 = fabricLossMapper.getSaleOutList(code);// 销售出库
|
|
|
+ if (oConvertUtils.listIsNotEmpty(outList1)){
|
|
|
+ otherOutList.addAll(outList1);
|
|
|
+ }
|
|
|
allOutList.addAll(otherOutList);
|
|
|
allOutList.forEach(e->{
|
|
|
if (oConvertUtils.isEmpty(e.getCSourceInvId())) {
|