|
@@ -1,6 +1,8 @@
|
|
|
'use strict';
|
|
|
|
|
|
const auditConst = require('../const/audit').advance;
|
|
|
+const path = require('path');
|
|
|
+const fs = require('fs');
|
|
|
|
|
|
module.exports = app => {
|
|
|
class Advance extends app.BaseService {
|
|
@@ -205,9 +207,28 @@ module.exports = app => {
|
|
|
/**
|
|
|
* 删除预付款记录
|
|
|
* @param {String} id 预付款id
|
|
|
+ * @param {String} tid 标段id
|
|
|
*/
|
|
|
- async deleteAdvance(id) {
|
|
|
- return await this.deleteById(id);
|
|
|
+ async deleteAdvance(id, tid) {
|
|
|
+ const transaction = await this.db.beginTransaction();
|
|
|
+ try {
|
|
|
+ // 删除预付款记录
|
|
|
+ await transaction.delete(this.tableName, { id, tid });
|
|
|
+ // 删除附件
|
|
|
+ const fileInfo = await this.db.select(this.ctx.service.advanceFile.tableName, { where: { vid: id, tid } });
|
|
|
+ await transaction.delete(this.ctx.service.advanceFile.tableName, { vid: id, tid });
|
|
|
+ // 先删除文件
|
|
|
+ for (let i = 0; i < fileInfo.length; i++) {
|
|
|
+ const file = fileInfo[i];
|
|
|
+ fs.unlinkSync(path.resolve(this.app.baseDir, './app', file.filepath));
|
|
|
+ }
|
|
|
+ // 删除审批记录
|
|
|
+ await transaction.delete(this.ctx.service.advanceAudit.tableName, { vid: id, tid });
|
|
|
+ await transaction.commit();
|
|
|
+ } catch (err) {
|
|
|
+ await transaction.rollback();
|
|
|
+ throw err;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
return Advance;
|