Преглед изворни кода

Merge branch 'master' of http://git.cc-lotus.info/laboratory/server-achievement

guhongwei пре 3 година
родитељ
комит
6d80f1df87
4 измењених фајлова са 28 додато и 33 уклоњено
  1. 20 0
      app/middleware/duplicate.js
  2. 0 31
      app/middleware/flow.js
  3. 6 0
      app/model/duplicate.js
  4. 2 2
      app/z_router/apply.js

+ 20 - 0
app/middleware/duplicate.js

@@ -0,0 +1,20 @@
+'use strict';
+const _ = require('lodash');
+module.exports = options => {
+  return async function duplicate(ctx, next) {
+    await next();
+    const body = ctx.response.body;
+    const { data } = body;
+    const status = data.status;
+    if (status !== '2') return;
+    // 创建副本数据
+    const duplicateData = _.cloneDeep(data);
+    duplicateData.apply_id = data._id || data.id;
+    delete duplicateData._id;
+    delete duplicateData.id;
+    const q = { apply_id: duplicateData.apply_id, user_id: duplicateData.user_id };
+    // 先查询有没有,有就更新
+    // 一切都复制一份,将原数据id放到apply_id上,用来追溯/对比
+    // ctx.model.Duplicate.create(duplicateData);
+  };
+};

+ 0 - 31
app/middleware/flow.js

@@ -1,31 +0,0 @@
-'use strict';
-const _ = require('lodash');
-const moment = require('moment');
-const statusOpera = {
-  0: '保存为草稿',
-  1: '提交审核',
-  2: '审核通过',
-  3: '审核拒绝',
-};
-module.exports = options => {
-  return async function flow(ctx, next) {
-    // 记录申请流程的中间件
-    await next();
-    const body = ctx.response.body;
-    const { data } = body;
-    const status = data.status;
-    console.log(status); // 2的情况应该生成副本
-    // 获取当前状态应该是什么样的描述
-    const desc = statusOpera[status];
-    const id = data._id || data.id;
-    const record = data.record || [];
-    record.push({ desc, status, time: moment().format('YYYY-MM-DD HH:mm:ss') });
-    // try {
-    //   // 加记录,不需要等待
-    //   ctx.service.apply.update({ id }, { record });
-    // } catch (error) {
-    //   console.log('记录添加失败');
-    // }
-
-  };
-};

+ 6 - 0
app/model/duplicate.js

@@ -7,16 +7,22 @@ const { ObjectId } = require('mongoose').Types;
 const duplicate = {
   apply_id: { type: String }, // 原数据id
   user_id: { type: String }, // 用户id
+  user_name: { type: String }, // 用户名
   title: { type: String }, // 标题
   apply_year: { type: String }, // 申请年度
   project_info: { type: Object }, // 项目信息
   apply_index: { type: Array }, // 绩效指标
   status: { type: String, default: '0' }, // 0:草稿,1:待审中,2:审核通过,3:审核拒绝
   record: { type: Array }, // 记录
+  excel: { type: Object }, // excel数据
   remark: { type: String },
 };
 const schema = new Schema(duplicate, { toJSON: { virtuals: true } });
 schema.index({ id: 1 });
+schema.index({ apply_id: 1 });
+schema.index({ user_id: 1 });
+schema.index({ user_name: 1 });
+schema.index({ status: 1 });
 schema.index({ 'meta.createdAt': 1 });
 schema.plugin(metaPlugin);
 module.exports = app => {

+ 2 - 2
app/z_router/apply.js

@@ -3,8 +3,8 @@
 const routes = [
   { method: 'get', path: '/apply', controller: 'apply.index', middleware: [ 'applyQuery' ], name: 'applyQuery', zh: '绩效申请设置列表查询' },
   { method: 'get', path: '/apply/:id', controller: 'apply.show', name: 'applyFetch', zh: '绩效申请设置查询' },
-  { method: 'post', path: '/apply', controller: 'apply.create', name: 'applyCreate', middleware: [ 'flow' ], zh: '创建绩效申请设置' },
-  { method: 'post', path: '/apply/:id', controller: 'apply.update', name: 'applyUpdate', middleware: [ 'flow' ], zh: '修改绩效申请' },
+  { method: 'post', path: '/apply', controller: 'apply.create', name: 'applyCreate', zh: '创建绩效申请设置' },
+  { method: 'post', path: '/apply/:id', controller: 'apply.update', name: 'applyUpdate', middleware: [ 'duplicate' ], zh: '修改绩效申请' },
   { method: 'delete', path: '/apply/:id', controller: 'apply.destroy', name: 'applyDelete', zh: '删除绩效申请' },
 ];