|
@@ -270,48 +270,9 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
}
|
|
|
|
|
|
// 采购入库-来源余纱
|
|
|
- /*
|
|
|
- List<FabricPoOrderOut> fabricPoOrderTempList = fabricLossMapper.getPurchaseListOtherPurInList(code);
|
|
|
- FabricPoOrder fabricPoOrderLyys = new FabricPoOrder();
|
|
|
- fabricPoOrderLyys.setCInvName("来源余纱");
|
|
|
- fabricPoOrderLyys.setIQuantityIn(0.0);
|
|
|
- fabricPoOrderLyys.setFabricPoOrderOutList(fabricPoOrderTempList);
|
|
|
- fabricPoOrderList.add(fabricPoOrderLyys);
|
|
|
- if (fabricPoOrderTempList.size()>0){
|
|
|
- for (FabricPoOrderOut item : fabricPoOrderTempList){
|
|
|
- fabricPoOrderLyys.setIQuantityIn(item.getIQuantity()+fabricPoOrderLyys.getIQuantityIn());
|
|
|
- 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-1));
|
|
|
- }
|
|
|
- BigDecimal bdVal = new BigDecimal(fabricPoOrderLyys.getIQuantityIn());
|
|
|
- fabricPoOrderLyys.setIQuantityIn(bdVal.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
- }
|
|
|
- */
|
|
|
List<FabricPoOrder> lyysList = getPoOrderLyys(code);
|
|
|
fabricPoOrderList.addAll(lyysList);
|
|
|
// 采购入库-其他入库的纱
|
|
|
- /*
|
|
|
- fabricPoOrderTempList = fabricLossMapper.getPurchaseListOtherInList(code);
|
|
|
- FabricPoOrder fabricPoOrderQtrk = new FabricPoOrder();
|
|
|
- fabricPoOrderQtrk.setCInvName("其他入库的纱");
|
|
|
- fabricPoOrderQtrk.setIQuantityIn(0.0);
|
|
|
- fabricPoOrderQtrk.setFabricPoOrderOutList(fabricPoOrderTempList);
|
|
|
- fabricPoOrderList.add(fabricPoOrderQtrk);
|
|
|
- if (fabricPoOrderTempList.size()>0){
|
|
|
- for (FabricPoOrderOut item : fabricPoOrderTempList){
|
|
|
- fabricPoOrderQtrk.setIQuantityIn(item.getIQuantity()+fabricPoOrderQtrk.getIQuantityIn());
|
|
|
- }
|
|
|
- BigDecimal bdVal = new BigDecimal(fabricPoOrderQtrk.getIQuantityIn());
|
|
|
- fabricPoOrderQtrk.setIQuantityIn(bdVal.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
- }*/
|
|
|
fabricPoOrderList.addAll(getPoOrderQtrk(code,lyysList));
|
|
|
ret.setFabricPoOrderList(fabricPoOrderList);
|
|
|
// 委外订单所有
|
|
@@ -321,6 +282,9 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
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());
|
|
@@ -695,7 +659,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
for (FabricOMOrder fabricOMOrder : fabricOMOrderList){
|
|
|
// 根据入库物料过滤
|
|
|
List<FabricMoOrderCK> findOutList = fabricMoOrderCKList.stream().filter(e->
|
|
|
- e.getCInvCodeColorIn().equals(fabricOMOrder.getCInvCode()+fabricOMOrder.getCColor())).collect(Collectors.toList());
|
|
|
+ fabricOMOrder.getMODetailsID().indexOf(e.getMODetailsID())>-1).collect(Collectors.toList());
|
|
|
|
|
|
fabricOMOrder.setFabricMoOrderCKList(findOutList);
|
|
|
}
|
|
@@ -714,8 +678,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
|
|
|
for (FabricOMOrder fabricOMOrder : fabricOMOrderList){
|
|
|
List<FabricMoOrderRK> findList = fabricMoOrderRKList.stream().filter(e->
|
|
|
- e.getCInvCode().equals(fabricOMOrder.getCInvCode()) &&
|
|
|
- oConvertUtils.getString(e.getCColor()).equals(fabricOMOrder.getCColor())).collect(Collectors.toList());
|
|
|
+ fabricOMOrder.getMODetailsID().indexOf(e.getMODetailsID())>-1).collect(Collectors.toList());
|
|
|
|
|
|
|
|
|
if (findList.size() == 0){
|
|
@@ -841,7 +804,15 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
* @return
|
|
|
*/
|
|
|
private List<FabricPoOrder> getPoOrderLyys(String code){
|
|
|
- List<FabricPoOrderOut> fabricPoOrderTempList = fabricLossMapper.getPurchaseListOtherPurInList(code);
|
|
|
+ List<FabricPoOrderOut> fabricPoOrderTempList1 = fabricLossMapper.getPurchaseListOtherPurInList(code);
|
|
|
+ List<FabricPoOrderOut> fabricPoOrderTempList = new ArrayList<>();
|
|
|
+ // 根据autoid去重
|
|
|
+ for (FabricPoOrderOut item : fabricPoOrderTempList1){
|
|
|
+ if (fabricPoOrderTempList.stream().filter(e->e.getAutoid().equals(item.getAutoid())).count()==0){
|
|
|
+ fabricPoOrderTempList.add(item);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
List<FabricPoOrderOut> fabricPoOrderOutListGroup = new ArrayList<>(); // 根据委外订单号和批号分组
|
|
|
// FabricPoOrder fabricPoOrderLyys = new FabricPoOrder();
|
|
|
// fabricPoOrderLyys.setCInvName("来源余纱");
|
|
@@ -880,6 +851,8 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
rowInList.addAll(rowInListWithAV);
|
|
|
List<Map<String,Object>> purchuseInList = rowInList.stream().filter(e->"普通采购".equals(e.get("cBusType").toString())).collect(Collectors.toList());
|
|
|
|
|
|
+ // 去掉数量0的数据
|
|
|
+ fabricPoOrderOutListGroup = fabricPoOrderOutListGroup.stream().filter(e->e.getIQuantity()>0).collect(Collectors.toList());
|
|
|
// 单价数量保留位数、计划号处理,根据委外处理的出库物料重新设置价格
|
|
|
for (FabricPoOrderOut item : fabricPoOrderOutListGroup){
|
|
|
|
|
@@ -892,7 +865,6 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
item.setIPrice(oConvertUtils.getDouble(findIn.get("iPurchuseMoney").toString(), 0)/oConvertUtils.getDouble(findIn.get("iQuantity").toString(),0));
|
|
|
item.setIMoney(item.getIPrice()*item.getIQuantity());
|
|
|
}
|
|
|
-
|
|
|
BigDecimal bdVal = new BigDecimal(item.getIPrice());
|
|
|
item.setIPrice(bdVal.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue());
|
|
|
bdVal = new BigDecimal(item.getIQuantity());
|
|
@@ -966,7 +938,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
// 根据委外订单子表id,找到入库物料
|
|
|
findInCanSetList = findInCanSetList.stream().filter(in->{
|
|
|
return findOutCanSetList.stream().filter(out->
|
|
|
- out.getMODetailsID() == oConvertUtils.getInt(in.get("MODetailsID"),0)).count()>0;
|
|
|
+ out.getMODetailsID().equals(oConvertUtils.getString(in.get("MODetailsID")))).count()>0;
|
|
|
}).collect(Collectors.toList());
|
|
|
// 设置入库单金额
|
|
|
for (Map<String,Object> item : findInCanSetList){
|
|
@@ -1083,7 +1055,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
Double outSum = itemOut.getIQuantityOut();
|
|
|
// 委外订单行
|
|
|
Optional<Map<String,Object>> findRowInfoOpt = rowInfoList.stream().filter(info->
|
|
|
- oConvertUtils.getInt(info.get("MODetailsID")).equals(itemOut.getMODetailsID())
|
|
|
+ oConvertUtils.getString(info.get("MODetailsID")).equals(itemOut.getMODetailsID())
|
|
|
).findFirst();
|
|
|
if (!findRowInfoOpt.isPresent()){
|
|
|
continue;
|
|
@@ -1110,6 +1082,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
retItem.setCInvNameOut(itemOut.getCInvNameOut());
|
|
|
retItem.setCColorOut(itemOut.getCColorOut());
|
|
|
retItem.setCBatchOut(itemOut.getCBatchOut());
|
|
|
+ retItem.setMODetailsID(itemOut.getMODetailsID());
|
|
|
if ("普通采购".equals(itemIn.get("cBusType"))){
|
|
|
retItem.setCPlanCode(itemIn.get("poCode").toString());
|
|
|
}else{
|
|
@@ -1150,6 +1123,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
retItem.setCInvNameOut(itemOut.getCInvNameOut());
|
|
|
retItem.setCColorOut(itemOut.getCColorOut());
|
|
|
retItem.setCBatchOut(itemOut.getCBatchOut());
|
|
|
+ retItem.setMODetailsID(itemOut.getMODetailsID());
|
|
|
if ("普通采购".equals(itemIn.get("cBusType"))){
|
|
|
retItem.setCPlanCode(itemIn.get("poCode").toString());
|
|
|
}else{
|
|
@@ -1595,4 +1569,29 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 委外订单分组,根据供应商分类,供应商名称,供应商简称,供应商编码,物料编号,物料名称,颜色,计量单位,染厂色号,
|
|
|
+ * 计算委外订单数量,材料出库数量,委外入库数量
|
|
|
+ * 同时把委外订单子表id逗号分割,放到MODetailsID字段
|
|
|
+ * @param omOrderList
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private List<FabricOMOrder> groupOmOrderList(List<FabricOMOrder> omOrderList){
|
|
|
+ List<FabricOMOrder> ret = new ArrayList<>();
|
|
|
+ for (FabricOMOrder omOrder : omOrderList){
|
|
|
+ Optional<FabricOMOrder> findOpt = ret.stream().filter(e->e.getGroupId().equals(omOrder.getGroupId())).findFirst();
|
|
|
+ if (findOpt.isPresent()){
|
|
|
+ FabricOMOrder find = findOpt.get();
|
|
|
+ find.setIQuantityOut(DoubleOperation.add(find.getIQuantityOut(), omOrder.getIQuantityOut()));
|
|
|
+ find.setIQuantity(DoubleOperation.add(find.getIQuantity(), omOrder.getIQuantity()));
|
|
|
+ find.setIQuantityIn(DoubleOperation.add(find.getIQuantityIn(), omOrder.getIQuantityIn()));
|
|
|
+ find.setMODetailsID(find.getMODetailsID()+","+omOrder.getMODetailsID());
|
|
|
+ }else{
|
|
|
+ ret.add(omOrder);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return ret;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
}
|