|
|
@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject;
|
|
|
import com.alibaba.fastjson.TypeReference;
|
|
|
import com.alibaba.fastjson.parser.Feature;
|
|
|
import com.uas.platform.b2c.common.account.model.Enterprise;
|
|
|
+import com.uas.platform.b2c.common.account.model.User;
|
|
|
import com.uas.platform.b2c.common.account.service.EnterpriseService;
|
|
|
import com.uas.platform.b2c.common.base.dao.CommonDao;
|
|
|
import com.uas.platform.b2c.common.search.rpc.service.SearchService;
|
|
|
@@ -58,12 +59,7 @@ import com.uas.platform.b2c.prod.commodity.model.ReleaseProductByBatch;
|
|
|
import com.uas.platform.b2c.prod.commodity.model.UASBatchPutOnProperty;
|
|
|
import com.uas.platform.b2c.prod.commodity.model.V_ProductPerson;
|
|
|
import com.uas.platform.b2c.prod.commodity.model.V_ProductPrivate;
|
|
|
-import com.uas.platform.b2c.prod.commodity.service.GoodsHistoryService;
|
|
|
-import com.uas.platform.b2c.prod.commodity.service.GoodsService;
|
|
|
-import com.uas.platform.b2c.prod.commodity.service.ProductAttachService;
|
|
|
-import com.uas.platform.b2c.prod.commodity.service.ProductPrivateService;
|
|
|
-import com.uas.platform.b2c.prod.commodity.service.ProductService;
|
|
|
-import com.uas.platform.b2c.prod.commodity.service.UASBatchPutOnPropertyService;
|
|
|
+import com.uas.platform.b2c.prod.commodity.service.*;
|
|
|
import com.uas.platform.b2c.prod.commodity.type.InOutBoundType;
|
|
|
import com.uas.platform.b2c.prod.commodity.type.ProductConstant;
|
|
|
import com.uas.platform.b2c.prod.commodity.util.GoodsUtil;
|
|
|
@@ -118,6 +114,7 @@ import org.springframework.jdbc.core.ParameterizedPreparedStatementSetter;
|
|
|
import org.springframework.jdbc.core.StatementCallback;
|
|
|
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Propagation;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.util.StringUtils;
|
|
|
import org.springframework.web.client.RestTemplate;
|
|
|
@@ -278,6 +275,9 @@ public class ProductServiceImpl implements ProductService {
|
|
|
|
|
|
private final CommonDao commonDao;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private ProductPersonService productPersonService;
|
|
|
+
|
|
|
@Autowired
|
|
|
public ProductServiceImpl(CommonDao commonDao) {
|
|
|
this.commonDao = commonDao;
|
|
|
@@ -449,28 +449,40 @@ public class ProductServiceImpl implements ProductService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
|
|
|
@Override
|
|
|
public Integer setAllProductsByProductIds(String ids, Integer isAll, Integer isStardand) {
|
|
|
List<Long> prIds;
|
|
|
- int count = 0;
|
|
|
try {
|
|
|
prIds = JSON.parseArray(ids,Long.class);
|
|
|
- } catch (RuntimeException e){prIds = new ArrayList<>();}
|
|
|
- Long useruu = SystemSession.getUser().getUserUU();
|
|
|
+ } catch (RuntimeException e) {
|
|
|
+ prIds = new ArrayList<>();
|
|
|
+ }
|
|
|
+
|
|
|
+ //查找物料信息
|
|
|
+ User user = SystemSession.getUser();
|
|
|
if (isAll != null && isAll.equals(IntegerConstant.YES_SHORT)) {
|
|
|
- prIds = productDao.findPridsByEnuuAndStardand(SystemSession.getUser().getEnterprise().getUu(), isStardand);
|
|
|
+ prIds = productDao.findPridsByEnuuAndStardand(user.getEnterprise().getUu(), isStardand);
|
|
|
}
|
|
|
+
|
|
|
+ //筛选已经存在个人物料库的信息
|
|
|
if (!CollectionUtils.isEmpty(prIds)) {
|
|
|
- for (Long prId : prIds) {
|
|
|
- List<ProductPerson> p = productPersonDao.findByProductIdAndUserUU(prId,useruu);
|
|
|
- if (CollectionUtils.isEmpty(p)) {
|
|
|
- ProductPerson productPerson = new ProductPerson(useruu, SystemSession.getUser().getEnterprise().getUu(), prId);
|
|
|
- productPersonDao.save(productPerson);
|
|
|
- count++;
|
|
|
- }
|
|
|
+ List<Long> productIdInProductPerson = productPersonDao.findProductIdInProductPerson(prIds, user.getUserUU());
|
|
|
+ for (Long productid : productIdInProductPerson) {
|
|
|
+ prIds.remove(productid);
|
|
|
}
|
|
|
}
|
|
|
- return count;
|
|
|
+
|
|
|
+ //转成需要保存的信息
|
|
|
+ List<ProductPerson> list = new ArrayList<>();
|
|
|
+ for (Long prId : prIds) {
|
|
|
+ ProductPerson productPerson = new ProductPerson(user.getEnterprise().getUu(), user.getUserUU(), prId);
|
|
|
+ list.add(productPerson);
|
|
|
+ }
|
|
|
+ if (CollectionUtils.isNotEmpty(list)) {
|
|
|
+ productPersonService.batchInsert(list);
|
|
|
+ }
|
|
|
+ return prIds.size();
|
|
|
}
|
|
|
|
|
|
@Override
|