⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 preadvicepagehelper.java

📁 according to pre-advice different group criteria to show Pre-advice page group show.
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
					shipmentEquipmentList.addAll(PreAdviceUtil.generateAdviceEquipmentFromStuffing(sessionContext, soList1));
					isEquipmentReadOnly = true;
				}
			} else {
				shipmentEquipmentList.removeAll(PreAdviceUtil.getProposedContainers(advice, map));
				shipmentEquipmentList.addAll(getGeneratePreAdviceService().generateAdviceEquipmentFromCRR(soList1));
				isEquipmentReadOnly = false;
			}
		} else if (PreAdvicePageConstants.NODE_TYPE_AIR.equals(map.get(PreAdvicePageConstants.NODE_TYPE_BIZ_TYPE))) {
			isEquipmentReadOnly = true;
		} else {
			throw new UnSupportedPreAdviceOperationException("Unsupported equipments retrieved logic for biz type:" + map.get(PreAdvicePageConstants.NODE_TYPE_BIZ_TYPE));
		}
		// }
		return isEquipmentReadOnly;
	}

	private double[] fillBizTypeGroupInfo(List customizedFields, DataPacket dpOut, List newSOCargos, List deletedSOCargos, Map bizTypeGroup, String bizType, String parentIndex) throws Exception {
		// summary
		long bizTypeNoOfPack = 0;
		long bizTypeUnits = 0;
		double bizTypeVol = 0;
		double bizTypeGwt = 0;

		List soList1 = (List) bizTypeGroup.get(bizType);

		// if has deleted in this group
		List deletedSOCargoInGroup = PreAdviceUtil.getSOIntersection(soList1, deletedSOCargos);
		// soList1.removeAll(deletedSOCargoInGroup);

		if (soList1.size() == deletedSOCargoInGroup.size()) {
			return new double[] { 0, 0, 0.0, 0.0 };
		}

		String[] bizTypeReturn = addNode(dpOut, PreAdvicePageConstants.NODE_TYPE_BIZ_TYPE, parentIndex);
		dpOut.putNodeString(bizTypeReturn[1] + ".biz_type", bizType);

		Map typeOfMovementGroup = groupSOList(soList1, PreAdvicePageConstants.NODE_TYPE_TYPE_OF_MOVEMENT);
		Object[] typeOfMovementGroupKeyArray = typeOfMovementGroup.keySet().toArray();
		for (int i1 = 0; i1 < typeOfMovementGroupKeyArray.length; i1++) {
			double[] typeOfMovementSum = fillTypeOfMovementGroupInfo(customizedFields, dpOut, newSOCargos, deletedSOCargos, typeOfMovementGroup, typeOfMovementGroupKeyArray[i1].toString(), bizType,
					bizTypeReturn[0]);
			bizTypeNoOfPack += typeOfMovementSum[0];
			bizTypeUnits += typeOfMovementSum[1];
			bizTypeVol += typeOfMovementSum[2];
			bizTypeGwt += typeOfMovementSum[3];
		}

		fillTotalInfo(dpOut, bizTypeNoOfPack, bizTypeUnits, bizTypeVol, bizTypeGwt, bizTypeReturn[1]);

		return new double[] { bizTypeNoOfPack, bizTypeUnits, bizTypeVol, bizTypeGwt };
	}

	private double[] fillContainerGroupInfo(List customizedFields, DataPacket dpOut, Map containerGroup, String typeOfMovement, String stuffingCargoOid, String parentIndex) throws Exception {
		long containerNoOfPack = 0;
		long containerUnits = 0;
		double containerVol = 0;
		double containerGwt = 0;

		List stuffingPackageList1 = (List) containerGroup.get(stuffingCargoOid);

		String[] containerReturn = addNode(dpOut, PreAdvicePageConstants.NODE_TYPE_CONTAINER, parentIndex);
		dpOut.putNodeString(containerReturn[1] + ".type_of_movement", typeOfMovement);
		dpOut.putNodeString(containerReturn[1] + ".size_type", getNodeText(PreAdvicePageConstants.NODE_TYPE_CONTAINER, stuffingCargoOid));
		StuffingCargo stuffingCargo = ((StuffingPackage) stuffingPackageList1.get(0)).getTheStuffingCargo();
		dpOut.putNodeString(containerReturn[1] + ".sf_oid", stuffingCargo.getOid().toString());
		dpOut.putNodeString(containerReturn[1] + ".is_stuff", "true");
		boolean hasException;
		try {
			hasException = getStuffingService().checkException(stuffingCargo);
		} catch (UnsupportedStuffingCargoTypeException e) {
			hasException = false;
		}
		dpOut.putNodeString(containerReturn[1] + ".stuffing_exception", hasException ? "true" : "false");

		Map divisionGroup = groupStuffingPackageList(stuffingPackageList1, PreAdvicePageConstants.NODE_TYPE_DIVISION);
		Object[] divisionGroupKeyArray = divisionGroup.keySet().toArray();
		for (int i1 = 0; i1 < divisionGroupKeyArray.length; i1++) {
			double[] divisionSum = fillDivisionGroupStuffingInfo(customizedFields, dpOut, divisionGroup, divisionGroupKeyArray[i1].toString(), containerReturn[0]);
			containerNoOfPack += divisionSum[0];
			containerUnits += divisionSum[1];
			containerVol += divisionSum[2];
			containerGwt += divisionSum[3];
		}
		fillTotalInfo(dpOut, containerNoOfPack, containerUnits, containerVol, containerGwt, containerReturn[1]);

		return new double[] { containerNoOfPack, containerUnits, containerVol, containerGwt };
	}

	private double[] fillForwarderGroupInfo4VDL(List customizedFields, DataPacket dpOut, Map forwarderGroup, String forwarder, String typeOfMovement, String bizType, String parentIndex)
			throws Exception {
		long forwarderNoOfPack = 0;
		long forwarderUnits = 0;
		double forwarderVol = 0;
		double forwarderGwt = 0;

		List soList1 = (List) forwarderGroup.get(forwarder);
		String[] forwarderReturn = addNode(dpOut, PreAdvicePageConstants.NODE_TYPE_FORWARDER, parentIndex);
		dpOut.putNodeString(forwarderReturn[1] + ".type_of_movement", PreAdvicePageConstants.NODE_TYPE_AIR.equals(typeOfMovement) ? "" : typeOfMovement);
		dpOut.putNodeString(forwarderReturn[1] + ".biz_type", bizType);
		dpOut.putNodeString(forwarderReturn[1] + ".forwarder", forwarder);
		dpOut.putNodeString(forwarderReturn[1] + ".is_stuff", "false");
		dpOut.putNodeString(forwarderReturn[1] + ".sf_oid", "");
		Map divisionGroup = groupSOList(soList1, PreAdvicePageConstants.NODE_TYPE_DIVISION);
		Object[] divisionGroupKeyArray = divisionGroup.keySet().toArray();
		for (int i1 = 0; i1 < divisionGroupKeyArray.length; i1++) {
			double[] divisionSum = fillDivisionGroupInfo(customizedFields, dpOut, divisionGroup, divisionGroupKeyArray[i1].toString(), forwarderReturn[0]);
			forwarderNoOfPack += divisionSum[0];
			forwarderUnits += divisionSum[1];
			forwarderVol += divisionSum[2];
			forwarderGwt += divisionSum[3];
		}
		fillTotalInfo(dpOut, forwarderNoOfPack, forwarderUnits, forwarderVol, forwarderGwt, forwarderReturn[1]);
		return new double[] { forwarderNoOfPack, forwarderUnits, forwarderVol, forwarderGwt };

	}

	private double[] fillForwarderGroupInfo(List customizedFields, DataPacket dpOut, Map forwarderGroup, String forwarder, String typeOfMovement, String bizType, String parentIndex) throws Exception {
		long forwarderNoOfPack = 0;
		long forwarderUnits = 0;
		double forwarderVol = 0;
		double forwarderGwt = 0;

		List soList1 = (List) forwarderGroup.get(forwarder);
		String[] forwarderReturn = addNode(dpOut, PreAdvicePageConstants.NODE_TYPE_FORWARDER, parentIndex);
		dpOut.putNodeString(forwarderReturn[1] + ".type_of_movement", typeOfMovement);
		dpOut.putNodeString(forwarderReturn[1] + ".biz_type", bizType);
		dpOut.putNodeString(forwarderReturn[1] + ".is_stuff", "false");
		if (!TypeOfMovementConstant.CFS_CFS.equals(typeOfMovement)) {
			dpOut.putNodeString(forwarderReturn[1] + ".size_type_memo", "Stuffing not planned.");
		} else {
			dpOut.putNodeString(forwarderReturn[1] + ".size_type_memo", "");
		}
		dpOut.putNodeString(forwarderReturn[1] + ".forwarder", forwarder);

		Map divisionGroup = groupSOList(soList1, PreAdvicePageConstants.NODE_TYPE_DIVISION);
		Object[] divisionGroupKeyArray = divisionGroup.keySet().toArray();
		for (int i1 = 0; i1 < divisionGroupKeyArray.length; i1++) {
			double[] divisionSum = fillDivisionGroupInfo(customizedFields, dpOut, divisionGroup, divisionGroupKeyArray[i1].toString(), forwarderReturn[0]);
			forwarderNoOfPack += divisionSum[0];
			forwarderUnits += divisionSum[1];
			forwarderVol += divisionSum[2];
			forwarderGwt += divisionSum[3];
		}

		fillTotalInfo(dpOut, forwarderNoOfPack, forwarderUnits, forwarderVol, forwarderGwt, forwarderReturn[1]);
		return new double[] { forwarderNoOfPack, forwarderUnits, forwarderVol, forwarderGwt };

	}

	private double[] fillForwarderGroupInfo4Stuffing(List customizedFields, DataPacket dpOut, Map forwarderGroup, String typeOfMovement, String bizType, String forwarder, String parentIndex)
			throws Exception {
		long forwarderNoOfPack = 0;
		long forwarderUnits = 0;
		double forwarderVol = 0;
		double forwarderGwt = 0;

		List stuffingPackageList1 = (List) forwarderGroup.get(forwarder);
		String[] forwarderReturn = addNode(dpOut, PreAdvicePageConstants.NODE_TYPE_FORWARDER, parentIndex);
		dpOut.putNodeString(forwarderReturn[1] + ".type_of_movement", typeOfMovement);
		dpOut.putNodeString(forwarderReturn[1] + ".biz_type", bizType);
		dpOut.putNodeString(forwarderReturn[1] + ".forwarder", forwarder);
		dpOut.putNodeString(forwarderReturn[1] + ".is_stuff", "true");

		Map containerGroup = groupStuffingPackageList(stuffingPackageList1, PreAdvicePageConstants.NODE_TYPE_CONTAINER);
		Object[] containerGroupKeyArray = containerGroup.keySet().toArray();
		for (int i1 = 0; i1 < containerGroupKeyArray.length; i1++) {
			double[] containerSum = fillContainerGroupInfo(customizedFields, dpOut, containerGroup, typeOfMovement, containerGroupKeyArray[i1].toString(), parentIndex);
			forwarderNoOfPack += containerSum[0];
			forwarderUnits += containerSum[1];
			forwarderVol += containerSum[2];
			forwarderGwt += containerSum[3];
		}

		fillTotalInfo(dpOut, forwarderNoOfPack, forwarderUnits, forwarderVol, forwarderGwt, forwarderReturn[1]);
		return new double[] { forwarderNoOfPack, forwarderUnits, forwarderVol, forwarderGwt };

	}

	private double[] fillDivisionGroupInfo(List customizedFields, DataPacket dpOut, Map divisionGroup, String division, String parentIndex) throws Exception {
		// summary
		long divisionNoOfPack = 0;
		long divisionUnits = 0;
		double divisionVol = 0;
		double divisionGwt = 0;

		List soList1 = (List) divisionGroup.get(division);

		String[] divisionReturn = addNode(dpOut, PreAdvicePageConstants.NODE_TYPE_DIVISION, parentIndex);
		dpOut.putNodeString(divisionReturn[1] + ".division_oid", division);
		dpOut.putNodeString(divisionReturn[1] + ".division", getNodeText(PreAdvicePageConstants.NODE_TYPE_DIVISION, division));
		dpOut.putNodeString(divisionReturn[1] + ".from_stuffing", "false");

		Map fndGroup = groupSOList(soList1, PreAdvicePageConstants.NODE_TYPE_FND);
		Object[] fndKeyArray = fndGroup.keySet().toArray();

		if (showFND || fndKeyArray.length > 1) {

			for (int i1 = 0; i1 < fndKeyArray.length; i1++) {
				double[] fndSum = fillFNDGroupInfo(customizedFields, dpOut, fndKeyArray[i1].toString(), fndGroup, divisionReturn[0]);

				divisionNoOfPack += fndSum[0];
				divisionUnits += fndSum[1];
				divisionVol += fndSum[2];
				divisionGwt += fndSum[3];
			}
		} else {
			double[] soSum = fillSOGroupInfo(customizedFields, dpOut, soList1, divisionReturn[0]);

			divisionNoOfPack += soSum[0];
			divisionUnits += soSum[1];
			divisionVol += soSum[2];
			divisionGwt += soSum[3];
		}

		fillTotalInfo(dpOut, divisionNoOfPack, divisionUnits, divisionVol, divisionGwt, divisionReturn[1]);

		return new double[] { divisionNoOfPack, divisionUnits, divisionVol, divisionGwt };
	}

	private double[] fillDivisionGroupStuffingInfo(List customizedFields, DataPacket dpOut, Map divisionGroup, String division, String parentIndex) throws Exception {
		// summary
		long divisionNoOfPack = 0;
		long divisionUnits = 0;
		double divisionVol = 0;
		double divisionGwt = 0;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -