zs 1 year ago
parent
commit
be6abce9fb
1 changed files with 95 additions and 12 deletions
  1. 95 12
      src/service/OrderDetail.service.ts

+ 95 - 12
src/service/OrderDetail.service.ts

@@ -7,6 +7,7 @@ import { Good } from '../entity/Good.entity';
 import { Specs } from '../entity/Specs.entity';
 import { User } from '../entity/User.entity';
 import _ = require('lodash');
+import { Order } from '../entity/Order.entity';
 type modelType = ReturnModelType<typeof OrderDetail>;
 @Provide()
 export class OrderDetailService extends BaseService<modelType> {
@@ -22,6 +23,9 @@ export class OrderDetailService extends BaseService<modelType> {
   @InjectEntityModel(User)
   userModel: ReturnModelType<typeof User>;
 
+  @InjectEntityModel(Order)
+  orderModel: ReturnModelType<typeof Order>;
+
   async queryInfo(filter): Promise<object> {
     const {
       skip = 0,
@@ -31,6 +35,7 @@ export class OrderDetailService extends BaseService<modelType> {
       c_leader,
       c_accounting,
       goods,
+      user_name,
       status,
       ...info
     } = filter;
@@ -52,17 +57,47 @@ export class OrderDetailService extends BaseService<modelType> {
         .lean();
       if (arr) info.good = arr._id;
     }
+    if (user_name) {
+      const arr = await this.userModel
+        .findOne({
+          name: {
+            $regex: user_name,
+          },
+        })
+        .lean();
+      if (arr) info.user = arr._id;
+    }
     if (status) {
       if (status === '0' && s_accounting)
-        info.$or = [{ status: '0' }, { status: '20' }];
+        info.$or = [
+          { status: '0' },
+          { status: '2' },
+          { status: '-2' },
+          { status: '20' },
+        ];
       else if (status === '2' && s_leader)
-        info.$or = [{ status: '2' }, { status: '30' }];
+        info.$or = [
+          { status: '2' },
+          { status: '4' },
+          { status: '-2' },
+          { status: '30' },
+        ];
       else if (status === '4' && info.supplier)
         info.$or = [{ status: '4' }, { status: '5' }, { status: '6' }];
       else if (status === '6' && c_accounting)
-        info.$or = [{ status: '6' }, { status: '40' }];
+        info.$or = [
+          { status: '6' },
+          { status: '7' },
+          { status: '-7' },
+          { status: '40' },
+        ];
       else if (status === '7' && c_leader)
-        info.$or = [{ status: '7' }, { status: '50' }];
+        info.$or = [
+          { status: '7' },
+          { status: '8' },
+          { status: '-8' },
+          { status: '50' },
+        ];
       else info.status = status;
     }
     list = await this.model.find(info).skip(skip).limit(limit).lean();
@@ -202,9 +237,21 @@ export class OrderDetailService extends BaseService<modelType> {
       no = arr.s_accounting.some(f => f.status === '-1');
       if (yes) {
         result = this.model.updateOne({ _id: id }, { status: '2' });
+        await this.orderModel.updateOne({ _id: res.order_id }, { status: '2' });
       } else {
-        if (no) result = this.model.updateOne({ _id: id }, { status: '-2' });
-        else result = this.model.updateOne({ _id: id }, { status: '20' });
+        if (no) {
+          result = this.model.updateOne({ _id: id }, { status: '-2' });
+          await this.orderModel.updateOne(
+            { _id: res.order_id },
+            { status: '-2' }
+          );
+        } else {
+          result = this.model.updateOne({ _id: id }, { status: '20' });
+          await this.orderModel.updateOne(
+            { _id: res.order_id },
+            { status: '20' }
+          );
+        }
       }
     } else if (c_accounting) {
       const caccounting = [];
@@ -223,9 +270,21 @@ export class OrderDetailService extends BaseService<modelType> {
       no = arr.c_accounting.some(f => f.status === '-1');
       if (yes) {
         result = this.model.updateOne({ _id: id }, { status: '7' });
+        await this.orderModel.updateOne({ _id: res.order_id }, { status: '7' });
       } else {
-        if (no) result = this.model.updateOne({ _id: id }, { status: '-7' });
-        else result = this.model.updateOne({ _id: id }, { status: '40' });
+        if (no) {
+          result = this.model.updateOne({ _id: id }, { status: '-7' });
+          await this.orderModel.updateOne(
+            { _id: res.order_id },
+            { status: '-7' }
+          );
+        } else {
+          result = this.model.updateOne({ _id: id }, { status: '40' });
+          await this.orderModel.updateOne(
+            { _id: res.order_id },
+            { status: '40' }
+          );
+        }
       }
     } else if (s_leader) {
       const sleader = [];
@@ -244,9 +303,21 @@ export class OrderDetailService extends BaseService<modelType> {
       no = arr.s_leader.some(f => f.status === '-1');
       if (yes) {
         result = this.model.updateOne({ _id: id }, { status: '4' });
+        await this.orderModel.updateOne({ _id: res.order_id }, { status: '4' });
       } else {
-        if (no) result = this.model.updateOne({ _id: id }, { status: '-3' });
-        else result = this.model.updateOne({ _id: id }, { status: '30' });
+        if (no) {
+          result = this.model.updateOne({ _id: id }, { status: '-3' });
+          await this.orderModel.updateOne(
+            { _id: res.order_id },
+            { status: '-3' }
+          );
+        } else {
+          result = this.model.updateOne({ _id: id }, { status: '30' });
+          await this.orderModel.updateOne(
+            { _id: res.order_id },
+            { status: '30' }
+          );
+        }
       }
     } else if (c_leader) {
       const cleader = [];
@@ -265,9 +336,21 @@ export class OrderDetailService extends BaseService<modelType> {
       no = arr.c_leader.some(f => f.status === '-1');
       if (yes) {
         result = this.model.updateOne({ _id: id }, { status: '8' });
+        await this.orderModel.updateOne({ _id: res.order_id }, { status: '8' });
       } else {
-        if (no) result = this.model.updateOne({ _id: id }, { status: '-8' });
-        else result = this.model.updateOne({ _id: id }, { status: '50' });
+        if (no) {
+          result = this.model.updateOne({ _id: id }, { status: '-8' });
+          await this.orderModel.updateOne(
+            { _id: res.order_id },
+            { status: '-8' }
+          );
+        } else {
+          result = this.model.updateOne({ _id: id }, { status: '50' });
+          await this.orderModel.updateOne(
+            { _id: res.order_id },
+            { status: '50' }
+          );
+        }
       }
     } else result = this.model.updateOne({ _id: id }, { status: status });
     return result;