|
@@ -2,10 +2,14 @@ package cn.cslg.pas.service.business;
|
|
|
|
|
|
import cn.cslg.pas.common.dto.business.ProductDTO;
|
|
import cn.cslg.pas.common.dto.business.ProductDTO;
|
|
import cn.cslg.pas.common.model.cronModel.GroupVO;
|
|
import cn.cslg.pas.common.model.cronModel.GroupVO;
|
|
|
|
+import cn.cslg.pas.common.model.cronModel.PersonnelVO;
|
|
import cn.cslg.pas.common.model.request.GroupRequest;
|
|
import cn.cslg.pas.common.model.request.GroupRequest;
|
|
import cn.cslg.pas.common.model.request.QueryRequest;
|
|
import cn.cslg.pas.common.model.request.QueryRequest;
|
|
|
|
+import cn.cslg.pas.common.utils.CacheUtils;
|
|
|
|
+import cn.cslg.pas.common.utils.LoginUtils;
|
|
import cn.cslg.pas.domain.business.AssoProductFile;
|
|
import cn.cslg.pas.domain.business.AssoProductFile;
|
|
import cn.cslg.pas.domain.business.Product;
|
|
import cn.cslg.pas.domain.business.Product;
|
|
|
|
+import cn.cslg.pas.exception.UnLoginException;
|
|
import cn.cslg.pas.exception.XiaoShiException;
|
|
import cn.cslg.pas.exception.XiaoShiException;
|
|
import cn.cslg.pas.factorys.businessFactory.Business;
|
|
import cn.cslg.pas.factorys.businessFactory.Business;
|
|
import cn.cslg.pas.mapper.ProductMapper;
|
|
import cn.cslg.pas.mapper.ProductMapper;
|
|
@@ -19,6 +23,7 @@ import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
|
|
+import java.io.IOException;
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
@@ -38,11 +43,23 @@ public class ProductService extends ServiceImpl<ProductMapper, Product> implemen
|
|
@Autowired
|
|
@Autowired
|
|
private AssoProductFileService assoProductFileService;
|
|
private AssoProductFileService assoProductFileService;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private CacheUtils cacheUtils;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private LoginUtils loginUtils;
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public Object queryMessage(QueryRequest queryRequest) throws Exception {
|
|
public Object queryMessage(QueryRequest queryRequest) throws Exception {
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 新增产品
|
|
|
|
+ * @param object
|
|
|
|
+ * @param files
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
@Override
|
|
@Override
|
|
public Integer addMessage(Object object, List<MultipartFile> files) {
|
|
public Integer addMessage(Object object, List<MultipartFile> files) {
|
|
ProductDTO productDTO = (ProductDTO) object;
|
|
ProductDTO productDTO = (ProductDTO) object;
|
|
@@ -55,6 +72,13 @@ public class ProductService extends ServiceImpl<ProductMapper, Product> implemen
|
|
if (products != null && products.size() != 0) {
|
|
if (products != null && products.size() != 0) {
|
|
throw new XiaoShiException("参数错误");
|
|
throw new XiaoShiException("参数错误");
|
|
}
|
|
}
|
|
|
|
+ //获取登陆人信息 用于设置创建人
|
|
|
|
+ PersonnelVO personnelVO = new PersonnelVO();
|
|
|
|
+ try {
|
|
|
|
+ personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ throw new UnLoginException("未登录");
|
|
|
|
+ }
|
|
//产品入库
|
|
//产品入库
|
|
Product product = new Product();
|
|
Product product = new Product();
|
|
BeanUtils.copyProperties(productDTO, product);
|
|
BeanUtils.copyProperties(productDTO, product);
|
|
@@ -63,13 +87,13 @@ public class ProductService extends ServiceImpl<ProductMapper, Product> implemen
|
|
try {
|
|
try {
|
|
List<String> guids = fileManagerService.uploadFileGetGuid(files);
|
|
List<String> guids = fileManagerService.uploadFileGetGuid(files);
|
|
List<AssoProductFile> assoProductFiles = new ArrayList<>();
|
|
List<AssoProductFile> assoProductFiles = new ArrayList<>();
|
|
- guids.forEach(item -> {
|
|
|
|
|
|
+ for (String item : guids) {
|
|
AssoProductFile assoProductFile = new AssoProductFile();
|
|
AssoProductFile assoProductFile = new AssoProductFile();
|
|
assoProductFile.setProductId(product.getId());
|
|
assoProductFile.setProductId(product.getId());
|
|
assoProductFile.setFileGuid(item);
|
|
assoProductFile.setFileGuid(item);
|
|
- assoProductFile.setCreateId(1);
|
|
|
|
|
|
+ assoProductFile.setCreateId(personnelVO.getId());
|
|
assoProductFiles.add(assoProductFile);
|
|
assoProductFiles.add(assoProductFile);
|
|
- });
|
|
|
|
|
|
+ }
|
|
if (assoProductFiles != null && assoProductFiles.size() != 0) {
|
|
if (assoProductFiles != null && assoProductFiles.size() != 0) {
|
|
assoProductFileService.saveBatch(assoProductFiles);
|
|
assoProductFileService.saveBatch(assoProductFiles);
|
|
}
|
|
}
|
|
@@ -80,32 +104,43 @@ public class ProductService extends ServiceImpl<ProductMapper, Product> implemen
|
|
return product.getId();
|
|
return product.getId();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 删除产品
|
|
|
|
+ * @param ids
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
@Override
|
|
@Override
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
- public Object deleteMessage(List<Integer> ids) {
|
|
|
|
- //根据产品id删除产品
|
|
|
|
- this.removeBatchByIds(ids);
|
|
|
|
|
|
+ public Object deleteMessage(List<Integer> ids) throws IOException {
|
|
//根据产品id删除产品和文件关联
|
|
//根据产品id删除产品和文件关联
|
|
LambdaQueryWrapper<AssoProductFile> queryWrapper = new LambdaQueryWrapper<>();
|
|
LambdaQueryWrapper<AssoProductFile> queryWrapper = new LambdaQueryWrapper<>();
|
|
queryWrapper.in(AssoProductFile::getProductId, ids);
|
|
queryWrapper.in(AssoProductFile::getProductId, ids);
|
|
List<AssoProductFile> assoProductFiles = assoProductFileService.list(queryWrapper);
|
|
List<AssoProductFile> assoProductFiles = assoProductFileService.list(queryWrapper);
|
|
List<String> guids = assoProductFiles.stream().map(AssoProductFile::getFileGuid).collect(Collectors.toList());
|
|
List<String> guids = assoProductFiles.stream().map(AssoProductFile::getFileGuid).collect(Collectors.toList());
|
|
//TODO 根据guid删除文件
|
|
//TODO 根据guid删除文件
|
|
- try {
|
|
|
|
|
|
+ if (guids.size() != 0) {
|
|
fileManagerService.deleteFileFromFMS(guids);
|
|
fileManagerService.deleteFileFromFMS(guids);
|
|
- } catch (Exception e) {
|
|
|
|
- throw new XiaoShiException("调用删除接口错误");
|
|
|
|
}
|
|
}
|
|
//删除产品和文件关联表
|
|
//删除产品和文件关联表
|
|
assoProductFiles.remove(queryWrapper);
|
|
assoProductFiles.remove(queryWrapper);
|
|
|
|
+ //根据产品id删除产品
|
|
|
|
+ this.removeBatchByIds(ids);
|
|
return ids;
|
|
return ids;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 更新产品
|
|
|
|
+ * @param object
|
|
|
|
+ * @param files
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
@Override
|
|
@Override
|
|
public Object updateMessage(Object object, List<MultipartFile> files) {
|
|
public Object updateMessage(Object object, List<MultipartFile> files) {
|
|
- //object to productDTO
|
|
|
|
|
|
+ //object to product
|
|
ProductDTO productDTO = (ProductDTO) object;
|
|
ProductDTO productDTO = (ProductDTO) object;
|
|
|
|
+ //检测名称是否不规范
|
|
productDTO.setName(productDTO.getName().trim());
|
|
productDTO.setName(productDTO.getName().trim());
|
|
|
|
+ //根据名称查询数据库中是否存在
|
|
String name = productDTO.getName();
|
|
String name = productDTO.getName();
|
|
LambdaQueryWrapper<Product> queryWrapper = new LambdaQueryWrapper<>();
|
|
LambdaQueryWrapper<Product> queryWrapper = new LambdaQueryWrapper<>();
|
|
queryWrapper.eq(Product::getName, name);
|
|
queryWrapper.eq(Product::getName, name);
|
|
@@ -113,20 +148,27 @@ public class ProductService extends ServiceImpl<ProductMapper, Product> implemen
|
|
if(products == null || products.size() == 0){
|
|
if(products == null || products.size() == 0){
|
|
return null;
|
|
return null;
|
|
}
|
|
}
|
|
- Product product = new Product();
|
|
|
|
|
|
+ //获取登陆人信息 用于设置创建人
|
|
|
|
+ PersonnelVO personnelVO;
|
|
|
|
+ try {
|
|
|
|
+ personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ throw new UnLoginException("未登录");
|
|
|
|
+ }
|
|
|
|
+ Product product = this.getById(productDTO.getId());
|
|
BeanUtils.copyProperties(productDTO, product);
|
|
BeanUtils.copyProperties(productDTO, product);
|
|
product.insert();
|
|
product.insert();
|
|
if (files != null && files.size() != 0) {
|
|
if (files != null && files.size() != 0) {
|
|
try {
|
|
try {
|
|
List<String> guids = fileManagerService.uploadFileGetGuid(files);
|
|
List<String> guids = fileManagerService.uploadFileGetGuid(files);
|
|
List<AssoProductFile> assoProductFiles = new ArrayList<>();
|
|
List<AssoProductFile> assoProductFiles = new ArrayList<>();
|
|
- guids.forEach(item -> {
|
|
|
|
|
|
+ for (String item : guids) {
|
|
AssoProductFile assoProductFile = new AssoProductFile();
|
|
AssoProductFile assoProductFile = new AssoProductFile();
|
|
assoProductFile.setProductId(product.getId());
|
|
assoProductFile.setProductId(product.getId());
|
|
assoProductFile.setFileGuid(item);
|
|
assoProductFile.setFileGuid(item);
|
|
- assoProductFile.setCreateId(1);
|
|
|
|
|
|
+ assoProductFile.setCreateId(personnelVO.getId());
|
|
assoProductFiles.add(assoProductFile);
|
|
assoProductFiles.add(assoProductFile);
|
|
- });
|
|
|
|
|
|
+ }
|
|
if (assoProductFiles != null && assoProductFiles.size() != 0) {
|
|
if (assoProductFiles != null && assoProductFiles.size() != 0) {
|
|
assoProductFileService.saveBatch(assoProductFiles);
|
|
assoProductFileService.saveBatch(assoProductFiles);
|
|
}
|
|
}
|