|
|
@@ -7,11 +7,18 @@ import com.uas.platform.b2b.service.AttachService;
|
|
|
import com.uas.platform.b2b.service.PurchaseTenderService;
|
|
|
import com.uas.platform.b2b.support.SystemSession;
|
|
|
import com.uas.platform.core.model.Constant;
|
|
|
+import com.uas.platform.core.model.PageInfo;
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.data.domain.Page;
|
|
|
+import org.springframework.data.jpa.domain.Specification;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.ui.ModelMap;
|
|
|
|
|
|
+import javax.persistence.criteria.CriteriaBuilder;
|
|
|
+import javax.persistence.criteria.CriteriaQuery;
|
|
|
+import javax.persistence.criteria.Predicate;
|
|
|
+import javax.persistence.criteria.Root;
|
|
|
import java.util.*;
|
|
|
|
|
|
/**
|
|
|
@@ -145,6 +152,48 @@ public class PurchaseTenderServiceImpl implements PurchaseTenderService {
|
|
|
return map;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public Page<PurchaseTender> findAllByPageInfo(final PageInfo pageInfo) {
|
|
|
+ List<PurchaseTenderItem> tenderItems = purchaseTenderItemDao.findAll(new Specification<PurchaseTenderItem>() {
|
|
|
+ @Override
|
|
|
+ public Predicate toPredicate(Root<PurchaseTenderItem> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
|
|
|
+ Predicate myTender = cb.equal(root.get("enterpriseBaseInfo").get("uu"), SystemSession.getUser().getEnterprise().getUu());
|
|
|
+ query.where(myTender);
|
|
|
+ return query.getRestriction();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ Set<Long> ids = new HashSet<>();
|
|
|
+ for (PurchaseTenderItem tenderItem : tenderItems) {
|
|
|
+ ids.add(tenderItem.getTender().getId());
|
|
|
+ }
|
|
|
+ System.out.println("ids" + JSON.toJSONString(ids));
|
|
|
+ return purchaseTenderDao.findAll(new Specification<PurchaseTender>() {
|
|
|
+
|
|
|
+ public Predicate toPredicate(Root<PurchaseTender> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
|
|
|
+ Predicate p1 = root.get("id").in(ids.toArray());
|
|
|
+ Predicate p2 = builder.equal(root.get("isPublish"), Constant.YES);
|
|
|
+ Predicate p3 = builder.equal(root.get("ifOpen"), Constant.NO);
|
|
|
+ Predicate p = builder.and(p1,builder.and(p2,p3));
|
|
|
+ query.where(p);
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }, pageInfo);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Page<PurchaseTender> findOpenByPageInfo(final PageInfo pageInfo) {
|
|
|
+ return purchaseTenderDao.findAll(new Specification<PurchaseTender>() {
|
|
|
+
|
|
|
+ public Predicate toPredicate(Root<PurchaseTender> root, CriteriaQuery<?> query, CriteriaBuilder builder) {
|
|
|
+ Predicate p1 = builder.equal(root.get("ifOpen"), Constant.YES);
|
|
|
+ Predicate p2 = builder.equal(root.get("isPublish"), Constant.YES);
|
|
|
+ Predicate predicate = builder.and(p1,p2);
|
|
|
+ query.where(predicate);
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }, pageInfo);
|
|
|
+ }
|
|
|
+
|
|
|
private List<PurchaseTenderItem> saveTenderItem (PurchaseTender tender, List<Enterprise> enterprises) {
|
|
|
List<PurchaseTenderItem> tenderItems = new ArrayList<>();
|
|
|
for (Enterprise enterprise: enterprises) {
|