|
@@ -7,6 +7,7 @@ import cn.cslg.pas.common.model.request.GroupRequest;
|
|
|
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.common.vo.business.PersonVO;
|
|
|
import cn.cslg.pas.common.vo.business.ProductVO;
|
|
|
import cn.cslg.pas.domain.business.AssoProductCategoryPerson;
|
|
|
import cn.cslg.pas.domain.business.AssoProductFile;
|
|
@@ -19,6 +20,7 @@ import cn.cslg.pas.mapper.ProductMapper;
|
|
|
import cn.cslg.pas.service.common.FileManagerService;
|
|
|
import cn.cslg.pas.service.permissions.PermissionService;
|
|
|
import cn.cslg.pas.service.query.FormatQueryService;
|
|
|
+import co.elastic.clients.elasticsearch.core.search.LaplaceSmoothingModel;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
@@ -75,7 +77,9 @@ public class ProductService extends ServiceImpl<ProductMapper, Product> implemen
|
|
|
List<ProductVO> productVOS = productMapper.getProduct(sqls.get(0), sqls.get(1), sqls.get(2));
|
|
|
//查询总数
|
|
|
Long total = productMapper.getProductCount(sqls.get(0));
|
|
|
+ //装载产品信息
|
|
|
this.loadProduct(productVOS);
|
|
|
+ //装载返回信息
|
|
|
Records records = new Records();
|
|
|
records.setCurrent(queryRequest.getCurrent());
|
|
|
records.setSize(queryRequest.getSize());
|
|
@@ -92,9 +96,11 @@ public class ProductService extends ServiceImpl<ProductMapper, Product> implemen
|
|
|
*/
|
|
|
@Override
|
|
|
public Integer addMessage(Object object, List<MultipartFile> files) {
|
|
|
+ //object to productDTO
|
|
|
ProductDTO productDTO = (ProductDTO) object;
|
|
|
- //根据名称查询是否重复
|
|
|
+ //检测名称是否不规范
|
|
|
productDTO.setName(productDTO.getName().trim());
|
|
|
+ //根据名称查询数据库中是否存在
|
|
|
String name = productDTO.getName();
|
|
|
LambdaQueryWrapper<Product> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
queryWrapper.eq(Product::getName, name);
|
|
@@ -117,6 +123,7 @@ public class ProductService extends ServiceImpl<ProductMapper, Product> implemen
|
|
|
product.insert();
|
|
|
//插入产品与可见人员类型表
|
|
|
List<AssoProductPerson> assoProductPeople = new ArrayList<>();
|
|
|
+ //默认管理员为创建人
|
|
|
AssoProductPerson assoProductAdmin = new AssoProductPerson();
|
|
|
assoProductAdmin.setProductId(product.getId());
|
|
|
assoProductAdmin.setPersonId(personnelVO.getId());
|
|
@@ -154,11 +161,12 @@ public class ProductService extends ServiceImpl<ProductMapper, Product> implemen
|
|
|
}
|
|
|
assoProductPeople.add(assoProductPerson);
|
|
|
}
|
|
|
- if(assoProductPeople != null && assoProductPeople.size() != 0){
|
|
|
- assoProductPersonService.saveBatch(assoProductPeople);
|
|
|
- }
|
|
|
}
|
|
|
}
|
|
|
+ if(assoProductPeople != null && assoProductPeople.size() != 0){
|
|
|
+ assoProductPersonService.saveBatch(assoProductPeople);
|
|
|
+ }
|
|
|
+ //判断文件是否为空
|
|
|
if(files != null && files.size() != 0) {
|
|
|
try {
|
|
|
//调用上传文件接口
|
|
@@ -178,6 +186,7 @@ public class ProductService extends ServiceImpl<ProductMapper, Product> implemen
|
|
|
|
|
|
}
|
|
|
}
|
|
|
+ //返回id
|
|
|
return product.getId();
|
|
|
}
|
|
|
|
|
@@ -223,7 +232,7 @@ public class ProductService extends ServiceImpl<ProductMapper, Product> implemen
|
|
|
throw new XiaoShiException("参数错误");
|
|
|
}
|
|
|
//获取登陆人信息 用于设置创建人
|
|
|
- PersonnelVO personnelVO;
|
|
|
+ PersonnelVO personnelVO = new PersonnelVO();
|
|
|
try {
|
|
|
personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
|
|
|
} catch (Exception e) {
|
|
@@ -237,7 +246,7 @@ public class ProductService extends ServiceImpl<ProductMapper, Product> implemen
|
|
|
LambdaQueryWrapper<Product> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
queryWrapper.eq(Product::getName, name);
|
|
|
List<Product> products = this.list(queryWrapper);
|
|
|
- if(updateProductDTO.getName() != product.getName() && products.size() != 0){
|
|
|
+ if(!updateProductDTO.getName().equals(product.getName()) && products.size() != 0){
|
|
|
throw new XiaoShiException("名称重复");
|
|
|
}
|
|
|
BeanUtils.copyProperties(updateProductDTO, product);
|
|
@@ -250,6 +259,7 @@ public class ProductService extends ServiceImpl<ProductMapper, Product> implemen
|
|
|
assoProductPersonService.remove(personWrapper);
|
|
|
//插入产品与可见人员类型表
|
|
|
List<AssoProductPerson> assoProductPeople = new ArrayList<>();
|
|
|
+ //默认管理员
|
|
|
AssoProductPerson assoProductAdmin = new AssoProductPerson();
|
|
|
assoProductAdmin.setProductId(product.getId());
|
|
|
assoProductAdmin.setPersonId(personnelVO.getId());
|
|
@@ -312,6 +322,7 @@ public class ProductService extends ServiceImpl<ProductMapper, Product> implemen
|
|
|
LambdaQueryWrapper<AssoProductFile> deleteWrapper = new LambdaQueryWrapper<>();
|
|
|
deleteWrapper.in(AssoProductFile::getFileGuid, fileGuIds);
|
|
|
assoProductFileService.remove(deleteWrapper);
|
|
|
+ //远程删除服务器上的文件
|
|
|
try{
|
|
|
fileManagerService.deleteFileFromFMS(fileGuIds);
|
|
|
} catch (Exception e){
|
|
@@ -373,7 +384,6 @@ public class ProductService extends ServiceImpl<ProductMapper, Product> implemen
|
|
|
}
|
|
|
}
|
|
|
);
|
|
|
-
|
|
|
List<Personnel> personnels = new ArrayList<>();
|
|
|
List<String> guids = new ArrayList<>();
|
|
|
List<SystemFile> systemFiles = new ArrayList<>();
|
|
@@ -401,15 +411,17 @@ public class ProductService extends ServiceImpl<ProductMapper, Product> implemen
|
|
|
}
|
|
|
|
|
|
//装载信息
|
|
|
- for (ProductVO productVO:productVOS) {
|
|
|
+ for (ProductVO productVO : productVOS) {
|
|
|
//装载人员信息
|
|
|
Personnel personnel = personnels.stream().filter(item -> item.getId().toString().equals(productVO.getCreateId())).findFirst().orElse(null);
|
|
|
if(personnel != null){
|
|
|
productVO.setCreateName(personnel.getPersonnelName());
|
|
|
+ } else {
|
|
|
+ throw new XiaoShiException("未获取到当前登陆人信息");
|
|
|
}
|
|
|
//装载文件信息
|
|
|
List<AssoProductFile> assoProductFilesTemp = assoProductFiles.stream().filter(item -> item.getProductId().equals(productVO.getId())).collect(Collectors.toList());
|
|
|
- if(assoProductFilesTemp.size() != 0){
|
|
|
+ if (assoProductFilesTemp.size() != 0) {
|
|
|
List<String> guidTemp = assoProductFilesTemp.stream().map(AssoProductFile::getFileGuid).collect(Collectors.toList());
|
|
|
if (guidTemp.size() != 0) {
|
|
|
List<SystemFile> systemFileTemp = systemFiles.stream().filter(item -> guidTemp.contains(item.getGuid())).collect(Collectors.toList());
|
|
@@ -418,16 +430,64 @@ public class ProductService extends ServiceImpl<ProductMapper, Product> implemen
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- //装载可见人员ids
|
|
|
+ //根据showType到产品与可见人员关联表中查询可见人员
|
|
|
Integer showType = productVO.getShowType();
|
|
|
- if(showType == 2 && showType == 3){
|
|
|
+ if (showType.equals(2) || showType.equals(3)) {
|
|
|
LambdaQueryWrapper<AssoProductPerson> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
queryWrapper.eq(AssoProductPerson::getProductId, productVO.getId());
|
|
|
- queryWrapper.eq(AssoProductPerson::getRole, showType);
|
|
|
+ //如果showType为2,则查询的角色类型为1
|
|
|
+ if (showType.equals(2)) {
|
|
|
+ queryWrapper.eq(AssoProductPerson::getRole, 1);
|
|
|
+ } else if (showType.equals(3)) {//如果showType为3,则查询的角色类型为2
|
|
|
+ queryWrapper.eq(AssoProductPerson::getRole, 2);
|
|
|
+ }
|
|
|
List<AssoProductPerson> assoProductPeople = assoProductPersonService.list(queryWrapper);
|
|
|
List<String> showPersonIds = assoProductPeople.stream().map(AssoProductPerson::getPersonId).collect(Collectors.toList());
|
|
|
+ //根据可见人员ids查询名称
|
|
|
+ String res = permissionService.getPersonnelByIdsFromPCS(showPersonIds);
|
|
|
+ JSONObject jsonObject = JSONObject.parseObject(res);
|
|
|
+ List<Personnel> showPersonnels = JSONObject.parseArray(jsonObject.getString("data"), Personnel.class);
|
|
|
+ List<PersonVO> showPersonVOS = new ArrayList<>();
|
|
|
+ //遍历可见人员ids
|
|
|
+ for (String showPersonId : showPersonIds) {
|
|
|
+ PersonVO personVO = new PersonVO();
|
|
|
+ personVO.setId(showPersonId);
|
|
|
+ Personnel showPerson = showPersonnels.stream().filter(item -> item.getId().toString().equals(showPersonId)).findFirst().orElse(null);
|
|
|
+ if (showPerson != null) {
|
|
|
+ personVO.setName(showPerson.getPersonnelName());
|
|
|
+ showPersonVOS.add(personVO);
|
|
|
+ } else {
|
|
|
+ throw new XiaoShiException("未获取到信息");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ productVO.setPersons(showPersonVOS);
|
|
|
productVO.setShowPersonIds(showPersonIds);
|
|
|
}
|
|
|
+ LambdaQueryWrapper<AssoProductPerson> adminWrapper = new LambdaQueryWrapper<>();
|
|
|
+ adminWrapper.eq(AssoProductPerson::getProductId, productVO.getId());
|
|
|
+ adminWrapper.eq(AssoProductPerson::getRole, 0);
|
|
|
+ List<AssoProductPerson> assoProductPeople = assoProductPersonService.list(adminWrapper);
|
|
|
+ List<String> adminIds = assoProductPeople.stream().map(AssoProductPerson::getPersonId).collect(Collectors.toList());
|
|
|
+ adminIds.remove(personnel.getId().toString());
|
|
|
+ //根据管理员人员ids查询名称
|
|
|
+ String res = permissionService.getPersonnelByIdsFromPCS(adminIds);
|
|
|
+ JSONObject jsonObject = JSONObject.parseObject(res);
|
|
|
+ List<Personnel> adminPersonnels = JSONObject.parseArray(jsonObject.getString("data"), Personnel.class);
|
|
|
+ List<PersonVO> adminPersonVOS = new ArrayList<>();
|
|
|
+ //遍历管理人员ids
|
|
|
+ for (String adminId : adminIds) {
|
|
|
+ PersonVO personVO = new PersonVO();
|
|
|
+ personVO.setId(adminId);
|
|
|
+ Personnel adminPerson = adminPersonnels.stream().filter(item -> item.getId().toString().equals(adminId)).findFirst().orElse(null);
|
|
|
+ if (adminPerson != null) {
|
|
|
+ personVO.setName(adminPerson.getPersonnelName());
|
|
|
+ adminPersonVOS.add(personVO);
|
|
|
+ } else {
|
|
|
+ throw new XiaoShiException("未获取到信息");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ productVO.setAdminPersons(adminPersonVOS);
|
|
|
+ productVO.setAdminIds(adminIds);
|
|
|
}
|
|
|
}
|
|
|
}
|