123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- 'use strict';
- /**
- *
- *
- * @author Mai
- * @date 2018/8/14
- * @version
- */
- const audit = require('../const/audit');
- module.exports = app => {
- class ChangeAudit extends app.BaseService {
- /**
- * 构造函数
- *
- * @param {Object} ctx - egg全局变量
- * @return {void}
- */
- constructor(ctx) {
- super(ctx);
- this.tableName = 'change_audit';
- }
- /**
- * 获取最后一位审批人
- * @param cid
- * @return {Promise.<void>}
- */
- async getLastUser(cid, times, site = 1) {
- this.initSqlBuilder();
- this.sqlBuilder.setAndWhere('cid', {
- value: this.db.escape(cid),
- operate: '=',
- });
- this.sqlBuilder.setAndWhere('times', {
- value: times,
- operate: '=',
- });
- this.sqlBuilder.setAndWhere('status', {
- value: 1,
- operate: '!=',
- });
- if (site === 0) {
- this.sqlBuilder.setAndWhere('usite', {
- value: site,
- operate: '=',
- });
- }
- this.sqlBuilder.orderBy = [['usort', 'DESC']];
- const [sql, sqlParam] = this.sqlBuilder.build(this.tableName);
- const data = await this.db.queryOne(sql, sqlParam);
- return data;
- }
- /**
- * 获取当前审批人查看info时的状态
- * @param cid
- * @param times
- * @param status
- * @return {Promise.<void>}
- */
- async getStatusByChange(change) {
- const statusConst = audit.flow.status;
- const auditStatusConst = audit.flow.auditStatus;
- const uid = this.ctx.session.sessionUser.accountId;
- const changeAuditInfo = (await this.getAllDataByCondition({where: { cid: change.cid, times: change.times, uid: uid}, order: ['id', 'DESC']}));
- if (changeAuditInfo === null) {
- // 无权限查看此变更令
- return 0;
- }
- if (change.status === statusConst.uncheck && uid === change.uid) {
- // 待上报
- return 1;
- } else if (change.status === statusConst.back && uid === change.uid) {
- // 待重新上报
- return 2;
- } else if (change.status === statusConst.back && uid !== change.uid) {
- // 被退回但你不是原报人
- return 3;
- } else if (change.status === statusConst.checked) {
- // 已完成
- return 4;
- } else if (change.status === statusConst.checkNo) {
- // 已终止
- return 5;
- } else if (change.status === statusConst.checking && changeAuditInfo.status === auditStatusConst.checking) {
- // 待你审批
- return 6;
- } else if (change.status === statusConst.checking && changeAuditInfo.status !== auditStatusConst.checking) {
- // 审批中但你未到你审批或你已审批
- return 7;
- } else {
- // 无权限查看此变更令
- return 0;
- }
- }
- }
- return ChangeAudit;
- };
|