|
@@ -89,85 +89,6 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
}
|
|
|
|
|
|
setPoOrderListByOmOrderList(ret);
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- List<FabricPoOrder> lyysList = getPoOrderLyys(code);
|
|
|
- fabricPoOrderList.addAll(lyysList);
|
|
|
-
|
|
|
- fabricPoOrderList.addAll(getPoOrderQtrk(code,lyysList));
|
|
|
- ret.setFabricPoOrderList(fabricPoOrderList);
|
|
|
-
|
|
|
- List<FabricOMOrder> fabricOMOrderListAll = fabricLossMapper.getOmOrderListAll(code);
|
|
|
- if (fabricOMOrderListAll.size() == 0){
|
|
|
- ret.setSuccess(false);
|
|
|
- ret.setMessage("本计划没有面料委外,无面损表");
|
|
|
- return ret;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- fabricOMOrderListAll = groupOmOrderList(fabricOMOrderListAll);
|
|
|
-
|
|
|
- List<FabricOMOrder> fabricOMOrderList1 = new ArrayList<>();
|
|
|
- List<FabricOMOrder> fabricOMOrderListTmp = fabricOMOrderListAll.stream().filter(e->e.getCVCName().indexOf("织")==0).collect(Collectors.toList());
|
|
|
- if (fabricOMOrderListTmp.size()>0){
|
|
|
- fabricOMOrderList1.addAll(fabricOMOrderListTmp);
|
|
|
- }
|
|
|
- fabricOMOrderListTmp = fabricOMOrderListAll.stream().filter(e->e.getCVCName().indexOf("染")==0).collect(Collectors.toList());
|
|
|
- if (fabricOMOrderListTmp.size()>0){
|
|
|
- fabricOMOrderList1.addAll(fabricOMOrderListTmp);
|
|
|
- }
|
|
|
- fabricOMOrderListTmp = fabricOMOrderListAll.stream().filter(e->e.getCVCName().indexOf("印")==0).collect(Collectors.toList());
|
|
|
- if (fabricOMOrderListTmp.size()>0){
|
|
|
- fabricOMOrderList1.addAll(fabricOMOrderListTmp);
|
|
|
- }
|
|
|
- fabricOMOrderListTmp = fabricOMOrderListAll.stream().filter(e->e.getCVCName().indexOf("织")!=0&&e.getCVCName().indexOf("染")!=0&&e.getCVCName().indexOf("印")!=0).collect(Collectors.toList());
|
|
|
- if (fabricOMOrderListTmp.size()>0){
|
|
|
- fabricOMOrderList1.addAll(fabricOMOrderListTmp);
|
|
|
- }
|
|
|
-
|
|
|
- fabricOMOrderList1 = setFabricOMOrderOutDetail(fabricOMOrderList1, code, editData);
|
|
|
- fabricOMOrderList1 = setFabricOMOrderInDetail(fabricOMOrderList1, code);
|
|
|
-
|
|
|
- fabricOMOrderList1 = setFabricOMOrderLeftDetail(fabricOMOrderList1, code);
|
|
|
-
|
|
|
-
|
|
|
- fabricOMOrderList1.forEach(e->{
|
|
|
- List<AccessorItem> accessorItemList1 = omAccList.stream().filter(a->a.getCInvId().equals(e.getCInvCode()+e.getCColor())).collect(Collectors.toList());
|
|
|
- e.setAccessorItemList(accessorItemList1);
|
|
|
- });
|
|
|
-
|
|
|
- for (FabricOMOrder fabricOMOrder : fabricOMOrderList1){
|
|
|
- double dLoss = 0;
|
|
|
- if (fabricOMOrder.getIQuantityOut()!=0) {
|
|
|
- dLoss = (1 - fabricOMOrder.getIQuantityIn() / fabricOMOrder.getIQuantityOut()) * 100;
|
|
|
- }
|
|
|
-
|
|
|
- if ("02".equals(fabricOMOrder.getCComUnitCode())){
|
|
|
- fabricOMOrder.setIQuantityPCS(fabricOMOrder.getIQuantityIn());
|
|
|
- }else if ("04".equals(fabricOMOrder.getCComUnitCode())){
|
|
|
- fabricOMOrder.setIQuantityM(fabricOMOrder.getIQuantityIn());
|
|
|
- }
|
|
|
- BigDecimal bDLoss = new BigDecimal(dLoss);
|
|
|
- fabricOMOrder.setCQuantityLoss(bDLoss.setScale(2, BigDecimal.ROUND_HALF_UP).toString()+"%");
|
|
|
- double dMoreLess = fabricOMOrder.getIQuantityIn()-fabricOMOrder.getIQuantity();
|
|
|
- BigDecimal bDMoreLess = new BigDecimal(dMoreLess);
|
|
|
- fabricOMOrder.setIQuantityMoreLess(bDMoreLess.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
- }
|
|
|
-
|
|
|
- List<FabricOMOrder> fabricOMOrderList2 = fabricLossMapper.getOmOrderListGw(code);
|
|
|
- List<FabricOMOrder> fabricOMOrderListGn = fabricOMOrderList1.stream().filter(all->{
|
|
|
- return fabricOMOrderList2.stream().filter(gw->
|
|
|
- all.getCInvCode().equals(gw.getCInvCode()) &&
|
|
|
- all.getCColor().equals(gw.getCColor())).count() ==0;
|
|
|
- }).collect(Collectors.toList());
|
|
|
- List<FabricOMOrder> fabricOMOrderListGw = fabricOMOrderList1.stream().filter(all->{
|
|
|
- return fabricOMOrderList2.stream().filter(gw->
|
|
|
- all.getCInvCode().equals(gw.getCInvCode()) &&
|
|
|
- all.getCColor().equals(gw.getCColor())).count() >0;
|
|
|
- }).collect(Collectors.toList());
|
|
|
- ret.setFabricOMOrderList1(fabricOMOrderListGn);
|
|
|
- ret.setFabricOMOrderList2(fabricOMOrderListGw);*/
|
|
|
|
|
|
List<FabricExpenses> fabricExpensesList = fabricLossMapper.getExpensesList(code);
|
|
|
ret.setFabricExpensesList(fabricExpensesList);
|
|
@@ -1238,108 +1159,6 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
fabricPoOrder.setFabricPoOrderOutList(findPoOrderStockList);
|
|
|
}
|
|
|
ret.setFabricPoOrderList(fabricPoOrderList);
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- List<Map<String,Object>> fabricOmOutList = fabricLossMapper.getOmOutList(code);
|
|
|
-
|
|
|
- List<Map<String,Object>> fabricAssemVouchList = fabricLossMapper.getAssemVouchList(code);
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- List<FabricPoOrderOut> fabricPoOrderOutList = fabricLossMapper.getPoOrderInToOther(code);
|
|
|
-
|
|
|
- List<FabricPoOrderOut> poOrderStockList = fabricLossMapper.getPurchaseStockList(code);
|
|
|
-
|
|
|
- for (FabricPoOrder fabricPoOrder : fabricPoOrderList){
|
|
|
-
|
|
|
- List<Map<String, Object>> tmpAssemVouchList = fabricAssemVouchList.stream().filter(e->
|
|
|
- oConvertUtils.getString(e.get("cInvCode")).equals(fabricPoOrder.getCInvCode()) &&
|
|
|
- oConvertUtils.getString(e.get("cColor")).equals(fabricPoOrder.getCColor())).collect(Collectors.toList());
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- List<Map<String, Object>> tmpOmOutList1 = fabricOmOutList.stream().filter(e->
|
|
|
- oConvertUtils.getString(e.get("cInvCode")).equals(fabricPoOrder.getCInvCode()) &&
|
|
|
- oConvertUtils.getString(e.get("cColor")).equals(fabricPoOrder.getCColor())).collect(Collectors.toList());
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- List<Map<String, Object>> tmpOmOutList2 = fabricOmOutList.stream().filter(out->{
|
|
|
- return tmpAssemVouchList.stream().filter(e ->
|
|
|
- oConvertUtils.getString(e.get("cInvCode2")).equals(oConvertUtils.getString(out.get("cInvCode"))) &&
|
|
|
- oConvertUtils.getString(e.get("cColor2")).equals(oConvertUtils.getString(out.get("cColor")))
|
|
|
- ).count() > 0;
|
|
|
- }).collect(Collectors.toList());
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- tmpOmOutList1.addAll(tmpOmOutList2);
|
|
|
-
|
|
|
- List<String> omcVenAbbNameList = new ArrayList<>();
|
|
|
- double outSum = 0;
|
|
|
- for (Map<String, Object> out : tmpOmOutList1){
|
|
|
- outSum += oConvertUtils.getDouble(out.get("iQuantity").toString(),0);
|
|
|
- String omcVenAbbName = oConvertUtils.getString(out.get("cVenAbbName").toString());
|
|
|
- if (!omcVenAbbNameList.contains(omcVenAbbName)){
|
|
|
- omcVenAbbNameList.add(omcVenAbbName);
|
|
|
- }
|
|
|
- }
|
|
|
- if (omcVenAbbNameList.size()>0){
|
|
|
- fabricPoOrder.setOmcVenAbbName(String.join(",", omcVenAbbNameList));
|
|
|
- }
|
|
|
-
|
|
|
- BigDecimal bOutSum = new BigDecimal(outSum);
|
|
|
- outSum = bOutSum.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue();
|
|
|
- fabricPoOrder.setIQuantityOut(outSum);
|
|
|
- double leftSum = fabricPoOrder.getIQuantityIn()-fabricPoOrder.getIQuantityOut();
|
|
|
- BigDecimal bLeftSum = new BigDecimal(leftSum);
|
|
|
- leftSum = bLeftSum.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue();
|
|
|
- fabricPoOrder.setIQuantityLeft(leftSum);
|
|
|
- double leftRate = 0;
|
|
|
- if (fabricPoOrder.getIQuantityIn() != 0) {
|
|
|
- leftRate = leftSum / fabricPoOrder.getIQuantityIn();
|
|
|
- }
|
|
|
- BigDecimal bLeftRate = new BigDecimal(leftRate);
|
|
|
- leftRate = bLeftRate.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue();
|
|
|
- fabricPoOrder.setIQuantityLeftRate(leftRate);
|
|
|
-
|
|
|
-
|
|
|
- List<FabricPoOrderIn> tmpFabricPoOrderInList = fabricPoOrderInList.stream().filter(e->
|
|
|
- e.getCInvCode().equals(fabricPoOrder.getCInvCode()) &&
|
|
|
- oConvertUtils.getString(e.getCColor()).equals(oConvertUtils.getString(fabricPoOrder.getCColor()))).collect(Collectors.toList());
|
|
|
- fabricPoOrder.setFabricPoOrderInList(tmpFabricPoOrderInList);
|
|
|
-
|
|
|
- List<FabricPoOrderOut> findFabricPoOrderOutList = fabricPoOrderOutList.stream().filter(e->
|
|
|
- oConvertUtils.getString(e.getCInvCode()).equals(oConvertUtils.getString(fabricPoOrder.getCInvCode())) &&
|
|
|
- oConvertUtils.getString(e.getCColor()).equals(oConvertUtils.getString(fabricPoOrder.getCColor()))).collect(Collectors.toList());
|
|
|
-
|
|
|
- for (FabricPoOrderOut item : findFabricPoOrderOutList){
|
|
|
- String cCode = item.getCCode();
|
|
|
- int index1 = cCode.indexOf("SY");
|
|
|
- if (index1 == -1) {
|
|
|
- continue;
|
|
|
- }
|
|
|
- int index2 = cCode.indexOf("-", index1);
|
|
|
- if (index2 == -1) {
|
|
|
- index2 = cCode.length();
|
|
|
- }
|
|
|
- item.setCPlanCode(cCode.substring(index1,index2));
|
|
|
- if (tmpFabricPoOrderInList.size()>0){
|
|
|
- item.setIPrice(tmpFabricPoOrderInList.get(0).getIPrice());
|
|
|
- item.setIMoney(item.getIPrice()*item.getIQuantity());
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- List<FabricPoOrderOut> findPoOrderStockList = poOrderStockList.stream().filter(e->
|
|
|
- fabricPoOrder.getCInvCode().equals(e.getCInvCode()) &&
|
|
|
- oConvertUtils.getString(fabricPoOrder.getCColor()).equals(e.getCColor())).collect(Collectors.toList());
|
|
|
- findFabricPoOrderOutList.addAll(findPoOrderStockList);
|
|
|
-
|
|
|
- fabricPoOrder.setFabricPoOrderOutList(findFabricPoOrderOutList);
|
|
|
- }*/
|
|
|
}
|
|
|
|
|
|
private final String[] CVCOrderKeyList = {"织","染","印"};
|
|
@@ -1373,9 +1192,6 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
List<FabricOMOrder> omOrderListOrderAllList = fabricOMOrderListAll.stream().sorted(Comparator.comparing(FabricOMOrder::getOrder)).collect(Collectors.toList());
|
|
|
|
|
|
|
|
|
-
|
|
|
- omOrderListOrderAllList = setFabricOMOrderOutDetail(omOrderListOrderAllList, code, editData);
|
|
|
- omOrderListOrderAllList = setFabricOMOrderInDetail(omOrderListOrderAllList, code);*/
|
|
|
setOmOrderDetail(code, omOrderListOrderAllList, ret.getFabricPoOrderList(), editData);
|
|
|
|
|
|
omOrderListOrderAllList = setFabricOMOrderLeftDetail(omOrderListOrderAllList, code);
|
|
@@ -1453,9 +1269,13 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
List<FabricOMOrder> omOrderList = new ArrayList<>();
|
|
|
omOrderList.addAll(ret.getFabricOMOrderList1());
|
|
|
omOrderList.addAll(ret.getFabricOMOrderList2());
|
|
|
+
|
|
|
+ List<FabricPoOrder> poOrderList = ret.getFabricPoOrderList().stream().filter(e->!e.getCPOID().equals("来源余料") &&
|
|
|
+ !e.getCPOID().equals("其他入库")).collect(Collectors.toList());
|
|
|
+
|
|
|
|
|
|
List<FabricCostInvoice> fabricCostInvoiceList1 = fabricLossMapper.getPurchuseInPriceList(code);
|
|
|
-
|
|
|
+
|
|
|
List<FabricCostInvoice> fabricCostInvoiceList = new ArrayList<>();
|
|
|
for (FabricCostInvoice fabricCostInvoice : fabricCostInvoiceList1){
|
|
|
Optional<FabricCostInvoice> findItem = fabricCostInvoiceList.stream().filter(e->
|
|
@@ -1473,17 +1293,20 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
}
|
|
|
|
|
|
Double money = newItem.getIMoney();
|
|
|
- for (FabricOMOrder omOrder : omOrderList){
|
|
|
- List<FabricMoOrderCK> ckList = omOrder.getFabricMoOrderCKList();
|
|
|
- if (ckList != null) {
|
|
|
- List<FabricMoOrderCK> findList1 = ckList.stream().filter(e->
|
|
|
- e.getInvOutId().equalsIgnoreCase(fabricCostInvoice.getInvId())).collect(Collectors.toList());
|
|
|
- for (FabricMoOrderCK ckItem : findList1) {
|
|
|
- money+=ckItem.getIMoney();
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
- }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
BigDecimal bdValue = new BigDecimal(money);
|
|
|
newItem.setIMoney(bdValue.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
|
|
@@ -1492,6 +1315,59 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
|
|
|
List<FabricCostInvoice> fabricCostInvoiceList2 = fabricLossMapper.getOmInvoiceMoneyList(code);
|
|
|
fabricCostInvoiceList.addAll(fabricCostInvoiceList2);
|
|
|
+ */
|
|
|
+
|
|
|
+ List<FabricCostInvoice> fabricCostInvoiceList = new ArrayList<>();
|
|
|
+
|
|
|
+ for (FabricPoOrder poOrder : poOrderList){
|
|
|
+ Optional<FabricCostInvoice> findItem = fabricCostInvoiceList.stream().filter(e->
|
|
|
+ "普通采购".equalsIgnoreCase(e.getCBusType()) &&
|
|
|
+ poOrder.getCVCName().equalsIgnoreCase(e.getCVCName()) &&
|
|
|
+ poOrder.getCVenAbbName().equalsIgnoreCase(e.getCVenAbbName())).findFirst();
|
|
|
+ FabricCostInvoice newItem = new FabricCostInvoice();
|
|
|
+ Double dMoney = 0.0;
|
|
|
+ if (oConvertUtils.listIsNotEmpty(poOrder.getFabricPoOrderInList())){
|
|
|
+ for (FabricPoOrderIn orderIn : poOrder.getFabricPoOrderInList()){
|
|
|
+ dMoney = DoubleOperation.add(dMoney, DoubleOperation.mul(orderIn.getIPrice(),orderIn.getIQuantityInvoice(),2));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (findItem.isPresent()) {
|
|
|
+ newItem = findItem.get();
|
|
|
+ newItem.setIMoney(DoubleOperation.add(newItem.getIMoney(), dMoney));
|
|
|
+ }else{
|
|
|
+ newItem.setCBusType("普通采购");
|
|
|
+ newItem.setIMoney(dMoney);
|
|
|
+ newItem.setCVCName(poOrder.getCVCName());
|
|
|
+ newItem.setCVenName(poOrder.getCVenName());
|
|
|
+ newItem.setCVenAbbName(poOrder.getCVenAbbName());
|
|
|
+ fabricCostInvoiceList.add(newItem);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ for (FabricOMOrder omOrder : omOrderList){
|
|
|
+ Optional<FabricCostInvoice> findItem = fabricCostInvoiceList.stream().filter(e->
|
|
|
+ "委外加工".equalsIgnoreCase(e.getCBusType()) &&
|
|
|
+ omOrder.getCVCName().equalsIgnoreCase(e.getCVCName()) &&
|
|
|
+ omOrder.getCVenAbbName().equalsIgnoreCase(e.getCVenAbbName())).findFirst();
|
|
|
+ FabricCostInvoice newItem = new FabricCostInvoice();
|
|
|
+ Double dMoney = 0.0;
|
|
|
+ if (oConvertUtils.listIsNotEmpty(omOrder.getFabricMoOrderRKList())){
|
|
|
+ for (FabricMoOrderRK orderIn : omOrder.getFabricMoOrderRKList()){
|
|
|
+ dMoney = DoubleOperation.add(dMoney, orderIn.getIProcessFee());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (findItem.isPresent()) {
|
|
|
+ newItem = findItem.get();
|
|
|
+ newItem.setIMoney(DoubleOperation.add(newItem.getIMoney(), dMoney));
|
|
|
+ }else{
|
|
|
+ newItem.setCBusType("委外加工");
|
|
|
+ newItem.setIMoney(dMoney);
|
|
|
+ newItem.setCVCName(omOrder.getCVCName());
|
|
|
+ newItem.setCVenName(omOrder.getCVenName());
|
|
|
+ newItem.setCVenAbbName(omOrder.getCVenAbbName());
|
|
|
+ fabricCostInvoiceList.add(newItem);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
List<FabricCostInvoice> fabricCostInvoiceList3 = fabricLossMapper.getOmInvoiceMoneyYfList(code);
|
|
|
fabricCostInvoiceList.addAll(fabricCostInvoiceList3);
|
|
@@ -1512,7 +1388,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
|
|
|
fabricCostInvoiceList.addAll(getInCost(ret.getFabricPoOrderList(), omOrderList));
|
|
|
|
|
|
- List<FabricCostInvoice> outCostList = getOutCost(ret.getFabricPoOrderList(), ret.getFabricOMOrderList1(), ret.getFabricOMOrderList2());
|
|
|
+ List<FabricCostInvoice> outCostList = getOutCost(ret.getCCode(), ret.getFabricPoOrderList(), ret.getFabricOMOrderList1(), ret.getFabricOMOrderList2());
|
|
|
|
|
|
if (editData != null){
|
|
|
List<FabricCostInvoice> editCostList = editData.getFabricCostInvoiceList();
|
|
@@ -1561,6 +1437,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
formatItem.setCInvCode(itemIn.getCInvCode());
|
|
|
formatItem.setCColor(itemIn.getCColor());
|
|
|
formatItem.setCBatch(itemIn.getCBatch());
|
|
|
+ formatItem.setCInvName(itemIn.getCInvName());
|
|
|
formatItem.setIQuantity(itemIn.getIQuantity());
|
|
|
formatItem.setIPrice(itemIn.getIPrice());
|
|
|
allInList.add(formatItem);
|
|
@@ -1587,6 +1464,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
formatItem.setCColor(item.getCColor());
|
|
|
formatItem.setCBatch(itemIn.getCBatch());
|
|
|
formatItem.setIQuantity(itemIn.getIQuantityIn());
|
|
|
+ formatItem.setCInvName(itemIn.getCInvName());
|
|
|
formatItem.setIPrice(itemIn.getIPrice());
|
|
|
allInList.add(formatItem);
|
|
|
}
|
|
@@ -1607,6 +1485,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
outCopy.setCColorOut(omOut.getCColorOut());
|
|
|
outCopy.setIQuantity(omOut.getIQuantity());
|
|
|
outCopy.setIPrice(omOut.getIPrice());
|
|
|
+ outCopy.setCInvNameOut(omOut.getCInvNameOut());
|
|
|
outCopy.setCVCName(omOrder.getCVCName());
|
|
|
outCopy.setCVenAbbName(omOrder.getCVenAbbName());
|
|
|
outCopy.setCPlanCode(omOut.getCPlanCode());
|
|
@@ -1640,7 +1519,8 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
}
|
|
|
List<FabricCostInvoice> costInvoiceList = new ArrayList<>();
|
|
|
|
|
|
-
|
|
|
+
|
|
|
+ List<FabricCostInvoiceDetail> invoiceDetailList = new ArrayList<>();
|
|
|
for (FabricMoOrderCK itemOut : omOutListAll){
|
|
|
if (itemOut.getIQuantity()>0){
|
|
|
FabricCostInvoice fabricCostInvoice = new FabricCostInvoice();
|
|
@@ -1650,6 +1530,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
fabricCostInvoice.setIMoney(DoubleOperation.mul(itemOut.getIQuantity(),itemOut.getIPrice(), 2));
|
|
|
if (fabricCostInvoice.getIMoney()!=0) {
|
|
|
costInvoiceList.add(fabricCostInvoice);
|
|
|
+ invoiceDetailList.add(FabricCostInvoiceDetail.get(fabricCostInvoice, itemOut));
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1664,6 +1545,8 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
find.setIMoney(bdVal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
}else{
|
|
|
costInvoiceListGroup.add(fabricCostInvoice);
|
|
|
+ List<FabricCostInvoiceDetail> findList = invoiceDetailList.stream().filter(e->e.getCParentId().equalsIgnoreCase(fabricCostInvoice.getId())).collect(Collectors.toList());
|
|
|
+ fabricCostInvoice.setCostInvoiceDetailList(findList);
|
|
|
}
|
|
|
}
|
|
|
return costInvoiceListGroup;
|
|
@@ -1671,12 +1554,13 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
|
|
|
|
|
|
* 根据采购入库详情,委外订单详情,获取转出成本。(入库数量-出库数量) * 单价
|
|
|
+ * @param code - 计划号
|
|
|
* @param poOrderList - 采购入库详情
|
|
|
* @param omOrderListGn - 委外订单国内
|
|
|
* @param omOrderListGw - 委外订单国外
|
|
|
* @return
|
|
|
*/
|
|
|
- private List<FabricCostInvoice> getOutCost(List<FabricPoOrder> poOrderList, List<FabricOMOrder> omOrderListGn, List<FabricOMOrder> omOrderListGw){
|
|
|
+ private List<FabricCostInvoice> getOutCost(String code, List<FabricPoOrder> poOrderList, List<FabricOMOrder> omOrderListGn, List<FabricOMOrder> omOrderListGw){
|
|
|
|
|
|
List<FabricPoOrder> poOrderListReal = poOrderList.stream().filter(e->!e.getCPOID().equals("来源余料") &&
|
|
|
!e.getCPOID().equals("其他入库")).collect(Collectors.toList());
|
|
@@ -1691,7 +1575,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
if (findItemOpt.isPresent()){
|
|
|
FabricPoOrderIn formatItem = findItemOpt.get();
|
|
|
Double dMoney = formatItem.getIPrice()*formatItem.getIQuantity()+itemIn.getIPrice()*itemIn.getIQuantity();
|
|
|
- Double dQuantity = formatItem.getIQuantity()+itemIn.getIQuantity();
|
|
|
+ Double dQuantity = formatItem.getIQuantity()+itemIn.getIQuantityInvoice();
|
|
|
formatItem.setIPrice(dMoney/dQuantity);
|
|
|
formatItem.setIQuantity(dQuantity);
|
|
|
|
|
@@ -1700,9 +1584,10 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
formatItem.setCInvCode(itemIn.getCInvCode());
|
|
|
formatItem.setCColor(itemIn.getCColor());
|
|
|
formatItem.setCBatch(itemIn.getCBatch());
|
|
|
- formatItem.setIQuantity(itemIn.getIQuantity());
|
|
|
+ formatItem.setIQuantity(itemIn.getIQuantityInvoice());
|
|
|
formatItem.setIPrice(itemIn.getIPrice());
|
|
|
formatItem.setCInvName(itemIn.getCInvName()+" "+itemIn.getCColor());
|
|
|
+ formatItem.setCPlanCode(itemIn.getCPlanCode());
|
|
|
allInList.add(formatItem);
|
|
|
}
|
|
|
}
|
|
@@ -1721,6 +1606,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
formatItem.setIPrice(itemIn.getIPrice());
|
|
|
formatItem.setCBusType("1");
|
|
|
formatItem.setCInvName(itemIn.getCInvName()+" "+itemIn.getCColor());
|
|
|
+ formatItem.setCPlanCode(itemIn.getCPlanCode());
|
|
|
allInList.add(formatItem);
|
|
|
}
|
|
|
}
|
|
@@ -1738,13 +1624,15 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
formatItem.setIPrice(itemIn.getIPrice());
|
|
|
formatItem.setCBusType("2");
|
|
|
formatItem.setCInvName(itemIn.getCInvName()+" "+itemIn.getCColor());
|
|
|
+ formatItem.setCPlanCode(itemIn.getCPlanCode());
|
|
|
allInList.add(formatItem);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- List<String> invIdGnList = new ArrayList<>();
|
|
|
+
|
|
|
List<String> invIdGwList = new ArrayList<>();
|
|
|
+
|
|
|
for (FabricOMOrder omOrder : omOrderListGn){
|
|
|
List<FabricMoOrderRK> omRkList = omOrder.getFabricMoOrderRKList();
|
|
|
if (oConvertUtils.listIsNotEmpty(omRkList)) {
|
|
@@ -1752,7 +1640,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
invIdGnList.add(omOrder.getCInvCode() + omOrder.getCColor() + rkItem.getCBatch());
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
+ }*/
|
|
|
for (FabricOMOrder omOrder : omOrderListGw){
|
|
|
List<FabricMoOrderRK> omRkList = omOrder.getFabricMoOrderRKList();
|
|
|
if (oConvertUtils.listIsNotEmpty(omRkList)) {
|
|
@@ -1762,9 +1650,16 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
}
|
|
|
}
|
|
|
List<FabricPoOrderOut> invOutGnList = new ArrayList<>();
|
|
|
- if (invIdGnList.size()>0){
|
|
|
- invOutGnList = fabricLossMapper.getOmInGnOutList(invIdGnList);
|
|
|
+ List<FabricMoOrderCK> moOrderCKList = fabricLossMapper.getOmOutList19(code);
|
|
|
+ for (FabricMoOrderCK moOrderCK : moOrderCKList){
|
|
|
+ moOrderCK.setIPrice(0.0);
|
|
|
+ invOutGnList.add(FabricPoOrderOut.getByMoOut(moOrderCK));
|
|
|
}
|
|
|
+
|
|
|
+ if (invIdGnList.size()>0){
|
|
|
+ invOutGnList = fabricLossMapper.getOmOutList19(code).stream().filter(e->invIdGnList.contains(e.getInvOutId())).collect(Collectors.toList());
|
|
|
+
|
|
|
+ }*/
|
|
|
List<FabricPoOrderOut> invOutGwList = new ArrayList<>();
|
|
|
if (invIdGwList.size()>0){
|
|
|
invOutGwList = fabricLossMapper.getOmInGwOutList(invIdGwList);
|
|
@@ -1785,6 +1680,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
outCopy.setCInvCodeOut(omOut.getCInvCodeOut());
|
|
|
outCopy.setCColorOut(omOut.getCColorOut());
|
|
|
outCopy.setIQuantity(omOut.getIQuantity());
|
|
|
+ outCopy.setCSourceInvId(omOut.getCSourceInvId());
|
|
|
omOutListAll.add(outCopy);
|
|
|
}
|
|
|
}
|
|
@@ -1795,7 +1691,8 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
|
|
|
double inLeft = itemIn.getIQuantity();
|
|
|
for (FabricMoOrderCK outItem : omOutListAll){
|
|
|
- if (outItem.getInvOutId().equalsIgnoreCase(itemIn.getInvId())){
|
|
|
+ if (outItem.getInvOutId().equalsIgnoreCase(itemIn.getInvId()) ||
|
|
|
+ outItem.getCSourceInvId().equalsIgnoreCase(itemIn.getInvId())){
|
|
|
double outLeft = outItem.getIQuantity();
|
|
|
bOmFind = true;
|
|
|
inLeft -= outLeft;
|
|
@@ -1845,7 +1742,8 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
}
|
|
|
}
|
|
|
List<FabricCostInvoice> costInvoiceList = new ArrayList<>();
|
|
|
-
|
|
|
+ List<FabricCostInvoiceDetail> costInvoiceDetailList = new ArrayList<>();
|
|
|
+
|
|
|
for (FabricPoOrderIn itemIn : allInList){
|
|
|
if (itemIn.getIQuantity()>0){
|
|
|
FabricCostInvoice fabricCostInvoice = new FabricCostInvoice();
|
|
@@ -1856,6 +1754,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
fabricCostInvoice.setIMoney(bdVal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
if (fabricCostInvoice.getIMoney()!=0) {
|
|
|
costInvoiceList.add(fabricCostInvoice);
|
|
|
+ costInvoiceDetailList.add(FabricCostInvoiceDetail.get(fabricCostInvoice, itemIn));
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1871,6 +1770,8 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
find.setIMoney(bdVal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
}else{
|
|
|
costInvoiceListGroup.add(fabricCostInvoice);
|
|
|
+ List<FabricCostInvoiceDetail> findList = costInvoiceDetailList.stream().filter(e->e.getCParentId().equalsIgnoreCase(fabricCostInvoice.getId())).collect(Collectors.toList());
|
|
|
+ fabricCostInvoice.setCostInvoiceDetailList(findList);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -1908,6 +1809,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
|
|
|
|
|
|
List<FabricMoOrderCK> rowOutList = fabricLossMapper.getOmRowOutList(code);
|
|
|
+ rowOutList = rowOutList.stream().filter(e->e.getIQuantityOut()>0).collect(Collectors.toList());
|
|
|
rowOutList.forEach(e->e.setBCurPlan(false));
|
|
|
|
|
|
List<FabricMoOrderRK> rowInList = fabricLossMapper.getOmInDetailList(code);
|
|
@@ -1930,7 +1832,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
otherInList.forEach(e -> e.setITempUseSum(0.0));
|
|
|
|
|
|
setOtherOmInPriceList(code, otherInList);
|
|
|
-
|
|
|
+
|
|
|
setAssemVouchInPriceList(otherInList);
|
|
|
}
|
|
|
|
|
@@ -2047,7 +1949,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
List<String> invIdList = new ArrayList<>();
|
|
|
outList.forEach(e->invIdList.add(e.getInvOutId()));
|
|
|
List<FabricCommonIn> inList = fabricLossMapper.getInListByInvId(invIdList);
|
|
|
-
|
|
|
+
|
|
|
setAssemVouchInPriceList(inList);
|
|
|
|
|
|
|
|
@@ -2144,15 +2046,27 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
*/
|
|
|
private void setAssemVouchsInPrice(List<FabricCommonIn> commonInList, List<FabricAssemVouchsOrgIn> assemVouchsOrgInList,
|
|
|
List<FabricInPrice> priceList){
|
|
|
- priceList.forEach(e->{
|
|
|
- commonInList.forEach(i->{
|
|
|
- if (assemVouchsOrgInList.stream().filter(v->
|
|
|
- v.getAutoId().equals(e.getAutoId())&&
|
|
|
- i.getInvId().equalsIgnoreCase(v.getCInvIdFinal())).count()>0){
|
|
|
- i.setIPrice(DoubleOperation.getScale(e.getIPrice(),4));
|
|
|
- }
|
|
|
- });
|
|
|
- });
|
|
|
+ for (FabricInPrice inPrice : priceList){
|
|
|
+ for (FabricCommonIn commonIn : commonInList){
|
|
|
+ Optional<FabricAssemVouchsOrgIn> findOpt = assemVouchsOrgInList.stream().filter(e->
|
|
|
+ e.getAutoId().equals(inPrice.getAutoId()) &&
|
|
|
+ commonIn.getInvId().equalsIgnoreCase(e.getCInvIdFinal())).findFirst();
|
|
|
+ if (findOpt.isPresent()){
|
|
|
+ commonIn.setIPrice(DoubleOperation.getScale(inPrice.getIPrice(),4));
|
|
|
+ commonIn.setCSourceInvId(findOpt.get().getCInvIdAfter());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
|
|
|
|
|
@@ -2211,7 +2125,8 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
for (FabricPoOrderIn orderIn : poOrder.getFabricPoOrderInList()) {
|
|
|
Double dInLeft = orderIn.getIQuantity();
|
|
|
for (FabricMoOrderCK ck : moOrderCKList){
|
|
|
- if (!ck.getInvOutId().equalsIgnoreCase(orderIn.getInvId())){
|
|
|
+ if (!ck.getInvOutId().equalsIgnoreCase(orderIn.getInvId()) &&
|
|
|
+ !ck.getCSourceInvId().equalsIgnoreCase(orderIn.getInvId())){
|
|
|
continue;
|
|
|
}
|
|
|
Double dCurOutSum = ck.getIQuantityOut();
|