|
|
@@ -243,8 +243,7 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
|
|
|
*/
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
-
|
|
|
- public R importProductLaunch(List<ProductLaunchImportExcel> data, Boolean isCovered) {
|
|
|
+ public R importProductLaunch(List<ProductLaunchImportExcel> data, Boolean isCovered, String whetherIntegral) {
|
|
|
if (CollectionUtils.isEmpty(data)) {
|
|
|
throw new SecurityException("导入数据不能为空");
|
|
|
}
|
|
|
@@ -252,25 +251,29 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
|
|
|
List<PjProductLaunch> launchList = new ArrayList<>();
|
|
|
List<PjProductLaunch> pjProductLaunchList1 = new ArrayList<>();
|
|
|
List<String> goodsNames = data.stream().map(ProductLaunchImportExcel::getCname).collect(Collectors.toList());
|
|
|
- List<PjGoodsDesc> pjGoodsDescsList = goodsDescMapper.selectList(new LambdaQueryWrapper<PjGoodsDesc>()
|
|
|
+ LambdaQueryWrapper<PjGoodsDesc> goodsDescLambdaQueryWrapper = new LambdaQueryWrapper<PjGoodsDesc>()
|
|
|
.eq(PjGoodsDesc::getIsDeleted, 0)
|
|
|
.eq(PjGoodsDesc::getEnableOrNot, 1)
|
|
|
- .in(PjGoodsDesc::getCname, goodsNames));
|
|
|
+ .in(PjGoodsDesc::getCname, goodsNames);
|
|
|
+ if ("1".equals(whetherIntegral)) {
|
|
|
+ goodsDescLambdaQueryWrapper.eq(PjGoodsDesc::getWhetherIntegral, whetherIntegral);
|
|
|
+ }
|
|
|
+ List<PjGoodsDesc> pjGoodsDescsList = goodsDescMapper.selectList(goodsDescLambdaQueryWrapper);
|
|
|
List<PjGoodsFiles> pjGoodsFilesList = new ArrayList<>();
|
|
|
List<PjStockDesc> pjStockDescList = new ArrayList<>();
|
|
|
if (!pjGoodsDescsList.isEmpty()) {
|
|
|
List<Long> goodsId = pjGoodsDescsList.stream().map(PjGoodsDesc::getId).collect(Collectors.toList());
|
|
|
pjGoodsFilesList = goodsFilesMapper.selectList(new LambdaQueryWrapper<PjGoodsFiles>()
|
|
|
.in(PjGoodsFiles::getPid, goodsId));
|
|
|
- //.eq(PjGoodsFiles::getMainImage, 0)
|
|
|
- //获得库存
|
|
|
- LambdaQueryWrapper<PjStockDesc> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
- lambdaQueryWrapper.eq(PjStockDesc::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(PjStockDesc::getIsDeleted, 0)
|
|
|
- .eq(PjStockDesc::getSalesCompanyId, AuthUtil.getDeptId())
|
|
|
- .in(PjStockDesc::getGoodsId, goodsId);
|
|
|
-
|
|
|
- pjStockDescList = stockDescService.list(lambdaQueryWrapper);
|
|
|
+ if (!"1".equals(whetherIntegral)) {
|
|
|
+ //获得库存
|
|
|
+ LambdaQueryWrapper<PjStockDesc> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ lambdaQueryWrapper.eq(PjStockDesc::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(PjStockDesc::getIsDeleted, 0)
|
|
|
+ .eq(PjStockDesc::getSalesCompanyId, AuthUtil.getDeptId())
|
|
|
+ .in(PjStockDesc::getGoodsId, goodsId);
|
|
|
+ pjStockDescList = stockDescService.list(lambdaQueryWrapper);
|
|
|
+ }
|
|
|
}
|
|
|
String status = iSysClient.getParamServiceNew("zero.inventory.grounding");
|
|
|
List<Dept> deptList = new ArrayList<>();
|
|
|
@@ -280,20 +283,15 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
|
|
|
}
|
|
|
LambdaQueryWrapper<PjProductLaunch> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
queryWrapper.eq(PjProductLaunch::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(PjProductLaunch::getIsDeleted, 0);
|
|
|
+ .eq(PjProductLaunch::getIsDeleted, 0)
|
|
|
+ .eq(PjProductLaunch::getWhetherIntegral, 0);
|
|
|
List<PjProductLaunch> productLaunchList = baseMapper.selectList(queryWrapper);
|
|
|
for (ProductLaunchImportExcel e : data) {
|
|
|
PjProductLaunch productLaunch = new PjProductLaunch();
|
|
|
BeanUtils.copyProperties(e, productLaunch);
|
|
|
-
|
|
|
//获得商品信息
|
|
|
PjGoodsDesc pjGoodsDesc = pjGoodsDescsList.stream()
|
|
|
.filter(i -> i.getCname().equals(productLaunch.getCname())).findFirst().orElse(null);
|
|
|
- /* PjGoodsDesc pjGoodsDesc = goodsDescMapper.selectOne(new LambdaQueryWrapper<PjGoodsDesc>()
|
|
|
- .eq(PjGoodsDesc::getIsDeleted, 0)
|
|
|
- .eq(PjGoodsDesc::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(PjGoodsDesc::getCname, e.getCname()));
|
|
|
-*/
|
|
|
if (pjGoodsDesc != null) {
|
|
|
//商品id
|
|
|
productLaunch.setGoodsId(pjGoodsDesc.getId());
|
|
|
@@ -307,27 +305,31 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
|
|
|
productLaunch.setCnameInt(pjGoodsDesc.getCnameInt());
|
|
|
productLaunch.setSpecificationAndModel(pjGoodsDesc.getSpecificationAndModel());
|
|
|
productLaunch.setDetailsText(pjGoodsDesc.getGoodsDescription());
|
|
|
- List<PjStockDesc> stockDescList = pjStockDescList.stream().filter(i -> i.getGoodsId().equals(pjGoodsDesc.getId())).collect(Collectors.toList());
|
|
|
- if ("1".equals(status)) {
|
|
|
- if (!stockDescList.isEmpty()) {
|
|
|
- productLaunch.setInventory(stockDescList.stream().map(PjStockDesc::getBalanceQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ if (!"1".equals(whetherIntegral)) {
|
|
|
+ List<PjStockDesc> stockDescList = pjStockDescList.stream().filter(i -> i.getGoodsId().equals(pjGoodsDesc.getId())).collect(Collectors.toList());
|
|
|
+ if ("1".equals(status)) {
|
|
|
+ if (!stockDescList.isEmpty()) {
|
|
|
+ productLaunch.setInventory(stockDescList.stream().map(PjStockDesc::getBalanceQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ } else {
|
|
|
+ productLaunch.setInventory(BigDecimal.ZERO);
|
|
|
+ }
|
|
|
} else {
|
|
|
- productLaunch.setInventory(BigDecimal.ZERO);
|
|
|
- }
|
|
|
- } else {
|
|
|
- if (!stockDescList.isEmpty()) {
|
|
|
- if (new BigDecimal("0.00").compareTo(stockDescList.stream().map(PjStockDesc::getBalanceQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)) == 0) {
|
|
|
+ if (!stockDescList.isEmpty()) {
|
|
|
+ if (new BigDecimal("0.00").compareTo(stockDescList.stream().map(PjStockDesc::getBalanceQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)) == 0) {
|
|
|
+ throw new RuntimeException("商品" + e.getCname() + "库存为零,请处理后重新导入");
|
|
|
+ }
|
|
|
+ productLaunch.setInventory(stockDescList.stream().map(PjStockDesc::getBalanceQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ } else {
|
|
|
throw new RuntimeException("商品" + e.getCname() + "库存为零,请处理后重新导入");
|
|
|
}
|
|
|
- productLaunch.setInventory(stockDescList.stream().map(PjStockDesc::getBalanceQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
- } else {
|
|
|
- throw new RuntimeException("商品" + e.getCname() + "库存为零,请处理后重新导入");
|
|
|
}
|
|
|
+ } else {
|
|
|
+ productLaunch.setInventory(e.getInventory());
|
|
|
+ productLaunch.setWhetherIntegral(whetherIntegral);
|
|
|
}
|
|
|
} else {
|
|
|
throw new RuntimeException("商品" + e.getCname() + "名称错误或商品不存在");
|
|
|
}
|
|
|
-
|
|
|
//获得所属公司
|
|
|
if (StringUtil.isNotBlank(e.getSalesCompanyName())) {
|
|
|
Dept dept = deptList.stream().filter(item -> item.getFullName().equals(productLaunch.getSalesCompanyName()))
|
|
|
@@ -364,72 +366,74 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
|
|
|
// baseMapper.updateById(productLaunch);
|
|
|
}
|
|
|
//获得共享公司
|
|
|
- if (StringUtil.isNotBlank(e.getSharedCompany())) {
|
|
|
- List<Dept> dept = deptList.stream().filter(item -> productLaunch.getSharedCompany().contains(item.getId() + "")).collect(Collectors.toList());
|
|
|
- productLaunch.setSharedCompany("");
|
|
|
- for (Dept item : dept) {
|
|
|
- productLaunch.setSharedCompany(productLaunch.getSharedCompany() + "," + item.getId());
|
|
|
- PjProductLaunch launch = new PjProductLaunch();
|
|
|
- BeanUtils.copyProperties(productLaunch, launch);
|
|
|
- PjProductLaunch selOne = productLaunchList.stream().filter(i -> i.getBillType().equals(1) &&
|
|
|
- i.getGoodsId().equals(productLaunch.getGoodsId()) && i.getSalesCompanyId().equals(item.getId()) &&
|
|
|
- i.getSourceCompanyId().equals(productLaunch.getSalesCompanyId())).findFirst().orElse(null);
|
|
|
- if (ObjectUtil.isEmpty(selOne)) {
|
|
|
- launch.setId(null);
|
|
|
- launch.setBillType(1);
|
|
|
- launch.setWhetherShare(0);
|
|
|
- launch.setUpAndDownShelves(0);
|
|
|
- launch.setCreateUser(AuthUtil.getUserId());
|
|
|
- launch.setCreateTime(new Date());
|
|
|
- launch.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
|
|
|
- launch.setSourceId(productLaunch.getId());
|
|
|
- launch.setSourceCompanyId(productLaunch.getSalesCompanyId());
|
|
|
- launch.setSourceCompanyName(productLaunch.getSalesCompanyName());
|
|
|
- launch.setTenantId(AuthUtil.getTenantId());
|
|
|
- launch.setSharedCompany(null);
|
|
|
- launch.setSalesCompanyId(item.getId());
|
|
|
- launch.setSalesCompanyName(item.getFullName());
|
|
|
- launch.setVersion(0);
|
|
|
+ if (!"1".equals(whetherIntegral)) {
|
|
|
+ if (StringUtil.isNotBlank(e.getSharedCompany())) {
|
|
|
+ List<Dept> dept = deptList.stream().filter(item -> productLaunch.getSharedCompany().contains(item.getId() + "")).collect(Collectors.toList());
|
|
|
+ productLaunch.setSharedCompany("");
|
|
|
+ for (Dept item : dept) {
|
|
|
+ productLaunch.setSharedCompany(productLaunch.getSharedCompany() + "," + item.getId());
|
|
|
+ PjProductLaunch launch = new PjProductLaunch();
|
|
|
+ BeanUtils.copyProperties(productLaunch, launch);
|
|
|
+ PjProductLaunch selOne = productLaunchList.stream().filter(i -> i.getBillType().equals(1) &&
|
|
|
+ i.getGoodsId().equals(productLaunch.getGoodsId()) && i.getSalesCompanyId().equals(item.getId()) &&
|
|
|
+ i.getSourceCompanyId().equals(productLaunch.getSalesCompanyId())).findFirst().orElse(null);
|
|
|
+ if (ObjectUtil.isEmpty(selOne)) {
|
|
|
+ launch.setId(null);
|
|
|
+ launch.setBillType(1);
|
|
|
+ launch.setWhetherShare(0);
|
|
|
+ launch.setUpAndDownShelves(0);
|
|
|
+ launch.setCreateUser(AuthUtil.getUserId());
|
|
|
+ launch.setCreateTime(new Date());
|
|
|
+ launch.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
|
|
|
+ launch.setSourceId(productLaunch.getId());
|
|
|
+ launch.setSourceCompanyId(productLaunch.getSalesCompanyId());
|
|
|
+ launch.setSourceCompanyName(productLaunch.getSalesCompanyName());
|
|
|
+ launch.setTenantId(AuthUtil.getTenantId());
|
|
|
+ launch.setSharedCompany(null);
|
|
|
+ launch.setSalesCompanyId(item.getId());
|
|
|
+ launch.setSalesCompanyName(item.getFullName());
|
|
|
+ launch.setVersion(0);
|
|
|
// baseMapper.insert(launch);
|
|
|
- launchList.add(launch);
|
|
|
- } else {
|
|
|
- selOne.setInventory(productLaunch.getInventory());
|
|
|
- selOne.setPriceOne(productLaunch.getPriceOne());
|
|
|
- selOne.setPriceTwo(productLaunch.getPriceTwo());
|
|
|
- selOne.setPriceThree(productLaunch.getPriceThree());
|
|
|
- selOne.setPriceFour(productLaunch.getPriceFour());
|
|
|
- selOne.setBrandItem(productLaunch.getBrandItem());
|
|
|
- selOne.setPlaceProduction(productLaunch.getPlaceProduction());
|
|
|
- selOne.setExplosionProof(productLaunch.getExplosionProof());
|
|
|
- selOne.setOriginalFactory(productLaunch.getOriginalFactory());
|
|
|
- selOne.setSelfRecovery(productLaunch.getSelfRecovery());
|
|
|
- selOne.setUpdateTime(new Date());
|
|
|
- selOne.setUpdateUser(AuthUtil.getUserId());
|
|
|
- selOne.setWhetherShare(0);
|
|
|
- selOne.setUpAndDownShelves(0);
|
|
|
- selOne.setSharedCompany(null);
|
|
|
- selOne.setVersion(selOne.getVersion());
|
|
|
+ launchList.add(launch);
|
|
|
+ } else {
|
|
|
+ selOne.setInventory(productLaunch.getInventory());
|
|
|
+ selOne.setPriceOne(productLaunch.getPriceOne());
|
|
|
+ selOne.setPriceTwo(productLaunch.getPriceTwo());
|
|
|
+ selOne.setPriceThree(productLaunch.getPriceThree());
|
|
|
+ selOne.setPriceFour(productLaunch.getPriceFour());
|
|
|
+ selOne.setBrandItem(productLaunch.getBrandItem());
|
|
|
+ selOne.setPlaceProduction(productLaunch.getPlaceProduction());
|
|
|
+ selOne.setExplosionProof(productLaunch.getExplosionProof());
|
|
|
+ selOne.setOriginalFactory(productLaunch.getOriginalFactory());
|
|
|
+ selOne.setSelfRecovery(productLaunch.getSelfRecovery());
|
|
|
+ selOne.setUpdateTime(new Date());
|
|
|
+ selOne.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ selOne.setWhetherShare(0);
|
|
|
+ selOne.setUpAndDownShelves(0);
|
|
|
+ selOne.setSharedCompany(null);
|
|
|
+ selOne.setVersion(selOne.getVersion());
|
|
|
// baseMapper.updateById(selOne);
|
|
|
- launchList.add(selOne);
|
|
|
+ launchList.add(selOne);
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- if (ObjectUtils.isNotNull(productLaunch.getSharedCompany()) && productLaunch.getSharedCompany().length() > 1) {
|
|
|
- productLaunch.setSharedCompany(productLaunch.getSharedCompany().substring(1));
|
|
|
- }
|
|
|
- List<PjProductLaunch> list = productLaunchList.stream().filter(item -> item.getBillType().equals(1) &&
|
|
|
- item.getGoodsId().equals(productLaunch.getGoodsId()) && item.getSourceCompanyId().equals(productLaunch.getSalesCompanyId()))
|
|
|
- .collect(Collectors.toList());
|
|
|
- if (ObjectUtil.isNotEmpty(list)) {
|
|
|
- list.forEach(i -> {
|
|
|
- i.setWhetherShare(1);
|
|
|
- i.setPriceOne(productLaunch.getPriceOne());
|
|
|
- i.setPriceTwo(productLaunch.getPriceTwo());
|
|
|
- i.setPriceThree(productLaunch.getPriceThree());
|
|
|
- i.setPriceFour(productLaunch.getPriceFour());
|
|
|
- i.setVersion(i.getVersion());
|
|
|
- pjProductLaunchList1.add(i);
|
|
|
+ if (ObjectUtils.isNotNull(productLaunch.getSharedCompany()) && productLaunch.getSharedCompany().length() > 1) {
|
|
|
+ productLaunch.setSharedCompany(productLaunch.getSharedCompany().substring(1));
|
|
|
+ }
|
|
|
+ List<PjProductLaunch> list = productLaunchList.stream().filter(item -> item.getBillType().equals(1) &&
|
|
|
+ item.getGoodsId().equals(productLaunch.getGoodsId()) && item.getSourceCompanyId().equals(productLaunch.getSalesCompanyId()))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ if (ObjectUtil.isNotEmpty(list)) {
|
|
|
+ list.forEach(i -> {
|
|
|
+ i.setWhetherShare(1);
|
|
|
+ i.setPriceOne(productLaunch.getPriceOne());
|
|
|
+ i.setPriceTwo(productLaunch.getPriceTwo());
|
|
|
+ i.setPriceThree(productLaunch.getPriceThree());
|
|
|
+ i.setPriceFour(productLaunch.getPriceFour());
|
|
|
+ i.setVersion(i.getVersion());
|
|
|
+ pjProductLaunchList1.add(i);
|
|
|
// baseMapper.updateById(i);
|
|
|
- });
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
pjProductLaunchList.add(productLaunch);
|
|
|
@@ -751,7 +755,6 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
-
|
|
|
public R productLaunch(List<PjProductLaunch> list) {
|
|
|
List<PjProductLaunch> pjProductLaunchList = new ArrayList<>();
|
|
|
List<PjProductLaunch> launchList = new ArrayList<>();
|
|
|
@@ -785,7 +788,9 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
|
|
|
}
|
|
|
LambdaQueryWrapper<PjProductLaunch> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
queryWrapper.eq(PjProductLaunch::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(PjProductLaunch::getIsDeleted, 0);
|
|
|
+ .eq(PjProductLaunch::getIsDeleted, 0)
|
|
|
+ .eq(PjProductLaunch::getWhetherIntegral, 0)
|
|
|
+ ;
|
|
|
List<PjProductLaunch> productLaunchList = baseMapper.selectList(queryWrapper);
|
|
|
for (PjProductLaunch productLaunch : list) {
|
|
|
//获得商品信息
|
|
|
@@ -972,8 +977,7 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
-
|
|
|
- public R importProductLaunchCode(List<ProductLaunchImportCodeExcel> data, boolean b) {
|
|
|
+ public R importProductLaunchCode(List<ProductLaunchImportCodeExcel> data, boolean b, String whetherIntegral) {
|
|
|
if (CollectionUtils.isEmpty(data)) {
|
|
|
throw new SecurityException("导入数据不能为空");
|
|
|
}
|
|
|
@@ -981,25 +985,29 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
|
|
|
List<PjProductLaunch> launchList = new ArrayList<>();
|
|
|
List<PjProductLaunch> pjProductLaunchList1 = new ArrayList<>();
|
|
|
List<String> goodsNames = data.stream().map(ProductLaunchImportCodeExcel::getCode).collect(Collectors.toList());
|
|
|
- List<PjGoodsDesc> pjGoodsDescsList = goodsDescMapper.selectList(new LambdaQueryWrapper<PjGoodsDesc>()
|
|
|
+ LambdaQueryWrapper<PjGoodsDesc> goodsDescLambdaQueryWrapper = new LambdaQueryWrapper<PjGoodsDesc>()
|
|
|
.eq(PjGoodsDesc::getIsDeleted, 0)
|
|
|
.eq(PjGoodsDesc::getEnableOrNot, 1)
|
|
|
- .in(PjGoodsDesc::getCode, goodsNames));
|
|
|
+ .in(PjGoodsDesc::getCode, goodsNames);
|
|
|
+ if ("1".equals(whetherIntegral)) {
|
|
|
+ goodsDescLambdaQueryWrapper.eq(PjGoodsDesc::getWhetherIntegral, whetherIntegral);
|
|
|
+ }
|
|
|
+ List<PjGoodsDesc> pjGoodsDescsList = goodsDescMapper.selectList(goodsDescLambdaQueryWrapper);
|
|
|
List<PjGoodsFiles> pjGoodsFilesList = new ArrayList<>();
|
|
|
List<PjStockDesc> pjStockDescList = new ArrayList<>();
|
|
|
if (!pjGoodsDescsList.isEmpty()) {
|
|
|
List<Long> goodsId = pjGoodsDescsList.stream().map(PjGoodsDesc::getId).collect(Collectors.toList());
|
|
|
pjGoodsFilesList = goodsFilesMapper.selectList(new LambdaQueryWrapper<PjGoodsFiles>()
|
|
|
.in(PjGoodsFiles::getPid, goodsId));
|
|
|
- //.eq(PjGoodsFiles::getMainImage, 0)
|
|
|
//获得库存
|
|
|
- LambdaQueryWrapper<PjStockDesc> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
- lambdaQueryWrapper.eq(PjStockDesc::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(PjStockDesc::getIsDeleted, 0)
|
|
|
- .eq(PjStockDesc::getSalesCompanyId, AuthUtil.getDeptId())
|
|
|
- .in(PjStockDesc::getGoodsId, goodsId);
|
|
|
-
|
|
|
- pjStockDescList = stockDescService.list(lambdaQueryWrapper);
|
|
|
+ if (!"1".equals(whetherIntegral)) {
|
|
|
+ LambdaQueryWrapper<PjStockDesc> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ lambdaQueryWrapper.eq(PjStockDesc::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(PjStockDesc::getIsDeleted, 0)
|
|
|
+ .eq(PjStockDesc::getSalesCompanyId, AuthUtil.getDeptId())
|
|
|
+ .in(PjStockDesc::getGoodsId, goodsId);
|
|
|
+ pjStockDescList = stockDescService.list(lambdaQueryWrapper);
|
|
|
+ }
|
|
|
}
|
|
|
String status = iSysClient.getParamServiceNew("zero.inventory.grounding");
|
|
|
List<Dept> deptList = new ArrayList<>();
|
|
|
@@ -1009,20 +1017,15 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
|
|
|
}
|
|
|
LambdaQueryWrapper<PjProductLaunch> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
queryWrapper.eq(PjProductLaunch::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(PjProductLaunch::getIsDeleted, 0);
|
|
|
+ .eq(PjProductLaunch::getIsDeleted, 0)
|
|
|
+ .eq(PjProductLaunch::getWhetherIntegral, 0);
|
|
|
List<PjProductLaunch> productLaunchList = baseMapper.selectList(queryWrapper);
|
|
|
for (ProductLaunchImportCodeExcel e : data) {
|
|
|
PjProductLaunch productLaunch = new PjProductLaunch();
|
|
|
BeanUtils.copyProperties(e, productLaunch);
|
|
|
-
|
|
|
//获得商品信息
|
|
|
PjGoodsDesc pjGoodsDesc = pjGoodsDescsList.stream()
|
|
|
.filter(i -> i.getCode().equals(e.getCode())).findFirst().orElse(null);
|
|
|
- /* PjGoodsDesc pjGoodsDesc = goodsDescMapper.selectOne(new LambdaQueryWrapper<PjGoodsDesc>()
|
|
|
- .eq(PjGoodsDesc::getIsDeleted, 0)
|
|
|
- .eq(PjGoodsDesc::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(PjGoodsDesc::getCname, e.getCname()));
|
|
|
-*/
|
|
|
if (pjGoodsDesc != null) {
|
|
|
//商品id
|
|
|
productLaunch.setGoodsId(pjGoodsDesc.getId());
|
|
|
@@ -1037,22 +1040,27 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
|
|
|
productLaunch.setCnameInt(pjGoodsDesc.getCnameInt());
|
|
|
productLaunch.setSpecificationAndModel(pjGoodsDesc.getSpecificationAndModel());
|
|
|
productLaunch.setDetailsText(pjGoodsDesc.getGoodsDescription());
|
|
|
- List<PjStockDesc> stockDescList = pjStockDescList.stream().filter(i -> i.getGoodsId().equals(pjGoodsDesc.getId())).collect(Collectors.toList());
|
|
|
- if ("1".equals(status)) {
|
|
|
- if (!stockDescList.isEmpty()) {
|
|
|
- productLaunch.setInventory(stockDescList.stream().map(PjStockDesc::getBalanceQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ if (!"1".equals(whetherIntegral)) {
|
|
|
+ List<PjStockDesc> stockDescList = pjStockDescList.stream().filter(i -> i.getGoodsId().equals(pjGoodsDesc.getId())).collect(Collectors.toList());
|
|
|
+ if ("1".equals(status)) {
|
|
|
+ if (!stockDescList.isEmpty()) {
|
|
|
+ productLaunch.setInventory(stockDescList.stream().map(PjStockDesc::getBalanceQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ } else {
|
|
|
+ productLaunch.setInventory(BigDecimal.ZERO);
|
|
|
+ }
|
|
|
} else {
|
|
|
- productLaunch.setInventory(BigDecimal.ZERO);
|
|
|
- }
|
|
|
- } else {
|
|
|
- if (!stockDescList.isEmpty()) {
|
|
|
- if (new BigDecimal("0.00").compareTo(stockDescList.stream().map(PjStockDesc::getBalanceQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)) == 0) {
|
|
|
+ if (!stockDescList.isEmpty()) {
|
|
|
+ if (new BigDecimal("0.00").compareTo(stockDescList.stream().map(PjStockDesc::getBalanceQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add)) == 0) {
|
|
|
+ throw new RuntimeException("商品" + e.getCode() + "库存为零,请处理后重新导入");
|
|
|
+ }
|
|
|
+ productLaunch.setInventory(stockDescList.stream().map(PjStockDesc::getBalanceQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
+ } else {
|
|
|
throw new RuntimeException("商品" + e.getCode() + "库存为零,请处理后重新导入");
|
|
|
}
|
|
|
- productLaunch.setInventory(stockDescList.stream().map(PjStockDesc::getBalanceQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add));
|
|
|
- } else {
|
|
|
- throw new RuntimeException("商品" + e.getCode() + "库存为零,请处理后重新导入");
|
|
|
}
|
|
|
+ } else {
|
|
|
+ productLaunch.setInventory(e.getInventory());
|
|
|
+ productLaunch.setWhetherIntegral(whetherIntegral);
|
|
|
}
|
|
|
} else {
|
|
|
throw new RuntimeException("商品" + e.getCode() + "编码错误或商品不存在");
|
|
|
@@ -1094,72 +1102,74 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
|
|
|
// baseMapper.updateById(productLaunch);
|
|
|
}
|
|
|
//获得共享公司
|
|
|
- if (StringUtil.isNotBlank(e.getSharedCompany())) {
|
|
|
- List<Dept> dept = deptList.stream().filter(item -> productLaunch.getSharedCompany().contains(item.getId() + "")).collect(Collectors.toList());
|
|
|
- productLaunch.setSharedCompany("");
|
|
|
- for (Dept item : dept) {
|
|
|
- productLaunch.setSharedCompany(productLaunch.getSharedCompany() + "," + item.getId());
|
|
|
- PjProductLaunch launch = new PjProductLaunch();
|
|
|
- BeanUtils.copyProperties(productLaunch, launch);
|
|
|
- PjProductLaunch selOne = productLaunchList.stream().filter(i -> i.getBillType().equals(1) &&
|
|
|
- i.getGoodsId().equals(productLaunch.getGoodsId()) && i.getSalesCompanyId().equals(item.getId()) &&
|
|
|
- i.getSourceCompanyId().equals(productLaunch.getSalesCompanyId())).findFirst().orElse(null);
|
|
|
- if (ObjectUtil.isEmpty(selOne)) {
|
|
|
- launch.setId(null);
|
|
|
- launch.setBillType(1);
|
|
|
- launch.setWhetherShare(0);
|
|
|
- launch.setUpAndDownShelves(0);
|
|
|
- launch.setCreateUser(AuthUtil.getUserId());
|
|
|
- launch.setCreateTime(new Date());
|
|
|
- launch.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
|
|
|
- launch.setSourceId(productLaunch.getId());
|
|
|
- launch.setSourceCompanyId(productLaunch.getSalesCompanyId());
|
|
|
- launch.setSourceCompanyName(productLaunch.getSalesCompanyName());
|
|
|
- launch.setTenantId(AuthUtil.getTenantId());
|
|
|
- launch.setSharedCompany(null);
|
|
|
- launch.setSalesCompanyId(item.getId());
|
|
|
- launch.setSalesCompanyName(item.getFullName());
|
|
|
- launch.setVersion(0);
|
|
|
+ if (!"1".equals(whetherIntegral)) {
|
|
|
+ if (StringUtil.isNotBlank(e.getSharedCompany())) {
|
|
|
+ List<Dept> dept = deptList.stream().filter(item -> productLaunch.getSharedCompany().contains(item.getId() + "")).collect(Collectors.toList());
|
|
|
+ productLaunch.setSharedCompany("");
|
|
|
+ for (Dept item : dept) {
|
|
|
+ productLaunch.setSharedCompany(productLaunch.getSharedCompany() + "," + item.getId());
|
|
|
+ PjProductLaunch launch = new PjProductLaunch();
|
|
|
+ BeanUtils.copyProperties(productLaunch, launch);
|
|
|
+ PjProductLaunch selOne = productLaunchList.stream().filter(i -> i.getBillType().equals(1) &&
|
|
|
+ i.getGoodsId().equals(productLaunch.getGoodsId()) && i.getSalesCompanyId().equals(item.getId()) &&
|
|
|
+ i.getSourceCompanyId().equals(productLaunch.getSalesCompanyId())).findFirst().orElse(null);
|
|
|
+ if (ObjectUtil.isEmpty(selOne)) {
|
|
|
+ launch.setId(null);
|
|
|
+ launch.setBillType(1);
|
|
|
+ launch.setWhetherShare(0);
|
|
|
+ launch.setUpAndDownShelves(0);
|
|
|
+ launch.setCreateUser(AuthUtil.getUserId());
|
|
|
+ launch.setCreateTime(new Date());
|
|
|
+ launch.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
|
|
|
+ launch.setSourceId(productLaunch.getId());
|
|
|
+ launch.setSourceCompanyId(productLaunch.getSalesCompanyId());
|
|
|
+ launch.setSourceCompanyName(productLaunch.getSalesCompanyName());
|
|
|
+ launch.setTenantId(AuthUtil.getTenantId());
|
|
|
+ launch.setSharedCompany(null);
|
|
|
+ launch.setSalesCompanyId(item.getId());
|
|
|
+ launch.setSalesCompanyName(item.getFullName());
|
|
|
+ launch.setVersion(0);
|
|
|
// baseMapper.insert(launch);
|
|
|
- launchList.add(launch);
|
|
|
- } else {
|
|
|
- selOne.setInventory(productLaunch.getInventory());
|
|
|
- selOne.setPriceOne(productLaunch.getPriceOne());
|
|
|
- selOne.setPriceTwo(productLaunch.getPriceTwo());
|
|
|
- selOne.setPriceThree(productLaunch.getPriceThree());
|
|
|
- selOne.setPriceFour(productLaunch.getPriceFour());
|
|
|
- selOne.setBrandItem(productLaunch.getBrandItem());
|
|
|
- selOne.setPlaceProduction(productLaunch.getPlaceProduction());
|
|
|
- selOne.setExplosionProof(productLaunch.getExplosionProof());
|
|
|
- selOne.setOriginalFactory(productLaunch.getOriginalFactory());
|
|
|
- selOne.setSelfRecovery(productLaunch.getSelfRecovery());
|
|
|
- selOne.setUpdateTime(new Date());
|
|
|
- selOne.setUpdateUser(AuthUtil.getUserId());
|
|
|
- selOne.setWhetherShare(0);
|
|
|
- selOne.setUpAndDownShelves(0);
|
|
|
- selOne.setSharedCompany(null);
|
|
|
- selOne.setVersion(selOne.getVersion());
|
|
|
+ launchList.add(launch);
|
|
|
+ } else {
|
|
|
+ selOne.setInventory(productLaunch.getInventory());
|
|
|
+ selOne.setPriceOne(productLaunch.getPriceOne());
|
|
|
+ selOne.setPriceTwo(productLaunch.getPriceTwo());
|
|
|
+ selOne.setPriceThree(productLaunch.getPriceThree());
|
|
|
+ selOne.setPriceFour(productLaunch.getPriceFour());
|
|
|
+ selOne.setBrandItem(productLaunch.getBrandItem());
|
|
|
+ selOne.setPlaceProduction(productLaunch.getPlaceProduction());
|
|
|
+ selOne.setExplosionProof(productLaunch.getExplosionProof());
|
|
|
+ selOne.setOriginalFactory(productLaunch.getOriginalFactory());
|
|
|
+ selOne.setSelfRecovery(productLaunch.getSelfRecovery());
|
|
|
+ selOne.setUpdateTime(new Date());
|
|
|
+ selOne.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ selOne.setWhetherShare(0);
|
|
|
+ selOne.setUpAndDownShelves(0);
|
|
|
+ selOne.setSharedCompany(null);
|
|
|
+ selOne.setVersion(selOne.getVersion());
|
|
|
// baseMapper.updateById(selOne);
|
|
|
- launchList.add(selOne);
|
|
|
+ launchList.add(selOne);
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- if (ObjectUtils.isNotNull(productLaunch.getSharedCompany()) && productLaunch.getSharedCompany().length() > 1) {
|
|
|
- productLaunch.setSharedCompany(productLaunch.getSharedCompany().substring(1, productLaunch.getSharedCompany().length()));
|
|
|
- }
|
|
|
- List<PjProductLaunch> list = productLaunchList.stream().filter(item -> item.getBillType().equals(1) &&
|
|
|
- item.getGoodsId().equals(productLaunch.getGoodsId()) && item.getSourceCompanyId().equals(productLaunch.getSalesCompanyId()))
|
|
|
- .collect(Collectors.toList());
|
|
|
- if (ObjectUtil.isNotEmpty(list)) {
|
|
|
- list.forEach(i -> {
|
|
|
- i.setWhetherShare(1);
|
|
|
- i.setPriceOne(productLaunch.getPriceOne());
|
|
|
- i.setPriceTwo(productLaunch.getPriceTwo());
|
|
|
- i.setPriceThree(productLaunch.getPriceThree());
|
|
|
- i.setPriceFour(productLaunch.getPriceFour());
|
|
|
- i.setVersion(i.getVersion());
|
|
|
- pjProductLaunchList1.add(i);
|
|
|
+ if (ObjectUtils.isNotNull(productLaunch.getSharedCompany()) && productLaunch.getSharedCompany().length() > 1) {
|
|
|
+ productLaunch.setSharedCompany(productLaunch.getSharedCompany().substring(1, productLaunch.getSharedCompany().length()));
|
|
|
+ }
|
|
|
+ List<PjProductLaunch> list = productLaunchList.stream().filter(item -> item.getBillType().equals(1) &&
|
|
|
+ item.getGoodsId().equals(productLaunch.getGoodsId()) && item.getSourceCompanyId().equals(productLaunch.getSalesCompanyId()))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ if (ObjectUtil.isNotEmpty(list)) {
|
|
|
+ list.forEach(i -> {
|
|
|
+ i.setWhetherShare(1);
|
|
|
+ i.setPriceOne(productLaunch.getPriceOne());
|
|
|
+ i.setPriceTwo(productLaunch.getPriceTwo());
|
|
|
+ i.setPriceThree(productLaunch.getPriceThree());
|
|
|
+ i.setPriceFour(productLaunch.getPriceFour());
|
|
|
+ i.setVersion(i.getVersion());
|
|
|
+ pjProductLaunchList1.add(i);
|
|
|
// baseMapper.updateById(i);
|
|
|
- });
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
pjProductLaunchList.add(productLaunch);
|
|
|
@@ -1194,4 +1204,109 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
|
|
|
return baseMapper.productLaunchDetails(pjShipStockDetails);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public R productLaunchPoints(List<PjProductLaunch> list) {
|
|
|
+ List<PjProductLaunch> pjProductLaunchList = new ArrayList<>();
|
|
|
+ List<String> goodsNames = list.stream().map(PjProductLaunch::getCname).collect(Collectors.toList());
|
|
|
+ List<PjGoodsDesc> pjGoodsDescsList = goodsDescMapper.selectList(new LambdaQueryWrapper<PjGoodsDesc>()
|
|
|
+ .eq(PjGoodsDesc::getIsDeleted, 0)
|
|
|
+ .eq(PjGoodsDesc::getEnableOrNot, 1)
|
|
|
+ .eq(PjGoodsDesc::getWhetherIntegral, 1)
|
|
|
+ .in(PjGoodsDesc::getCname, goodsNames));
|
|
|
+ List<PjGoodsFiles> pjGoodsFilesList = new ArrayList<>();
|
|
|
+ if (!pjGoodsDescsList.isEmpty()) {
|
|
|
+ List<Long> goodsId = pjGoodsDescsList.stream().map(PjGoodsDesc::getId).collect(Collectors.toList());
|
|
|
+ pjGoodsFilesList = goodsFilesMapper.selectList(new LambdaQueryWrapper<PjGoodsFiles>()
|
|
|
+ .in(PjGoodsFiles::getPid, goodsId));
|
|
|
+ //获得库存
|
|
|
+ }
|
|
|
+ List<Dept> deptList = new ArrayList<>();
|
|
|
+ R<List<Dept>> resDept = iSysClient.getDeptListIByName(AuthUtil.getTenantId(), null);
|
|
|
+ if (resDept.isSuccess()) {
|
|
|
+ deptList = resDept.getData();
|
|
|
+ }
|
|
|
+ LambdaQueryWrapper<PjProductLaunch> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper.eq(PjProductLaunch::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(PjProductLaunch::getIsDeleted, 0)
|
|
|
+ .eq(PjProductLaunch::getWhetherIntegral, 1)
|
|
|
+ ;
|
|
|
+ List<PjProductLaunch> productLaunchList = baseMapper.selectList(queryWrapper);
|
|
|
+ for (PjProductLaunch productLaunch : list) {
|
|
|
+ //获得商品信息
|
|
|
+ PjGoodsDesc pjGoodsDesc = pjGoodsDescsList.stream()
|
|
|
+ .filter(e -> e.getCname().equals(productLaunch.getCname())).findFirst().orElse(null);
|
|
|
+ if (pjGoodsDesc != null) {
|
|
|
+ //商品id
|
|
|
+ productLaunch.setGoodsId(pjGoodsDesc.getId());
|
|
|
+ productLaunch.setBrandId(pjGoodsDesc.getBrandId());
|
|
|
+ productLaunch.setBrandName(pjGoodsDesc.getBrandName());
|
|
|
+ productLaunch.setBrandItem(pjGoodsDesc.getBrandItem());
|
|
|
+ productLaunch.setPlaceProduction(pjGoodsDesc.getPlaceProduction());
|
|
|
+ productLaunch.setExplosionProof(pjGoodsDesc.getExplosionProof());
|
|
|
+ productLaunch.setOriginalFactory(pjGoodsDesc.getOriginalFactory());
|
|
|
+ productLaunch.setSelfRecovery(pjGoodsDesc.getSelfRecovery());
|
|
|
+ productLaunch.setCnameInt(pjGoodsDesc.getCnameInt());
|
|
|
+ productLaunch.setDetailsText(pjGoodsDesc.getGoodsDescription());
|
|
|
+ productLaunch.setSpecificationAndModel(pjGoodsDesc.getSpecificationAndModel());
|
|
|
+ productLaunch.setWhetherIntegral("1");
|
|
|
+ } else {
|
|
|
+ throw new RuntimeException("商品" + productLaunch.getCname() + "名称错误或商品不存在");
|
|
|
+ }
|
|
|
+ //获得所属公司
|
|
|
+ if (StringUtil.isNotBlank(productLaunch.getSalesCompanyName())) {
|
|
|
+ Dept dept = deptList.stream().filter(e -> e.getFullName().equals(productLaunch.getSalesCompanyName()))
|
|
|
+ .findFirst().orElse(null);
|
|
|
+ if (dept != null) {
|
|
|
+ productLaunch.setSalesCompanyId(dept.getId());
|
|
|
+ productLaunch.setSalesCompanyName(dept.getFullName());
|
|
|
+ } else {
|
|
|
+ throw new SecurityException("请输入正确的所属公司");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ productLaunch.setBillType(0);
|
|
|
+ productLaunch.setPriceOne(productLaunch.getPriceOne());
|
|
|
+ productLaunch.setPriceTwo(productLaunch.getPriceTwo());
|
|
|
+ productLaunch.setPriceThree(productLaunch.getPriceThree());
|
|
|
+ productLaunch.setPriceFour(productLaunch.getPriceFour());
|
|
|
+ // 如果名称相等 就认为重复
|
|
|
+ PjProductLaunch one = productLaunchList.stream().filter(e -> e.getCname().equals(productLaunch.getCname())
|
|
|
+ && e.getSalesCompanyId().equals(productLaunch.getSalesCompanyId()) && e.getBillType().equals(0)).findFirst().orElse(null);
|
|
|
+ if (one == null) {
|
|
|
+ productLaunch.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
|
|
|
+ productLaunch.setCreateTime(new Date());
|
|
|
+ productLaunch.setCreateUser(AuthUtil.getUserId());
|
|
|
+ productLaunch.setTenantId(AuthUtil.getTenantId());
|
|
|
+ productLaunch.setUpAndDownShelves(1);
|
|
|
+ } else {
|
|
|
+ productLaunch.setId(one.getId());
|
|
|
+ productLaunch.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ productLaunch.setUpdateTime(new Date());
|
|
|
+ productLaunch.setSharedCompany(one.getSharedCompany());
|
|
|
+ }
|
|
|
+ pjProductLaunchList.add(productLaunch);
|
|
|
+ }
|
|
|
+ this.saveOrUpdateBatch(pjProductLaunchList);
|
|
|
+ List<PjProductLaunchFiles> filesList = new ArrayList<>();
|
|
|
+ for (PjProductLaunch item : pjProductLaunchList) {
|
|
|
+ List<PjGoodsFiles> pjGoodsFilesList1 = pjGoodsFilesList.stream()
|
|
|
+ .filter(e -> e.getPid().equals(item.getGoodsId())).collect(Collectors.toList());
|
|
|
+ if (!pjGoodsFilesList1.isEmpty()) {
|
|
|
+ for (PjGoodsFiles file : pjGoodsFilesList1) {
|
|
|
+ PjProductLaunchFiles files = new PjProductLaunchFiles();
|
|
|
+ BeanUtil.copyProperties(file, files);
|
|
|
+ files.setPid(item.getId());
|
|
|
+ if (0 == file.getMainImage()) {
|
|
|
+ files.setVersion("0");
|
|
|
+ } else {
|
|
|
+ files.setVersion("1");
|
|
|
+ }
|
|
|
+ filesList.add(files);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ productLaunchFilesService.saveOrUpdateBatch(filesList);
|
|
|
+ return R.success("ok");
|
|
|
+ }
|
|
|
+
|
|
|
}
|