billsLibInterfaces.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475
  1. /**
  2. * Created by vian on 2017/3/20.
  3. */
  4. var model = require("./billsLibModel");
  5. var counter = require("../../../public/counter/counter");
  6. var StdBillsLib = model.stdBillsLibMod;
  7. var Bills = model.billsMod;
  8. var JobContent = model.jobContentMod;
  9. var ItemCharacter = model.itemCharacterMod;
  10. var fieldArr = ["code", "name", "unit", "ruleText", "Expression"];
  11. var billsLibDao = function(){};
  12. //----------StdBillsLib-------------------
  13. billsLibDao.prototype.getStdBillsLib = function(userId, callback){
  14. StdBillsLib.find({}, "-_id", function(err, data){
  15. if(err){
  16. callback(1, "Error", null);
  17. }
  18. else{
  19. callback(0, "", data);
  20. }
  21. })
  22. }
  23. billsLibDao.prototype.createStdBillsLib = function(clibData, callback){
  24. counter.getIDAfterCount("bills", 1, function(err, result){
  25. var billsLibId = result.value.sequence_value;
  26. var billsLibName = clibData.name;
  27. var createDate = Date.now();
  28. var newStdBillsLib = {
  29. billsLibId: billsLibId,
  30. billsLibName: billsLibName,
  31. createDate: createDate
  32. }
  33. StdBillsLib.create(newStdBillsLib, function(err){
  34. if(err){
  35. callback(1, "Error", null);
  36. }
  37. else {
  38. StdBillsLib.find({billsLibId: billsLibId}, function(err, data){
  39. if(err){
  40. callback(1, "Error", null)
  41. }
  42. else {
  43. callback(0, "", data);
  44. }
  45. });
  46. }
  47. });
  48. });
  49. }
  50. billsLibDao.prototype.deleteStdBillsLib = function(billsLibId, callback){
  51. StdBillsLib.remove({billsLibId: billsLibId}, function(err){
  52. if(err){
  53. callback(1, "Error");
  54. }
  55. else{
  56. callback(0, "");
  57. }
  58. });
  59. }
  60. billsLibDao.prototype.renameStdBillsLib = function(renameData, callback){
  61. var billsLibId = renameData.id;
  62. var renameVal = renameData.value;
  63. StdBillsLib.update({billsLibId: billsLibId}, {$set:{billsLibName: renameVal}}, function(err){
  64. if(err){
  65. callback(1, "Error");
  66. }
  67. else{
  68. callback(0, "");
  69. }
  70. });
  71. }
  72. billsLibDao.prototype.getStdBillsLibName = function(billsLibId, callback){
  73. StdBillsLib.find({billsLibId: billsLibId}, "-_id", function(err, data){
  74. if(err){
  75. callback(1, "Error", null);
  76. }
  77. else {
  78. callback(0, "", data);
  79. }
  80. });
  81. }
  82. //----------------------------Bills---------------------
  83. billsLibDao.prototype.getBills = function (billsLibId, callback) {
  84. Bills.find({billsLibId: billsLibId}, "-_id", function(err, billsData){
  85. if(err){
  86. callback(1, "Error", null);
  87. }
  88. else{
  89. callback(0, "", billsData);
  90. }
  91. });
  92. }
  93. billsLibDao.prototype.createBills = function(cbillsData, callback){
  94. var newId = cbillsData.newId;
  95. var pid = cbillsData.ParentID;
  96. var nid = cbillsData.NextSiblingID;
  97. var billsLibId = cbillsData.billsLibId;
  98. var newBills = {
  99. ID: newId,
  100. ParentID: pid,
  101. NextSiblingID: nid,
  102. billsLibId: billsLibId,
  103. code: '',
  104. name: '',
  105. unit: '',
  106. ruleText: '',
  107. Expression: '',
  108. recharge:'',
  109. };
  110. Bills.create(newBills, function(err){
  111. if(err){
  112. callback(1, "Error");
  113. }
  114. else{
  115. callback(0, "");
  116. }
  117. });
  118. }
  119. billsLibDao.prototype.updatePNId= function(updateData, callback){
  120. var billsLibId = updateData.billsLibId;
  121. var updateId = updateData.updateId;
  122. var updatepid= updateData.ParentID;
  123. var updatenid = updateData.NextSiblingID;
  124. if(!updatepid){
  125. Bills.update({billsLibId: billsLibId, ID: updateId}, {$set: {NextSiblingID: updatenid}}, function(err){
  126. if(err){
  127. callback(1, "Error")
  128. }
  129. else{
  130. callback(0, "");
  131. }
  132. });
  133. }
  134. else if(!updatenid){
  135. Bills.update({billsLibId: billsLibId, ID: updateId}, {$set: {ParentID: updatepid}}, function(err){
  136. if(err){
  137. callback(1, "Error")
  138. }
  139. else{
  140. callback(0, "");
  141. }
  142. });
  143. }
  144. else {
  145. Bills.update({billsLibId: billsLibId, ID: updateId}, {$set: {ParentID: updatepid, NextSiblingID: updatenid}}, function(err){
  146. if(err){
  147. callback(1, "Error")
  148. }
  149. else{
  150. callback(0, "");
  151. }
  152. });
  153. }
  154. }
  155. billsLibDao.prototype.updateBills = function(ubillsData, callback){
  156. var billsLibId = ubillsData.billsLibId;
  157. var updateId = ubillsData.updateId;
  158. var updateField = ubillsData.field;
  159. var updateData = ubillsData.data;
  160. if(updateField === "code"){
  161. Bills.update({billsLibId: billsLibId, ID: updateId}, {$set: {code: updateData}}, function(err){
  162. if(err){
  163. callback(1, "Error");
  164. }
  165. else {
  166. callback(0, "");
  167. }
  168. });
  169. }
  170. else if(updateField === "name"){
  171. Bills.update({billsLibId: billsLibId, ID: updateId}, {$set: {name: updateData}}, function(err){
  172. if(err){
  173. callback(1, "Error");
  174. }
  175. else {
  176. callback(0, "");
  177. }
  178. });
  179. }
  180. else if(updateField === "unit"){
  181. Bills.update({billsLibId: billsLibId, ID: updateId}, {$set: {unit: updateData}}, function(err){
  182. if(err){
  183. callback(1, "Error");
  184. }
  185. else {
  186. callback(0, "");
  187. }
  188. });
  189. }
  190. else if(updateField === "ruleText"){
  191. Bills.update({billsLibId: billsLibId, ID: updateId}, {$set: {ruleText: updateData}}, function(err){
  192. if(err){
  193. callback(1, "Error");
  194. }
  195. else {
  196. callback(0, "");
  197. }
  198. });
  199. }
  200. else if(updateField === "jobs"){
  201. Bills.update({billsLibId: billsLibId, ID: updateId}, {$addToSet: {jobs: updateData}}, function(err){
  202. if(err){
  203. callback(1, "Error");
  204. }
  205. else {
  206. callback(0, "");
  207. }
  208. });
  209. }
  210. else if(updateField === "items"){
  211. Bills.update({billsLibId: billsLibId, ID: updateId}, {$addToSet: {items: updateData}}, function(err){
  212. if(err){
  213. callback(1, "Error");
  214. }
  215. else {
  216. callback(0, "");
  217. }
  218. });
  219. }
  220. }
  221. billsLibDao.prototype.updateBillsArr = function(updateData, callback){
  222. var billsLibId = updateData.billsLibId;
  223. var updateId = updateData.updateId;
  224. var field = updateData.field;
  225. var id = updateData.id;
  226. var updateData = updateData.updateData;
  227. if(field === 'jobs'){
  228. if(field == 'code'){
  229. Bills.update({billsLibId: billsLibId, ID: updateId, 'jobs.id': id}, {$set: {'jobs.$.code': updateData}}, function(err){
  230. if(err){
  231. callback(1, 'Error');
  232. }
  233. else {
  234. callback(0, '');
  235. }
  236. });
  237. }
  238. else {
  239. Bills.update({billsLibId: billsLibId, ID: updateId, 'jobs.id': id}, {$set: {'jobs.$.content': updateData}}, function(err){
  240. if(err){
  241. callback(1, 'Error');
  242. }
  243. else {
  244. callback(0, '');
  245. }
  246. });
  247. }
  248. }
  249. else {
  250. if(field == 'code'){
  251. Bills.update({billsLibId: billsLibId, ID: updateId, 'items.id': id}, {$set: {'items.$.code': updateData}}, function(err){
  252. if(err){
  253. callback(1, 'Error');
  254. }
  255. else {
  256. callback(0, '');
  257. }
  258. });
  259. }
  260. else {
  261. Bills.update({billsLibId: billsLibId, ID: updateId, 'items.id': id}, {$set: {'items.$.content': updateData}}, function(err){
  262. if(err){
  263. callback(1, 'Error');
  264. }
  265. else {
  266. callback(0, '');
  267. }
  268. });
  269. }
  270. }
  271. }
  272. billsLibDao.prototype.deleteBills = function(delData, callback){
  273. var deleteIds = delData.deleteIds;
  274. var billsLibId = delData.billsLibId;
  275. if(deleteIds){
  276. //deleteIds.forEach(function(deleteId){
  277. Bills.remove({billsLibId: billsLibId, ID: {$in: deleteIds}}, function(err){
  278. if(err){
  279. callback(1, 'Error');
  280. }
  281. else {
  282. callback(0, '');
  283. }
  284. });
  285. // });
  286. }
  287. }
  288. //--------------JobContent------------------
  289. billsLibDao.prototype.getJobContent = function(gJobData, callback){
  290. var billsLibId = gJobData.billsLibId;
  291. JobContent.find({billsLibId: billsLibId}, "-_id", function(err, jobs){
  292. if(err){
  293. callback(1, "Error", null);
  294. }
  295. else{
  296. callback(0, "", jobs)
  297. }
  298. });
  299. }
  300. billsLibDao.prototype.getSomeJobs = function(gJobData, callback){
  301. var billsLibId = gJobData.billsLibId;
  302. var ids = gJobData.ids;
  303. JobContent.find({billsLibId: billsLibId, id: {$in: ids}}, "-_id", function(err, jobs){
  304. if(err){
  305. callback(1, "Error", null);
  306. }
  307. else{
  308. callback(0, "", jobs)
  309. }
  310. });
  311. }
  312. billsLibDao.prototype.createJobContent = function(cJobData, callback){
  313. var field = cJobData.field;
  314. var data = cJobData.data;
  315. var billsLibId = cJobData.billsLibId;
  316. counter.getIDAfterCount("bills", 1, function(err, result){
  317. var id = result.value.sequence_value;
  318. var newJobContent;
  319. if(field == "code"){
  320. newJobContent = {
  321. id: id,
  322. billsLibId: billsLibId,
  323. code: data,
  324. content: ''
  325. }
  326. }
  327. else if(field == "content"){
  328. newJobContent = {
  329. id: id,
  330. billsLibId: billsLibId,
  331. code: '',
  332. content: data,
  333. }
  334. }
  335. JobContent.create(newJobContent, function(err){
  336. if(err){
  337. callback(1, "Error", null);
  338. console.log('error');
  339. }
  340. else{
  341. console.log(id);
  342. callback(0, "", id);
  343. }
  344. });
  345. });
  346. }
  347. billsLibDao.prototype.updateJobContent = function(uJobData, callback){
  348. var field = uJobData.field;
  349. var updateData = uJobData.data;
  350. var updateid = uJobData.updateId;
  351. if(field == "code"){
  352. JobContent.update({id: updateid}, {$set: {code: updateData}}, function(err){
  353. if(err){
  354. callback(1, "Error");
  355. }
  356. else{
  357. callback(0, "");
  358. }
  359. });
  360. }
  361. else if(field == "content"){
  362. JobContent.update({id: updateid}, {$set: {content: updateData}}, function(err){
  363. if(err){
  364. callback(1, "Error");
  365. }
  366. else{
  367. callback(0, "");
  368. }
  369. });
  370. }
  371. }
  372. billsLibDao.prototype.deleteJobContent = function(jobId, callback){
  373. JobContent.remove({id: jobId}, function(err){
  374. if(err){
  375. callback(1, "Error");
  376. }
  377. else{
  378. callback(0, "");
  379. }
  380. });
  381. }
  382. //----------------------ItemCharacter---------------------
  383. billsLibDao.prototype.getItemCharacter = function(billsLibId, callback){
  384. ItemCharacter.find({billsLibId: billsLibId}, "-_id", function(err, items){
  385. if(err){
  386. callback(1, "Error", null);
  387. }
  388. else{
  389. callback(0, "", items)
  390. }
  391. });
  392. }
  393. billsLibDao.prototype.createItemCharacter = function(cItemData, callback){
  394. var field = cItemData.field;
  395. var data = cItemData.data;
  396. var id = counter.getIDAfterCount("billsLib", 1);
  397. var billsLibId = cItemData.billsLibId;
  398. var newItemCharacter;
  399. if(field == "code"){
  400. newItemCharacter = {
  401. id: id,
  402. billsLibId: billsLibId,
  403. code: data
  404. }
  405. }
  406. else if(field == "content"){
  407. newItemCharacter = {
  408. id: id,
  409. billsLibId: billsLibId,
  410. content: data
  411. }
  412. }
  413. }
  414. billsLibDao.prototype.updateItemCharacter = function(uItemData, callback){
  415. var field = uItemData.field;
  416. var updateData = uItemData.data;
  417. var id = uItemData.id;
  418. if(field == "code"){
  419. ItemCharacter.update({id: id}, {$set: {code: updateData}}, function(err){
  420. if(err){
  421. callback(1, "Error");
  422. }
  423. else{
  424. callback(0, "");
  425. }
  426. });
  427. }
  428. else if(field == "character"){
  429. ItemCharacter.update({id: id}, {$set: {character: updateData}}, function(err){
  430. if(err){
  431. callback(1, "Error");
  432. }
  433. else{
  434. callback(0, "");
  435. }
  436. });
  437. }
  438. }
  439. billsLibDao.prototype.deleteItemCharacter = function(itemId, callback){
  440. JobContent.remove({id: itemId}, function(err){
  441. if(err){
  442. callback(1, "Error");
  443. }
  444. else{
  445. callback(0, "");
  446. }
  447. });
  448. }
  449. //----------------------itemValue
  450. //-----------------------------
  451. module.exports = new billsLibDao();