|
@@ -662,18 +662,43 @@ ProjectsDAO.prototype.updateProjectProperty = async function(projectId, property
|
|
};
|
|
};
|
|
|
|
|
|
// CSL, 2018-01-11 获取指定ID节点(如单项工程、建设项目)下所有单位工程的各项汇总金额,用于报表计算汇总。
|
|
// CSL, 2018-01-11 获取指定ID节点(如单项工程、建设项目)下所有单位工程的各项汇总金额,用于报表计算汇总。
|
|
-ProjectsDAO.prototype.getSummaryFees = function (projectID, callback) {
|
|
|
|
- Projects.find({'ParentID': projectID}, ['-_id','-property'], function (err, datas) {
|
|
|
|
- if (err) {
|
|
|
|
- callback(1, '查找单位工程失败');
|
|
|
|
- } else {
|
|
|
|
|
|
+ProjectsDAO.prototype.getSummaryFees = async function (ID) {
|
|
|
|
+ async function getProject(ID){
|
|
|
|
+ return await Projects.findOne({'ID': ID, deleteInfo: null}, need);
|
|
|
|
+ };
|
|
|
|
+ async function getChildrenDocs(IDs){
|
|
|
|
+ return await Projects.find({'ParentID': {"$in":IDs}, deleteInfo: null}, need);
|
|
|
|
+ };
|
|
|
|
+ async function getEgrIDs(ID){
|
|
|
|
+ let _docs = await Projects.find({'ParentID': ID, deleteInfo: null}, ['ID', '-_id']);
|
|
|
|
+ let arr = [];
|
|
|
|
+ for (let doc of _docs){
|
|
|
|
+ arr.push(doc.ID);
|
|
|
|
+ };
|
|
|
|
+ return arr;
|
|
|
|
+ };
|
|
|
|
|
|
- callback(0, datas);
|
|
|
|
- }
|
|
|
|
- });
|
|
|
|
|
|
+ let need = ['ID', 'ParentID', 'NextSiblingID', 'name', 'projType',
|
|
|
|
+ 'fullFolder', 'summaryFees', '-_id'];
|
|
|
|
+ let _doc = await getProject(ID);
|
|
|
|
+ if (!_doc) return _doc;
|
|
|
|
+
|
|
|
|
+ if (_doc.projType.sameText('Engineering')){
|
|
|
|
+ return await getChildrenDocs([ID]);
|
|
|
|
+ }
|
|
|
|
+ else if (_doc.projType.sameText('Project')){
|
|
|
|
+ let eIDs = await getEgrIDs(ID);
|
|
|
|
+ return await getChildrenDocs(eIDs);
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ return _doc;
|
|
|
|
+ };
|
|
};
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
module.exports ={ project: new ProjectsDAO(),
|
|
module.exports ={ project: new ProjectsDAO(),
|
|
projType: projectType,
|
|
projType: projectType,
|
|
fileType: fileType
|
|
fileType: fileType
|