Explorar o código

产品专利关联修改

lwhhszx %!s(int64=2) %!d(string=hai) anos
pai
achega
fd93986837

+ 3 - 0
PAS/src/main/java/cn/cslg/pas/common/model/QueryPatentVO.java

@@ -14,6 +14,9 @@ import java.util.List;
  */
 @Data
 public class QueryPatentVO extends BaseVO {
+    //架构id
+    private Integer structureId;
+    //产品id
     private Integer productId;
     //专题库ID
     private Integer projectId;

+ 1 - 1
PAS/src/main/java/cn/cslg/pas/common/model/vo/ProductCategoryTrendVO.java

@@ -27,7 +27,7 @@ public class ProductCategoryTrendVO implements Serializable {
         /**
          * 时间(季度或者月份)
          */
-        private String marketData;
+        private String marketDate;
 
         /**
          * 销售额

+ 1 - 1
PAS/src/main/java/cn/cslg/pas/controller/SystemController.java

@@ -84,7 +84,7 @@ public class SystemController {
     }
 
     @PostMapping("/patentCellTODb")
-    @Operation(summary = "获得所有对比文件详细信息")
+    @Operation(summary = "专利上传到数据库")
     public String   getPatentDTOListForRMS(@RequestBody PatentCell patentCell) {
         uploadPatentBatchService.dataToDBCell(patentCell);
         return Response.success();

+ 3 - 1
PAS/src/main/java/cn/cslg/pas/service/UploadPatentBatchService.java

@@ -659,7 +659,7 @@ public class UploadPatentBatchService {
      * @description 将装配完毕的VO类向数据库中不同的表进行添加或修改操作(dataToDB兄弟类)
      */
     @Transactional(rollbackFor = Exception.class)
-    public void dataToDBCell(PatentCell patentCell) {
+    public String dataToDBCell(PatentCell patentCell) {
         UploadParamsVO uploadParamsVO = new UploadParamsVO();
         uploadParamsVO.setPatent(new Patent());
         uploadParamsVO.getPatent().setPatentNo(patentCell.getPatentNo());
@@ -699,6 +699,7 @@ public class UploadPatentBatchService {
             patentTypeNoBusiness(uploadParamsVO);
             //事务信息 OS_PATENT_AFFAIR
             patentAffairBusiness(uploadParamsVO);
+            return Response.success();
         } catch (Exception e) {
             e.printStackTrace();
             if (uploadParamsVO.getPatent() != null) {
@@ -713,6 +714,7 @@ public class UploadPatentBatchService {
                 FLAG += 1;
             }
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return Response.error();
         }
     }
 

+ 19 - 4
PAS/src/main/java/cn/cslg/pas/service/asso/AssoProductPatentService.java

@@ -12,6 +12,7 @@ import cn.cslg.pas.domain.asso.AssoProductPatent;
 import cn.cslg.pas.mapper.asso.AssoProductPatentMapper;
 import cn.cslg.pas.service.*;
 import cn.cslg.pas.service.impl.StructurePatentServiceImpl;
+import cn.cslg.pas.service.impl.StructureServiceImpl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -47,6 +48,7 @@ public class AssoProductPatentService extends ServiceImpl<AssoProductPatentMappe
     private final SystemDictService systemDictService;
     private final PatentSimpleFamilyLinkService patentSimpleFamilyLinkService;
     private final StructurePatentServiceImpl assoStructurePatentService;
+    private final StructureServiceImpl structureService;
 
     /**
      * 给产品添加相关专利
@@ -56,8 +58,9 @@ public class AssoProductPatentService extends ServiceImpl<AssoProductPatentMappe
         List<String> orgPatentNos = new ArrayList<>();
         if (patentDTO.getPatentNo() != null) {
             patentDTO.setPatentNo(patentDTO.getPatentNo().replace(" ", ""));
-            if(!patentDTO.getPatentNo().equals("")) {
+            if (!patentDTO.getPatentNo().equals("")) {
                 String[] strs = patentDTO.getPatentNo().split("\\|");
+                patentDTO.setPatentNo("(^|,)("+patentDTO.getPatentNo()+")(,|$)");
                 orgPatentNos = new ArrayList<>(Arrays.asList(strs));
                 patentDTO.setIsIn(0);
                 List<String> patentNos = this.baseMapper.getPatentNos(patentDTO);
@@ -116,14 +119,26 @@ public class AssoProductPatentService extends ServiceImpl<AssoProductPatentMappe
             wrapper.eq(AssoProductPatent::getProductId, patentDTO.getProductId());
             wrapper.in(AssoProductPatent::getPatentNo, patentNos);
             this.remove(wrapper);
-            return assoPatents;
+            patentNos.removeAll(assoPatents);
+            return patentNos;
         }
-        return assoPatents;
+        return patentNos;
     }
 
     public IPage<PatentDTO> getPageList(QueryPatentVO params) {
-        IPage<Patent> dataPage = baseMapper.getPageList(new Page<>(params.getCurrent(), params.getSize()), params);
         IPage<PatentDTO> pageList = new Page<>();
+        //当产品Id为null
+        if (params.getProductId() == null) {
+            //当架构id不为null时
+            if (params.getStructureId() != null) {
+                structureService.getById(params.getStructureId());
+            } else {
+                return pageList;
+            }
+
+        }
+        IPage<Patent> dataPage = baseMapper.getPageList(new Page<>(params.getCurrent(), params.getSize()), params);
+
         List<PatentDTO> records = new ArrayList<>();
         List<Integer> patentIds = dataPage.getRecords().stream().map(Patent::getId).collect(Collectors.toList());
         List<PatentApplicant> patentApplicantList = patentApplicantService.getPatentApplicantByPatentIds(patentIds);

+ 41 - 6
PAS/src/main/java/cn/cslg/pas/service/impl/ProductCategoryServiceImpl.java

@@ -256,9 +256,16 @@ public class ProductCategoryServiceImpl implements IProductCategoryService {
         List<ProductCategoryTrendVO> trendVOS = new ArrayList<>();
         //存储所有产品的营销数据
         List<ProductMarketData> marketData = new ArrayList<>();
+        //存储所有
+        ProductCategoryTrendVO trendAllVO = new ProductCategoryTrendVO();
+        trendAllVO.setProductId(0);
+        trendAllVO.setProductName("总产品");
+        Map<String, Object> allMarketDataMap = new HashMap<>();
         //根据产品类别ID获得产品id和产品名称
         LambdaQueryWrapper<Product> productWrapper = new LambdaQueryWrapper<>();
         productWrapper.eq(Product::getProductCategoryId, dto.getCategoryId());
+        if(dto.getCompanyName()!=null&&dto.getCompanyName()!=""){
+        productWrapper.eq(Product::getCompanyName,dto.getCompanyName());}
         List<Product> products = productService.list(productWrapper);
         if (products.size() != 0) {
             List<Integer> productIds = products.stream().map(Product::getId).collect(Collectors.toList());
@@ -286,37 +293,65 @@ public class ProductCategoryServiceImpl implements IProductCategoryService {
             temMarketData.forEach(item -> {
                         //获得营销数据的时间
                         String date = item.getSaleTime();
-                        double saleCount = item.getSaleCount() * item.getSaleMoney();
+                        double saleCount = item.getSaleMoney();
                         if (dto.getTimeUnit() == 1) {
                             try {
                                 Date dateForm = new SimpleDateFormat("yyyy-MM").parse(date);
-                                int month = dateForm.getMonth();
-                                int year = dateForm.getYear();
-                                int season = (month - 1) / 3;
+                                Calendar ca = Calendar.getInstance();
+                                ca.setTime(dateForm);
+                                int month = ca.get(Calendar.MONTH);//第几个月
+                                int year = ca.get(Calendar.YEAR);//年份数值
+                                int season = (month - 1) / 3+1;
                                 date = year + "-" + season;
                             } catch (ParseException e) {
                                 e.printStackTrace();
                             }
                         }
+                        else if(dto.getTimeUnit() == 2){
+                            try {
+                                Date dateForm = new SimpleDateFormat("yyyy-MM").parse(date);
+                                Calendar ca = Calendar.getInstance();
+                                ca.setTime(dateForm);
+                                int year = ca.get(Calendar.YEAR);//年份数值
+                                date = year+"";
+                            } catch (ParseException e) {
+                                e.printStackTrace();
+                            }
+                        }
                         //计算销售额
                         if (marketDataMap.get(date) != null) {
                             saleCount += Double.parseDouble(marketDataMap.get(date).toString());
                         }
                         marketDataMap.put(date, saleCount);
+
+                        //产品总体部分
+                if (allMarketDataMap.get(date) != null) {
+                    saleCount += Double.parseDouble(allMarketDataMap.get(date).toString());
+                }
+                allMarketDataMap.put(date, saleCount);
                     }
             );
             Set keyset = marketDataMap.keySet();
             List<ProductCategoryTrendVO.saleVO> saleVOS = new ArrayList<>();
             for (Object key : keyset) {
                 ProductCategoryTrendVO.saleVO saleVO = new ProductCategoryTrendVO.saleVO();
-                saleVO.setMarketData(key.toString());
+                saleVO.setMarketDate(key.toString());
                 saleVO.setSaleTotalMoney(Double.parseDouble(marketDataMap.get(key).toString()));
                 saleVOS.add(saleVO);
             }
             trendVO.setSaleVOS(saleVOS);
             trendVOS.add(trendVO);
         }
-
+        Set keyset = allMarketDataMap.keySet();
+        List<ProductCategoryTrendVO.saleVO> saleVOS = new ArrayList<>();
+        for (Object key : keyset) {
+            ProductCategoryTrendVO.saleVO saleVO = new ProductCategoryTrendVO.saleVO();
+            saleVO.setMarketDate(key.toString());
+            saleVO.setSaleTotalMoney(Double.parseDouble(allMarketDataMap.get(key).toString()));
+            saleVOS.add(saleVO);
+        }
+        trendAllVO.setSaleVOS(saleVOS);
+        trendVOS.add(trendAllVO);
         return trendVOS;
     }