常用话术
This commit is contained in:
parent
d2bee9c32d
commit
38b64776b2
@ -8,6 +8,7 @@ import com.xinelu.common.enums.BusinessType;
|
||||
import com.xinelu.common.utils.poi.ExcelUtil;
|
||||
import com.xinelu.manage.domain.termbank.TermBank;
|
||||
import com.xinelu.manage.service.termbank.ITermBankService;
|
||||
import com.xinelu.manage.vo.termbank.TermBankVO;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
@ -40,7 +41,7 @@ public class TermBankController extends BaseController {
|
||||
}
|
||||
|
||||
@GetMapping("/selectTermBankList")
|
||||
public AjaxResult selectTermBankList(TermBank termBank) {
|
||||
public AjaxResult selectTermBankList(TermBank termBank) {
|
||||
return AjaxResult.success(termBankService.selectTermBankList(termBank));
|
||||
}
|
||||
|
||||
@ -97,4 +98,12 @@ public class TermBankController extends BaseController {
|
||||
public AjaxResult remove(@PathVariable Long[] ids) {
|
||||
return toAjax(termBankService.deleteTermBankByIds(ids));
|
||||
}
|
||||
|
||||
/**
|
||||
* 常用术语层级树图
|
||||
*/
|
||||
@GetMapping("/bankLevel")
|
||||
public List<TermBankVO> bankLevel(Long level) {
|
||||
return termBankService.bankLevel(level);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.xinelu.manage.mapper.termbank;
|
||||
|
||||
import com.xinelu.manage.domain.termbank.TermBank;
|
||||
import com.xinelu.manage.vo.termbank.TermBankVO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -27,6 +28,11 @@ public interface TermBankMapper {
|
||||
*/
|
||||
List<TermBank> selectTermBankList(TermBank termBank);
|
||||
|
||||
/**
|
||||
* 常用术语层级树图
|
||||
*/
|
||||
List<TermBankVO> selectTermBankTree(Long level);
|
||||
|
||||
/**
|
||||
* 新增常用术语(知识库)
|
||||
*
|
||||
|
||||
@ -2,6 +2,7 @@ package com.xinelu.manage.service.termbank;
|
||||
|
||||
import com.xinelu.common.core.domain.AjaxResult;
|
||||
import com.xinelu.manage.domain.termbank.TermBank;
|
||||
import com.xinelu.manage.vo.termbank.TermBankVO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -61,4 +62,9 @@ public interface ITermBankService {
|
||||
* @return 结果
|
||||
*/
|
||||
int deleteTermBankById(Long id);
|
||||
|
||||
/**
|
||||
* 常用术语层级树图
|
||||
*/
|
||||
List<TermBankVO> bankLevel(Long level);
|
||||
}
|
||||
|
||||
@ -7,13 +7,18 @@ import com.xinelu.common.utils.codes.GenerateSystemCodeUtil;
|
||||
import com.xinelu.manage.domain.termbank.TermBank;
|
||||
import com.xinelu.manage.mapper.termbank.TermBankMapper;
|
||||
import com.xinelu.manage.service.termbank.ITermBankService;
|
||||
import com.xinelu.manage.vo.termbank.TermBankVO;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 常用术语(知识库)Service业务层处理
|
||||
@ -120,4 +125,62 @@ public class TermBankServiceImpl implements ITermBankService {
|
||||
public int deleteTermBankById(Long id) {
|
||||
return termBankMapper.deleteTermBankById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 常用术语层级树图
|
||||
*/
|
||||
@Override
|
||||
public List<TermBankVO> bankLevel(Long level) {
|
||||
List<TermBankVO> termBanks = termBankMapper.selectTermBankTree(level);
|
||||
if (CollectionUtils.isEmpty(termBanks)) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
return buildDeptTree(termBanks);
|
||||
}
|
||||
|
||||
public List<TermBankVO> buildDeptTree(List<TermBankVO> termBanks) {
|
||||
List<TermBankVO> returnList = new ArrayList<>();
|
||||
List<String> tempList = termBanks.stream().filter(Objects::nonNull).map(TermBank::getTermCode).filter(Objects::nonNull).collect(Collectors.toList());
|
||||
for (TermBankVO termBank : termBanks) {
|
||||
// 如果是顶级节点, 遍历该父节点的所有子节点
|
||||
if (!tempList.contains(termBank.getParentTermCode())) {
|
||||
recursionFn(termBanks, termBank);
|
||||
returnList.add(termBank);
|
||||
}
|
||||
}
|
||||
if (returnList.isEmpty()) {
|
||||
returnList = termBanks;
|
||||
}
|
||||
return returnList;
|
||||
}
|
||||
|
||||
private void recursionFn(List<TermBankVO> list, TermBankVO t) {
|
||||
// 得到子节点列表
|
||||
List<TermBankVO> childList = getChildList(list, t);
|
||||
t.setChildren(childList);
|
||||
for (TermBankVO tChild : childList) {
|
||||
if (hasChild(list, tChild)) {
|
||||
recursionFn(list, tChild);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private List<TermBankVO> getChildList(List<TermBankVO> list, TermBankVO t) {
|
||||
List<TermBankVO> tlist = new ArrayList<TermBankVO>();
|
||||
Iterator<TermBankVO> it = list.iterator();
|
||||
while (it.hasNext()) {
|
||||
TermBankVO n = (TermBankVO) it.next();
|
||||
if (Objects.nonNull(n.getParentTermCode()) && n.getParentTermCode().equals(t.getTermCode())) {
|
||||
tlist.add(n);
|
||||
}
|
||||
}
|
||||
return tlist;
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断是否有子节点
|
||||
*/
|
||||
private boolean hasChild(List<TermBankVO> list, TermBankVO t) {
|
||||
return getChildList(list, t).size() > 0;
|
||||
}
|
||||
}
|
||||
|
||||
@ -26,7 +26,7 @@ public class AgencyTreeVO implements Serializable {
|
||||
private String label;
|
||||
|
||||
/**
|
||||
* 节点名称
|
||||
* 节点层级
|
||||
*/
|
||||
private String value;
|
||||
|
||||
|
||||
@ -0,0 +1,31 @@
|
||||
package com.xinelu.manage.vo.termbank;
|
||||
|
||||
import com.xinelu.manage.domain.termbank.TermBank;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 常用术语(知识库)对象 term_bank
|
||||
*
|
||||
* @author xinelu
|
||||
* @date 2024-06-07
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class TermBankVO extends TermBank {
|
||||
|
||||
private String value;
|
||||
|
||||
private List<TermBankVO> children = new ArrayList<TermBankVO>();
|
||||
|
||||
public List<TermBankVO> getChildren() {
|
||||
return children;
|
||||
}
|
||||
|
||||
public void setChildren(List<TermBankVO> children) {
|
||||
this.children = children;
|
||||
}
|
||||
}
|
||||
@ -5,22 +5,34 @@
|
||||
<mapper namespace="com.xinelu.manage.mapper.termbank.TermBankMapper">
|
||||
|
||||
<resultMap type="TermBank" id="TermBankResult">
|
||||
<result property="id" column="id"/>
|
||||
<result property="termCode" column="term_code"/>
|
||||
<result property="termName" column="term_name"/>
|
||||
<result property="termContent" column="term_content"/>
|
||||
<result property="parentTermCode" column="parent_term_code"/>
|
||||
<result property="termLevel" column="term_level"/>
|
||||
<result property="termSort" column="term_sort"/>
|
||||
<result property="termRemark" column="term_remark"/>
|
||||
<result property="createBy" column="create_by"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="updateBy" column="update_by"/>
|
||||
<result property="updateTime" column="update_time"/>
|
||||
<result property="id" column="id"/>
|
||||
<result property="termCode" column="term_code"/>
|
||||
<result property="termName" column="term_name"/>
|
||||
<result property="termContent" column="term_content"/>
|
||||
<result property="parentTermCode" column="parent_term_code"/>
|
||||
<result property="termLevel" column="term_level"/>
|
||||
<result property="termSort" column="term_sort"/>
|
||||
<result property="termRemark" column="term_remark"/>
|
||||
<result property="createBy" column="create_by"/>
|
||||
<result property="createTime" column="create_time"/>
|
||||
<result property="updateBy" column="update_by"/>
|
||||
<result property="updateTime" column="update_time"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectTermBankVo">
|
||||
select id, term_code, term_name, term_content, parent_term_code, term_level, term_sort, term_remark, create_by, create_time, update_by, update_time from term_bank
|
||||
select id,
|
||||
term_code,
|
||||
term_name,
|
||||
term_content,
|
||||
parent_term_code,
|
||||
term_level,
|
||||
term_sort,
|
||||
term_remark,
|
||||
create_by,
|
||||
create_time,
|
||||
update_by,
|
||||
update_time
|
||||
from term_bank
|
||||
</sql>
|
||||
|
||||
<select id="selectTermBankList" parameterType="TermBank" resultMap="TermBankResult">
|
||||
@ -33,7 +45,7 @@
|
||||
and term_name like concat('%', #{termName}, '%')
|
||||
</if>
|
||||
<if test="termContent != null and termContent != ''">
|
||||
and term_content = #{termContent}
|
||||
and term_content like concat('%', #{termContent}, '%')
|
||||
</if>
|
||||
<if test="parentTermCode != null and parentTermCode != ''">
|
||||
and parent_term_code = #{parentTermCode}
|
||||
@ -47,110 +59,124 @@
|
||||
<if test="termRemark != null and termRemark != ''">
|
||||
and term_remark = #{termRemark}
|
||||
</if>
|
||||
order by term_sort
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="selectTermBankTree" resultType="com.xinelu.manage.vo.termbank.TermBankVO">
|
||||
select id, term_code, term_content, parent_term_code, term_level, term_sort
|
||||
from term_bank
|
||||
<where>
|
||||
<if test="level != null ">
|
||||
term_level <= #{level}
|
||||
</if>
|
||||
</where>
|
||||
order by term_level,term_sort
|
||||
</select>
|
||||
|
||||
<select id="selectTermBankById" parameterType="Long"
|
||||
resultMap="TermBankResult">
|
||||
<include refid="selectTermBankVo"/>
|
||||
where id = #{id}
|
||||
<include refid="selectTermBankVo"/>
|
||||
where id = #{id}
|
||||
</select>
|
||||
|
||||
<insert id="insertTermBank" parameterType="TermBank" useGeneratedKeys="true"
|
||||
keyProperty="id">
|
||||
insert into term_bank
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="termCode != null and termCode != ''">term_code,
|
||||
</if>
|
||||
<if test="termName != null">term_name,
|
||||
</if>
|
||||
<if test="termContent != null">term_content,
|
||||
</if>
|
||||
<if test="parentTermCode != null">parent_term_code,
|
||||
</if>
|
||||
<if test="termLevel != null">term_level,
|
||||
</if>
|
||||
<if test="termSort != null">term_sort,
|
||||
</if>
|
||||
<if test="termRemark != null">term_remark,
|
||||
</if>
|
||||
<if test="createBy != null">create_by,
|
||||
</if>
|
||||
<if test="createTime != null">create_time,
|
||||
</if>
|
||||
<if test="updateBy != null">update_by,
|
||||
</if>
|
||||
<if test="updateTime != null">update_time,
|
||||
</if>
|
||||
<if test="termCode != null and termCode != ''">term_code,
|
||||
</if>
|
||||
<if test="termName != null">term_name,
|
||||
</if>
|
||||
<if test="termContent != null">term_content,
|
||||
</if>
|
||||
<if test="parentTermCode != null">parent_term_code,
|
||||
</if>
|
||||
<if test="termLevel != null">term_level,
|
||||
</if>
|
||||
<if test="termSort != null">term_sort,
|
||||
</if>
|
||||
<if test="termRemark != null">term_remark,
|
||||
</if>
|
||||
<if test="createBy != null">create_by,
|
||||
</if>
|
||||
<if test="createTime != null">create_time,
|
||||
</if>
|
||||
<if test="updateBy != null">update_by,
|
||||
</if>
|
||||
<if test="updateTime != null">update_time,
|
||||
</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="termCode != null and termCode != ''">#{termCode},
|
||||
</if>
|
||||
<if test="termName != null">#{termName},
|
||||
</if>
|
||||
<if test="termContent != null">#{termContent},
|
||||
</if>
|
||||
<if test="parentTermCode != null">#{parentTermCode},
|
||||
</if>
|
||||
<if test="termLevel != null">#{termLevel},
|
||||
</if>
|
||||
<if test="termSort != null">#{termSort},
|
||||
</if>
|
||||
<if test="termRemark != null">#{termRemark},
|
||||
</if>
|
||||
<if test="createBy != null">#{createBy},
|
||||
</if>
|
||||
<if test="createTime != null">#{createTime},
|
||||
</if>
|
||||
<if test="updateBy != null">#{updateBy},
|
||||
</if>
|
||||
<if test="updateTime != null">#{updateTime},
|
||||
</if>
|
||||
<if test="termCode != null and termCode != ''">#{termCode},
|
||||
</if>
|
||||
<if test="termName != null">#{termName},
|
||||
</if>
|
||||
<if test="termContent != null">#{termContent},
|
||||
</if>
|
||||
<if test="parentTermCode != null">#{parentTermCode},
|
||||
</if>
|
||||
<if test="termLevel != null">#{termLevel},
|
||||
</if>
|
||||
<if test="termSort != null">#{termSort},
|
||||
</if>
|
||||
<if test="termRemark != null">#{termRemark},
|
||||
</if>
|
||||
<if test="createBy != null">#{createBy},
|
||||
</if>
|
||||
<if test="createTime != null">#{createTime},
|
||||
</if>
|
||||
<if test="updateBy != null">#{updateBy},
|
||||
</if>
|
||||
<if test="updateTime != null">#{updateTime},
|
||||
</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
<update id="updateTermBank" parameterType="TermBank">
|
||||
update term_bank
|
||||
<trim prefix="SET" suffixOverrides=",">
|
||||
<if test="termCode != null and termCode != ''">term_code =
|
||||
#{termCode},
|
||||
</if>
|
||||
<if test="termName != null">term_name =
|
||||
#{termName},
|
||||
</if>
|
||||
<if test="termContent != null">term_content =
|
||||
#{termContent},
|
||||
</if>
|
||||
<if test="parentTermCode != null">parent_term_code =
|
||||
#{parentTermCode},
|
||||
</if>
|
||||
<if test="termLevel != null">term_level =
|
||||
#{termLevel},
|
||||
</if>
|
||||
<if test="termSort != null">term_sort =
|
||||
#{termSort},
|
||||
</if>
|
||||
<if test="termRemark != null">term_remark =
|
||||
#{termRemark},
|
||||
</if>
|
||||
<if test="createBy != null">create_by =
|
||||
#{createBy},
|
||||
</if>
|
||||
<if test="createTime != null">create_time =
|
||||
#{createTime},
|
||||
</if>
|
||||
<if test="updateBy != null">update_by =
|
||||
#{updateBy},
|
||||
</if>
|
||||
<if test="updateTime != null">update_time =
|
||||
#{updateTime},
|
||||
</if>
|
||||
<if test="termCode != null and termCode != ''">term_code =
|
||||
#{termCode},
|
||||
</if>
|
||||
<if test="termName != null">term_name =
|
||||
#{termName},
|
||||
</if>
|
||||
<if test="termContent != null">term_content =
|
||||
#{termContent},
|
||||
</if>
|
||||
<if test="parentTermCode != null">parent_term_code =
|
||||
#{parentTermCode},
|
||||
</if>
|
||||
<if test="termLevel != null">term_level =
|
||||
#{termLevel},
|
||||
</if>
|
||||
<if test="termSort != null">term_sort =
|
||||
#{termSort},
|
||||
</if>
|
||||
<if test="termRemark != null">term_remark =
|
||||
#{termRemark},
|
||||
</if>
|
||||
<if test="createBy != null">create_by =
|
||||
#{createBy},
|
||||
</if>
|
||||
<if test="createTime != null">create_time =
|
||||
#{createTime},
|
||||
</if>
|
||||
<if test="updateBy != null">update_by =
|
||||
#{updateBy},
|
||||
</if>
|
||||
<if test="updateTime != null">update_time =
|
||||
#{updateTime},
|
||||
</if>
|
||||
</trim>
|
||||
where id = #{id}
|
||||
</update>
|
||||
|
||||
<delete id="deleteTermBankById" parameterType="Long">
|
||||
delete from term_bank where id = #{id}
|
||||
delete
|
||||
from term_bank
|
||||
where id = #{id}
|
||||
</delete>
|
||||
|
||||
<delete id="deleteTermBankByIds" parameterType="String">
|
||||
|
||||
Loading…
Reference in New Issue
Block a user