bills_template_facade.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. /**
  2. * Created by Zhang on 2018/7/13.
  3. * 清单模板,新建项目使用
  4. */
  5. import mongoose from "mongoose";
  6. const uuidV1 = require('uuid/v1');
  7. let moment = require("moment");
  8. let compilationModel = mongoose.model("compilation");
  9. let billTemplateLibModel = mongoose.model("std_bills_template_lib");
  10. let billTemplateItemsModel = mongoose.model("std_bills_template_items");
  11. let billTemplate={
  12. addLib:addLib,
  13. getAllLibs:getAllLibs,
  14. getLibByID:getLibByID,
  15. saveLib:saveLib,
  16. deleteLibByID:deleteLibByID,
  17. getTemplateDatasByLibID:getTemplateDatasByLibID,
  18. updateTemplateItem:updateTemplateItem,
  19. getTemplateLibByCompilationID:getTemplateLibByCompilationID
  20. };
  21. async function getTemplateLibByCompilationID(compilationID) {
  22. return await billTemplateLibModel.find({compilationId:compilationID},['ID','name']);
  23. }
  24. async function updateTemplateItem (libID, datas) {
  25. for (let data of datas) {
  26. data.data.libID = libID;
  27. let condition = {libID: libID, ID: data.data.ID}, result;
  28. if (data.type === 'update') {
  29. result = await billTemplateItemsModel.update(condition, data.data);
  30. if (result === undefined || result.ok ===undefined || !result.ok) {
  31. throw '更新数据错误';
  32. }
  33. } else if (data.type === 'new') {
  34. result = await billTemplateItemsModel.create(data.data);
  35. if (!result) {
  36. throw '新增数据错误';
  37. }
  38. } else if (data.type === 'delete') {
  39. result = await billTemplateItemsModel.deleteOne(condition);
  40. result = result.result;
  41. if (result === undefined || result.ok ===undefined || !result.ok) {
  42. throw '删除数据错误';
  43. }
  44. }
  45. }
  46. return true;
  47. }
  48. async function getTemplateDatasByLibID(libID) {
  49. return await billTemplateItemsModel.find({libID:libID});
  50. }
  51. async function deleteLibByID(ID){
  52. //删除模板详情:
  53. await billTemplateItemsModel.deleteMany({libID:ID});
  54. return billTemplateLibModel.deleteOne({ID:ID});
  55. }
  56. async function getLibByID(ID) {
  57. return await billTemplateLibModel.findOne({ID:ID});
  58. }
  59. async function getAllLibs() {
  60. return await billTemplateLibModel.find();
  61. }
  62. async function saveLib(param) {
  63. return await billTemplateLibModel.findOneAndUpdate(param.query,param.data,{new:true});
  64. }
  65. async function addLib(data){
  66. let now = new Date().getTime();
  67. let dateStr = moment(now).format('YYYY-MM-DD HH:mm:ss');
  68. //取编办信息
  69. let compilation = await compilationModel.findOne({_id:data.compilationId});
  70. if(compilation){
  71. let newLib = {
  72. creator: data.userAccount,
  73. createDate: now,
  74. recentOpr: [{operator: data.userAccount, operateDate: dateStr}],
  75. name: data.name,
  76. compilationId: data.compilationId,
  77. compilationName: compilation.name,
  78. deleted: false
  79. };
  80. newLib.ID = uuidV1();
  81. return await billTemplateLibModel.create(newLib);
  82. }else {
  83. throw new Error("没有找到该编办!");
  84. }
  85. }
  86. export default billTemplate