public Map<Integer, String> getForMoveItemByOrderId(
     Integer salesOrderId, Integer orderShipmentId) {
   String hql =
       "select os from OrderShipment os where os.salesOrder.salesOrderId=? and os.status<=? and os.orderShipmentId!=? order by os.shipmentNo";
   List<OrderShipment> rst =
       this.findByHql(
           hql, salesOrderId, OrderConstants.SHIPMENT_STATUS_INVENTORY_ASSIGNED, orderShipmentId);
   Map<Integer, String> moveTo = new HashMap<Integer, String>();
   if (rst != null)
     for (OrderShipment temp : rst) {
       if (temp.hasPhysicalSku()) moveTo.put(temp.getOrderShipmentId(), temp.getShipmentNo());
     }
   return moveTo;
 }
  /**
   * 是否有类同的发货项,对比email与地址
   *
   * @param salesOrder
   * @param orderShipment
   * @param shippingAddress
   * @return
   */
  public boolean hasSimilarOrderShipment(
      SalesOrder salesOrder, OrderShipment orderShipment, OrderAddress shippingAddress) {
    if (shippingAddress == null) return false;
    String hql =
        "select os from SalesOrder so, OrderShipment os, OrderAddress oa where so.salesOrderId=os.salesOrder.salesOrderId and os.orderAddress.orderAddressId is not null and os.orderAddress.orderAddressId=oa.orderAddressId"
            + " and os.shipmentNo!=? and so.customerEmail=? and so.orderStatus=? and oa.country=? and oa.state=? and oa.city=? and oa.address1=? and oa.address2=?";
    Long countNum =
        this.countByHql(
            hql,
            orderShipment.getShipmentNo(),
            salesOrder.getCustomerEmail(),
            OrderConstants.ORDER_STATUS_COMPLETE,
            shippingAddress.getCountry(),
            shippingAddress.getState(),
            shippingAddress.getCity(),
            shippingAddress.getAddress1(),
            shippingAddress.getAddress2());

    if (countNum != null && countNum.longValue() > 0) return true;

    return false;
  }