瀏覽代碼

Merge branch 'master' of http://47.100.37.243:10080/wutt/manHourHousekeeper

ggooalice 2 年之前
父節點
當前提交
bfec8c1cfe

+ 75 - 0
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/controller/WeiXinCorpController.java

@@ -17,6 +17,7 @@ import com.management.platform.util.*;
 import com.qq.weixin.mp.aes.AesException;
 import com.qq.weixin.mp.aes.WXBizMsgCrypt;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.ibatis.annotations.Select;
 import org.json.XML;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -36,6 +37,7 @@ import java.time.*;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 @RestController
 @RequestMapping("/wxcorp")
@@ -1489,6 +1491,8 @@ public class WeiXinCorpController {
                         newCompany.setStaffCountMax(wxOrder.getUserCount());
                         companyMapper.updateById(newCompany);
                         System.out.println("版本变更成功,到期时间更新成功。");
+                        //开通模块和权限
+                        rootRole(company.getId());
                     }else {
                         System.out.println("未查询到该新建公司有支付订单");
                     }
@@ -3263,6 +3267,8 @@ public class WeiXinCorpController {
             }
             companyMapper.updateById(newCompany);
             System.out.println("已成功变更版本,版本号为:"+edition_id);
+            //开通模块和权限
+            rootRole(wxCorpInfo.getCompanyId());
         }else {
             System.out.println("++++++++++++++++++++++"+"版本变更失败!"+"++++++++++++++++++++++++");
         }
@@ -3282,4 +3288,73 @@ public class WeiXinCorpController {
         }
         return view;
     }
+
+    //为超级管理员角色赋予模块权限
+    private void rootRole (Integer companyId){
+        System.err.println("##############################为超级管理员开通模块及权限");
+        Company company = companyMapper.selectById(companyId);
+        SysRole sysRole = sysRoleMapper.selectOne(new QueryWrapper<SysRole>().eq("company_id", companyId).eq("rolename", "超级管理员"));
+        QueryWrapper<SysModule> sysModuleQueryWrapper = new QueryWrapper<>();
+        //项目协作平台
+        if (company.getPackageProject().equals(1)){
+            sysModuleQueryWrapper.or().eq("package_project", 1);
+        }
+        //OA平台;请假,出差等
+        if (company.getPackageOa().equals(1)){
+            sysModuleQueryWrapper.or().eq("package_oa", 1);
+        }
+        //费用报销
+        if (company.getPackageExpense().equals(1)){
+            sysModuleQueryWrapper.or().eq("package_expense", 1);
+        }
+        //客户管理
+        if (company.getPackageCustomer().equals(1)){
+            sysModuleQueryWrapper.or().eq("package_customer", 1);
+        }
+        //工程专业
+        if (company.getPackageEngineering().equals(1)){
+            sysModuleQueryWrapper.or().eq("package_engineering", 1);
+        }
+        //供应商模块
+        if (company.getPackageProvider().equals(1)){
+            sysModuleQueryWrapper.or().eq("package_provider", 1);
+        }
+        List<SysModule> sysModules = sysModuleMapper.selectList(sysModuleQueryWrapper);
+        //过滤掉已开通的模块
+        List<SysRoleModule> modular = sysRoleModuleMapper.selectList(new QueryWrapper<SysRoleModule>().eq("role_id", sysRole.getId()));
+        List<Integer> modularCollect = modular.stream().map((m) -> m.getModuleId()).distinct().collect(Collectors.toList());
+        List<SysModule> collect = sysModules.stream().filter((s) -> {
+            Boolean flag = true;
+            for (Integer integer : modularCollect) {
+                if (s.getId().equals(integer)){
+                    flag = false;
+                }
+            }
+            return flag;
+        }).collect(Collectors.toList());
+        //进行模块权限添加
+        ArrayList<SysRoleModule> sysRoleModules = new ArrayList<>();
+        for (SysModule sysModule : collect) {
+            SysRoleModule sysRoleModule = new SysRoleModule();
+            sysRoleModule.setRoleId(sysRole.getId());
+            sysRoleModule.setModuleId(sysModule.getId());
+            sysRoleModules.add(sysRoleModule);
+        }
+        sysRoleModuleService.saveBatch(sysRoleModules);
+        System.out.println("########################################");
+        System.err.println(company.getCompanyName() + "已开通模块;" + sysRoleModules.toString());
+        List<Integer> sysModulesId = collect.stream().map((s) -> s.getId()).collect(Collectors.toList());
+        List<SysFunction> sysFunctions = sysFunctionMapper.selectList(new QueryWrapper<SysFunction>().in("module_id", sysModulesId));
+        ArrayList<SysRoleFunction> sysRoleFunctions = new ArrayList<>();
+        for (SysFunction sysFunction : sysFunctions) {
+            SysRoleFunction sysRoleFunction = new SysRoleFunction();
+            sysRoleFunction.setRoleId(sysRole.getId());
+            sysRoleFunction.setFunctionId(sysFunction.getId());
+            sysRoleFunctions.add(sysRoleFunction);
+        }
+        sysRoleFunctionService.saveBatch(sysRoleFunctions);
+        System.out.println("########################################");
+        System.err.println(company.getCompanyName() + "已开通权限;" + sysRoleModules.toString());
+    }
+
 }

+ 5 - 5
fhKeeper/formulahousekeeper/timesheet/src/components/select.vue

@@ -9,7 +9,7 @@
             </div>
             <div v-if="multiSelect" :style="'line-height: '+selectHeight+'px;margin-left: -10px'" :class="selectName == $t('defaultText.pleaseChoose') ? 'selecttex selecttexXuan' : 'selecttex'">
                 <span v-if="multiSelectList.length > 0">
-                    <span v-if="!tile">
+                    <span v-if="!tile" style="width: 100%">
                         <span class="all">
                             <ww-open-data type='userName' :openid='multiSelectList[0].name'></ww-open-data>
                             {{multiSelectList[0].name}}
@@ -17,11 +17,11 @@
                         </span>
                         <span class="all" v-if="multiSelectList.length > 1"> + {{multiSelectList.length - 1}}</span>
                     </span>
-                    <span v-if="tile">
+                    <span v-if="tile" style="width: 100%">
                         <span class="all" style="margin-right: 6px" v-for="(items, indexs) in multiSelectList" :key="indexs">
                             <ww-open-data type='userName' :openid='items.name'></ww-open-data>
                             <!-- {{items.name}} -->
-                            <span v-if="items.jobNumber">{{items.jobNumber}}</span>
+                            <span v-if="items.jobNumber" class="spanFllat">{{items.jobNumber}}</span>
                             <i class="el-icon-error" @click.stop="deleteMultiSelectList(indexs)" v-if="!disabled"></i>
                         </span>
                     </span>
@@ -43,7 +43,7 @@
         <div class="transitionBox" :style="filterable ? 'margin: 30px 0;' : ''">
             <ul class="transitionBoxUl">
                 <li :class="transitionBoxLiIdx == index ? 'liHover' : ''" v-for="(item, index) in options" :key="index" @mouseover="liMouseOver(index)" @click="liClick(item, index)"> 
-                    <span v-if="!multiSelect">
+                    <span v-if="!multiSelect" style="width: 100%">
                         <span v-if="item.name">
                             <ww-open-data type='userName' :openid='item.name'></ww-open-data>
                         </span> 
@@ -54,7 +54,7 @@
                         <span v-if="item.jobNumber" class="spanFllat">{{item.jobNumber}}</span>
                     </span>
 
-                    <span v-if="multiSelect">
+                    <span v-if="multiSelect" style="width: 100%">
                         <span :class="item.flg ? 'hoverSpan hoverSpanHover' : 'hoverSpan'">
                             <span>
                                 <ww-open-data type='userName' :openid='item.name'></ww-open-data>

+ 25 - 6
fhKeeper/formulahousekeeper/timesheet/src/views/Home.vue

@@ -8,16 +8,16 @@
                     <span>{{$t('workingHoursHousekeeper')}}</span>
                 </div>
             </el-col>
-            <el-col :span="4">
+            <el-col :span="6">
                 <div class="tools" @click.prevent="collapse" style="position: relative;">
                     <i class="fa fa-align-justify"></i>
-                    <span style="position: absolute;width: 350px;left: 60px;">
+                    <div class="gongshimingz">
                         {{user.companyName}}
-                    </span>
+                    </div>
                 </div>
             </el-col>
 
-            <el-col :span="10" class="userinfo">
+            <el-col :span="12" class="userinfo">
                 <!-- 中英文切换入口 -->
                 <!-- <el-dropdown trigger="click" @command="langChange" style="margin-right:30px;">
                     <span class="el-dropdown-link userinfo-inner">
@@ -32,7 +32,8 @@
                 <el-dropdown trigger="hover" style="margin-right:30px;">
                     <span class="el-dropdown-link userinfo-inner">
                         <i class="el-icon-user" style="font-size:18px" ></i>
-                        {{$t('other.customerService')}}
+                        <!-- {{$t('other.customerService')}} -->
+                        帮助中心
                     </span> 
                     <el-dropdown-menu slot="dropdown">
                         <el-dropdown-item >
@@ -48,6 +49,12 @@
                                 style="width: 120px; height: 120px"
                                 src="../assets/image/qwcode.png" />
                             </div>
+                            <div>
+                                <div>操作手册</div>
+                                <div>
+                                    <el-link type="primary" :underline="false" href="https://doc.weixin.qq.com/doc/w3_AQAACQauAEA1Ucywi0bQGy7XLaYYE?scode=AMsA1AfkAAgBITHypgAQAACQauAEA">点击查看文档</el-link>
+                                </div>
+                            </div>
                         </el-dropdown-item>
                     </el-dropdown-menu>
                 </el-dropdown> 
@@ -111,6 +118,7 @@
                 </el-dropdown>
             </el-col>
         </el-col>
+
         <el-col :span="24" class="main">
 
             <aside :class="collapsed?'menu-collapsed':'menu-expanded'">
@@ -630,6 +638,17 @@
 </script>
 
 <style scoped lang="scss">
+.gongshimingz {
+    width: 100%;
+    position: absolute;
+    left: 0px;
+    display: inline-block;
+    overflow: hidden; 
+    white-space: nowrap;  
+    text-overflow: ellipsis; 
+    box-sizing: border-box;
+    padding-left: 60px;
+}
     .el-menu-vertical-demo i {
         margin-right: 10px;
     }
@@ -717,7 +736,7 @@
             }
             .tools {
                 padding: 0px 23px;
-                width: 14px;
+                // width: 14px;
                 height: 60px;
                 line-height: 60px;
                 cursor: pointer;

+ 5 - 4
fhKeeper/formulahousekeeper/timesheet/src/views/team/index.vue

@@ -297,7 +297,8 @@
         <el-dialog :title="depTitle" :visible.sync="departmentVisible" width="500px" >
             <el-form ref="depForm" :model="depForm" :rules="depRules" label-width="100px">
                 <el-form-item :label="$t('departmentname')" prop="name">
-                    <el-input v-model="depForm.name" :placeholder="$t('peaseenterthe')" clearable style="width: 100%"></el-input>
+                    <el-input v-model="depForm.name" :placeholder="$t('peaseenterthe')" clearable style="width: 100%" v-if="user.userNameNeedTranslate != '1'"></el-input>
+                    <div v-if="user.userNameNeedTranslate == '1'"><ww-open-data type='departmentName' :openid='depForm.name'></ww-open-data></div>
                 </el-form-item>
 
                 <!-- 主要负责人 -->
@@ -308,7 +309,7 @@
                           <span style="float: right; color: #8492a6; font-size: 13px">{{ item.jobNumber }}</span>
                         </el-option>
                     </el-select>
-                    <selectCat :size="'small'" :widthStr="'360'" v-if="user.userNameNeedTranslate == '1'" :subject="users" :subjectId="depForm.managerId" :distinction="'3'" @selectCal="selectCal"></selectCat>
+                    <selectCat :size="'medium'" :widthStr="'360'" v-if="user.userNameNeedTranslate == '1'" :subject="users" :subjectId="depForm.managerId" :distinction="'3'" @selectCal="selectCal"></selectCat>
                 </el-form-item>
 
                 <!-- 其他负责人 --> 
@@ -319,14 +320,14 @@
                           <span style="float: right; color: #8492a6; font-size: 13px">{{ item.jobNumber }}</span>
                         </el-option>
                     </el-select>
-                    <selectCat :size="'small'" :widthStr="'360'" v-if="user.userNameNeedTranslate == '1'" :subject="users" :subjectId="depForm.otherManagerIds" :distinction="'4'" @selectCal="selectCal"></selectCat>
+                    <selectCat :size="'medium'" :widthStr="'360'" v-if="user.userNameNeedTranslate == '1'" :subject="users" :subjectId="depForm.otherManagerIds" :distinction="'4'" @selectCal="selectCal"></selectCat>
                 </el-form-item>
                 <!-- 直属领导 -->
                 <el-form-item :label="$t('leadership')" prop="reportAuditUserid" v-if="user.timeType.needDeptAudit && user.userNameNeedTranslate != '1'">
                     <el-select v-model="depForm.reportAuditUserid" filterable  clearable  :placeholder="$t('defaultText.pleaseChoose')" style="width: 100%">
                         <el-option v-for="item in users" :key="item.id" :label="item.name" :value="item.id"></el-option>
                     </el-select>
-                    <selectCat :size="'small'" :widthStr="'360'" v-if="user.userNameNeedTranslate == '1'" :subject="users" :subjectId="depForm.reportAuditUserid" :distinction="'5'" @selectCal="selectCal"></selectCat>
+                    <selectCat :size="'medium'" :widthStr="'360'" v-if="user.userNameNeedTranslate == '1'" :subject="users" :subjectId="depForm.reportAuditUserid" :distinction="'5'" @selectCal="selectCal"></selectCat>
                 </el-form-item>
             </el-form>
             <span slot="footer" class="dialog-footer">