|
@@ -81,6 +81,11 @@ class PayCalculator {
|
|
|
};
|
|
|
}
|
|
|
|
|
|
+ checkQuetoExpr(expr) {
|
|
|
+ if (!this.basesReg) this.basesReg = new RegExp(this.bases.map(x => {return '(' + x.code + ')'}).join('|'));
|
|
|
+ return this.basesReg.test(expr) || this.nodeReg.test(expr);
|
|
|
+ }
|
|
|
+
|
|
|
_calculateTpExpr(pay, pays) {
|
|
|
let formula = pay.expr;
|
|
|
const nodeParam = pay.expr.match(this.nodeReg);
|
|
@@ -359,6 +364,7 @@ class PhasePayDetail extends TreeService {
|
|
|
const preData = await this.getAllDataByCondition({
|
|
|
where: { phase_id: prePhase.id, audit_times: prePhase.audit_times, audit_sort: prePhase.audit_max_sort },
|
|
|
});
|
|
|
+ const payCalc = new PayCalculator(this.ctx, prePhase);
|
|
|
for (const pd of preData) {
|
|
|
delete pd.id;
|
|
|
pd.tp = 0;
|
|
@@ -369,6 +375,7 @@ class PhasePayDetail extends TreeService {
|
|
|
pd.audit_sort = 0;
|
|
|
if (!pd.pre_used) pd.pre_used = pd.pre_tp ? 1 : 0;
|
|
|
if (!pd.pre_finished) pd.pre_finished = pd.end_tp >= pd.range_tp;
|
|
|
+ if (pd.expr && (!pd.pay_type || pd.pay_type === payType.bqsf) && payCalc.checkQuetoExpr(pd.expr)) pd.expr = '';
|
|
|
}
|
|
|
await conn.insert(this.tableName, preData);
|
|
|
}
|