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; }