Преглед на файлове

Merge branch 'dev' of http://192.168.1.41:3000/maixinrong/Calculation into dev

MaiXinRong преди 1 година
родител
ревизия
160ce8f71c

+ 2 - 2
app/controller/report_controller.js

@@ -994,7 +994,7 @@ module.exports = app => {
                 stgAudit = [];
                 stgAuditForOrg = [];
                 stageFlow = [];
-                this._commonGetAudit(ctx, params, stgAudit);
+                await this._commonGetAudit(ctx, params, stgAudit);
                 stgAudit.sort(function(stg1, stg2) {
                     return stg1.order - stg2.order;
                 });
@@ -1116,7 +1116,7 @@ module.exports = app => {
                 }
             } else if ([-300, -301, -302, -303].includes(params.stage_id)) {
                 stgAudit = [];
-                this._commonGetAudit(ctx, params, stgAudit);
+                await this._commonGetAudit(ctx, params, stgAudit);
                 this._mergeBlankRoleSignDate(roleRel, stgAudit);
             }
 

+ 1 - 2
app/controller/setting_controller.js

@@ -424,8 +424,7 @@ module.exports = app => {
                         await ctx.service.constructionUnit.update({sign_path: null}, {id: info.id});
                         break;
                     case 'import-users':
-                        const import_result = await ctx.service.projectAccount.addUsers(projectData.id, data.users);
-                        responseData.data.insertNum = import_result;
+                        responseData.data = await ctx.service.projectAccount.addUsers(projectData.id, data.users);
                         break;
                     default:
                         break;

+ 7 - 2
app/public/js/setting.js

@@ -462,11 +462,16 @@ $(document).ready(() => {
                 postData('/setting/user/unit/save', { type: 'import-users', users: tree }, function (result) {
                     if (result.insertNum > 0) {
                         toastr.success('成功导入了' + result.insertNum + '个账号');
+                        if (result.overMax) {
+                            toastr.warning('添加账号个数受限,部分账号无法导入,请去后台开放限制。');
+                        }
                         setTimeout(function () {
                             window.location.reload();
                         }, 1500);
-                    } else {
-                        toastr.warning('未能导入任何账号,请检查账号、公司是否已存在或excel是否符合模版要求。');
+                    } else if (result.insertNum === 0 && !result.overMax) {
+                        toastr.error('未能导入任何账号,请检查账号、公司是否已存在或excel是否符合模版要求。');
+                    } else if (result.insertNum === 0 && result.overMax) {
+                        toastr.warning('添加账号个数受限,账号无法导入,请去后台开放限制。');
                     }
                 })
             } catch (error) {

+ 2 - 0
app/public/report/js/rpt_signature.js

@@ -836,6 +836,8 @@ let rptSignatureHelper = {
                                                 sCell.Value = sCell.Value.replace(reg1, '|').replace(reg2, '|').replace(reg3, '|').replace(reg4, '|').replace(reg5, '|').replace(reg6, '|');
                                             }
                                             preDate = audit_rel.end_time;
+                                        } else {
+                                            sCell.Value = ''; // 如有匹配,但又不能输出,则需要清空
                                         }
                                         //不能break,实际会有多个审核意见,以最后一个为准
                                     }

+ 24 - 15
app/service/project_account.js

@@ -453,11 +453,15 @@ module.exports = app => {
         }
 
         async addUsers(pid, users) {
+            const projectData = await this.ctx.service.project.getDataById(pid);
+            const maxUser = projectData.max_user;
             const paList = await this.getAllDataByCondition({ where: { project_id: pid } });
             const insertData = [];
             const create_time = Date.parse(new Date()) / 1000;
             // 判断新密码的强度
             const reg = /^(?![0-9]+$)(?![a-zA-Z]+$).{6,16}$/;
+            let userTotal = paList.length;
+            let overMax = false;
             for (const u of users) {
                 if (u.account === undefined || u.account === null || u.name === undefined || u.name === null ||
                     u.password === undefined || u.password === null || u.company === undefined || u.company === null ||
@@ -472,24 +476,29 @@ module.exports = app => {
                 u.company_id = companyInfo.id;
                 u.account_group = companyInfo.type;
                 if (this._.findIndex(paList, { account: u.account }) === -1 && this._.findIndex(insertData, { account: u.account }) === -1) {
-                    insertData.push({
-                        project_id: pid,
-                        account: u.account,
-                        name: u.name,
-                        password: crypto.createHmac('sha1', u.account).update(u.password)
-                            .digest().toString('base64'),
-                        account_group: u.account_group,
-                        company: u.company,
-                        company_id: companyInfo.id,
-                        role: u.role,
-                        mobile: u.mobile || '',
-                        telephone: u.telephone || '',
-                        create_time,
-                    });
+                    if (maxUser === 0 || userTotal <= maxUser) {
+                        insertData.push({
+                            project_id: pid,
+                            account: u.account,
+                            name: u.name,
+                            password: crypto.createHmac('sha1', u.account).update(u.password)
+                                .digest().toString('base64'),
+                            account_group: u.account_group,
+                            company: u.company,
+                            company_id: companyInfo.id,
+                            role: u.role,
+                            mobile: u.mobile || '',
+                            telephone: u.telephone || '',
+                            create_time,
+                        });
+                        userTotal++;
+                    } else {
+                        overMax = true;
+                    }
                 }
             }
             if (insertData.length > 0) await this.db.insert(this.tableName, insertData);
-            return insertData.length;
+            return { insertNum: insertData.length, overMax };
         }
 
         /**

+ 4 - 3
app/view/setting/user.ejs

@@ -4,11 +4,12 @@
         <div class="title-main">
             <h2>账号管理
                 <% if (projectData.max_user === 0 || projectData.max_user > user_total) { %>
-                    <a href="#ver" data-toggle="modal" data-target="#add-user" class="btn btn-primary btn-sm pull-right">添加账号</a>
+                    <a href="#ver" data-toggle="modal" data-target="#add-user" class="btn btn-primary btn-sm pull-right mr-2">添加账号</a>
+                    <a href="#add-batch" data-toggle="modal" data-target="#add-batch" class="btn btn-primary btn-sm pull-right mr-1">批量导入账号</a>
                 <% } else { %>
-                    <a href="#add-unpass" data-toggle="modal" data-target="#add-unpass" class="btn btn-primary btn-sm pull-right">添加账号(受限)</a>
+                    <a href="#add-unpass" data-toggle="modal" data-target="#add-unpass" class="btn btn-primary btn-sm pull-right mr-2">添加账号(受限)</a>
+                    <a href="#add-unpass" data-toggle="modal" data-target="#add-unpass" class="btn btn-primary btn-sm pull-right mr-1">批量导入账号(受限)</a>
                 <% } %>
-                <a href="#add-batch" data-toggle="modal" data-target="#add-batch" class="btn btn-primary btn-sm pull-right mr-1">批量导入账号</a>
             </h2>
         </div>
     </div>

+ 4 - 3
app/view/setting/user_permission.ejs

@@ -5,11 +5,12 @@
         <div class="title-main">
             <h2>账号管理
                 <% if (projectData.max_user === 0 || projectData.max_user > user_total) { %>
-                    <a href="#ver" data-toggle="modal" data-target="#add-user" class="btn btn-primary btn-sm pull-right">添加账号</a>
+                    <a href="#ver" data-toggle="modal" data-target="#add-user" class="btn btn-primary btn-sm pull-right mr-2">添加账号</a>
+                    <a href="#add-batch" data-toggle="modal" data-target="#add-batch" class="btn btn-primary btn-sm pull-right mr-1">批量导入账号</a>
                 <% } else { %>
-                    <a href="#add-unpass" data-toggle="modal" data-target="#add-unpass" class="btn btn-primary btn-sm pull-right">添加账号(受限)</a>
+                    <a href="#add-unpass" data-toggle="modal" data-target="#add-unpass" class="btn btn-primary btn-sm pull-right mr-2">添加账号(受限)</a>
+                    <a href="#add-unpass" data-toggle="modal" data-target="#add-unpass" class="btn btn-primary btn-sm pull-right mr-1">批量导入账号(受限)</a>
                 <% } %>
-                <a href="#add-batch" data-toggle="modal" data-target="#add-batch" class="btn btn-primary btn-sm pull-right mr-1">批量导入账号</a>
             </h2>
         </div>
     </div>

+ 4 - 3
app/view/setting/user_unit.ejs

@@ -5,11 +5,12 @@
             <h2>账号管理
                 <a href="#add-company" data-toggle="modal" data-target="#add-company" class="btn btn-primary btn-sm pull-right">添加单位</a>
                 <% if (projectData.max_user === 0 || projectData.max_user > user_total) { %>
-                <a href="#ver" data-toggle="modal" data-target="#add-user" class="btn btn-primary btn-sm pull-right mr-2">添加账号</a>
+                    <a href="#ver" data-toggle="modal" data-target="#add-user" class="btn btn-primary btn-sm pull-right mr-2">添加账号</a>
+                    <a href="#add-batch" data-toggle="modal" data-target="#add-batch" class="btn btn-primary btn-sm pull-right mr-1">批量导入账号</a>
                 <% } else { %>
-                <a href="#add-unpass" data-toggle="modal" data-target="#add-unpass" class="btn btn-primary btn-sm pull-right mr-2">添加账号(受限)</a>
+                    <a href="#add-unpass" data-toggle="modal" data-target="#add-unpass" class="btn btn-primary btn-sm pull-right mr-2">添加账号(受限)</a>
+                    <a href="#add-unpass" data-toggle="modal" data-target="#add-unpass" class="btn btn-primary btn-sm pull-right mr-1">批量导入账号(受限)</a>
                 <% } %>
-                <a href="#add-batch" data-toggle="modal" data-target="#add-batch" class="btn btn-primary btn-sm pull-right mr-1">批量导入账号</a>
             </h2>
         </div>
     </div>