|
@@ -476,9 +476,9 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
ret.setNumber(oConvertUtils.getDouble(fabricLossMapper.getNumber(code),0));
|
|
|
|
|
|
Double dOutSum = oConvertUtils.getDouble(fabricLossMapper.getSaleOutSum(code),0);
|
|
|
- if (dOutSum>ret.getNumber()) {
|
|
|
- dOutSum = ret.getNumber();
|
|
|
- }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
ret.setOutboundNumber(dOutSum);
|
|
|
|
|
|
List<AccessorItem> accessorItemList = fabricLossMapper.getSoAccList(ret.getContractNo());
|
|
@@ -655,8 +655,8 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
|
|
|
for (FabricOMOrder fabricOMOrder : omOrderListOrderAllList){
|
|
|
double dLoss = 0;
|
|
|
- if (fabricOMOrder.getIQuantityOut()!=0) {
|
|
|
- dLoss = (1 - fabricOMOrder.getIQuantityIn() / fabricOMOrder.getIQuantityOut()) * 100;
|
|
|
+ if (fabricOMOrder.getIQuantityIn()!=0) {
|
|
|
+ dLoss = (fabricOMOrder.getIQuantityOut() / fabricOMOrder.getIQuantityIn() -1) * 100;
|
|
|
}
|
|
|
|
|
|
if ("02".equals(fabricOMOrder.getCComUnitCode())){
|
|
@@ -1393,6 +1393,8 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
moOrderCKList.addAll(moOrderCKList19);
|
|
|
|
|
|
List<FabricPoOrder> poOrderList = ret.getFabricPoOrderList();
|
|
|
+
|
|
|
+
|
|
|
for (FabricPoOrder poOrder : poOrderList){
|
|
|
Double dOutSum = 0.0;
|
|
|
List<String> omVenList = new ArrayList<>();
|
|
@@ -1426,7 +1428,88 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
poOrder.setIQuantityOut(dOutSum);
|
|
|
poOrder.setIQuantityLeft(DoubleOperation.sub(poOrder.getIQuantityIn(),dOutSum));
|
|
|
poOrder.setIQuantityLeftRate(DoubleOperation.div(poOrder.getIQuantityLeft(),poOrder.getIQuantityIn(), 4));
|
|
|
+ }*/
|
|
|
+
|
|
|
+ List<FabricPoOrder> toAddpoOrderList = new ArrayList<>();
|
|
|
+ for (FabricPoOrder poOrder : poOrderList){
|
|
|
+ if (oConvertUtils.listIsEmpty(poOrder.getFabricPoOrderOutList())){
|
|
|
+ poOrder.setFabricPoOrderOutList(new ArrayList<>());
|
|
|
+ }
|
|
|
+ poOrder.setIQuantityOut(0.0);
|
|
|
+ List<String> omVenList = new ArrayList<>();
|
|
|
+ if (oConvertUtils.listIsNotEmpty(poOrder.getFabricPoOrderInList())) {
|
|
|
+ for (FabricPoOrderIn orderIn : poOrder.getFabricPoOrderInList()) {
|
|
|
+ Double dInLeft = orderIn.getIQuantity();
|
|
|
+ for (FabricMoOrderCK ck : moOrderCKList){
|
|
|
+ if (!ck.getInvOutId().equalsIgnoreCase(orderIn.getInvId()) &&
|
|
|
+ !ck.getCSourceInvId().equalsIgnoreCase(orderIn.getInvId())){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ Double dCurOutSum = DoubleOperation.sub(ck.getIQuantityOut(),ck.getITempUseSum());
|
|
|
+ if (dCurOutSum<=0){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ String omVenAbbName = oConvertUtils.getString(ck.getCOmVenAbbName());
|
|
|
+ if (oConvertUtils.isEmpty(poOrder.getOmcVenAbbName())){
|
|
|
+ poOrder.setOmcVenAbbName(omVenAbbName);
|
|
|
+ }
|
|
|
+ Double dRealOut = Math.min(dInLeft,dCurOutSum);
|
|
|
+ ck.setITempUseSum(DoubleOperation.add(ck.getITempUseSum(),dRealOut));
|
|
|
+ dInLeft = DoubleOperation.sub(dInLeft,dRealOut);
|
|
|
+ FabricPoOrder curOrder = poOrder;
|
|
|
+
|
|
|
+ if (!omVenAbbName.equalsIgnoreCase(poOrder.getOmcVenAbbName())){
|
|
|
+
|
|
|
+ Optional<FabricPoOrder> findOpt = toAddpoOrderList.stream().filter(e->
|
|
|
+ e.getCInvCode().equalsIgnoreCase(poOrder.getCInvCode())&&
|
|
|
+ e.getCColor().equalsIgnoreCase(poOrder.getCColor())&&
|
|
|
+ omVenAbbName.equalsIgnoreCase(e.getOmcVenAbbName())).findFirst();
|
|
|
+ if (findOpt.isPresent()){
|
|
|
+ curOrder = findOpt.get();
|
|
|
+ }else{
|
|
|
+ FabricPoOrder copyPoOrder = JSON.parseObject(JSON.toJSONString(poOrder), FabricPoOrder.class);
|
|
|
+ copyPoOrder.setOmcVenAbbName(omVenAbbName);
|
|
|
+ copyPoOrder.setIQuantity(0.0);
|
|
|
+ copyPoOrder.setIQuantityOut(0.0);
|
|
|
+ copyPoOrder.setFabricPoOrderInList(new ArrayList<>());
|
|
|
+ List<FabricPoOrderOut> findList = poOrder.getFabricPoOrderOutList().stream().filter(e->
|
|
|
+ oConvertUtils.getString(e.getCWhName()).indexOf(omVenAbbName)>-1 ||
|
|
|
+ oConvertUtils.getString(e.getCCode()).indexOf(omVenAbbName)>-1).collect(Collectors.toList());
|
|
|
+ copyPoOrder.setFabricPoOrderOutList(findList);
|
|
|
+ copyPoOrder.setIQuantityLeft(findList.stream().mapToDouble(FabricPoOrderOut::getIQuantity).sum());
|
|
|
+ findList = poOrder.getFabricPoOrderOutList().stream().filter(e->
|
|
|
+ oConvertUtils.getString(e.getCWhName()).indexOf(omVenAbbName)==-1 &&
|
|
|
+ oConvertUtils.getString(e.getCCode()).indexOf(omVenAbbName)==-1).collect(Collectors.toList());
|
|
|
+ poOrder.setFabricPoOrderOutList(findList);
|
|
|
+ toAddpoOrderList.add(copyPoOrder);
|
|
|
+ curOrder = copyPoOrder;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ curOrder.setIQuantityOut(DoubleOperation.add(curOrder.getIQuantityOut(), dRealOut));
|
|
|
+ if (dInLeft<=0){
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ poOrder.setIQuantityLeft(poOrder.getFabricPoOrderOutList().stream().mapToDouble(FabricPoOrderOut::getIQuantity).sum());
|
|
|
+ poOrder.setIQuantityLeftRate(DoubleOperation.div(poOrder.getIQuantityLeft(),poOrder.getIQuantityIn(), 4));
|
|
|
+ }
|
|
|
+ if (toAddpoOrderList.size()>0){
|
|
|
+
|
|
|
+
|
|
|
+ for (FabricPoOrder poOrder:toAddpoOrderList){
|
|
|
+ poOrder.setIQuantityLeftRate(DoubleOperation.div(poOrder.getIQuantityLeft(),poOrder.getIQuantityIn(), 4));
|
|
|
+ poOrder.setIQuantityIn(0.0);
|
|
|
+ }
|
|
|
+ poOrderList.addAll(toAddpoOrderList);
|
|
|
+ poOrderList.sort(Comparator.comparing(FabricPoOrder::getCInvName).thenComparing(FabricPoOrder::getCPOID));
|
|
|
+
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
|
|
|
List<FabricPoOrderOut> lyysList = new ArrayList<>();
|
|
|
List<FabricPoOrderOut> qtrkList = new ArrayList<>();
|