bills_template_facade.js 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  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. return billTemplateLibModel.deleteOne({ID:ID});
  53. }
  54. async function getLibByID(ID) {
  55. return await billTemplateLibModel.findOne({ID:ID});
  56. }
  57. async function getAllLibs() {
  58. return await billTemplateLibModel.find();
  59. }
  60. async function saveLib(param) {
  61. return await billTemplateLibModel.findOneAndUpdate(param.query,param.data,{new:true});
  62. }
  63. async function addLib(data){
  64. let now = new Date().getTime();
  65. let dateStr = moment(now).format('YYYY-MM-DD HH:mm:ss');
  66. //取编办信息
  67. let compilation = await compilationModel.findOne({_id:data.compilationId});
  68. if(compilation){
  69. let newLib = {
  70. creator: data.userAccount,
  71. createDate: now,
  72. recentOpr: [{operator: data.userAccount, operateDate: dateStr}],
  73. name: data.name,
  74. compilationId: data.compilationId,
  75. compilationName: compilation.name,
  76. deleted: false
  77. };
  78. newLib.ID = uuidV1();
  79. return await billTemplateLibModel.create(newLib);
  80. }else {
  81. throw new Error("没有找到该编办!");
  82. }
  83. }
  84. export default billTemplate