xiexiang 1 rok temu
rodzic
commit
f3f678505f

+ 19 - 9
src/main/java/com/example/xiaoshiweixinback/controller/TicketController.java

@@ -4,9 +4,10 @@ package com.example.xiaoshiweixinback.controller;
 import com.example.xiaoshiweixinback.business.common.Constants;
 import com.example.xiaoshiweixinback.business.common.Response;
 import com.example.xiaoshiweixinback.business.common.base.Records;
+import com.example.xiaoshiweixinback.entity.dto.ticket.TicketProcessUpDTO;
 import com.example.xiaoshiweixinback.entity.dto.ticket.TicketQueryDTO;
 import com.example.xiaoshiweixinback.entity.product.ProductDTO;
-import com.example.xiaoshiweixinback.entity.dto.ticket.TicketAddDTO;
+import com.example.xiaoshiweixinback.entity.dto.ticket.TicketDTO;
 import com.example.xiaoshiweixinback.service.TicketService;
 import io.swagger.v3.oas.annotations.Operation;
 import lombok.RequiredArgsConstructor;
@@ -25,11 +26,16 @@ public class TicketController {
 
     @Operation(summary = "添加工单")
     @PostMapping("/addTicket")
-    public Response addTicket(@RequestBody TicketAddDTO ticketAddDTO) {
-        Integer id = ticketService.addorUpdateTicket(ticketAddDTO);
-        Records records = new Records();
-        records.setData(id);
-        return Response.success(records);
+    public Response addTicket(@RequestBody TicketDTO ticketDTO) {
+        Integer id = ticketService.addorUpdateTicket(ticketDTO);
+        if (!id.equals(-1)) {
+            Records records = new Records();
+            records.setData(id);
+            return Response.success(records);
+        } else {
+            return Response.error("发生错误");
+        }
+
     }
 
 
@@ -40,11 +46,15 @@ public class TicketController {
 
     @Operation(summary = "更新工单进度")
     @PostMapping("/updateTicketProcess")
-    public Response updateTicketProcess(@RequestBody ProductDTO productDTO) {
-//        Records records =productService.queryHotProduct(productDTO);
-        return Response.success("records");
+    public Response updateTicketProcess(@RequestBody TicketProcessUpDTO ticketProcessUpDTO) {
+        Integer id = ticketService.updateProcess(ticketProcessUpDTO);
+        if (id.equals(0)) {
+            return Response.error("更新工单进度失败,没有权限");
+        }
+        return Response.success(id);
     }
 
+
     @Operation(summary = "查询工单")
     @PostMapping("/queryTicket")
     public Response queryTicket(@RequestBody TicketQueryDTO ticketQueryDTO) {

+ 17 - 2
src/main/java/com/example/xiaoshiweixinback/entity/dto/ticket/TicketAddDTO.java

@@ -6,7 +6,7 @@ import java.util.Date;
 import java.util.List;
 
 @Data
-public class TicketAddDTO {
+public class TicketDTO {
     /**
      * ID
      */
@@ -46,7 +46,7 @@ public class TicketAddDTO {
     private String companyName;
 
     /**
-     * 专利无法导出
+     * 专利无法导出
      */
     private Boolean patentExport;
 
@@ -114,9 +114,24 @@ public class TicketAddDTO {
      * 描述
      */
     private String description;
+
+    /**
+     * 联系人
+     */
     private String contactPerson;
+
+    /**
+     * 联系电话
+     */
     private String contactPhone;
+
+    /**
+     * 联系邮箱
+     */
     private String contactMail;
 
+    /**
+     * 附图
+     */
     private List<String> fileGuids;
 }

+ 1 - 0
src/main/java/com/example/xiaoshiweixinback/entity/dto/ticket/TicketQueryDTO.java

@@ -7,6 +7,7 @@ import java.util.Date;
 @Data
 public class TicketQueryDTO {
     private String name;
+    private String num;
     private Integer ticketType;
     private Integer id;
     private Integer current;

+ 33 - 0
src/main/java/com/example/xiaoshiweixinback/entity/vo/TicketFillInVO.java

@@ -0,0 +1,33 @@
+package com.example.xiaoshiweixinback.entity.vo;
+
+import lombok.Data;
+
+/**
+ * 填写表单VO
+ * @Author xiexiang
+ * @Date 2024/4/8
+ */
+@Data
+public class TicketFillInVO {
+    /**
+     * 填写工单id
+     */
+    private Integer id;
+
+    /**
+     * 工单id
+     */
+    private Integer ticketId;
+
+    /**
+     * 公司名称
+     */
+    private String companyName;
+
+    /**
+     * 专利无法导出?
+     */
+    private Boolean patentExport;
+
+    private String description;
+}

+ 58 - 0
src/main/java/com/example/xiaoshiweixinback/entity/vo/TicketLitigationRespondingVO.java

@@ -0,0 +1,58 @@
+package com.example.xiaoshiweixinback.entity.vo;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.example.xiaoshiweixinback.domain.BaseEntity;
+import lombok.Data;
+
+/**
+ * 知识产权应诉工单
+ * @Author xiexiang
+ * @Date 2024/4/7
+ */
+@Data
+public class TicketLitigationRespondingVO {
+    /**
+     * 知识产权应诉工单id
+     */
+    private Integer id;
+
+    /**
+     * 工单id
+     */
+    private Integer ticketId;
+
+    /**
+     * 投诉方ADIN号
+     */
+    private String complainAdin;
+
+    /**
+     * 被投诉方ADIN号
+     */
+    private String complainedAdin;
+
+    /**
+     * 商品是否原创
+     */
+    private Boolean ifOriginal;
+
+    /**
+     * 被投诉类型
+     */
+    private String complainedType;
+
+    /**
+     * 专利号
+     */
+    private String patentNo;
+
+    /**
+     * 是否协商过
+     */
+    private Boolean ifTalked;
+
+    /**
+     * 详细说明被投诉全过程
+     */
+    private String description;
+}

+ 58 - 0
src/main/java/com/example/xiaoshiweixinback/entity/vo/TicketPatentApplyVO.java

@@ -0,0 +1,58 @@
+package com.example.xiaoshiweixinback.entity.vo;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.example.xiaoshiweixinback.domain.BaseEntity;
+import lombok.Data;
+
+/**
+ * 我要申请专利
+ * @Author xiexiang
+ * @Date 2024/4/7
+ */
+@Data
+public class TicketPatentApplyVO {
+    /**
+     * 申请专利工单id
+     */
+    private Integer id;
+
+    /**
+     * 工单id
+     */
+    private Integer ticketId;
+
+    /**
+     * 申请类型
+     */
+    private String appType;
+
+    /**
+     * 申请国家
+     */
+    private String appCountry;
+
+    /**
+     * 所属行业
+     */
+    private String industry;
+
+    /**
+     * 技术类型
+     */
+    private String techType;
+
+    /**
+     * 是否海外申请
+     */
+    private Boolean appAbroad;
+
+    /**
+     * 一同申请海牙认证
+     */
+    private Boolean appApostille;
+
+    /**
+     * 备注
+     */
+    private String description;
+}

+ 63 - 0
src/main/java/com/example/xiaoshiweixinback/entity/vo/TicketRightsProtectionVO.java

@@ -0,0 +1,63 @@
+package com.example.xiaoshiweixinback.entity.vo;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.example.xiaoshiweixinback.domain.BaseEntity;
+import lombok.Data;
+
+/**
+ * 知识产权维权工单
+ * @Author xiexiang
+ * @Date 2024/4/7
+ */
+@Data
+public class TicketRightsProtectionVO {
+    /**
+     * 知识产权维权工单id
+     */
+    private Integer id;
+
+    /**
+     * 工单id
+     */
+    private Integer ticketId;
+
+    /**
+     * 侵权店铺ADIN号
+     */
+    private String tortStoreAdin;
+
+    /**
+     * 侵权类型
+     */
+    private String tortType;
+
+    /**
+     * 侵权分类
+     */
+    private String tortClassify;
+
+    /**
+     * 是否拥有专利
+     */
+    private Boolean ifHavePatent;
+
+    /**
+     * 专利号
+     */
+    private String patentNo;
+
+    /**
+     * 描述问题
+     */
+    private String problemDescription;
+
+    /**
+     * 侵权店铺链接
+     */
+    private String tortStoreLink;
+
+    /**
+     * 提供更多信息
+     */
+    private String description;
+}

+ 19 - 3
src/main/java/com/example/xiaoshiweixinback/entity/vo/TicketVO.java

@@ -3,6 +3,7 @@ package com.example.xiaoshiweixinback.entity.vo;
 import lombok.Data;
 
 import java.util.Date;
+import java.util.List;
 
 @Data
 public class TicketVO {
@@ -26,25 +27,40 @@ public class TicketVO {
      */
     private Integer ticketType;
 
+    /**
+     * 唯一工单号
+     */
     private String num;
 
     /**
-     *
+     * 工单进度
      */
     private Integer ticketProgress;
 
     /**
-     *
+     * 创建人
      */
     private String createId;
 
     /**
-     *
+     * 创建时间
      */
     private Date createTime;
 
+    /**
+     * 价格
+     */
     private Double price;
 
+    /**
+     *
+     */
     private String description;
 
+    private TicketFillInVO ticketFillInVO;
+    private TicketPatentApplyVO ticketPatentApplyVO;
+    private TicketLitigationRespondingVO ticketLitigationRespondingVO;
+    private TicketRightsProtectionVO ticketRightsProtectionVO;
+
+    private List<String> fileGuids;
 }

+ 0 - 1
src/main/java/com/example/xiaoshiweixinback/service/TicketFillInService.java

@@ -2,7 +2,6 @@ package com.example.xiaoshiweixinback.service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.example.xiaoshiweixinback.domain.TicketFillIn;
-import com.example.xiaoshiweixinback.entity.dto.ticket.TicketAddDTO;
 import com.example.xiaoshiweixinback.entity.dto.ticket.TicketFillInAddDTO;
 import com.example.xiaoshiweixinback.mapper.TicketFillInMapper;
 import lombok.RequiredArgsConstructor;

+ 0 - 2
src/main/java/com/example/xiaoshiweixinback/service/TicketRightsProtectionService.java

@@ -1,9 +1,7 @@
 package com.example.xiaoshiweixinback.service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.example.xiaoshiweixinback.domain.TicketFillIn;
 import com.example.xiaoshiweixinback.domain.TicketRightsProtection;
-import com.example.xiaoshiweixinback.entity.dto.ticket.TicketAddDTO;
 import com.example.xiaoshiweixinback.entity.dto.ticket.TicketRightsProtectionAddDTO;
 import com.example.xiaoshiweixinback.mapper.TicketRightsProtectionMapper;
 import lombok.RequiredArgsConstructor;

+ 78 - 15
src/main/java/com/example/xiaoshiweixinback/service/TicketService.java

@@ -1,5 +1,6 @@
 package com.example.xiaoshiweixinback.service;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -10,17 +11,16 @@ import com.example.xiaoshiweixinback.business.utils.CacheUtil;
 import com.example.xiaoshiweixinback.business.utils.LoginUtils;
 import com.example.xiaoshiweixinback.domain.*;
 import com.example.xiaoshiweixinback.entity.dto.ticket.*;
-import com.example.xiaoshiweixinback.entity.vo.PersonnelVO;
-import com.example.xiaoshiweixinback.entity.vo.TicketVO;
+import com.example.xiaoshiweixinback.entity.vo.*;
 import com.example.xiaoshiweixinback.mapper.TicketMapper;
 import lombok.RequiredArgsConstructor;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import javax.management.modelmbean.XMLParseException;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * @author admin
@@ -38,13 +38,18 @@ public class TicketService extends ServiceImpl<TicketMapper, Ticket> {
     private final TicketPatentApplyService ticketPatentApplyService;
     private final AssoTicketFileService assoTicketFileService;
 
+    /**
+     * 新增or更新工单
+     * @param ticketDTO
+     * @return
+     */
     @Transactional(rollbackFor = Exception.class)
-    public Integer addorUpdateTicket(TicketAddDTO ticketAddDTO) {
+    public Integer addorUpdateTicket(TicketDTO ticketDTO) {
         Integer reId = null;
         Ticket ticket = new Ticket();
-        if (ticketAddDTO.getId() == null) {
+        if (ticketDTO.getId() == null) {
             //工单基本信息入库
-            BeanUtils.copyProperties(ticketAddDTO, ticket);
+            BeanUtils.copyProperties(ticketDTO, ticket);
 //            PersonnelVO personnelVO = cacheUtil.getLoginUser(loginUtils.getId());
 //            ticket.setCreateId(personnelVO.getUuid());
             ticket.setCreateId("123");
@@ -55,33 +60,33 @@ public class TicketService extends ServiceImpl<TicketMapper, Ticket> {
 
             Integer ticketId = ticket.getId();
             //根据工单的不同类型 信息入库
-            Integer ticketType = ticketAddDTO.getTicketType();
+            Integer ticketType = ticketDTO.getTicketType();
             switch (ticketType) {
                 case 1:
                     //填写工单
                     TicketFillInAddDTO ticketFillInAddDTO = new TicketFillInAddDTO();
-                    BeanUtils.copyProperties(ticketAddDTO, ticketFillInAddDTO);
+                    BeanUtils.copyProperties(ticketDTO, ticketFillInAddDTO);
                     ticketFillInAddDTO.setTicketId(ticketId);
                     reId = ticketFillInService.add(ticketFillInAddDTO);
                     break;
                 case 2:
                     //知识产权维权工单
                     TicketRightsProtectionAddDTO ticketRightsProtectionAddDTO = new TicketRightsProtectionAddDTO();
-                    BeanUtils.copyProperties(ticketAddDTO, ticketRightsProtectionAddDTO);
+                    BeanUtils.copyProperties(ticketDTO, ticketRightsProtectionAddDTO);
                     ticketRightsProtectionAddDTO.setTicketId(ticketId);
                     reId = ticketRightsProtectionService.add(ticketRightsProtectionAddDTO);
                     break;
                 case 3:
                     //知识产权应诉工单
                     TicketLitigationRespondingAddDTO ticketLitigationRespondingAddDTO = new TicketLitigationRespondingAddDTO();
-                    BeanUtils.copyProperties(ticketAddDTO, ticketLitigationRespondingAddDTO);
+                    BeanUtils.copyProperties(ticketDTO, ticketLitigationRespondingAddDTO);
                     ticketLitigationRespondingAddDTO.setTicketId(ticketId);
                     reId = ticketLitigationRespondingService.add(ticketLitigationRespondingAddDTO);
                     break;
                 case 4:
                     //我要申请专利工单
                     TicketPatentApplyAddDTO ticketPatentApplyAddDTO = new TicketPatentApplyAddDTO();
-                    BeanUtils.copyProperties(ticketAddDTO, ticketPatentApplyAddDTO);
+                    BeanUtils.copyProperties(ticketDTO, ticketPatentApplyAddDTO);
                     ticketPatentApplyAddDTO.setTicketId(ticketId);
                     reId = ticketPatentApplyService.add(ticketPatentApplyAddDTO);
                     break;
@@ -91,7 +96,7 @@ public class TicketService extends ServiceImpl<TicketMapper, Ticket> {
             }
 
             //处理工单的附件
-            List<String> fileGuids = ticketAddDTO.getFileGuids();
+            List<String> fileGuids = ticketDTO.getFileGuids();
             if (!fileGuids.isEmpty()) {
                 List<AssoTicketFile> assoTicketFiles = new ArrayList<>();
                 for (String fileGuid : fileGuids) {
@@ -107,8 +112,8 @@ public class TicketService extends ServiceImpl<TicketMapper, Ticket> {
 
         } else {
             ticket = this.getById(ticket.getId());
-            ticket.setName(ticketAddDTO.getName());
-            ticket.setContentText(ticketAddDTO.getContentText());
+            ticket.setName(ticketDTO.getName());
+            ticket.setContentText(ticketDTO.getContentText());
             ticket.updateById();
         }
         return reId;
@@ -117,6 +122,7 @@ public class TicketService extends ServiceImpl<TicketMapper, Ticket> {
     @Transactional(rollbackFor = Exception.class)
     public Records queryTickets(TicketQueryDTO ticketQueryDTO) {
         String name = ticketQueryDTO.getName();
+        String num = ticketQueryDTO.getNum();
         Integer ticketType = ticketQueryDTO.getTicketType();
         Boolean isAdmin = ticketQueryDTO.getIsAdmin();
         Integer pageNum = ticketQueryDTO.getCurrent();
@@ -129,6 +135,9 @@ public class TicketService extends ServiceImpl<TicketMapper, Ticket> {
         if (ticketType != null) {
             queryWrapper.lambda().eq(Ticket::getTicketType, ticketType);
         }
+        if (num != null) {
+            queryWrapper.lambda().eq(Ticket::getNum, num);
+        }
         if (!isAdmin.equals(true)) {
             PersonnelVO personnelVO = cacheUtil.getLoginUser(loginUtils.getId());
             Integer personType = personnelVO.getPersonType();
@@ -160,6 +169,61 @@ public class TicketService extends ServiceImpl<TicketMapper, Ticket> {
             for (Ticket ticket : tickets) {
                 TicketVO ticketVO = new TicketVO();
                 BeanUtils.copyProperties(ticket, ticketVO);
+                Integer ticketId = ticket.getId();
+                //附图
+                LambdaQueryWrapper<AssoTicketFile> queryWrapper = new LambdaQueryWrapper<>();
+                queryWrapper.eq(AssoTicketFile::getTicketId, ticketId);
+                List<AssoTicketFile> assoTicketFiles = assoTicketFileService.list(queryWrapper);
+                if (assoTicketFiles != null && !assoTicketFiles.isEmpty()) {
+                    List<String> fileGuids = assoTicketFiles.stream().map(AssoTicketFile::getFileGuid).collect(Collectors.toList());
+                    ticketVO.setFileGuids(fileGuids);
+                }
+
+                Integer ticketType = ticket.getTicketType();
+                switch (ticketType) {
+                    case 1:
+                        TicketFillInVO ticketFillInVO = new TicketFillInVO();
+                        LambdaQueryWrapper<TicketFillIn> fillInWrapper = new LambdaQueryWrapper<>();
+                        fillInWrapper.eq(TicketFillIn::getTicketId, ticketId);
+                        TicketFillIn ticketFillIn = ticketFillInService.getOne(fillInWrapper, false);
+                        if (ticketFillIn != null) {
+                            BeanUtils.copyProperties(ticketFillIn, ticketFillInVO);
+                        }
+                        ticketVO.setTicketFillInVO(ticketFillInVO);
+                        break;
+                    case 2:
+                        TicketRightsProtectionVO rightsProtectionVO = new TicketRightsProtectionVO();
+                        LambdaQueryWrapper<TicketRightsProtection> rightsProtectionWrapper = new LambdaQueryWrapper<>();
+                        rightsProtectionWrapper.eq(TicketRightsProtection::getTicketId, ticketId);
+                        TicketRightsProtection ticketRightsProtection = ticketRightsProtectionService.getOne(rightsProtectionWrapper, false);
+                        if (ticketRightsProtection != null) {
+                            BeanUtils.copyProperties(ticketRightsProtection, rightsProtectionVO);
+                        }
+                        ticketVO.setTicketRightsProtectionVO(rightsProtectionVO);
+                        break;
+                    case 3:
+                        TicketLitigationRespondingVO litigationRespondingVO = new TicketLitigationRespondingVO();
+                        LambdaQueryWrapper<TicketLitigationResponding> respondingWrapper = new LambdaQueryWrapper<>();
+                        respondingWrapper.eq(TicketLitigationResponding::getTicketId, ticketId);
+                        TicketLitigationResponding ticketLitigationResponding = ticketLitigationRespondingService.getOne(respondingWrapper, false);
+                        if (ticketLitigationResponding != null) {
+                            BeanUtils.copyProperties(ticketLitigationResponding, litigationRespondingVO);
+                        }
+                        ticketVO.setTicketLitigationRespondingVO(litigationRespondingVO);
+                        break;
+                    case 4:
+                        TicketPatentApplyVO patentApplyVO = new TicketPatentApplyVO();
+                        LambdaQueryWrapper<TicketPatentApply> patentApplyWrapper = new LambdaQueryWrapper<>();
+                        patentApplyWrapper.eq(TicketPatentApply::getTicketId, ticketId);
+                        TicketPatentApply ticketPatentApply = ticketPatentApplyService.getOne(patentApplyWrapper, false);
+                        if (ticketPatentApply != null) {
+                            BeanUtils.copyProperties(ticketPatentApply, patentApplyVO);
+                        }
+                        ticketVO.setTicketPatentApplyVO(patentApplyVO);
+                        break;
+                    default:
+                        break;
+                }
                 ticketVOS.add(ticketVO);
             }
         }
@@ -177,7 +241,6 @@ public class TicketService extends ServiceImpl<TicketMapper, Ticket> {
         Integer id = ticketProcessUpDTO.getId();
         Integer process = ticketProcessUpDTO.getProcess();
         Ticket ticket = this.getById(id);
-
         Boolean flag = this.ifHavePermission(ticket.getCreateId());
         if (!flag) {
             return 0;