|
@@ -295,7 +295,8 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
fabricPoOrderLyys.setIQuantityIn(bdVal.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
}
|
|
|
*/
|
|
|
- fabricPoOrderList.addAll(getPoOrderLyys(code));
|
|
|
+ List<FabricPoOrder> lyysList = getPoOrderLyys(code);
|
|
|
+ fabricPoOrderList.addAll(lyysList);
|
|
|
// 采购入库-其他入库的纱
|
|
|
/*
|
|
|
fabricPoOrderTempList = fabricLossMapper.getPurchaseListOtherInList(code);
|
|
@@ -311,7 +312,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.addAll(getPoOrderQtrk(code));
|
|
|
+ fabricPoOrderList.addAll(getPoOrderQtrk(code,lyysList));
|
|
|
ret.setFabricPoOrderList(fabricPoOrderList);
|
|
|
// 委外订单所有
|
|
|
List<FabricOMOrder> fabricOMOrderListAll = fabricLossMapper.getOmOrderListAll(code);
|
|
@@ -573,6 +574,39 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
List<Map<String,Object>> rowInListWithAV = fabricLossMapper.getOmRowInListWithAV(code);
|
|
|
List<Map<String,Object>> rowInListWithAV2 = fabricLossMapper.getOmRowInListWithAV2(code);
|
|
|
rowInListWithAV.addAll(rowInListWithAV2);
|
|
|
+ // 如果形态转换物料,转换前入库是转换入库,获取源头入库单
|
|
|
+ do{
|
|
|
+ List<Map<String,Object>> findList = rowInListWithAV.stream().filter(e->"转换入库".equals(e.get("cBusType").toString())).collect(Collectors.toList());
|
|
|
+ if (findList.size()==0){
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ List<String> cInvIdList = new ArrayList<>();
|
|
|
+ // 获取物理id列表 编码+颜色+批号
|
|
|
+ for (Map<String,Object> item : findList){
|
|
|
+ cInvIdList.add(item.get("cInvCode").toString()+item.get("cColor").toString()+item.get("cBatch").toString());
|
|
|
+ }
|
|
|
+ // 获取转换前入库金额
|
|
|
+ List<Map<String,Object>> orgInList = fabricLossMapper.getOrgInList(cInvIdList);
|
|
|
+ // 设置入库类型,入库单价
|
|
|
+ int replaceSum = 0; // 替换的数量,为了防止死循环,替换数量小于查找数量,退出
|
|
|
+ for (Map<String,Object> item : findList){
|
|
|
+ Optional<Map<String,Object>> findOrgInOpt = orgInList.stream().filter(e->e.get("cInvIdAfter").toString().equals(item.get("cInvCode").toString()+item.get("cColor").toString()+item.get("cBatch").toString())).findFirst();
|
|
|
+ if (findOrgInOpt.isPresent()){
|
|
|
+ replaceSum++;
|
|
|
+ Map<String,Object> findOrgIn = findOrgInOpt.get();
|
|
|
+ item.put("cBusType", findOrgIn.get("cBusType").toString());
|
|
|
+ Double d = DoubleOperation.div(oConvertUtils.getDouble(findOrgIn.get("iPurchuseMoney").toString(), 0),oConvertUtils.getDouble(findOrgIn.get("iQuantity").toString(),0),4);
|
|
|
+ d = DoubleOperation.mul(oConvertUtils.getDouble(item.get("iQuantity").toString(), 0),d);
|
|
|
+ item.put("iPurchuseMoney", d);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (replaceSum<findList.size()){
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ }while(true);
|
|
|
+
|
|
|
+
|
|
|
|
|
|
List<FabricMoOrderCK> fabricMoOrderCKList = getFabricMoOrderCKList(rowInfoList, rowOutList, rowInList, rowInListWithAV);
|
|
|
|
|
@@ -634,11 +668,20 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
/**
|
|
|
* 获取采购订单-其他入库的纱
|
|
|
* @param code
|
|
|
+ * @param lyysList - 来源余纱,去掉这部分物料
|
|
|
* @return
|
|
|
*/
|
|
|
- private List<FabricPoOrder> getPoOrderQtrk(String code){
|
|
|
+ private List<FabricPoOrder> getPoOrderQtrk(String code,List<FabricPoOrder> lyysList){
|
|
|
+ // 来源余纱所有物料批次
|
|
|
+ List<FabricPoOrderOut> lyysOutList = new ArrayList<>();
|
|
|
+ for (FabricPoOrder lyys : lyysList){
|
|
|
+ lyysOutList.addAll(lyys.getFabricPoOrderOutList());
|
|
|
+ }
|
|
|
// 采购入库-其他入库的纱
|
|
|
List<FabricPoOrderOut> fabricPoOrderTempList = fabricLossMapper.getPurchaseListOtherInList(code);
|
|
|
+ fabricPoOrderTempList = fabricPoOrderTempList.stream().filter(e->{
|
|
|
+ return lyysOutList.stream().filter(l->(l.getCInvCode()+l.getCColor()+l.getCBatch()).equals(e.getCInvCode()+e.getCColor()+e.getCBatch())).count()==0;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
List<FabricPoOrderOut> fabricPoOrderOutListGroup = new ArrayList<>(); // 根据委外订单号和批号分组
|
|
|
// FabricPoOrder fabricPoOrderQtrk = new FabricPoOrder();
|
|
|
// fabricPoOrderQtrk.setCInvName("其他入库的纱");
|
|
@@ -999,7 +1042,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
retItem.setIMoney(bdVal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
bdVal = new BigDecimal(iPurchuseMoney/inSum);
|
|
|
retItem.setIPrice(bdVal.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
-
|
|
|
+ retItem.setICalPrice(retItem.getIPrice());
|
|
|
if (outSum<=0){
|
|
|
break;
|
|
|
}
|
|
@@ -1039,7 +1082,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
retItem.setIMoney(bdVal.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
bdVal = new BigDecimal(iPurchuseMoney/inSum);
|
|
|
retItem.setIPrice(bdVal.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
-
|
|
|
+ retItem.setICalPrice(retItem.getIPrice());
|
|
|
if (outSum<=0){
|
|
|
break;
|
|
|
}
|
|
@@ -1469,4 +1512,5 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
return costInvoiceListGroup;
|
|
|
|
|
|
}
|
|
|
+
|
|
|
}
|