Ver código fonte

Merge remote-tracking branch 'origin/dev/icss' into dev/icss

wangyu 6 anos atrás
pai
commit
fc703ee189

+ 11 - 0
icssman-service/pom.xml

@@ -154,6 +154,17 @@
             <artifactId>fastdfs-client-java</artifactId>
             <version>1.27.0.0</version>
         </dependency>
+        <!-- 文件上传相关架包 -->
+		<dependency>
+			<groupId>commons-fileupload</groupId>
+			<artifactId>commons-fileupload</artifactId>
+			<version>1.3.1</version>
+		</dependency>
+		<dependency>
+			<groupId>commons-io</groupId>
+			<artifactId>commons-io</artifactId>
+			<version>2.4</version>
+		</dependency>
 
     </dependencies>
 

+ 69 - 0
icssman-service/src/main/java/com/diagbot/facade/IntroduceDetailFacade.java

@@ -3,12 +3,19 @@ package com.diagbot.facade;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.diagbot.entity.IntroduceDetail;
+import com.diagbot.entity.IntroduceInfo;
 import com.diagbot.enums.IsDeleteEnum;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
 import com.diagbot.service.impl.IntroduceDetailServiceImpl;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.UserUtils;
+import com.diagbot.vo.IntroduceDetailSingleVO;
+import com.diagbot.vo.IntroduceDetailVO;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -18,6 +25,8 @@ import java.util.List;
  */
 @Component
 public class IntroduceDetailFacade extends IntroduceDetailServiceImpl {
+    @Autowired
+    private IntroduceInfoFacade introduceInfoFacade;
 
     /**
      * 获取提示信息明细
@@ -32,6 +41,66 @@ public class IntroduceDetailFacade extends IntroduceDetailServiceImpl {
         return this.list(introduceDetailQueryWrapper);
     }
 
+    /**
+     * 获取单条提示信息明细
+     *
+     * @param id
+     * @return
+     */
+    public IntroduceDetail getRecordById(Long id) {
+        IntroduceDetail detail = super.getById(id);
+        if (detail == null) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "提示信息明细不存在");
+        } else if (detail.getIsDeleted().equals(IsDeleteEnum.Y.getKey())) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "提示信息明细已删除");
+        }
+        return detail;
+    }
+
+    /**
+     * 单条明细保存
+     *
+     * @param detailSingleVO
+     * @return
+     */
+    public Boolean saveRecord(IntroduceDetailSingleVO detailSingleVO) {
+        if (detailSingleVO.getIntroduceId() == null || detailSingleVO.getIntroduceId().equals(0L)) {
+            throw new CommonException(CommonErrorCode.PARAM_ERROR, "请输入提示信息id");
+        }
+        IntroduceInfo introduceInfo = introduceInfoFacade.getById(detailSingleVO.getIntroduceId());
+        if (introduceInfo == null) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "提示信息不存在");
+        } else if (introduceInfo.getIsDeleted().equals(IsDeleteEnum.Y.getKey())) {
+            throw new CommonException(CommonErrorCode.NOT_EXISTS, "提示信息已删除");
+        }
+
+        String userId = UserUtils.getCurrentPrincipleID();
+        Date now = DateUtil.now();
+        IntroduceDetail detail = super.getById(detailSingleVO.getId());
+        if (!(detail == null || detail.getIsDeleted().equals(IsDeleteEnum.Y.getKey()))) {
+            detail.setIsDeleted(IsDeleteEnum.Y.getKey());
+            detail.setModifier(userId);
+            detail.setGmtModified(now);
+            this.updateById(detail);
+        }
+        detail = new IntroduceDetail();
+        detail.setIsReason(detailSingleVO.getIsReason());
+        detail.setTitle(detailSingleVO.getTitle());
+        detail.setOrderNo(detailSingleVO.getOrderNo());
+        detail.setText(detailSingleVO.getText());
+        detail.setContent(detailSingleVO.getContent());
+        detail.setIntroduceId(detailSingleVO.getIntroduceId());
+        detail.setPosition(detailSingleVO.getPosition());
+        detail.setCreator(userId);
+        detail.setGmtCreate(now);
+        detail.setModifier(userId);
+        detail.setGmtModified(now);
+
+        this.saveOrUpdate(detail);
+
+        return true;
+    }
+
     /**
      * 单条删除提示信息明细 逻辑删除
      *

+ 43 - 29
icssman-service/src/main/java/com/diagbot/facade/RetrievalFacade.java

@@ -1,5 +1,26 @@
 package com.diagbot.facade;
 
+import java.io.InputStream;
+import java.text.DecimalFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import org.apache.commons.lang.time.DateFormatUtils;
+import org.apache.poi.hssf.usermodel.HSSFDateUtil;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Component;
+import org.springframework.web.multipart.MultipartFile;
+
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.client.UserServiceClient;
@@ -13,6 +34,8 @@ import com.diagbot.entity.RetrievalMapping;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
+import com.diagbot.service.RetrievalMappingService;
+import com.diagbot.service.RetrievalService;
 import com.diagbot.service.impl.RetrievalServiceImpl;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.ListUtil;
@@ -23,25 +46,6 @@ import com.diagbot.vo.AddTagRetrievalVO;
 import com.diagbot.vo.DelRetrievalsByQuesIdVO;
 import com.diagbot.vo.GetRetrievalsByTagVO;
 import com.diagbot.vo.RetrievalListVO;
-import org.apache.commons.lang.time.DateFormatUtils;
-import org.apache.poi.hssf.usermodel.HSSFDateUtil;
-import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.apache.poi.ss.usermodel.Cell;
-import org.apache.poi.ss.usermodel.Row;
-import org.apache.poi.ss.usermodel.Sheet;
-import org.apache.poi.ss.usermodel.Workbook;
-import org.apache.poi.xssf.usermodel.XSSFWorkbook;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-import org.springframework.web.multipart.MultipartFile;
-
-import java.io.InputStream;
-import java.text.DecimalFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
 
 /**
  * @author rgb
@@ -57,6 +61,13 @@ public class RetrievalFacade extends RetrievalServiceImpl {
     private QuestionFacade questionFacade;
     @Autowired
     private UserServiceClient userServiceClient;
+    @Autowired
+    @Qualifier("retrievalServiceImpl")
+    private RetrievalService retrievalService;
+    @Autowired
+    @Qualifier("retrievalMappingServiceImpl")
+    private RetrievalMappingService retrievalMappingService;
+    
 
     /**
      * 根据标签获取同义词
@@ -139,7 +150,9 @@ public class RetrievalFacade extends RetrievalServiceImpl {
                 retrievals.add(retrieval);
             }
         });
-        this.saveOrUpdateBatch(saveOrUpdateRetrievals);
+        if(saveOrUpdateRetrievals.size()>0){
+        	retrievalService.saveOrUpdateBatch(saveOrUpdateRetrievals);
+        }
         retrievals.addAll(saveOrUpdateRetrievals);
         List<Long> retrievalIds = retrievals.stream().map(i -> i.getId()).collect(Collectors.toList());
 
@@ -149,7 +162,7 @@ public class RetrievalFacade extends RetrievalServiceImpl {
         Map<Long, RetrievalMapping> retrievalMappingMap = retrievalMappings.stream().collect(Collectors.toMap(RetrievalMapping::getRetrievalId, i -> i));
 
         List<RetrievalMapping> addOrUpdateRetrievalMappings = new ArrayList<>();
-        retrievalMappings.stream().filter(i -> retrievalIds.contains(i.getRetrievalId())).forEach(i -> {
+        retrievalMappings.stream().filter(i ->i.getIsDeleted().equals(IsDeleteEnum.N.getKey())&&!retrievalIds.contains(i.getRetrievalId())).forEach(i -> {
             i.setIsDeleted(IsDeleteEnum.Y.getKey());
             i.setGmtModified(now);
             i.setModifier(userId);
@@ -181,11 +194,12 @@ public class RetrievalFacade extends RetrievalServiceImpl {
             }
         });
 
-        retrievalMappingFacade.saveOrUpdateBatch(addOrUpdateRetrievalMappings);
-
+        if(ListUtil.isNotEmpty(addOrUpdateRetrievalMappings)){
+        	retrievalMappingService.saveOrUpdateBatch(addOrUpdateRetrievalMappings);
+        }
         return true;
     }
-
+    
     /**
      * 获取标签同义词列表
      *
@@ -196,7 +210,7 @@ public class RetrievalFacade extends RetrievalServiceImpl {
         IPage<RetrievalListDTO> ipage = this.getRetrievalList(retrievalListVO);
 
         List<RetrievalListDTO> retrievalListDTOList = ipage.getRecords();
-        if (retrievalListDTOList.size() == 0) {
+        if (ListUtil.isEmpty(retrievalListDTOList)) {
             return ipage;
         }
 
@@ -212,11 +226,11 @@ public class RetrievalFacade extends RetrievalServiceImpl {
 
         retrievalListDTOList.forEach(retrievalListDTO -> {
             List<RetrievalMapping> retrievalMappingList = retrievalMappingListMap.get(retrievalListDTO.getQuestionId());
-            retrievalMappingList = retrievalMappingList.stream().filter(i -> retrievalMap.get(i.getRetrievalId()) == null).sorted((t1, t2) -> t2.getGmtModified().compareTo(t1.getGmtModified())).collect(Collectors.toList());
+            retrievalMappingList = retrievalMappingList.stream().filter(i -> retrievalMap.get(i.getRetrievalId())!=null).sorted((t1, t2) -> t2.getGmtModified().compareTo(t1.getGmtModified())).collect(Collectors.toList());
             retrievalListDTO.setOperatorName(retrievalMappingList.get(0).getModifier());
-            retrievalListDTO.setRetrievalSelfName(retrievalMappingList.stream().filter(i -> i.getShowType() == 1 && i.getIsDeleted().equals("N")).map(i -> retrievalMap.get(i.getRetrievalId()).getName()).collect(Collectors.joining()));
-            retrievalListDTO.setRetrievalNames(retrievalMappingList.stream().filter(i -> i.getShowType() == 2 && i.getIsDeleted().equals("N")).map(i -> retrievalMap.get(i.getRetrievalId()).getName()).collect(Collectors.joining()));
-            retrievalListDTO.setRetrievalSonNames(retrievalMappingList.stream().filter(i -> i.getShowType() == 3 && i.getIsDeleted().equals("N")).map(i -> retrievalMap.get(i.getRetrievalId()).getName()).collect(Collectors.joining()));
+            retrievalListDTO.setRetrievalSelfName(retrievalMappingList.stream().filter(i -> i.getShowType() == 1 && i.getIsDeleted().equals("N")).map(i -> retrievalMap.get(i.getRetrievalId()).getName()).collect(Collectors.joining("、")));
+            retrievalListDTO.setRetrievalNames(retrievalMappingList.stream().filter(i -> i.getShowType() == 2 && i.getIsDeleted().equals("N")).map(i -> retrievalMap.get(i.getRetrievalId()).getName()).collect(Collectors.joining("、")));
+            retrievalListDTO.setRetrievalSonNames(retrievalMappingList.stream().filter(i -> i.getShowType() == 3 && i.getIsDeleted().equals("N")).map(i -> retrievalMap.get(i.getRetrievalId()).getName()).collect(Collectors.joining("、")));
         });
 
         List<String> ids = retrievalListDTOList.stream().map(i -> i.getOperatorName()).collect(Collectors.toList());

+ 1 - 0
icssman-service/src/main/java/com/diagbot/service/impl/RetrievalServiceImpl.java

@@ -26,4 +26,5 @@ public class RetrievalServiceImpl extends ServiceImpl<RetrievalMapper, Retrieval
 		return this.baseMapper.getRetrievalList(retrievalListVO);
 	}
 
+
 }

+ 2 - 2
icssman-service/src/main/java/com/diagbot/vo/AddTagRetrievalDetailVO.java

@@ -58,8 +58,8 @@ public class AddTagRetrievalDetailVO {
 		}
 		if(obj instanceof AddTagRetrievalDetailVO){
 			AddTagRetrievalDetailVO addTagRetrievalDetailVO = (AddTagRetrievalDetailVO)obj;
-			if(addTagRetrievalDetailVO.getRetrievalName().equals(this.retrievalName)
-					&&addTagRetrievalDetailVO.getRetrievalType()==this.retrievalType){
+			if(addTagRetrievalDetailVO.getRetrievalName().equals(this.retrievalName)){
+					//&&addTagRetrievalDetailVO.getRetrievalType()==this.retrievalType){
 				return true;
 			}else{
 				return false;

+ 19 - 0
icssman-service/src/main/java/com/diagbot/vo/IntroduceDetailSingleVO.java

@@ -0,0 +1,19 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2019/1/4 15:43
+ */
+@Getter
+@Setter
+public class IntroduceDetailSingleVO extends IntroduceDetailVO {
+    @NotNull(message = "请输入提示信息id")
+    private Long introduceId;
+    private Long id;
+}

+ 26 - 0
icssman-service/src/main/java/com/diagbot/web/IntroduceDetailController.java

@@ -5,11 +5,13 @@ import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.entity.IntroduceDetail;
 import com.diagbot.facade.IntroduceDetailFacade;
+import com.diagbot.vo.IntroduceDetailSingleVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
@@ -41,6 +43,30 @@ public class IntroduceDetailController {
         return RespDTO.onSuc(data);
     }
 
+    @ApiOperation(value = "获取单条提示信息明细[by:zhaops]",
+            notes = "id: 提示信息明细id,必填")
+    @PostMapping("/getById")
+    @SysLogger("getById")
+    public RespDTO<IntroduceDetail> getById(@RequestParam Long id) {
+        IntroduceDetail data = introduceDetailFacade.getRecordById(id);
+        return RespDTO.onSuc(data);
+    }
+
+    @ApiOperation(value = "保存单条明细信息[by:zhaops]",
+            notes = "introdueId: 提示信息id,必填<br>" +
+                    "id: 提示信息明细id<br>" +
+                    "title:提示信息标题<br>" +
+                    "content:提示信息<br>" +
+                    "text:提示信息-纯文本<br>" +
+                    "orderNo:排序号<br>" +
+                    "position:显示位置<br>")
+    @PostMapping("/saveRecord")
+    @SysLogger("saveRecord")
+    public RespDTO<Boolean> saveRecord(@RequestBody IntroduceDetailSingleVO introduceDetailSingleVO) {
+        Boolean data = introduceDetailFacade.saveRecord(introduceDetailSingleVO);
+        return RespDTO.onSuc(data);
+    }
+
     @ApiOperation(value = "删除单条提示信息明细[by:zhaops]",
             notes = "id: id,必填")
     @PostMapping("/deleteRecord")

+ 1 - 1
icssman-service/src/main/java/com/diagbot/web/IntroduceInfoController.java

@@ -46,7 +46,7 @@ public class IntroduceInfoController {
             notes = "id: 修改时带id,新增时为空<br>" +
                     "name: 名称,必填<br>" +
                     "remark:备注<br>" +
-                    "detailVOList:提示信息明细列表" +
+                    "detailVOList:提示信息明细列表<br>" +
                     "title:提示信息标题<br>" +
                     "content:提示信息<br>" +
                     "text:提示信息-纯文本<br>" +

+ 0 - 1
icssman-service/src/main/java/com/diagbot/web/RetrievalController.java

@@ -79,7 +79,6 @@ public class RetrievalController {
     
     @ApiOperation(value = "同义词excel文件导入[by:rengb]")
     @PostMapping("/retrievalExcelIm")
-    @SysLogger("retrievalExcelIm")
     @Transactional
     public RespDTO<RetrievalExcelImDTO> retrievalExcelIm(@RequestParam("uploadfile") MultipartFile file,HttpServletRequest request) {
         return RespDTO.onSuc(retrievalFacade.retrievalExcelIm(file));

+ 3 - 1
icssman-service/src/main/resources/mapper/RetrievalMapper.xml

@@ -42,12 +42,14 @@
 		SELECT
 		a.id as questionId,
 		a.tag_name as questionName,
-		MAX(b.gmt_modified) as gmtOperate
+		MAX(b.gmt_modified) as gmtOperate,
+		sum(case when b.is_deleted='N' then 1 else 0 end) as delSum
 		FROM icss_question_info a JOIN icss_retrieval_mapping b ON a.id=b.question_id
 		JOIN icss_retrieval c ON b.retrieval_id=c.id
 		WHERE a.is_deleted='N' AND c.is_deleted='N'
 		AND a.tag_name LIKE CONCAT('%',#{questionName},'%')
 		GROUP BY a.id
+		HAVING delSum>0
 		ORDER BY gmtOperate DESC
 	</select>