schedule_ledger_month.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. 'use strict';
  2. module.exports = app => {
  3. class ScheduleLedgerMonth extends app.BaseService {
  4. constructor(ctx) {
  5. super(ctx);
  6. this.tableName = 'schedule_ledger_month';
  7. }
  8. async save(data) {
  9. // 判断是添加,删除,还是修改
  10. const transaction = await this.db.beginTransaction();
  11. try {
  12. const info = await this.getDataByCondition({ tid: this.ctx.tender.id, lid: data.lid, yearmonth: data.yearmonth });
  13. if (info) {
  14. if (data.plan_gcl === null && data.plan_tp === null) {
  15. await transaction.delete(this.tableName, { id: info.id });
  16. } else {
  17. const updateData = {
  18. id: info.id,
  19. plan_gcl: data.plan_gcl,
  20. plan_tp: data.plan_tp,
  21. };
  22. await transaction.update(this.tableName, updateData);
  23. }
  24. } else {
  25. const insertData = {
  26. tid: this.ctx.tender.id,
  27. lid: data.lid,
  28. yearmonth: data.yearmonth,
  29. plan_gcl: data.plan_gcl,
  30. plan_tp: data.plan_tp,
  31. };
  32. await transaction.insert(this.tableName, insertData);
  33. }
  34. await transaction.commit();
  35. return true;
  36. } catch (err) {
  37. await transaction.rollback();
  38. throw err;
  39. }
  40. }
  41. }
  42. return ScheduleLedgerMonth;
  43. };