|
@@ -292,7 +292,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
fabricPoOrderLyys.setIQuantityIn(bdVal.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
}
|
|
|
*/
|
|
|
- fabricPoOrderList.add(getPoOrderLyys(code));
|
|
|
+ fabricPoOrderList.addAll(getPoOrderLyys(code));
|
|
|
// 采购入库-其他入库的纱
|
|
|
/*
|
|
|
fabricPoOrderTempList = fabricLossMapper.getPurchaseListOtherInList(code);
|
|
@@ -308,7 +308,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
BigDecimal bdVal = new BigDecimal(fabricPoOrderQtrk.getIQuantityIn());
|
|
|
fabricPoOrderQtrk.setIQuantityIn(bdVal.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
}*/
|
|
|
- fabricPoOrderList.add(getPoOrderQtrk(code));
|
|
|
+ fabricPoOrderList.addAll(getPoOrderQtrk(code));
|
|
|
ret.setFabricPoOrderList(fabricPoOrderList);
|
|
|
// 委外订单所有
|
|
|
List<FabricOMOrder> fabricOMOrderListAll = fabricLossMapper.getOmOrderListAll(code);
|
|
@@ -351,9 +351,9 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
}
|
|
|
|
|
|
if ("02".equals(fabricOMOrder.getCComUnitCode())){ // 根
|
|
|
- fabricOMOrder.setIQuantityPCS(fabricOMOrder.getIQuantity());
|
|
|
+ fabricOMOrder.setIQuantityPCS(fabricOMOrder.getIQuantityIn());
|
|
|
}else if ("04".equals(fabricOMOrder.getCComUnitCode())){ // 米
|
|
|
- fabricOMOrder.setIQuantityM(fabricOMOrder.getIQuantity());
|
|
|
+ fabricOMOrder.setIQuantityM(fabricOMOrder.getIQuantityIn());
|
|
|
}
|
|
|
BigDecimal bDLoss = new BigDecimal(dLoss);
|
|
|
fabricOMOrder.setCQuantityLoss(bDLoss.setScale(2, BigDecimal.ROUND_HALF_UP).toString()+"%");
|
|
@@ -445,22 +445,15 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
}
|
|
|
fabricCostInvoiceList = fabricCostInvoiceListOrder;
|
|
|
// 转入成本
|
|
|
- Double d = getInCost(ret.getFabricPoOrderList(), fabricOMOrderListGn, fabricOMOrderListGw);
|
|
|
- FabricCostInvoice fabricCostInvoice = new FabricCostInvoice();
|
|
|
- fabricCostInvoice.setCVCName("转入成本");
|
|
|
- fabricCostInvoice.setIMoney(d);
|
|
|
- fabricCostInvoiceList.add(fabricCostInvoice);
|
|
|
-
|
|
|
+ fabricCostInvoiceList.addAll(getInCost(ret.getFabricPoOrderList(), fabricOMOrderListGn, fabricOMOrderListGw));
|
|
|
// 转出成本
|
|
|
- d = getOutCost(ret.getFabricPoOrderList(), fabricOMOrderListGn, fabricOMOrderListGw);
|
|
|
- fabricCostInvoice = new FabricCostInvoice();
|
|
|
- fabricCostInvoice.setCVCName("转出成本");
|
|
|
- fabricCostInvoice.setIMoney(d);
|
|
|
- fabricCostInvoiceList.add(fabricCostInvoice);
|
|
|
+ fabricCostInvoiceList.addAll(getOutCost(ret.getFabricPoOrderList(), fabricOMOrderListGn, fabricOMOrderListGw));
|
|
|
+
|
|
|
ret.setFabricCostInvoiceList(fabricCostInvoiceList);
|
|
|
// 计算单件成本
|
|
|
Double costInTotal = fabricCostInvoiceList.stream().mapToDouble(FabricCostInvoice::getIMoney).sum();
|
|
|
-
|
|
|
+ BigDecimal dVal = new BigDecimal(costInTotal);
|
|
|
+ ret.setActualMoney(dVal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
BigDecimal bdPriceReal = new BigDecimal(0);
|
|
|
if (ret.getNumber()>0) {
|
|
|
bdPriceReal = new BigDecimal(costInTotal / ret.getNumber());
|
|
@@ -640,17 +633,17 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
* @param code
|
|
|
* @return
|
|
|
*/
|
|
|
- private FabricPoOrder getPoOrderQtrk(String code){
|
|
|
+ private List<FabricPoOrder> getPoOrderQtrk(String code){
|
|
|
// 采购入库-其他入库的纱
|
|
|
List<FabricPoOrderOut> fabricPoOrderTempList = fabricLossMapper.getPurchaseListOtherInList(code);
|
|
|
List<FabricPoOrderOut> fabricPoOrderOutListGroup = new ArrayList<>(); // 根据委外订单号和批号分组
|
|
|
- FabricPoOrder fabricPoOrderQtrk = new FabricPoOrder();
|
|
|
- fabricPoOrderQtrk.setCInvName("其他入库的纱");
|
|
|
- fabricPoOrderQtrk.setIQuantityIn(0.0);
|
|
|
- fabricPoOrderQtrk.setFabricPoOrderOutList(fabricPoOrderOutListGroup);
|
|
|
+// FabricPoOrder fabricPoOrderQtrk = new FabricPoOrder();
|
|
|
+// fabricPoOrderQtrk.setCInvName("其他入库的纱");
|
|
|
+// fabricPoOrderQtrk.setIQuantityIn(0.0);
|
|
|
+// fabricPoOrderQtrk.setFabricPoOrderOutList(fabricPoOrderOutListGroup);
|
|
|
if (fabricPoOrderTempList.size()>0){
|
|
|
for (FabricPoOrderOut item : fabricPoOrderTempList){
|
|
|
- fabricPoOrderQtrk.setIQuantityIn(item.getIQuantity()+fabricPoOrderQtrk.getIQuantityIn());
|
|
|
+// fabricPoOrderQtrk.setIQuantityIn(item.getIQuantity()+fabricPoOrderQtrk.getIQuantityIn());
|
|
|
String cCode = item.getCCode();
|
|
|
String cBatch = item.getCBatch();
|
|
|
Optional<FabricPoOrderOut> findItemOpt = fabricPoOrderOutListGroup.stream().filter(e->
|
|
@@ -670,8 +663,8 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
item.setIMoney(item.getIPrice()*item.getIQuantity());
|
|
|
}
|
|
|
}
|
|
|
- BigDecimal bdVal = new BigDecimal(fabricPoOrderQtrk.getIQuantityIn());
|
|
|
- fabricPoOrderQtrk.setIQuantityIn(bdVal.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
+// BigDecimal bdVal = new BigDecimal(fabricPoOrderQtrk.getIQuantityIn());
|
|
|
+// fabricPoOrderQtrk.setIQuantityIn(bdVal.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
}
|
|
|
// 单价数量保留位数
|
|
|
for (FabricPoOrderOut item : fabricPoOrderOutListGroup){
|
|
@@ -680,7 +673,37 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
bdVal = new BigDecimal(item.getIQuantity());
|
|
|
item.setIQuantity(bdVal.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
}
|
|
|
- return fabricPoOrderQtrk;
|
|
|
+
|
|
|
+ // 去掉批号分组
|
|
|
+ List<FabricPoOrder> fabricPoOrderList = new ArrayList<>();
|
|
|
+ for (FabricPoOrderOut item : fabricPoOrderOutListGroup){
|
|
|
+ String cInvCode = item.getCInvCode();
|
|
|
+ String cColor = item.getCColor();
|
|
|
+ Optional<FabricPoOrder> findOpt = fabricPoOrderList.stream().filter(e->e.getCInvCode().equals(cInvCode) &&
|
|
|
+ e.getCColor().equals(cColor)).findFirst();
|
|
|
+ if (!findOpt.isPresent()){
|
|
|
+ FabricPoOrder orderItem = new FabricPoOrder();
|
|
|
+ orderItem.setCInvName(item.getCInvName()+" "+item.getCColor());
|
|
|
+ orderItem.setCPOID("其他入库");
|
|
|
+ orderItem.setCColor(cColor);
|
|
|
+ orderItem.setCInvCode(cInvCode);
|
|
|
+ orderItem.setOmcVenAbbName(item.getCVenAbbName());
|
|
|
+ orderItem.setIQuantityIn(item.getIQuantity());
|
|
|
+ orderItem.setIQuantityOut(item.getIQuantity());
|
|
|
+ List<FabricPoOrderOut> findOutList = fabricPoOrderOutListGroup.stream().filter(e->e.getCInvCode().equals(cInvCode) &&
|
|
|
+ e.getCColor().equals(cColor)).collect(Collectors.toList());
|
|
|
+ orderItem.setFabricPoOrderOutList(findOutList);
|
|
|
+ fabricPoOrderList.add(orderItem);
|
|
|
+ }else{
|
|
|
+ FabricPoOrder findItem = findOpt.get();
|
|
|
+ findItem.setIQuantityOut(findItem.getIQuantityOut()+item.getIQuantity());
|
|
|
+ findItem.setIQuantityIn(findItem.getIQuantityIn()+item.getIQuantity());
|
|
|
+ if (findItem.getOmcVenAbbName().indexOf(item.getCVenAbbName()) == -1){
|
|
|
+ findItem.setOmcVenAbbName(findItem.getOmcVenAbbName()+","+item.getCVenAbbName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return fabricPoOrderList;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -688,17 +711,17 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
* @param code
|
|
|
* @return
|
|
|
*/
|
|
|
- private FabricPoOrder getPoOrderLyys(String code){
|
|
|
+ private List<FabricPoOrder> getPoOrderLyys(String code){
|
|
|
List<FabricPoOrderOut> fabricPoOrderTempList = fabricLossMapper.getPurchaseListOtherPurInList(code);
|
|
|
List<FabricPoOrderOut> fabricPoOrderOutListGroup = new ArrayList<>(); // 根据委外订单号和批号分组
|
|
|
- FabricPoOrder fabricPoOrderLyys = new FabricPoOrder();
|
|
|
- fabricPoOrderLyys.setCInvName("来源余纱");
|
|
|
- fabricPoOrderLyys.setIQuantityIn(0.0);
|
|
|
- fabricPoOrderLyys.setFabricPoOrderOutList(fabricPoOrderOutListGroup);
|
|
|
+// FabricPoOrder fabricPoOrderLyys = new FabricPoOrder();
|
|
|
+// fabricPoOrderLyys.setCInvName("来源余纱");
|
|
|
+// fabricPoOrderLyys.setIQuantityIn(0.0);
|
|
|
+// fabricPoOrderLyys.setFabricPoOrderOutList(fabricPoOrderOutListGroup);
|
|
|
|
|
|
if (fabricPoOrderTempList.size()>0){
|
|
|
for (FabricPoOrderOut item : fabricPoOrderTempList){
|
|
|
- fabricPoOrderLyys.setIQuantityIn(item.getIQuantity()+fabricPoOrderLyys.getIQuantityIn());
|
|
|
+// fabricPoOrderLyys.setIQuantityIn(item.getIQuantity()+fabricPoOrderLyys.getIQuantityIn());
|
|
|
|
|
|
String cCode = item.getCCode();
|
|
|
String cBatch = item.getCBatch();
|
|
@@ -719,8 +742,8 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
item.setIMoney(item.getIPrice()*item.getIQuantity());
|
|
|
}
|
|
|
}
|
|
|
- BigDecimal bdVal = new BigDecimal(fabricPoOrderLyys.getIQuantityIn());
|
|
|
- fabricPoOrderLyys.setIQuantityIn(bdVal.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
+// BigDecimal bdVal = new BigDecimal(fabricPoOrderLyys.getIQuantityIn());
|
|
|
+// fabricPoOrderLyys.setIQuantityIn(bdVal.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
}
|
|
|
// 获取委外订单出库物料的入库物料信息:包含采购入库、委外入库
|
|
|
List<Map<String,Object>> rowInList = fabricLossMapper.getOmRowInList(code);
|
|
@@ -751,8 +774,38 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
cPlanCode = org.jeecg.modules.system.util.oConvertUtils.stringCut(cPlanCode, ",", "SY", "-");
|
|
|
item.setCPlanCode(cPlanCode);
|
|
|
}
|
|
|
+ // 去掉批号分组
|
|
|
+ List<FabricPoOrder> fabricPoOrderList = new ArrayList<>();
|
|
|
+ for (FabricPoOrderOut item : fabricPoOrderOutListGroup){
|
|
|
+ String cInvCode = item.getCInvCode();
|
|
|
+ String cColor = item.getCColor();
|
|
|
+ Optional<FabricPoOrder> findOpt = fabricPoOrderList.stream().filter(e->e.getCInvCode().equals(cInvCode) &&
|
|
|
+ e.getCColor().equals(cColor)).findFirst();
|
|
|
+ if (!findOpt.isPresent()){
|
|
|
+ FabricPoOrder orderItem = new FabricPoOrder();
|
|
|
+ orderItem.setCInvName(item.getCInvName()+" "+item.getCColor());
|
|
|
+ orderItem.setCPOID("来源余料");
|
|
|
+ orderItem.setCColor(cColor);
|
|
|
+ orderItem.setCInvCode(cInvCode);
|
|
|
+ orderItem.setOmcVenAbbName(item.getCVenAbbName());
|
|
|
+ orderItem.setIQuantityIn(item.getIQuantity());
|
|
|
+ orderItem.setIQuantityOut(item.getIQuantity());
|
|
|
+ List<FabricPoOrderOut> findOutList = fabricPoOrderOutListGroup.stream().filter(e->e.getCInvCode().equals(cInvCode) &&
|
|
|
+ e.getCColor().equals(cColor)).collect(Collectors.toList());
|
|
|
+ orderItem.setFabricPoOrderOutList(findOutList);
|
|
|
+ fabricPoOrderList.add(orderItem);
|
|
|
+ }else{
|
|
|
+ FabricPoOrder findItem = findOpt.get();
|
|
|
+ findItem.setIQuantityOut(findItem.getIQuantityOut()+item.getIQuantity());
|
|
|
+ findItem.setIQuantityIn(findItem.getIQuantityIn()+item.getIQuantity());
|
|
|
+ if (findItem.getOmcVenAbbName().indexOf(item.getCVenAbbName()) == -1){
|
|
|
+ findItem.setOmcVenAbbName(findItem.getOmcVenAbbName()+","+item.getCVenAbbName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- return fabricPoOrderLyys;
|
|
|
+
|
|
|
+ return fabricPoOrderList;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -927,6 +980,11 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
retItem.setCInvNameOut(itemOut.getCInvNameOut());
|
|
|
retItem.setCColorOut(itemOut.getCColorOut());
|
|
|
retItem.setCBatchOut(itemOut.getCBatchOut());
|
|
|
+ if ("普通采购".equals(itemIn.get("cBusType"))){
|
|
|
+ retItem.setCPlanCode(itemIn.get("poCode").toString());
|
|
|
+ }else{
|
|
|
+ retItem.setCPlanCode(itemIn.get("moCode").toString());
|
|
|
+ }
|
|
|
retItem.setMODetailsID(itemOut.getMODetailsID());
|
|
|
BigDecimal bdVal = new BigDecimal(curSum);
|
|
|
retItem.setIQuantity(bdVal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
@@ -962,6 +1020,11 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
retItem.setCInvNameOut(itemOut.getCInvNameOut());
|
|
|
retItem.setCColorOut(itemOut.getCColorOut());
|
|
|
retItem.setCBatchOut(itemOut.getCBatchOut());
|
|
|
+ if ("普通采购".equals(itemIn.get("cBusType"))){
|
|
|
+ retItem.setCPlanCode(itemIn.get("poCode").toString());
|
|
|
+ }else{
|
|
|
+ retItem.setCPlanCode(itemIn.get("moCode").toString());
|
|
|
+ }
|
|
|
retItem.setMODetailsID(itemOut.getMODetailsID());
|
|
|
BigDecimal bdVal = new BigDecimal(curSum);
|
|
|
retItem.setIQuantity(bdVal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
@@ -989,14 +1052,10 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
* @param omOrderListGw - 委外订单国外
|
|
|
* @return
|
|
|
*/
|
|
|
- private Double getOutCost(List<FabricPoOrder> poOrderList, List<FabricOMOrder> omOrderListGn, List<FabricOMOrder> omOrderListGw){
|
|
|
+ private List<FabricCostInvoice> getOutCost(List<FabricPoOrder> poOrderList, List<FabricOMOrder> omOrderListGn, List<FabricOMOrder> omOrderListGw){
|
|
|
// 采购出入库去掉末尾两行:来源余纱、其他入库纱
|
|
|
- List<FabricPoOrder> poOrderListReal = new ArrayList<>();
|
|
|
- if (poOrderList.size()>2){
|
|
|
- poOrderListReal.addAll(poOrderList);
|
|
|
- poOrderListReal.remove(poOrderListReal.size()-1);
|
|
|
- poOrderListReal.remove(poOrderListReal.size()-1);
|
|
|
- }
|
|
|
+ List<FabricPoOrder> poOrderListReal = poOrderList.stream().filter(e->!e.getCPOID().equals("来源余料") &&
|
|
|
+ !e.getCPOID().equals("其他入库")).collect(Collectors.toList());
|
|
|
// 合并所有采购入库+委外入库的物料批次。借用FabricPoOrderIn类
|
|
|
List<FabricPoOrderIn> allInList = new ArrayList<>();
|
|
|
for (FabricPoOrder item : poOrderListReal){
|
|
@@ -1021,6 +1080,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
formatItem.setCBatch(itemIn.getCBatch());
|
|
|
formatItem.setIQuantity(itemIn.getIQuantity());
|
|
|
formatItem.setIPrice(itemIn.getIPrice());
|
|
|
+ formatItem.setCInvName(itemIn.getCInvName());
|
|
|
allInList.add(formatItem);
|
|
|
}
|
|
|
}
|
|
@@ -1038,6 +1098,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
formatItem.setIQuantity(itemIn.getIQuantityIn());
|
|
|
formatItem.setIPrice(itemIn.getIPrice());
|
|
|
formatItem.setCBusType("1"); // 国内
|
|
|
+ formatItem.setCInvName(itemIn.getCInvName()+" "+itemIn.getCColor());
|
|
|
allInList.add(formatItem);
|
|
|
}
|
|
|
}
|
|
@@ -1054,6 +1115,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
formatItem.setIQuantity(itemIn.getIQuantityIn());
|
|
|
formatItem.setIPrice(itemIn.getIPrice());
|
|
|
formatItem.setCBusType("2"); // 国外
|
|
|
+ formatItem.setCInvName(itemIn.getCInvName()+" "+itemIn.getCColor());
|
|
|
allInList.add(formatItem);
|
|
|
}
|
|
|
}
|
|
@@ -1158,16 +1220,38 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- // 计算总转出成本
|
|
|
- Double dTotal = 0.0;
|
|
|
+ List<FabricCostInvoice> costInvoiceList = new ArrayList<>();
|
|
|
+ // 计算总转入成本
|
|
|
for (FabricPoOrderIn itemIn : allInList){
|
|
|
if (itemIn.getIQuantity()>0){
|
|
|
- dTotal += itemIn.getIQuantity()*itemIn.getIPrice();
|
|
|
+ FabricCostInvoice fabricCostInvoice = new FabricCostInvoice();
|
|
|
+ fabricCostInvoice.setCVCName(itemIn.getCInvName());
|
|
|
+ fabricCostInvoice.setCVenAbbName("");
|
|
|
+ fabricCostInvoice.setCBusType("转出成本");
|
|
|
+ BigDecimal bdVal = new BigDecimal(itemIn.getIQuantity()*itemIn.getIPrice()*-1);
|
|
|
+ fabricCostInvoice.setIMoney(bdVal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
+ if (fabricCostInvoice.getIMoney()!=0) {
|
|
|
+ costInvoiceList.add(fabricCostInvoice);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 分组
|
|
|
+ List<FabricCostInvoice> costInvoiceListGroup = new ArrayList<>();
|
|
|
+ for (FabricCostInvoice fabricCostInvoice : costInvoiceList){
|
|
|
+ Optional<FabricCostInvoice> findOpt = costInvoiceListGroup.stream().filter(e->
|
|
|
+ e.getCVCName().equals(fabricCostInvoice.getCVCName()) &&
|
|
|
+ e.getCVenAbbName().equals(fabricCostInvoice.getCVenAbbName())).findFirst();
|
|
|
+ if (findOpt.isPresent()){
|
|
|
+ FabricCostInvoice find = findOpt.get();
|
|
|
+ BigDecimal bdVal = new BigDecimal(find.getIMoney()+fabricCostInvoice.getIMoney());
|
|
|
+ find.setIMoney(bdVal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
+ }else{
|
|
|
+ costInvoiceListGroup.add(fabricCostInvoice);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- BigDecimal bdVal = new BigDecimal(dTotal*-1);
|
|
|
- return bdVal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
|
|
|
+ return costInvoiceListGroup;
|
|
|
|
|
|
}
|
|
|
// 根据文件id,获取文件内容
|
|
@@ -1203,7 +1287,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
List<FabricPoOrder> poOrderList = fabricLoss.getFabricPoOrderList();
|
|
|
if (oConvertUtils.listIsNotEmpty(poOrderList)) {
|
|
|
for (FabricPoOrder poOrder : poOrderList) {
|
|
|
- if (poOrder.getCInvName().equals("来源余纱") || poOrder.getCInvName().equals("其他入库的纱")){
|
|
|
+ if (poOrder.getCPOID().equals("来源余料") || poOrder.getCPOID().equals("其他入库")){
|
|
|
List<FabricPoOrderOut> orderOutList = poOrder.getFabricPoOrderOutList();
|
|
|
if (oConvertUtils.listIsNotEmpty(orderOutList)) {
|
|
|
for (FabricPoOrderOut orderOut : orderOutList) {
|
|
@@ -1231,14 +1315,10 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
* @param omOrderListGw - 委外订单国外
|
|
|
* @return
|
|
|
*/
|
|
|
- private Double getInCost(List<FabricPoOrder> poOrderList, List<FabricOMOrder> omOrderListGn, List<FabricOMOrder> omOrderListGw){
|
|
|
+ private List<FabricCostInvoice> getInCost(List<FabricPoOrder> poOrderList, List<FabricOMOrder> omOrderListGn, List<FabricOMOrder> omOrderListGw){
|
|
|
// 采购出入库去掉末尾两行:来源余纱、其他入库纱
|
|
|
- List<FabricPoOrder> poOrderListReal = new ArrayList<>();
|
|
|
- if (poOrderList.size()>2){
|
|
|
- poOrderListReal.addAll(poOrderList);
|
|
|
- poOrderListReal.remove(poOrderListReal.size()-1);
|
|
|
- poOrderListReal.remove(poOrderListReal.size()-1);
|
|
|
- }
|
|
|
+ List<FabricPoOrder> poOrderListReal = poOrderList.stream().filter(e->!e.getCPOID().equals("来源余料") &&
|
|
|
+ !e.getCPOID().equals("其他入库")).collect(Collectors.toList());
|
|
|
// 合并所有采购入库+委外入库的物料批次。借用FabricPoOrderIn类
|
|
|
List<FabricPoOrderIn> allInList = new ArrayList<>();
|
|
|
for (FabricPoOrder item : poOrderListReal){
|
|
@@ -1313,6 +1393,10 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
outCopy.setCColorOut(omOut.getCColorOut());
|
|
|
outCopy.setIQuantity(omOut.getIQuantity());
|
|
|
outCopy.setIPrice(omOut.getIPrice());
|
|
|
+ outCopy.setCVCName(omOrder.getCVCName());
|
|
|
+ outCopy.setCVenAbbName(omOrder.getCVenAbbName());
|
|
|
+ outCopy.setCPlanCode(omOut.getCPlanCode());
|
|
|
+
|
|
|
omOutListAll.add(outCopy);
|
|
|
}
|
|
|
|
|
@@ -1341,16 +1425,39 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
}
|
|
|
itemOut.setIQuantity(outLeft);
|
|
|
}
|
|
|
+ List<FabricCostInvoice> costInvoiceList = new ArrayList<>();
|
|
|
+
|
|
|
// 计算总转入成本
|
|
|
- Double dTotal = 0.0;
|
|
|
for (FabricMoOrderCK itemOut : omOutListAll){
|
|
|
if (itemOut.getIQuantity()>0){
|
|
|
- dTotal += itemOut.getIQuantity()*itemOut.getIPrice();
|
|
|
+ FabricCostInvoice fabricCostInvoice = new FabricCostInvoice();
|
|
|
+ fabricCostInvoice.setCVCName(itemOut.getCVCName());
|
|
|
+ fabricCostInvoice.setCVenAbbName(itemOut.getCPlanCode()+" "+itemOut.getCVenAbbName());
|
|
|
+ fabricCostInvoice.setCBusType("转入成本");
|
|
|
+ BigDecimal bdVal = new BigDecimal(itemOut.getIQuantity()*itemOut.getIPrice());
|
|
|
+ fabricCostInvoice.setIMoney(bdVal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
+ if (fabricCostInvoice.getIMoney()!=0) {
|
|
|
+ costInvoiceList.add(fabricCostInvoice);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+ // 分组
|
|
|
+ List<FabricCostInvoice> costInvoiceListGroup = new ArrayList<>();
|
|
|
+ for (FabricCostInvoice fabricCostInvoice : costInvoiceList){
|
|
|
+ Optional<FabricCostInvoice> findOpt = costInvoiceListGroup.stream().filter(e->
|
|
|
+ e.getCVCName().equals(fabricCostInvoice.getCVCName()) &&
|
|
|
+ e.getCVenAbbName().equals(fabricCostInvoice.getCVenAbbName())).findFirst();
|
|
|
+ if (findOpt.isPresent()){
|
|
|
+ FabricCostInvoice find = findOpt.get();
|
|
|
+ BigDecimal bdVal = new BigDecimal(find.getIMoney()+fabricCostInvoice.getIMoney());
|
|
|
+ find.setIMoney(bdVal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
+ }else{
|
|
|
+ costInvoiceListGroup.add(fabricCostInvoice);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
- BigDecimal bdVal = new BigDecimal(dTotal);
|
|
|
- return bdVal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
|
|
|
+ return costInvoiceListGroup;
|
|
|
|
|
|
}
|
|
|
}
|