|
|
@@ -50,10 +50,7 @@ import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
import java.io.OutputStream;
|
|
|
import java.math.BigDecimal;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.Optional;
|
|
|
+import java.util.*;
|
|
|
|
|
|
/**
|
|
|
* @author chan
|
|
|
@@ -526,12 +523,26 @@ public class CmsOrderController {
|
|
|
* 多余车位的空账号
|
|
|
*/
|
|
|
@GetMapping("/get/sameSpec/empty/relation")
|
|
|
- public Result<SearchResult<EmptyGroupsRelationView>> getSameSpecEmptyRelation(Long skuId, Long groupsId) {
|
|
|
+ public Result<SearchResult<EmptyGroupsRelationView>> getSameSpecEmptyRelation(Long skuId, Long groupsId, Long relationId, Boolean isNormal) {
|
|
|
MapBuilder builder = MapUtils.flatBuilder(request.getParameterMap())
|
|
|
- .field(EmptyGroupsRelationView::getGroupsId, groupsId).op(Operator.NotEqual)
|
|
|
.field(EmptyGroupsRelationView::getStatus, GroupsTrips.Status.down.name()).op(Operator.NotEqual)
|
|
|
.field(EmptyGroupsRelationView::getSkuId, skuId).orderBy(EmptyGroupsRelationView::getAvailableNum)
|
|
|
.desc();
|
|
|
+ Date expiryTime = null;
|
|
|
+ if (relationId != null) {
|
|
|
+ GroupsRelation relation = relationMapper.selectById(relationId);
|
|
|
+ if (relation != null) expiryTime = relation.getExpiryTime();
|
|
|
+ }
|
|
|
+ if (groupsId != null) {
|
|
|
+ builder.field(EmptyGroupsRelationView::getGroupsId, groupsId).op(Operator.NotEqual);
|
|
|
+ }
|
|
|
+ if (isNormal != null && isNormal) {
|
|
|
+ builder.put("account_id", String.format("gt.account_id not in (select account_id from work_order where sku_id = %s and account_id is not null)", skuId));
|
|
|
+ }
|
|
|
+ if (expiryTime != null) {
|
|
|
+ builder.field(AccountView::getExpiryTime, expiryTime).op(Operator.GreaterEqual);
|
|
|
+ builder.orderBy(AccountView::getExpiryTime).asc();
|
|
|
+ }
|
|
|
GoodsDonSku sku = skuMapper.selectById(skuId);
|
|
|
if (!Constant.AI_goodsIds.contains(sku.getGoodsId())) {
|
|
|
builder.field(EmptyGroupsRelationView::getAvailableNum, 0).op(Operator.GreaterThan);
|