|
@@ -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;
|