Browse Source

专业库 查询条件,查上级

sunhh 2 years ago
parent
commit
5c6d10de76

+ 2 - 2
purchase-admin/src/main/resources/logback.xml

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration>
     <!-- 日志存放路径 -->
-        <property name="log.path" value="/home/purchase/logs"/>
-<!--    <property name="log.path" value="/Users/sunhuanhuan/Documents/project/106/文档/purchase/logs"/>-->
+<!--    <property name="log.path" value="/home/purchase/logs"/>-->
+    <property name="log.path" value="/Users/sunhuanhuan/Documents/project/106/文档/purchase/logs"/>
     <!-- 日志输出格式 -->
     <property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n"/>
 

+ 2 - 0
purchase-system/src/main/java/com/ozs/base/mapper/BaseProfessionalMapper.java

@@ -32,4 +32,6 @@ public interface BaseProfessionalMapper extends BaseMapper<BaseProfessional> {
     List<BaseProfessional> selectByProfessionalName(BaseProfessional baseProfessional);
 
     List<BaseProfessional> selectByParentCodes(BaseProfessional baseProfessional);
+
+    BaseProfessional selectByCode(@Param("parentCode") String parentCode);
 }

+ 31 - 1
purchase-system/src/main/java/com/ozs/base/service/impl/BaseProfessionalServiceImpl.java

@@ -9,6 +9,7 @@ import com.ozs.common.core.domain.entity.SysDictType;
 import com.ozs.common.core.domain.entity.SysUser;
 import com.ozs.common.exception.ServiceException;
 import com.ozs.common.utils.DictUtils;
+import com.ozs.common.utils.StringUtils;
 import com.ozs.common.utils.bean.BeanUtils;
 import com.ozs.common.utils.bean.BeanValidators;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -79,7 +80,18 @@ public class BaseProfessionalServiceImpl extends ServiceImpl<BaseProfessionalMap
 
     @Override
     public List<BaseProfessionalVo> selectBaseProfessionalVo(BaseProfessionalVo baseProfessionalVo) {
-        List<BaseProfessional> allList = baseProfessionalMapper.selectBaseProfessional(baseProfessionalVo);
+        List<BaseProfessional> allList = new ArrayList<>();
+        List<BaseProfessional> list = baseProfessionalMapper.selectBaseProfessional(baseProfessionalVo);
+        allList.addAll(list);
+        // 传惨"品目名称professionalName" 需查询是否有上级数据
+        if (StringUtils.isNotNull(baseProfessionalVo.getProfessionalName())) {
+            for (BaseProfessional baseProfessional : list) {
+                // 遍历数据父级code 在列表中是否存在;如果不存在查询code等于当前数据父级code的数据,放入列表
+                List<BaseProfessional> listStream = new ArrayList<>();
+                listStream = listStream(list, listStream, baseProfessional.getParentCode());
+                allList.addAll(listStream);
+            }
+        }
         // 将实体类转换为Vo类
         List<BaseProfessionalVo> allListVo = BeanUtils.entityListToVOList(allList, BaseProfessionalVo.class);
         List<BaseProfessionalVo> treeList = buildTree(allListVo);
@@ -92,6 +104,24 @@ public class BaseProfessionalServiceImpl extends ServiceImpl<BaseProfessionalMap
         return allList;
     }
 
+    /**
+     * 遍历list 是否存在当前数据code
+     */
+    public List<BaseProfessional> listStream(List<BaseProfessional> list, List<BaseProfessional> listStream, String parentCode) {
+        // 遍历数据父级code 在列表中是否存在;如果不存在查询code等于当前数据父级code的数据,放入列表
+        boolean check = list.stream().anyMatch(voList -> voList.getProfessionalCode().equals(parentCode));
+        if (!check) {
+            BaseProfessional baseProfessional = baseProfessionalMapper.selectByCode(parentCode);
+            if (StringUtils.isNotNull(baseProfessional)) {
+                listStream.add(baseProfessional);
+                if (!"0".equals(baseProfessional.getParentCode())) {
+                    listStream(list, listStream, baseProfessional.getParentCode());
+                }
+            }
+        }
+        return listStream;
+    }
+
     /**
      * 构建树形结构
      *

+ 20 - 11
purchase-system/src/main/resources/mapper/base/BaseProfessionalMapper.xml

@@ -17,13 +17,13 @@
         select * from base_professional
         <where>
             <if test="professionalName != null and professionalName != ''">
-                professional_name like '% +' #{professionalName} '+ %',
+                and professional_name like concat("%", #{professionalName}, "%")
             </if>
             <if test="professionalCode != null and professionalCode != ''">
-                professional_code = #{professionalCode},
+                and professional_code = #{professionalCode}
             </if>
             <if test="professionalGrade != null and professionalGrade != ''">
-                professional_grade = #{professionalGrade}
+                and professional_grade = #{professionalGrade}
             </if>
         </where>
     </select>
@@ -32,13 +32,13 @@
         select * from base_professional
         <where>
             <if test="professionalName != null and professionalName != ''">
-                professional_name like '% +' #{professionalName} '+ %',
+                and professional_name like concat("%", #{professionalName}, "%")
             </if>
             <if test="professionalCode != null and professionalCode != ''">
-                professional_code = #{professionalCode},
+                and professional_code = #{professionalCode}
             </if>
             <if test="professionalGrade != null and professionalGrade != ''">
-                professional_grade = #{professionalGrade}
+                and professional_grade = #{professionalGrade}
             </if>
         </where>
     </select>
@@ -59,10 +59,10 @@
         select * from base_professional
         <where>
             <if test="professionalName != null and professionalName != ''">
-                professional_name = #{professionalName},
+                and professional_name = #{professionalName}
             </if>
             <if test="professionalCode != null and professionalCode != ''">
-                parent_code = #{professionalCode},
+                and parent_code = #{professionalCode}
             </if>
         </where>
     </select>
@@ -71,7 +71,7 @@
         select * from base_professional
         <where>
             <if test="professionalCode != null and professionalCode != ''">
-                professional_code = #{professionalCode}
+                and professional_code = #{professionalCode}
             </if>
         </where>
     </select>
@@ -80,7 +80,7 @@
         select * from base_professional
         <where>
             <if test="professionalName != null and professionalName != ''">
-                professional_name = #{professionalName}
+                and professional_name = #{professionalName}
             </if>
         </where>
     </select>
@@ -89,7 +89,16 @@
         select * from base_professional
         <where>
             <if test="parentCode != null and parentCode != ''">
-                parent_code = #{parentCode}
+                and parent_code = #{parentCode}
+            </if>
+        </where>
+    </select>
+
+    <select id="selectByCode" parameterType="java.lang.String" resultType="com.ozs.base.domain.BaseProfessional">
+        select * from base_professional
+        <where>
+            <if test="parentCode != null and parentCode != ''">
+                and professional_code = #{parentCode}
             </if>
         </where>
     </select>