Răsfoiți Sursa

功能增加

yaoyi 3 săptămâni în urmă
părinte
comite
323b048791
25 a modificat fișierele cu 351 adăugiri și 30 ștergeri
  1. 4 0
      hr-api/hr-api-system/pom.xml
  2. 13 1
      hr-api/hr-api-system/src/main/java/com/hr/system/api/domain/SysDictData.java
  3. 25 0
      hr-api/hr-api-system/src/main/java/com/hr/system/api/domain/SysUser.java
  4. 43 0
      hr-common/hr-common-core/src/main/java/com/hr/common/core/utils/ChineseBase64Encoder.java
  5. 4 1
      hr-modules/hr-system/src/main/java/com/hr/system/HrSystemApplication.java
  6. 32 0
      hr-modules/hr-system/src/main/java/com/hr/system/config/ApplicationReadyEventListener.java
  7. 10 0
      hr-modules/hr-system/src/main/java/com/hr/system/controller/SysDictDataController.java
  8. 2 2
      hr-modules/hr-system/src/main/java/com/hr/system/controller/SysDictTypeController.java
  9. 11 0
      hr-modules/hr-system/src/main/java/com/hr/system/controller/SysSystemController.java
  10. 12 0
      hr-modules/hr-system/src/main/java/com/hr/system/controller/SysUserController.java
  11. 25 2
      hr-modules/hr-system/src/main/java/com/hr/system/domain/vo/MetaVo.java
  12. 2 0
      hr-modules/hr-system/src/main/java/com/hr/system/mapper/SysBusinessSystemMapper.java
  13. 8 0
      hr-modules/hr-system/src/main/java/com/hr/system/mapper/SysDictDataMapper.java
  14. 4 0
      hr-modules/hr-system/src/main/java/com/hr/system/mapper/SysDictTypeMapper.java
  15. 2 0
      hr-modules/hr-system/src/main/java/com/hr/system/service/ISysDictDataService.java
  16. 2 0
      hr-modules/hr-system/src/main/java/com/hr/system/service/ISysSystemService.java
  17. 23 0
      hr-modules/hr-system/src/main/java/com/hr/system/service/impl/SysDictDataServiceImpl.java
  18. 52 4
      hr-modules/hr-system/src/main/java/com/hr/system/service/impl/SysDictTypeServiceImpl.java
  19. 3 3
      hr-modules/hr-system/src/main/java/com/hr/system/service/impl/SysMenuServiceImpl.java
  20. 6 0
      hr-modules/hr-system/src/main/java/com/hr/system/service/impl/SysSystemServiceImpl.java
  21. 7 1
      hr-modules/hr-system/src/main/resources/mapper/system/SysBusinessSystemMapper.xml
  22. 38 9
      hr-modules/hr-system/src/main/resources/mapper/system/SysDictDataMapper.xml
  23. 5 0
      hr-modules/hr-system/src/main/resources/mapper/system/SysDictTypeMapper.xml
  24. 1 1
      hr-modules/hr-system/src/main/resources/mapper/system/SysRoleMapper.xml
  25. 17 6
      hr-modules/hr-system/src/main/resources/mapper/system/SysUserMapper.xml

+ 4 - 0
hr-api/hr-api-system/pom.xml

@@ -22,6 +22,10 @@
             <groupId>com.hr</groupId>
             <artifactId>hr-common-core</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.hr</groupId>
+            <artifactId>hr-common-swagger</artifactId>
+        </dependency>
         
     </dependencies>
 

+ 13 - 1
hr-api/hr-api-system/src/main/java/com/hr/system/api/domain/SysDictData.java

@@ -64,6 +64,9 @@ public class SysDictData extends BaseEntity
     @Excel(name = "状态", readConverterExp = "0=正常,1=停用")
     private String status;
 
+
+    private String dictName;
+
     public Long getDictCode()
     {
         return dictCode;
@@ -165,7 +168,15 @@ public class SysDictData extends BaseEntity
     {
         this.status = status;
     }
-    
+
+    public String getDictName() {
+        return dictName;
+    }
+
+    public void setDictName(String dictName) {
+        this.dictName = dictName;
+    }
+
     @Override
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
@@ -183,6 +194,7 @@ public class SysDictData extends BaseEntity
             .append("updateBy", getUpdateBy())
             .append("updateTime", getUpdateTime())
             .append("remark", getRemark())
+            .append("dictName", getDictName())
             .toString();
     }
 }

+ 25 - 0
hr-api/hr-api-system/src/main/java/com/hr/system/api/domain/SysUser.java

@@ -89,6 +89,7 @@ public class SysUser extends BaseEntity
     })
     private SysDept dept;
 
+
     /** 角色对象 */
     private List<SysRole> roles;
 
@@ -103,6 +104,26 @@ public class SysUser extends BaseEntity
 
     private Long[] deptIds;
 
+    private String deptName;
+
+    private String roleName;
+
+    public String getDeptName() {
+        return deptName;
+    }
+
+    public void setDeptName(String deptName) {
+        this.deptName = deptName;
+    }
+
+    public String getRoleName() {
+        return roleName;
+    }
+
+    public void setRoleName(String roleName) {
+        this.roleName = roleName;
+    }
+
     public SysUser()
     {
 
@@ -311,6 +332,10 @@ public class SysUser extends BaseEntity
 
     public Long getRoleId()
     {
+//        List<SysRole> lst=getRoles();
+//        if( lst!=null && lst.size()>0){
+//            return lst.get(0).getRoleId();
+//        }
         return roleId;
     }
 

+ 43 - 0
hr-common/hr-common-core/src/main/java/com/hr/common/core/utils/ChineseBase64Encoder.java

@@ -0,0 +1,43 @@
+package com.hr.common.core.utils;
+
+/**
+ * @author yaoy
+ * @createTime 2025/10/14 18:39
+ **/
+import java.util.Base64;
+import java.nio.charset.StandardCharsets;
+
+public class ChineseBase64Encoder {
+
+    /**
+     * 中文转Base64
+     */
+    public static String encodeToBase64(String chineseText) {
+        if (chineseText == null || chineseText.isEmpty()) {
+            return chineseText;
+        }
+        byte[] bytes = chineseText.getBytes(StandardCharsets.UTF_8);
+        return Base64.getEncoder().encodeToString(bytes);
+    }
+
+    /**
+     * Base64转中文
+     */
+    public static String decodeFromBase64(String base64Text) {
+        if (base64Text == null || base64Text.isEmpty()) {
+            return base64Text;
+        }
+        byte[] bytes = Base64.getDecoder().decode(base64Text);
+        return new String(bytes, StandardCharsets.UTF_8);
+    }
+
+    public static void main(String[] args) {
+        String original = "你好,世界!";
+        String encoded = encodeToBase64(original);
+        String decoded = decodeFromBase64(encoded);
+
+        System.out.println("原文: " + original);
+        System.out.println("Base64编码: " + encoded); // 5L2g5aW977yM5LiW55WM77yB
+        System.out.println("解码: " + decoded);
+    }
+}

+ 4 - 1
hr-modules/hr-system/src/main/java/com/hr/system/HrSystemApplication.java

@@ -1,6 +1,8 @@
 package com.hr.system;
 
 import org.mybatis.spring.annotation.MapperScan;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import com.hr.common.security.annotation.EnableCustomConfig;
@@ -20,11 +22,12 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
 //@ComponentScan(basePackages = {"com.hr.system"})
 public class HrSystemApplication
 {
+    private final static Logger log = LoggerFactory.getLogger(HrSystemApplication.class);
     public static void main(String[] args)
     {
         SpringApplication.run(HrSystemApplication.class, args);
 
 
-        System.out.println("(♥◠‿◠)ノ゙  系统模块启动成功   ლ(´ڡ`ლ)゙  \n" );
+        log.info("(♥◠‿◠)ノ゙  系统模块启动成功   ლ(´ڡ`ლ)゙  \n" );
     }
 }

+ 32 - 0
hr-modules/hr-system/src/main/java/com/hr/system/config/ApplicationReadyEventListener.java

@@ -0,0 +1,32 @@
+package com.hr.system.config;
+
+/**
+ * @author yaoy
+ * @createTime 2025/10/14 19:05
+ **/
+import com.hr.system.service.ISysDictTypeService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.context.event.ApplicationReadyEvent;
+import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Component;
+
+@Component
+public class ApplicationReadyEventListener {
+    Logger logger = LoggerFactory.getLogger(ApplicationReadyEventListener.class);
+    @Autowired
+    private ISysDictTypeService dictTypeService;
+    @EventListener
+    public void onApplicationReady(ApplicationReadyEvent event) {
+
+
+        // 执行启动后的逻辑
+        executePostStartupLogic();
+    }
+
+    private void executePostStartupLogic() {
+        logger.info("=============初始化Dict缓存=================");
+        dictTypeService.resetDictCache();
+    }
+}

+ 10 - 0
hr-modules/hr-system/src/main/java/com/hr/system/controller/SysDictDataController.java

@@ -4,6 +4,7 @@ import java.util.ArrayList;
 import java.util.List;
 import javax.servlet.http.HttpServletResponse;
 
+import com.hr.common.security.annotation.InnerAuth;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -57,6 +58,15 @@ public class SysDictDataController extends BaseController
         return getDataTable(list);
     }
 
+    @InnerAuth
+    @GetMapping("/getlist")
+    public TableDataInfo getlist(SysDictData dictData)
+    {
+//        startPage();
+        List<SysDictData> list = dictDataService.selectDictDataListFegin(dictData);
+        return getDataTable(list);
+    }
+
     @Operation(
             summary = "字典数据"
     )

+ 2 - 2
hr-modules/hr-system/src/main/java/com/hr/system/controller/SysDictTypeController.java

@@ -74,7 +74,7 @@ public class SysDictTypeController extends BaseController
     {
         if (!dictTypeService.checkDictTypeUnique(dict))
         {
-            return error("新增字典'" + dict.getDictName() + "'失败,字典类型已存在");
+            return error("新增字典'" + dict.getDictName() + "'失败,字典类型或字典名称已存在");
         }
         dict.setCreateBy(SecurityUtils.getUsername());
         return toAjax(dictTypeService.insertDictType(dict));
@@ -90,7 +90,7 @@ public class SysDictTypeController extends BaseController
     {
         if (!dictTypeService.checkDictTypeUnique(dict))
         {
-            return error("修改字典'" + dict.getDictName() + "'失败,字典类型已存在");
+            return error("修改字典'" + dict.getDictName() + "'失败,字典类型或字典名称已存在");
         }
         dict.setUpdateBy(SecurityUtils.getUsername());
         return toAjax(dictTypeService.updateDictType(dict));

+ 11 - 0
hr-modules/hr-system/src/main/java/com/hr/system/controller/SysSystemController.java

@@ -88,4 +88,15 @@ public class SysSystemController extends BaseController{
 
         return toAjax(iSysSystemService.deleteBusinessSystemById(sysid));
     }
+
+
+    @Operation(
+            summary = "系统详情"
+    )
+    @GetMapping("/info/{sysid}")
+    public AjaxResult info(@PathVariable Long sysid)
+    {
+
+        return success(iSysSystemService.selectBusinessSystemById(sysid));
+    }
 }

+ 12 - 0
hr-modules/hr-system/src/main/java/com/hr/system/controller/SysUserController.java

@@ -146,6 +146,8 @@ public class SysUserController extends BaseController
         {
             return error("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在");
         }
+        user.setDeptName(dept.getDeptName());
+        user.setRoleName(role.getRoleName());
         user.setCreateBy(SecurityUtils.getUsername());
         user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
         return toAjax(userService.insertUser(user));
@@ -179,6 +181,16 @@ public class SysUserController extends BaseController
         {
             return error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");
         }
+
+        SysUser sysUser = userService.selectUserByUserName(user.getUserName());
+        if(sysUser!=null) {
+            if(user.getPassword()!=null && !"".equals(user.getPassword()) && !sysUser.getPassword().equals(user.getPassword())) {
+                user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
+            }
+        }
+
+        user.setDeptName(dept.getDeptName());
+        user.setRoleName(role.getRoleName());
         user.setUpdateBy(SecurityUtils.getUsername());
         return toAjax(userService.updateUser(user));
     }

+ 25 - 2
hr-modules/hr-system/src/main/java/com/hr/system/domain/vo/MetaVo.java

@@ -24,6 +24,11 @@ public class MetaVo
      */
     private boolean noCache;
 
+
+    private boolean keepAlive;
+
+    private boolean showLink;
+
     /**
      * 内链地址(http(s)://开头)
      */
@@ -46,14 +51,15 @@ public class MetaVo
         this.noCache = noCache;
     }
 
-    public MetaVo(String title, String icon, String link)
+    public MetaVo(String title, String icon, String link, boolean showLink)
     {
         this.title = title;
         this.icon = icon;
         this.link = link;
+        this.showLink=showLink;
     }
 
-    public MetaVo(String title, String icon, boolean noCache, String link)
+    public MetaVo(String title, String icon, boolean noCache, String link, boolean showLink)
     {
         this.title = title;
         this.icon = icon;
@@ -62,6 +68,7 @@ public class MetaVo
         {
             this.link = link;
         }
+        this.showLink=showLink;
     }
 
     public boolean isNoCache()
@@ -103,4 +110,20 @@ public class MetaVo
     {
         this.link = link;
     }
+
+    public boolean isKeepAlive() {
+        return !isNoCache();
+    }
+
+    public void setKeepAlive(boolean keepAlive) {
+        this.keepAlive = keepAlive;
+    }
+
+    public boolean isShowLink() {
+        return showLink;
+    }
+
+    public void setShowLink(boolean showLink) {
+        this.showLink = showLink;
+    }
 }

+ 2 - 0
hr-modules/hr-system/src/main/java/com/hr/system/mapper/SysBusinessSystemMapper.java

@@ -46,4 +46,6 @@ public interface SysBusinessSystemMapper
      */
     public int deleteBusinessSystem(Long sysId);
 
+    public SysBusinessSystem  selectBusinessSystemById(Long sysId);
+
 }

+ 8 - 0
hr-modules/hr-system/src/main/java/com/hr/system/mapper/SysDictDataMapper.java

@@ -19,6 +19,10 @@ public interface SysDictDataMapper
      */
     public List<SysDictData> selectDictDataList(SysDictData dictData);
 
+    public List<SysDictData> selectDictDataListFegin(SysDictData dictData);
+
+
+
     /**
      * 根据字典类型查询字典数据
      * 
@@ -36,6 +40,10 @@ public interface SysDictDataMapper
      */
     public String selectDictLabel(@Param("dictType") String dictType, @Param("dictValue") String dictValue);
 
+    public List<String> selectDictName(@Param("dictName") String dictName);
+
+
+
     /**
      * 根据字典数据ID查询信息
      * 

+ 4 - 0
hr-modules/hr-system/src/main/java/com/hr/system/mapper/SysDictTypeMapper.java

@@ -80,4 +80,8 @@ public interface SysDictTypeMapper
      * @return 结果
      */
     public SysDictType checkDictTypeUnique(String dictType);
+
+    public SysDictType checkDictNameUnique(String dictName);
+
+
 }

+ 2 - 0
hr-modules/hr-system/src/main/java/com/hr/system/service/ISysDictDataService.java

@@ -18,6 +18,8 @@ public interface ISysDictDataService
      */
     public List<SysDictData> selectDictDataList(SysDictData dictData);
 
+    public List<SysDictData> selectDictDataListFegin(SysDictData dictData);
+
     /**
      * 根据字典类型和字典键值查询字典数据信息
      * 

+ 2 - 0
hr-modules/hr-system/src/main/java/com/hr/system/service/ISysSystemService.java

@@ -42,4 +42,6 @@ public interface ISysSystemService {
      * @return 结果
      */
     public int deleteBusinessSystemById(Long sysId);
+
+    public SysBusinessSystem selectBusinessSystemById(Long sysId);
 }

+ 23 - 0
hr-modules/hr-system/src/main/java/com/hr/system/service/impl/SysDictDataServiceImpl.java

@@ -1,6 +1,8 @@
 package com.hr.system.service.impl;
 
 import java.util.List;
+
+import com.hr.common.core.utils.ChineseBase64Encoder;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.hr.common.security.utils.DictUtils;
@@ -31,6 +33,10 @@ public class SysDictDataServiceImpl implements ISysDictDataService
         return dictDataMapper.selectDictDataList(dictData);
     }
 
+    public List<SysDictData> selectDictDataListFegin(SysDictData dictData){
+        return dictDataMapper.selectDictDataListFegin(dictData);
+    }
+
     /**
      * 根据字典类型和字典键值查询字典数据信息
      * 
@@ -70,6 +76,11 @@ public class SysDictDataServiceImpl implements ISysDictDataService
             dictDataMapper.deleteDictDataById(dictCode);
             List<SysDictData> dictDatas = dictDataMapper.selectDictDataByType(data.getDictType());
             DictUtils.setDictCache(data.getDictType(), dictDatas);
+
+            if(data.getDictName()!=null && !"".equals(data.getDictName())) {
+                DictUtils.setDictCache(ChineseBase64Encoder.encodeToBase64(data.getDictName()), dictDatas);
+            }
+
         }
     }
 
@@ -87,6 +98,12 @@ public class SysDictDataServiceImpl implements ISysDictDataService
         {
             List<SysDictData> dictDatas = dictDataMapper.selectDictDataByType(data.getDictType());
             DictUtils.setDictCache(data.getDictType(), dictDatas);
+            if(dictDatas!=null && dictDatas.size()>0) {
+                SysDictData sys=dictDatas.get(0);
+                if(sys.getDictName()!=null && !"".equals(sys.getDictName())) {
+                    DictUtils.setDictCache(ChineseBase64Encoder.encodeToBase64(sys.getDictName()), dictDatas);
+                }
+            }
         }
         return row;
     }
@@ -105,6 +122,12 @@ public class SysDictDataServiceImpl implements ISysDictDataService
         {
             List<SysDictData> dictDatas = dictDataMapper.selectDictDataByType(data.getDictType());
             DictUtils.setDictCache(data.getDictType(), dictDatas);
+            if(dictDatas!=null && dictDatas.size()>0) {
+                SysDictData sys=dictDatas.get(0);
+                if(sys.getDictName()!=null && !"".equals(sys.getDictName())) {
+                    DictUtils.setDictCache(ChineseBase64Encoder.encodeToBase64(sys.getDictName()), dictDatas);
+                }
+            }
         }
         return row;
     }

+ 52 - 4
hr-modules/hr-system/src/main/java/com/hr/system/service/impl/SysDictTypeServiceImpl.java

@@ -5,6 +5,8 @@ import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
 import javax.annotation.PostConstruct;
+
+import com.hr.common.core.utils.ChineseBase64Encoder;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -143,6 +145,12 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService
         for (Map.Entry<String, List<SysDictData>> entry : dictDataMap.entrySet())
         {
             DictUtils.setDictCache(entry.getKey(), entry.getValue().stream().sorted(Comparator.comparing(SysDictData::getDictSort)).collect(Collectors.toList()));
+            List<SysDictData> list=entry.getValue();
+            if(list!=null&&list.size()>0) {
+                SysDictData sys=list.get(0);
+                DictUtils.setDictCache(ChineseBase64Encoder.encodeToBase64(sys.getDictName()), list);
+//              DictUtils.setDictCache(entry.getKey(), entry.getValue().stream().sorted(Comparator.comparing(SysDictData::getDictSort)).collect(Collectors.toList()));
+            }
         }
     }
 
@@ -174,10 +182,15 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService
     @Override
     public int insertDictType(SysDictType dict)
     {
+        List<String> typelist= dictDataMapper.selectDictName(dict.getDictName());
+        if(typelist!=null&&typelist.size()>0) {
+            throw new ServiceException(String.format("%1$s已存在!", dict.getDictName()));
+        }
         int row = dictTypeMapper.insertDictType(dict);
         if (row > 0)
         {
             DictUtils.setDictCache(dict.getDictType(), null);
+            DictUtils.setDictCache(ChineseBase64Encoder.encodeToBase64(dict.getDictName()), null);
         }
         return row;
     }
@@ -193,12 +206,37 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService
     public int updateDictType(SysDictType dict)
     {
         SysDictType oldDict = dictTypeMapper.selectDictTypeById(dict.getDictId());
+        if(!oldDict.getDictName().equals(dict.getDictName())) {
+            List<String> typelist = dictDataMapper.selectDictName(dict.getDictName());
+            if (typelist != null && typelist.size() > 0) {
+                for (String tp : typelist) {
+                    if (!tp.equals(dict.getDictType())) {
+                        throw new ServiceException(String.format("%1$s已存在!", dict.getDictName()));
+                    }
+                }
+
+            }
+        }
+        if(!oldDict.getDictType().equals(dict.getDictType())) {
+            List<SysDictData> typelist = dictDataMapper.selectDictDataByType(dict.getDictType());
+            if (typelist != null && typelist.size() > 0) {
+                throw new ServiceException(String.format("%1$s已存在!", dict.getDictType()));
+            }
+        }
+
+
         dictDataMapper.updateDictDataType(oldDict.getDictType(), dict.getDictType());
         int row = dictTypeMapper.updateDictType(dict);
         if (row > 0)
         {
             List<SysDictData> dictDatas = dictDataMapper.selectDictDataByType(dict.getDictType());
             DictUtils.setDictCache(dict.getDictType(), dictDatas);
+            if(dictDatas!=null && dictDatas.size()>0) {
+                SysDictData sys=dictDatas.get(0);
+                if(sys.getDictName()!=null && !"".equals(sys.getDictName())) {
+                    DictUtils.setDictCache(ChineseBase64Encoder.encodeToBase64(sys.getDictName()), dictDatas);
+                }
+            }
         }
         return row;
     }
@@ -213,10 +251,20 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService
     public boolean checkDictTypeUnique(SysDictType dict)
     {
         Long dictId = StringUtils.isNull(dict.getDictId()) ? -1L : dict.getDictId();
-        SysDictType dictType = dictTypeMapper.checkDictTypeUnique(dict.getDictType());
-        if (StringUtils.isNotNull(dictType) && dictType.getDictId().longValue() != dictId.longValue())
-        {
-            return UserConstants.NOT_UNIQUE;
+
+        SysDictType oldtype= dictTypeMapper.selectDictTypeById(dictId);
+        if(oldtype!=null && !oldtype.getDictName().equals(dict.getDictName()) && !oldtype.getDictType().equals(dict.getDictType())) {
+
+            SysDictType dictType = dictTypeMapper.checkDictTypeUnique(dict.getDictType());
+
+            SysDictType dictName = dictTypeMapper.checkDictNameUnique(dict.getDictName());
+            if (StringUtils.isNotNull(dictType) && dictType.getDictId().longValue() != dictId.longValue()) {
+                return UserConstants.NOT_UNIQUE;
+            }
+            if (StringUtils.isNotNull(dictName)) {
+                return UserConstants.NOT_UNIQUE;
+            }
+            return UserConstants.UNIQUE;
         }
         return UserConstants.UNIQUE;
     }

+ 3 - 3
hr-modules/hr-system/src/main/java/com/hr/system/service/impl/SysMenuServiceImpl.java

@@ -193,7 +193,7 @@ public class SysMenuServiceImpl implements ISysMenuService
             router.setPath(getRouterPath(menu));
             router.setComponent(getComponent(menu));
             router.setQuery(menu.getQuery());
-            router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath()));
+            router.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath(),!"1".equals(menu.getVisible())));
             List<SysMenu> cMenus = menu.getChildren();
             if (StringUtils.isNotEmpty(cMenus) && UserConstants.TYPE_DIR.equals(menu.getMenuType()))
             {
@@ -209,7 +209,7 @@ public class SysMenuServiceImpl implements ISysMenuService
                 children.setPath(menu.getPath());
                 children.setComponent(menu.getComponent());
                 children.setName(getRouteName(menu.getRouteName(), menu.getPath()));
-                children.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath()));
+                children.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), StringUtils.equals("1", menu.getIsCache()), menu.getPath(),!"1".equals(menu.getVisible())));
                 children.setQuery(menu.getQuery());
                 childrenList.add(children);
                 router.setChildren(childrenList);
@@ -224,7 +224,7 @@ public class SysMenuServiceImpl implements ISysMenuService
                 children.setPath(routerPath);
                 children.setComponent(UserConstants.INNER_LINK);
                 children.setName(getRouteName(menu.getRouteName(), routerPath));
-                children.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), menu.getPath()));
+                children.setMeta(new MetaVo(menu.getMenuName(), menu.getIcon(), menu.getPath(),!"1".equals(menu.getVisible())));
                 childrenList.add(children);
                 router.setChildren(childrenList);
             }

+ 6 - 0
hr-modules/hr-system/src/main/java/com/hr/system/service/impl/SysSystemServiceImpl.java

@@ -38,4 +38,10 @@ public class SysSystemServiceImpl implements ISysSystemService {
     public int deleteBusinessSystemById(Long sysId) {
         return sysBusinessSystemMapper.deleteBusinessSystem(sysId);
     }
+
+
+    @Override
+    public SysBusinessSystem selectBusinessSystemById(Long sysId) {
+        return sysBusinessSystemMapper.selectBusinessSystemById(sysId);
+    }
 }

+ 7 - 1
hr-modules/hr-system/src/main/resources/mapper/system/SysBusinessSystemMapper.xml

@@ -19,6 +19,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         select d.sys_id ,d.sys_name, d.sys_code, d.create_by, d.create_time
         from sys_business_system d
     </sql>
+
+	<select id="selectBusinessSystemById"  resultMap="SysBusinessSystemResult">
+		<include refid="selectBusinessSystemVo"/>
+		where 1=1
+		and sys_id=#{sysId}
+	</select>
     
 	<select id="selectBusinessSystemList"  resultMap="SysBusinessSystemResult">
         <include refid="selectBusinessSystemVo"/>
@@ -47,7 +53,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	<update id="updateBusinessSystem" parameterType="SysBusinessSystem">
  		update sys_business_system
  		<set>
-			<if test="sysName != null and sysName != 0">sys_name= #{sysName},</if>
+			<if test="sysName != null and sysName != ''">sys_name= #{sysName},</if>
 			<if test="sysCode != null and sysCode != ''">sys_code = #{sysCode},</if>
  			update_time = sysdate()
  		</set>

+ 38 - 9
hr-modules/hr-system/src/main/resources/mapper/system/SysDictDataMapper.xml

@@ -18,6 +18,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		<result property="createTime" column="create_time" />
 		<result property="updateBy"   column="update_by"   />
 		<result property="updateTime" column="update_time" />
+		<result property="dictName" column="dict_name" />
+
 	</resultMap>
 	
 	<sql id="selectDictDataVo">
@@ -26,34 +28,61 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </sql>
 
 	<select id="selectDictDataList" parameterType="SysDictData" resultMap="SysDictDataResult">
-	    <include refid="selectDictDataVo"/>
+		select dict_code, dict_sort, dict_label, dict_value, a.dict_type, css_class, list_class, is_default, a.status, a.create_by, a.create_time, a.remark,b.dict_name
+		from sys_dict_data a,sys_dict_type b
 		<where>
+			a.dict_type=b.dict_type
 		    <if test="dictType != null and dictType != ''">
-				AND dict_type = #{dictType}
+				AND a.dict_type = #{dictType}
 			</if>
 			<if test="dictLabel != null and dictLabel != ''">
-				AND dict_label like concat('%', #{dictLabel}, '%')
+				AND a.dict_label like concat('%', #{dictLabel}, '%')
 			</if>
 			<if test="status != null and status != ''">
-				AND status = #{status}
+				AND a.status = #{status}
 			</if>
 		</where>
-		order by dict_sort asc
+		order by a.dict_sort asc
+	</select>
+
+
+	<select id="selectDictDataListFegin" parameterType="SysDictData" resultMap="SysDictDataResult">
+		select dict_code, dict_sort, dict_label, dict_value, a.dict_type, css_class, list_class, is_default, a.status, a.create_by, a.create_time, a.remark,b.dict_name
+		from sys_dict_data a,sys_dict_type b
+		where a.dict_type=b.dict_type
+		<if test="status != null and status != ''">
+			AND a.status = #{status}
+		</if>
+		order by a.dict_sort asc
 	</select>
 	
 	<select id="selectDictDataByType" parameterType="String" resultMap="SysDictDataResult">
-		<include refid="selectDictDataVo"/>
-		where status = '0' and dict_type = #{dictType} order by dict_sort asc
+<!--		<include refid="selectDictDataVo"/>-->
+<!--		where status = '0' and dict_type = #{dictType} order by dict_sort asc-->
+		select dict_code, dict_sort, dict_label, dict_value, a.dict_type, css_class, list_class, is_default, a.status, a.create_by, a.create_time, a.remark,b.dict_name
+		from sys_dict_data a,sys_dict_type b
+		where a.dict_type=b.dict_type and
+		a.status = '0' and a.dict_type = #{dictType}
+		order by a.dict_sort asc
 	</select>
 	
 	<select id="selectDictLabel" resultType="String">
 		select dict_label from sys_dict_data
 		where dict_type = #{dictType} and dict_value = #{dictValue}
 	</select>
+
+	<select id="selectDictName" resultType="String">
+		select dict_type from sys_dict_type
+		where dict_name = #{dictName}
+	</select>
 	
 	<select id="selectDictDataById" parameterType="Long" resultMap="SysDictDataResult">
-		<include refid="selectDictDataVo"/>
-		where dict_code = #{dictCode}
+<!--		<include refid="selectDictDataVo"/>-->
+<!--		where dict_code = #{dictCode}-->
+		select dict_code, dict_sort, dict_label, dict_value, a.dict_type, css_class, list_class, is_default, a.status, a.create_by, a.create_time, a.remark,b.dict_name
+		from sys_dict_data a,sys_dict_type b
+		where a.dict_type=b.dict_type and
+		a.dict_code = #{dictCode} limit 1
 	</select>
 	
 	<select id="countDictDataByType" resultType="Integer">

+ 5 - 0
hr-modules/hr-system/src/main/resources/mapper/system/SysDictTypeMapper.xml

@@ -59,6 +59,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		<include refid="selectDictTypeVo"/>
 		where dict_type = #{dictType} limit 1
 	</select>
+
+	<select id="checkDictNameUnique" parameterType="String" resultMap="SysDictTypeResult">
+		<include refid="selectDictTypeVo"/>
+		where dict_name = #{dictName} limit 1
+	</select>
 	
 	<delete id="deleteDictTypeById" parameterType="Long">
  		delete from sys_dict_type where dict_id = #{dictId}

+ 1 - 1
hr-modules/hr-system/src/main/resources/mapper/system/SysRoleMapper.xml

@@ -130,7 +130,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		<if test="roleUrlmatchKey != null and roleUrlmatchKey != ''">#{roleUrlmatchKey},</if>
  			<if test="roleSort != null">#{roleSort},</if>
  			<if test="dataScope != null and dataScope != ''">#{dataScope},</if>
-			<if test="deptId != null and deptId != ''">#{dept_id},</if>
+			<if test="deptId != null and deptId != ''">#{deptId},</if>
 
  			<if test="menuCheckStrictly != null">#{menuCheckStrictly},</if>
  			<if test="deptCheckStrictly != null">#{deptCheckStrictly},</if>

+ 17 - 6
hr-modules/hr-system/src/main/resources/mapper/system/SysUserMapper.xml

@@ -13,6 +13,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 		<result property="userType"     column="user_type"    />
         <result property="email"        column="email"        />
         <result property="phonenumber"  column="phonenumber"  />
+		<result property="deptName"  column="dept_name"  />
+		<result property="roleName"  column="role_name"  />
+		<result property="roleId"  column="role_id"  />
+
         <result property="sex"          column="sex"          />
         <result property="avatar"       column="avatar"       />
         <result property="password"     column="password"     />
@@ -50,7 +54,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
 	<select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult">
 		select u.user_id, u.dept_id, u.nick_name,u.post_name,u.user_type, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader,
-		r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status
+		r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status,u.dept_name,u.role_name,u.role_id
 		from sys_user u
 		left join sys_dept d on u.dept_id = d.dept_id
 		left join sys_user_role ur on u.user_id = ur.user_id
@@ -91,7 +95,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	<sql id="selectUserVo">
         select u.user_id, u.dept_id, u.user_name, u.nick_name,u.post_name,u.user_type, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
         d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status,
-        r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status
+        r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status,u.dept_name,u.role_name,u.role_id
         from sys_user u
 		    left join sys_dept d on u.dept_id = d.dept_id
 		    left join sys_user_role ur on u.user_id = ur.user_id
@@ -100,7 +104,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
 
 	<select id="selectUserListBaseOrg" parameterType="SysUser" resultMap="SysUserResult">
-		select u.user_id, u.dept_id, u.nick_name,u.post_name,u.user_type, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user u
+		select u.user_id, u.dept_id, u.nick_name,u.post_name,u.user_type, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader,,u.dept_name,u.role_name,u.role_id from sys_user u
 		inner join sys_user_dep ud on  u.user_id=ud.user_id
 		inner join sys_user_dep ud2 on  u.user_id=ud2.user_id
 		inner join sys_dept d on ud2.dep_id = d.dept_id and d.dep_type='base'
@@ -152,7 +156,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
 	
 	<select id="selectAllocatedList" parameterType="SysUser" resultMap="SysUserResult">
-	    select distinct u.user_id, u.dept_id, u.user_name,u.post_name,u.user_type, u.nick_name, u.email, u.phonenumber, u.status, u.create_time
+	    select distinct u.user_id, u.dept_id, u.user_name,u.post_name,u.user_type, u.nick_name, u.email, u.phonenumber, u.status, u.create_time,u.dept_name,u.role_name,u.role_id
 	    from sys_user u
 			 left join sys_dept d on u.dept_id = d.dept_id
 			 left join sys_user_role ur on u.user_id = ur.user_id
@@ -169,7 +173,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	</select>
 	
 	<select id="selectUnallocatedList" parameterType="SysUser" resultMap="SysUserResult">
-	    select distinct u.user_id, u.dept_id, u.user_name, u.nick_name,u.post_name,u.user_type, u.email, u.phonenumber, u.status, u.create_time
+	    select distinct u.user_id, u.dept_id, u.user_name, u.nick_name,u.post_name,u.user_type, u.email, u.phonenumber, u.status, u.create_time,u.dept_name,u.role_name,u.role_id
 	    from sys_user u
 			 left join sys_dept d on u.dept_id = d.dept_id
 			 left join sys_user_role ur on u.user_id = ur.user_id
@@ -219,6 +223,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  			<if test="email != null and email != ''">email,</if>
  			<if test="avatar != null and avatar != ''">avatar,</if>
  			<if test="phonenumber != null and phonenumber != ''">phonenumber,</if>
+		<if test="deptName != null and deptName != ''">dept_name,</if>
+		<if test="roleName != null and roleName != ''">role_name,</if>
  			<if test="sex != null and sex != ''">sex,</if>
  			<if test="password != null and password != ''">password,</if>
  			<if test="status != null and status != ''">status,</if>
@@ -235,6 +241,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  			<if test="email != null and email != ''">#{email},</if>
  			<if test="avatar != null and avatar != ''">#{avatar},</if>
  			<if test="phonenumber != null and phonenumber != ''">#{phonenumber},</if>
+		<if test="deptName != null and deptName != ''">#{deptName},</if>
+		<if test="roleName != null and roleName != ''">#{roleName},</if>
  			<if test="sex != null and sex != ''">#{sex},</if>
  			<if test="password != null and password != ''">#{password},</if>
  			<if test="status != null and status != ''">#{status},</if>
@@ -253,13 +261,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 			<if test="userType != null and userType != ''">user_type = #{userType},</if>
  			<if test="email != null ">email = #{email},</if>
  			<if test="phonenumber != null ">phonenumber = #{phonenumber},</if>
+			<if test="deptName != null and deptName != ''">dept_name=#{deptName},</if>
+			<if test="roleName != null and roleName != ''">role_name=#{roleName},</if>
  			<if test="sex != null and sex != ''">sex = #{sex},</if>
  			<if test="avatar != null and avatar != ''">avatar = #{avatar},</if>
  			<if test="password != null and password != ''">password = #{password},</if>
  			<if test="status != null and status != ''">status = #{status},</if>
  			<if test="loginIp != null and loginIp != ''">login_ip = #{loginIp},</if>
  			<if test="loginDate != null">login_date = #{loginDate},</if>
- 			<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
+ 			<if test="roleId != null and roleId != ''">role_id = #{roleId},</if>
+			<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
  			<if test="remark != null">remark = #{remark},</if>
  			update_time = sysdate()
  		</set>