|
|
@@ -2,6 +2,10 @@ package com.uas.ps.product.service.impl;
|
|
|
|
|
|
import com.uas.platform.core.persistence.criteria.PredicateFactory;
|
|
|
import com.uas.platform.core.persistence.criteria.PredicateUtils;
|
|
|
+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.SimpleExpression;
|
|
|
import com.uas.ps.core.util.CollectionUtils;
|
|
|
import com.uas.ps.core.util.StringUtils;
|
|
|
import com.uas.ps.entity.Product;
|
|
|
@@ -10,8 +14,12 @@ import com.uas.ps.product.entity.Constant;
|
|
|
import com.uas.ps.product.entity.ProductSaler;
|
|
|
import com.uas.ps.product.repository.ProductDao;
|
|
|
import com.uas.ps.product.repository.ProductUsersDao;
|
|
|
+import com.uas.ps.product.search.SPageUtils;
|
|
|
+import com.uas.ps.product.search.model.SPage;
|
|
|
import com.uas.ps.product.service.ProductUsersService;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.data.domain.Page;
|
|
|
+import org.springframework.data.domain.Sort;
|
|
|
import org.springframework.data.jpa.domain.Specification;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.ui.ModelMap;
|
|
|
@@ -28,7 +36,10 @@ import java.util.List;
|
|
|
import java.util.Set;
|
|
|
|
|
|
/**
|
|
|
- * Created by hejq on 2017-11-08.
|
|
|
+ * 个人物料
|
|
|
+ *
|
|
|
+ * @author hejq
|
|
|
+ * @date 2018-08-02 18:05
|
|
|
*/
|
|
|
@Service
|
|
|
public class ProductUsersServiceImpl implements ProductUsersService {
|
|
|
@@ -39,44 +50,29 @@ public class ProductUsersServiceImpl implements ProductUsersService {
|
|
|
@Autowired
|
|
|
private ProductDao productDao;
|
|
|
|
|
|
- /**
|
|
|
- * 保存个人物料信息
|
|
|
- *
|
|
|
- * @param productUsers 个人物料信息
|
|
|
- */
|
|
|
- @Override
|
|
|
- public void save(List<ProductUsers> productUsers) {
|
|
|
- List<ProductUsers> saveList = new ArrayList<>();
|
|
|
- for (ProductUsers prodUsers : productUsers) {
|
|
|
- List<ProductUsers> existedProductUsers = productUsersDao.findByEnuuAndUseruuAndErpid(prodUsers.getEnuu(), prodUsers.getUseruu(), prodUsers.getPrid());
|
|
|
- if (CollectionUtils.isEmpty(existedProductUsers)) {
|
|
|
- prodUsers.setDate(new Date());
|
|
|
- saveList.add(prodUsers);
|
|
|
- }
|
|
|
- }
|
|
|
- productUsersDao.save(saveList);
|
|
|
- }
|
|
|
-
|
|
|
@Override
|
|
|
public ModelMap addNewProduct(Product prodInfo) {
|
|
|
ModelMap map = new ModelMap();
|
|
|
// 先查找以前的个人物料是否存在
|
|
|
List<ProductUsers> productUsers = productUsersDao.findByEnuuAndUseruuAndTitleAndCmpCodeAndBrand(prodInfo.getEnUU(), prodInfo.getUserUU(), prodInfo.getTitle(), prodInfo.getCmpCode(), prodInfo.getBrand());
|
|
|
- if(CollectionUtils.isEmpty(productUsers)) {// 如果不存在则进行其他操作,存在不处理(先查询非标)
|
|
|
+ // 如果不存在则进行其他操作,存在不处理(先查询非标)
|
|
|
+ if (CollectionUtils.isEmpty(productUsers)) {
|
|
|
List<Product> productList = productDao.findByTitleAndCmpCodeAndBrandAndEnUU(prodInfo.getTitle(), prodInfo.getCmpCode(), prodInfo.getBrand(), prodInfo.getEnUU());
|
|
|
- if(CollectionUtils.isEmpty(productList)) {// 如果非标不存在再查询标准
|
|
|
+ // 如果非标不存在再查询标准
|
|
|
+ if (CollectionUtils.isEmpty(productList)) {
|
|
|
productList = productDao.findByTitleAndPCmpCodeAndPBrandAndEnUU(prodInfo.getTitle(), prodInfo.getCmpCode(), prodInfo.getBrand(), prodInfo.getEnUU());
|
|
|
}
|
|
|
- if(!CollectionUtils.isEmpty(productList)) { // 如果存在,找出其中一个进行绑定
|
|
|
+ // 如果存在,找出其中一个进行绑定
|
|
|
+ if (!CollectionUtils.isEmpty(productList)) {
|
|
|
ProductUsers prod = new ProductUsers();
|
|
|
prod.setDate(new Date());
|
|
|
prod.setEnuu(prodInfo.getEnUU());
|
|
|
prod.setPrid(productList.get(0).getId());
|
|
|
prod.setUseruu(prodInfo.getUserUU());
|
|
|
productUsersDao.save(prod);
|
|
|
-// logger.log("个人产品库增加产品", "关联:" + productList.get(0).getId());
|
|
|
map.put("success", "新增成功");
|
|
|
- } else {// 不存在的话新增再绑定
|
|
|
+ // 不存在的话新增再绑定
|
|
|
+ } else {
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("mmsssss");
|
|
|
if(null == prodInfo.getCode()) {
|
|
|
String code = prodInfo.getEnUU() + sdf.format(new Date());
|
|
|
@@ -84,23 +80,14 @@ public class ProductUsersServiceImpl implements ProductUsersService {
|
|
|
} else {
|
|
|
List<Product> products = productDao.findByEnUUAndCode(prodInfo.getEnUU(), prodInfo.getCode());
|
|
|
String code = prodInfo.getEnUU() + sdf.format(new Date());
|
|
|
- if(products.size() != 0) // 如果该企业下该编号的物料存在,重新赋值
|
|
|
+ if(products.size() != 0) {
|
|
|
prodInfo.setCode(code);
|
|
|
+ }
|
|
|
|
|
|
}
|
|
|
-// List<Role> roles = roleService.findByEnUUAndUserUU(enuu, useruu);
|
|
|
-// if(!CollectionUtils.isEmpty(roles)) {
|
|
|
-// for(Role role : roles) {
|
|
|
-// if(role.getDesc().equals("业务员") || role.getDesc().equals("销售经理")) {
|
|
|
-// prodInfo.setIsSale(Constant.YES);
|
|
|
-// } else if(role.getDesc().equals("采购员")) {
|
|
|
-// prodInfo.setIsPurchase(Constant.YES);
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|
|
|
-// prodInfo.setEnUU(enuu);
|
|
|
- if (null == prodInfo.getUnit())
|
|
|
+ if (null == prodInfo.getUnit()) {
|
|
|
prodInfo.setUnit("PCS");
|
|
|
+ }
|
|
|
prodInfo.setSourceApp("B2B");
|
|
|
prodInfo.setIsPubsale(Constant.NO);
|
|
|
prodInfo.setIsShow(Constant.NO);
|
|
|
@@ -113,7 +100,6 @@ public class ProductUsersServiceImpl implements ProductUsersService {
|
|
|
prod.setPrid(prodInfo.getId());
|
|
|
prod.setUseruu(prodInfo.getUserUU());
|
|
|
productUsersDao.save(prod);
|
|
|
-// logger.log("个人产品库增加产品", "关联:" + prodInfo.getId());
|
|
|
map.put("success", "新增成功");
|
|
|
}
|
|
|
} else {
|
|
|
@@ -142,7 +128,6 @@ public class ProductUsersServiceImpl implements ProductUsersService {
|
|
|
}
|
|
|
}
|
|
|
productUsersList = productUsersDao.save(productUsersList);
|
|
|
-// logger.log("我的产品库", "新增了我产品信息", "size:" + count);
|
|
|
return productUsersList.size();
|
|
|
}
|
|
|
|
|
|
@@ -150,31 +135,12 @@ public class ProductUsersServiceImpl implements ProductUsersService {
|
|
|
public void coverToUserProdById(Long id, Long userUU, Long enUU) {
|
|
|
List<ProductUsers> prods = productUsersDao.findByEnuuAndUseruuAndPrid(enUU, userUU, id);
|
|
|
if(CollectionUtils.isEmpty(prods)) {
|
|
|
-// Product product = productDao.findOne(id);
|
|
|
-// List<Role> roles = roleService.findByEnUUAndUserUU(enuu, useruu);
|
|
|
-// // 根据当前用户角色更新物料销售采购属性
|
|
|
-// if(!CollectionUtils.isEmpty(roles)) {
|
|
|
-// for(Role role : roles) {
|
|
|
-// if(role.getDesc().equals("业务员") || role.getDesc().equals("销售经理")) {
|
|
|
-// if(product.getIsSale() == null || product.getIsSale().equals(Constant.NO)) {
|
|
|
-// product.setIsSale(Constant.YES);
|
|
|
-// productDao.save(product);
|
|
|
-// }
|
|
|
-// } else if(role.getDesc().equals("采购员")) {
|
|
|
-// if(product.getIsPurchase() == null || product.getIsPurchase().equals(Constant.NO)) {
|
|
|
-// product.setIsPurchase(Constant.YES);
|
|
|
-// productDao.save(product);
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|
|
|
-// }
|
|
|
ProductUsers prod = new ProductUsers();
|
|
|
prod.setUseruu(userUU);
|
|
|
prod.setEnuu(enUU);
|
|
|
prod.setPrid(id);
|
|
|
prod.setDate(new Date());
|
|
|
- prod = productUsersDao.save(prod);
|
|
|
-// logger.log("我的产品库", "新增了我产品信息", "id:" + prod.getId());
|
|
|
+ productUsersDao.save(prod);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -194,10 +160,11 @@ public class ProductUsersServiceImpl implements ProductUsersService {
|
|
|
@Override
|
|
|
public List<ProductUsers> getProductUsersByEnUUAndCmpCode(final Long enUU, final String cmpCode) {
|
|
|
List<ProductUsers> returnList = new ArrayList<>();
|
|
|
+ String NONE_KEYWORD = "无";
|
|
|
// 去掉同一企业下同一个人相同原厂型号的不同物料的记录,保证一个原厂型号只发一条
|
|
|
Set<String> enUUAndUserUUs = new HashSet<>();
|
|
|
// 过滤掉为空和填无的型号
|
|
|
- if (StringUtils.isEmpty(cmpCode) || "无".equals(cmpCode)) {
|
|
|
+ if (StringUtils.isEmpty(cmpCode) || NONE_KEYWORD.equals(cmpCode)) {
|
|
|
return returnList;
|
|
|
}
|
|
|
List<ProductUsers> productUsersList = productUsersDao.findAll(new Specification<ProductUsers>() {
|
|
|
@@ -222,26 +189,6 @@ public class ProductUsersServiceImpl implements ProductUsersService {
|
|
|
return returnList;
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * ERP productSaler 实体转换成 productUsers 实体
|
|
|
- *
|
|
|
- * @param productSalers productUsers List
|
|
|
- * @return
|
|
|
- */
|
|
|
- @Override
|
|
|
- public List<ProductUsers> convertProductUsers(List<ProductSaler> productSalers) {
|
|
|
- List<ProductUsers> productUsersList = new ArrayList<>();
|
|
|
- for (ProductSaler productSaler : productSalers) {
|
|
|
- List<Product> products = productDao.findByEnUUAndCode(productSaler.getEn_uu(), productSaler.getPs_code());
|
|
|
- if (!CollectionUtils.isEmpty(products)) {
|
|
|
- ProductUsers productUsers = productSaler.convert();
|
|
|
- productUsers.setPrid(products.get(0).getId());
|
|
|
- productUsersList.add(productUsers);
|
|
|
- }
|
|
|
- }
|
|
|
- return productUsersList;
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
* 更新我的个人产品库方法
|
|
|
*
|
|
|
@@ -260,4 +207,29 @@ public class ProductUsersServiceImpl implements ProductUsersService {
|
|
|
}
|
|
|
productUsersDao.save(productUsers);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 通过分页信息查询个人物料
|
|
|
+ *
|
|
|
+ * @param pageInfo 分页信息
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public SPage<ProductUsers> findByPageInfo(final PageInfo pageInfo) {
|
|
|
+ if (null == pageInfo) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ if (null == pageInfo.getSort()) {
|
|
|
+ Sort sort = new Sort(Sort.Direction.DESC, "id");
|
|
|
+ pageInfo.setSort(sort);
|
|
|
+ }
|
|
|
+ Page<ProductUsers> productUsersPage = productUsersDao.findAll(new Specification<ProductUsers>() {
|
|
|
+ @Override
|
|
|
+ public Predicate toPredicate(Root<ProductUsers> root, CriteriaQuery<?> query, CriteriaBuilder cb) {
|
|
|
+ query.where(pageInfo.getPredicates(root, query, cb));
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }, pageInfo);
|
|
|
+ return SPageUtils.covert(productUsersPage);
|
|
|
+ }
|
|
|
}
|