|
|
@@ -4,44 +4,31 @@ import com.alibaba.fastjson.JSON;
|
|
|
import com.uas.platform.core.util.StringUtil;
|
|
|
import com.uas.ps.brand.entity.BrandInfo;
|
|
|
import com.uas.ps.component.entity.ComponentInfo;
|
|
|
+import com.uas.ps.core.page.PageInfo;
|
|
|
+import com.uas.ps.core.page.criteria.CriterionExpression;
|
|
|
+import com.uas.ps.core.page.criteria.LogicalExpression;
|
|
|
+import com.uas.ps.core.page.criteria.PredicateUtils;
|
|
|
+import com.uas.ps.core.page.criteria.SimpleExpression;
|
|
|
import com.uas.ps.core.util.StringUtils;
|
|
|
-import com.uas.ps.entity.Product;
|
|
|
-import com.uas.ps.entity.ProductMatchResult;
|
|
|
-import com.uas.ps.entity.ProductPrivate;
|
|
|
-import com.uas.ps.entity.ProductUsers;
|
|
|
-import com.uas.ps.entity.Status;
|
|
|
+import com.uas.ps.entity.*;
|
|
|
import com.uas.ps.product.ProductConstant;
|
|
|
import com.uas.ps.product.data.MyJdbcTemplate;
|
|
|
import com.uas.ps.product.entity.Constant;
|
|
|
import com.uas.ps.product.entity.Prod;
|
|
|
import com.uas.ps.product.entity.ProductReplace;
|
|
|
import com.uas.ps.product.entity.ProductSaler;
|
|
|
-import com.uas.ps.product.repository.ProductDao;
|
|
|
-import com.uas.ps.product.repository.ProductMatchResultDao;
|
|
|
-import com.uas.ps.product.repository.ProductPrivateDao;
|
|
|
-import com.uas.ps.product.repository.ProductReplaceDao;
|
|
|
-import com.uas.ps.product.repository.ProductUsersDao;
|
|
|
-import com.uas.ps.product.repository.SyncMessageDao;
|
|
|
+import com.uas.ps.product.repository.*;
|
|
|
import com.uas.ps.product.service.ProductService;
|
|
|
import com.uas.ps.product.sync.WaitSyncHelper;
|
|
|
import com.uas.ps.properties.UrlProperties;
|
|
|
import com.uas.ps.support.CodeType;
|
|
|
import com.uas.ps.support.ResultMap;
|
|
|
-import java.lang.reflect.Field;
|
|
|
-import java.sql.PreparedStatement;
|
|
|
-import java.sql.SQLException;
|
|
|
-import java.text.SimpleDateFormat;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.HashSet;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.Set;
|
|
|
-import javax.persistence.Column;
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
import org.apache.commons.collections.map.HashedMap;
|
|
|
import org.apache.log4j.Logger;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.data.domain.Page;
|
|
|
+import org.springframework.data.jpa.domain.Specification;
|
|
|
import org.springframework.jdbc.core.BatchPreparedStatementSetter;
|
|
|
import org.springframework.jdbc.core.ParameterizedPreparedStatementSetter;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
@@ -49,6 +36,17 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.ui.ModelMap;
|
|
|
import org.springframework.web.client.RestTemplate;
|
|
|
|
|
|
+import javax.persistence.Column;
|
|
|
+import javax.persistence.criteria.CriteriaBuilder;
|
|
|
+import javax.persistence.criteria.CriteriaQuery;
|
|
|
+import javax.persistence.criteria.Predicate;
|
|
|
+import javax.persistence.criteria.Root;
|
|
|
+import java.lang.reflect.Field;
|
|
|
+import java.sql.PreparedStatement;
|
|
|
+import java.sql.SQLException;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.util.*;
|
|
|
+
|
|
|
/**
|
|
|
* @author sunyj
|
|
|
* @since 2018/1/6 17:19
|
|
|
@@ -1135,6 +1133,36 @@ public class ProductServiceImpl implements ProductService {
|
|
|
return new ResultMap(CodeType.NO_INFO, "无有效信息");
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 根据分页信息获取物料
|
|
|
+ *
|
|
|
+ * @param pageInfo 分页信息
|
|
|
+ * @param keyword 关键词
|
|
|
+ * @return 物料page
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public Page<Product> findByPageInfo(final PageInfo pageInfo, String keyword) {
|
|
|
+ if (null == pageInfo) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ if (!StringUtils.isEmpty(keyword)) {
|
|
|
+ SimpleExpression pBrandEn = new SimpleExpression("pBrandEn", keyword, CriterionExpression.Operator.LIKE);
|
|
|
+ SimpleExpression title = new SimpleExpression("title", keyword, CriterionExpression.Operator.LIKE);
|
|
|
+ SimpleExpression pCmpCode = new SimpleExpression("pCmpCode", keyword, CriterionExpression.Operator.LIKE);
|
|
|
+ SimpleExpression spec = new SimpleExpression("spec", keyword, CriterionExpression.Operator.LIKE);
|
|
|
+ SimpleExpression[] simpleExpressions = new SimpleExpression[]{pBrandEn, title, pCmpCode, spec};
|
|
|
+ LogicalExpression logicalExpression = PredicateUtils.or(simpleExpressions);
|
|
|
+ pageInfo.expression(logicalExpression);
|
|
|
+ }
|
|
|
+ return productDao.findAll(new Specification<Product>() {
|
|
|
+ @Override
|
|
|
+ public Predicate toPredicate(Root<Product> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
|
|
|
+ query.where(pageInfo.getPredicates(root, query, cb));
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }, pageInfo);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 返回需要拼装的数据
|
|
|
* @param product 物料信息
|