123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- /**
- * Created by zhang on 2018/1/22.
- */
- let quantity_detail = require("./quantity_detail_facade");
- let model = require("../../bills_lib/models/bills_lib_model");
- let Bills_Lib = model.billsMod;
- let bill_Model = require('../models/bills').model;
- let _ = require("lodash");
- module.exports={
- getSectionInfo : async function (data) {
- let conditions=[];
- let fxList=[];
- let sectionInfo ={};
- for(let libID in data){
- let codes=[];
- let temp={};
- codes= _.keys(data[libID]);
- temp['billsLibId']=libID;
- temp['code'] = {"$in": codes};
- conditions.push(temp);
- }
- if(conditions.length>0){
- fxList = await Bills_Lib.find({"$or":conditions});
- }
- if(fxList.length>0){
- let sectionIDs = {};
- for(let f of fxList){
- if(f._doc.sectionInfo){
- f._doc.sectionInfo.first?sectionIDs[f._doc.sectionInfo.first]=true:"";
- f._doc.sectionInfo.second?sectionIDs[f._doc.sectionInfo.second]=true:"";
- f._doc.sectionInfo.third?sectionIDs[f._doc.sectionInfo.third]=true:"";
- }
- }
- let IDList = _.keys(sectionIDs);
- let sectionList = await Bills_Lib.find({'ID':{'$in':IDList}});
- let sectionMap = _.mapKeys(sectionList,'ID');
- let fxMap = _.mapKeys(fxList,'code');
- sectionInfo={
- fxMap:fxMap,
- sectionMap :sectionMap
- }
- return sectionInfo;
- }
- return null;
- },
- reorganizeFBFX:async function(data){
- let result = {};
- let tasks = generateBillTasks(data);
- if(data.delete && data.delete.length > 0){
- let qd_query={projectID: data.projectID, billID: {"$in": data.delete}};
- await quantity_detail.deleteByQuery(qd_query) ;
- }
- if(tasks.length > 0){
- result =await bill_Model.bulkWrite(tasks);
- }
- return result;
- }
- }
- function generateBillTasks(data) {
- let tasks=[];
- let user_id = data.user_id,projectID = data.projectID;
- let deleteInfo={deleted: true, deleteDateTime: new Date(), deleteBy: user_id};
- if(data.delete && data.delete.length > 0){
- for(let d_ID of data.delete){
- let task={
- updateOne:{
- filter:{
- ID:d_ID,
- projectID:projectID
- },
- update :{
- deleteInfo:deleteInfo
- }
- }
- };
- tasks.push(task);
- }
- }
- if(data.update && data.update.length > 0){
- for(let u_data of data.update){
- let task ={
- updateOne:{
- filter : {
- ID:u_data.ID,
- projectID:projectID
- },
- update : u_data.data
- }
- };
- tasks.push(task);
- }
- }
- if(data.create && data.create.length > 0){
- for(let n_data of data.create){
- let task = {
- insertOne :{
- document:n_data
- }
- };
- tasks.push(task);
- }
- }
- return tasks;
- }
|