vvTax_facade.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. "use strict";
  2. /**
  3. *
  4. *
  5. * @author Zhong
  6. * @date 2019/1/25
  7. * @version
  8. */
  9. import mongoose from "mongoose";
  10. const uuidV1 = require("uuid/v1");
  11. let moment = require("moment");
  12. const vvTaxLibModel = mongoose.model("std_vehicleVesselTax_lib");
  13. const vvTaxModel = mongoose.model("std_vehicleVesselTax_items");
  14. let vvTaxLib = {
  15. findByCondition: async function (
  16. conditions,
  17. withData = false,
  18. single = true
  19. ) {
  20. if (single == true) {
  21. let lib = await vvTaxLibModel.findOne(conditions);
  22. if (withData) {
  23. lib._doc.data = await vvTaxModel.find(
  24. { libID: conditions.ID },
  25. { _id: 0, libID: 0, ID: 0 }
  26. );
  27. }
  28. return lib._doc;
  29. } else {
  30. return await vvTaxLibModel.find(conditions);
  31. }
  32. },
  33. addLib: async function (data) {
  34. let now = new Date().getTime();
  35. let dateStr = moment(now).format("YYYY-MM-DD HH:mm:ss");
  36. let newLib = {
  37. creator: data.userAccount,
  38. createDate: now,
  39. recentOpr: [{ operator: data.userAccount, operateDate: dateStr }],
  40. name: data.name,
  41. code: data.code,
  42. };
  43. newLib.ID = uuidV1();
  44. return await vvTaxLibModel.create(newLib);
  45. },
  46. saveLib: async function (param) {
  47. if (param.edit) {
  48. //更改保存车船税具体数据
  49. await vvTaxModel.deleteMany({ libID: param.query.ID });
  50. let tasks = [];
  51. for (let data of param.data.data) {
  52. data.libID = param.query.ID;
  53. data.ID = uuidV1();
  54. tasks.push({ insertOne: { document: data } });
  55. }
  56. if (tasks.length > 0) {
  57. await vvTaxModel.bulkWrite(tasks);
  58. }
  59. } else {
  60. return await vvTaxLibModel.findOneAndUpdate(param.query, param.data, {
  61. new: true,
  62. });
  63. }
  64. },
  65. deleteLibByID: async function (ID) {
  66. await vvTaxLibModel.deleteOne({ ID: ID });
  67. return await vvTaxModel.deleteMany({ libID: ID });
  68. },
  69. };
  70. export default vvTaxLib;