This commit is contained in:
ialbert 2023-10-17 15:09:17 +03:00
parent 5023e922cf
commit d0a359a97e
2 changed files with 9 additions and 52 deletions

View file

@ -9,8 +9,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import ru.clearing.classes.statics.data.register.MoneyBalanceRegister;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import ru.spcex.clearing.backendapi.controller.queue.history.condition.ConditionProvider;
import ru.spcex.clearing.backendapi.controller.queue.history.condition.HistorySubscription;
import ru.spcex.clearing.backendapi.controller.request.cud.history.HistoryRequest;
@ -21,16 +23,15 @@ import ru.spcex.clearing.backendapi.meta.GetResponseFactory;
import ru.spcex.clearing.backendapi.service.IStateLoader;
import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.platform.classes.base.SpcexObjectBase;
import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.ImdgProvider;
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
import ru.spcex.platform.utils.enumeration.EnumMessage;
import ru.spcex.platform.utils.time.TimeUtil;
import java.time.LocalDate;
import java.time.Month;
import java.util.*;
import java.util.Collection;
import java.util.Map;
import java.util.Optional;
@Controller
@RequestMapping("/history")
@ -64,28 +65,6 @@ public class HistController implements InitializingBean {
imdgProvider.waitAvailable();
}
@ApiOperation(value = "get all accounts.")
@ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)})
@RequestMapping(path = "/money-balance-register", method = RequestMethod.POST)
@ResponseBody
public CommonGetAllResponse search(
@ApiParam(value = "Параметры команды в JSON формате.", required = true)
@RequestBody HistoryRequest searchCondition) {
Imdg<SpcexObjectBase> searchMap = imdgProviderHist.getImdg(IMDGDistributedNames.Map_SearchMoneyBalanceRegister, SpcexObjectBase.class);
ImdgPredicateBuilder prdct = searchMap.predicateBuilder();
LocalDate time = LocalDate.of(2023, Month.JUNE, 8);//2023-06-08
Collection<Long> ids = searchMap.getCollectionIdsByPredicate(prdct.greatEqual("created", TimeUtil.localDateToInstant(time)));
Imdg<MoneyBalanceRegister> histMap = imdgProviderHist.getImdg(IMDGDistributedNames.Map_MoneyBalanceRegister, MoneyBalanceRegister.class);
List<Map<String, Object>> maps = ids.stream()
.map(histMap::getSingleObjectByID)
.filter(Objects::nonNull)
.map(responseFactory::responseFromObject)
.toList();
CommonGetAllResponse response = new CommonGetAllResponse();
response.fromEntity(maps);
return response;
}
@ApiOperation(value = "Get history")
@ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)})
@RequestMapping(path = "/all", method = RequestMethod.POST)
@ -134,27 +113,4 @@ public class HistController implements InitializingBean {
response.fromEntity(searchRes);
return response;
}
@ApiOperation(value = "get all money balance registers.")
@ApiResponses(value = {@ApiResponse(code = 200, message = "OK", response = CommonGetAllResponse.class)})
@RequestMapping(path = "/money-balance-register2", method = RequestMethod.POST)
@ResponseBody
public CommonGetAllResponse search2(
@ApiParam(value = "Параметры команды в JSON формате.", required = true)
@RequestBody HistoryRequest searchCondition) {
//todo conditions by destination and filled fields
ImdgPredicate prdct = pb.and(
pb.greatEqual("created", TimeUtil.localDateToInstant(searchCondition.getFrom())),
pb.lessEqual("created", TimeUtil.localDateToInstant(searchCondition.getTo()))
);
Collection<Map<String, Object>> searchRes = stateLoader.getAllMetaTransform(
IMDGDistributedNames.Map_SearchMoneyBalanceRegister,
IMDGDistributedNames.Map_MoneyBalanceRegister,
MoneyBalanceRegister.class,
prdct
);
CommonGetAllResponse response = new CommonGetAllResponse();
response.fromEntity(searchRes);
return response;
}
}

View file

@ -58,7 +58,8 @@ public class ConditionProvider {
ImdgPredicate result;
if (predicates.size() == 0) {
log.warn("destination {} zero predicates found", destination);
//add boundary conditions?
log.warn("destination '{}' zero predicates found", destination);
result = pb.alwaysTrue();
} else {
result = pb.and(predicates.toArray(new ImdgPredicate[0]));