|
|
@@ -16,6 +16,7 @@
|
|
|
*/
|
|
|
package org.springblade.salesPart.productLaunch.service.impl;
|
|
|
|
|
|
+import com.alibaba.csp.sentinel.util.StringUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
@@ -23,21 +24,22 @@ import lombok.AllArgsConstructor;
|
|
|
import org.springblade.core.secure.utils.AuthUtil;
|
|
|
import org.springblade.core.tool.api.R;
|
|
|
import org.springblade.core.tool.utils.ObjectUtil;
|
|
|
-import org.springblade.salesPart.entity.PjBrandDesc;
|
|
|
-import org.springblade.salesPart.entity.PjBrandFiles;
|
|
|
-import org.springblade.salesPart.entity.PjGoodsDesc;
|
|
|
-import org.springblade.salesPart.entity.PjProductLaunch;
|
|
|
+import org.springblade.salesPart.entity.*;
|
|
|
import org.springblade.salesPart.excel.ProductLaunchImportExcel;
|
|
|
import org.springblade.salesPart.goods.mapper.GoodsDescMapper;
|
|
|
+import org.springblade.salesPart.productLaunch.service.IProductLaunchFilesService;
|
|
|
import org.springblade.salesPart.vo.ProductLaunchVO;
|
|
|
import org.springblade.salesPart.productLaunch.mapper.ProductLaunchMapper;
|
|
|
import org.springblade.salesPart.productLaunch.service.IProductLaunchService;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import org.springblade.system.entity.Dept;
|
|
|
+import org.springblade.system.feign.ISysClient;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
|
|
|
@@ -52,10 +54,14 @@ import java.util.List;
|
|
|
public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, PjProductLaunch> implements IProductLaunchService {
|
|
|
|
|
|
private final GoodsDescMapper goodsDescMapper;
|
|
|
+ private final ISysClient iSysClient;
|
|
|
+ private final IProductLaunchFilesService productLaunchFilesService;
|
|
|
|
|
|
@Override
|
|
|
public PjProductLaunch getMessageById(PjProductLaunch productLaunch) {
|
|
|
PjProductLaunch detail = baseMapper.selectById(productLaunch.getId());
|
|
|
+
|
|
|
+ detail.setFilesList(productLaunchFilesService.list(new QueryWrapper<PjProductLaunchFiles>().eq("pid", productLaunch.getId()).eq("is_deleted", 0)));
|
|
|
return detail;
|
|
|
}
|
|
|
|
|
|
@@ -72,6 +78,7 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
|
|
|
*/
|
|
|
@Override
|
|
|
public PjProductLaunch saveMessage(PjProductLaunch productLaunch) {
|
|
|
+
|
|
|
if (productLaunch.getId() != null) {
|
|
|
productLaunch.setUpdateUser(AuthUtil.getUserId());
|
|
|
productLaunch.setUpdateTime(new Date());
|
|
|
@@ -84,6 +91,78 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
|
|
|
productLaunch.setTenantId(AuthUtil.getTenantId());
|
|
|
baseMapper.insert(productLaunch);
|
|
|
}
|
|
|
+
|
|
|
+ if (CollectionUtils.isNotEmpty(productLaunch.getFilesList())) {
|
|
|
+ productLaunch.getFilesList().stream().forEach(files -> {
|
|
|
+ files.setPid(productLaunch.getId());
|
|
|
+ files.setTenantId(AuthUtil.getTenantId());
|
|
|
+ if (files.getId() == null) {
|
|
|
+ files.setCreateTime(new Date());
|
|
|
+ files.setCreateUser(AuthUtil.getUserId());
|
|
|
+ productLaunchFilesService.save(files);
|
|
|
+ } else {
|
|
|
+ files.setUpdateTime(new Date());
|
|
|
+ files.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ productLaunchFilesService.updateById(files);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ //如果有共享公司 生成共享数据
|
|
|
+ if (ObjectUtil.isNotEmpty(productLaunch.getSharedCompany())){
|
|
|
+ String[] companyIds = productLaunch.getSharedCompany().split(",");
|
|
|
+ for (String id : companyIds) {
|
|
|
+ PjProductLaunch launch = new PjProductLaunch();
|
|
|
+ BeanUtils.copyProperties(productLaunch, launch);
|
|
|
+
|
|
|
+ LambdaQueryWrapper<PjProductLaunch> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ lambdaQueryWrapper.eq(PjProductLaunch::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(PjProductLaunch::getBillType, 1)
|
|
|
+ .eq(PjProductLaunch::getGoodsId, productLaunch.getGoodsId())
|
|
|
+ .eq(PjProductLaunch::getSalesCompanyId, id)
|
|
|
+ .eq(PjProductLaunch::getSourceCompanyId, productLaunch.getSalesCompanyId());
|
|
|
+ PjProductLaunch selOne = baseMapper.selectOne(lambdaQueryWrapper);
|
|
|
+
|
|
|
+ if (ObjectUtil.isEmpty(selOne)){
|
|
|
+
|
|
|
+ launch.setId(null);
|
|
|
+ launch.setBillType(1);
|
|
|
+ launch.setCreateUser(AuthUtil.getUserId());
|
|
|
+ launch.setCreateTime(new Date());
|
|
|
+ launch.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
|
|
|
+ launch.setSourceId(productLaunch.getId());
|
|
|
+ launch.setSourceCompanyId(productLaunch.getSalesCompanyId());
|
|
|
+ R<Dept> dept = iSysClient.getDept(Long.valueOf(id));
|
|
|
+ if (ObjectUtil.isNotEmpty(dept)) {
|
|
|
+ launch.setSalesCompanyId(Long.valueOf(id));
|
|
|
+ launch.setSalesCompanyName(dept.getData().getDeptName());
|
|
|
+ } else {
|
|
|
+ throw new SecurityException("未找到共享公司");
|
|
|
+ }
|
|
|
+ baseMapper.insert(launch);
|
|
|
+
|
|
|
+ }else {
|
|
|
+ launch.setUpdateTime(new Date());
|
|
|
+ launch.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ baseMapper.updateById(launch);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ LambdaQueryWrapper<PjProductLaunch> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ lambdaQueryWrapper.eq(PjProductLaunch::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(PjProductLaunch::getIsDeleted, 0)
|
|
|
+ .eq(PjProductLaunch::getBillType, 1)
|
|
|
+ .eq(PjProductLaunch::getGoodsId, productLaunch.getGoodsId())
|
|
|
+ .eq(PjProductLaunch::getSourceCompanyId, productLaunch.getSalesCompanyId());
|
|
|
+ List<PjProductLaunch> selectList = baseMapper.selectList(lambdaQueryWrapper);
|
|
|
+
|
|
|
+ if (ObjectUtil.isNotEmpty(selectList)){
|
|
|
+ selectList.forEach(e -> {
|
|
|
+ e.setIsDeleted(1);
|
|
|
+ baseMapper.updateById(e);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
return productLaunch;
|
|
|
}
|
|
|
|
|
|
@@ -113,20 +192,45 @@ public class ProductLaunchServiceImpl extends ServiceImpl<ProductLaunchMapper, P
|
|
|
if (ObjectUtil.isNotEmpty(pjGoodsDesc)){
|
|
|
//商品id
|
|
|
productLaunch.setGoodsId(pjGoodsDesc.getId());
|
|
|
- //所属公司
|
|
|
- if (ObjectUtil.isNotEmpty(pjGoodsDesc.getSalesCompanyId())){
|
|
|
- productLaunch.setSalesCompanyId(pjGoodsDesc.getSalesCompanyId());
|
|
|
- productLaunch.setSalesCompanyName(pjGoodsDesc.getSalesCompanyName());
|
|
|
- }
|
|
|
}else {
|
|
|
throw new RuntimeException("商品名称错误或商品不存在");
|
|
|
}
|
|
|
|
|
|
+ //获得所属公司
|
|
|
+ if (StringUtil.isNotBlank(e.getSalesCompanyName())) {
|
|
|
+ R<Dept> dept = iSysClient.getDeptIByName(AuthUtil.getTenantId(), e.getSalesCompanyName());
|
|
|
+ if (ObjectUtil.isNotEmpty(dept)) {
|
|
|
+ productLaunch.setSalesCompanyId(dept.getData().getId());
|
|
|
+ productLaunch.setSalesCompanyName(dept.getData().getDeptName());
|
|
|
+ } else {
|
|
|
+ throw new SecurityException("请输入正确的所属公司");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ productLaunch.setBillType(0);
|
|
|
+ productLaunch.setPriceOne(e.getPriceOne());
|
|
|
+ productLaunch.setPriceTwo(e.getPriceTwo());
|
|
|
+ productLaunch.setPriceThree(e.getPriceThree());
|
|
|
+ productLaunch.setPriceFour(e.getPriceFour());
|
|
|
+ productLaunch.setPriceFive(e.getPriceFive());
|
|
|
+ productLaunch.setPriceSix(e.getPriceSix());
|
|
|
+ productLaunch.setPriceSeven(e.getPriceSeven());
|
|
|
+ productLaunch.setPriceEight(e.getPriceEight());
|
|
|
+ productLaunch.setNextDayDeliveryPriceOne(e.getNextDayDeliveryPriceOne());
|
|
|
+ productLaunch.setNextDayDeliveryPriceTwo(e.getNextDayDeliveryPriceTwo());
|
|
|
+ productLaunch.setNextDayDeliveryPriceThree(e.getNextDayDeliveryPriceThree());
|
|
|
+ productLaunch.setNextDayDeliveryPriceFour(e.getNextDayDeliveryPriceFour());
|
|
|
+ productLaunch.setNextDayDeliveryPriceFive(e.getNextDayDeliveryPriceFive());
|
|
|
+ productLaunch.setNextDayDeliveryPriceSix(e.getNextDayDeliveryPriceSix());
|
|
|
+ productLaunch.setNextDayDeliveryPriceSeven(e.getNextDayDeliveryPriceSeven());
|
|
|
+ productLaunch.setNextDayDeliveryPriceEight(e.getNextDayDeliveryPriceEight());
|
|
|
+
|
|
|
// 如果名称相等 就认为重复
|
|
|
LambdaQueryWrapper<PjProductLaunch> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
- queryWrapper.eq(PjProductLaunch::getTenantId, AuthUtil.getTenantId());
|
|
|
- queryWrapper.eq(PjProductLaunch::getCname, productLaunch.getCname());
|
|
|
- queryWrapper.eq(PjProductLaunch::getIsDeleted, 0);
|
|
|
+ queryWrapper.eq(PjProductLaunch::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(PjProductLaunch::getCname, productLaunch.getCname())
|
|
|
+ .eq(PjProductLaunch::getIsDeleted, 0)
|
|
|
+ .eq(PjProductLaunch::getBillType, 0);
|
|
|
PjProductLaunch one = baseMapper.selectOne(queryWrapper);
|
|
|
|
|
|
if (one == null){
|