|
@@ -35,7 +35,10 @@ module.exports = {
|
|
|
getQuantityByProjectGLJ: getQuantityByProjectGLJ,
|
|
|
getLibInfo: getLibInfo,
|
|
|
getGLJData: getGLJData,
|
|
|
+ getGLJDataByCodes:getGLJDataByCodes,
|
|
|
addGLJ: addGLJ,
|
|
|
+ deleteGLJ:deleteGLJ,
|
|
|
+ insertAddTypeGLJ:insertAddTypeGLJ,
|
|
|
replaceGLJ: replaceGLJ,
|
|
|
mReplaceGLJ: mReplaceGLJ,
|
|
|
updateRationGLJByEdit: updateRationGLJByEdit,
|
|
@@ -45,7 +48,8 @@ module.exports = {
|
|
|
getInfoFromProjectGLJ:getInfoFromProjectGLJ,
|
|
|
createNewRecord:createNewRecord,
|
|
|
getGLJSearchInfo:getGLJSearchInfo,
|
|
|
- updateRationGLJFromDoc:updateRationGLJFromDoc
|
|
|
+ updateRationGLJFromDoc:updateRationGLJFromDoc,
|
|
|
+ getGLJLibByEngineerID:getGLJLibByEngineerID
|
|
|
}
|
|
|
|
|
|
let operationMap = {
|
|
@@ -383,6 +387,9 @@ function deleteByID(datas, callback) {
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
+async function deleteGLJ(IDs) {
|
|
|
+ await ration_glj.deleteMany({'ID': {$in: IDs}});
|
|
|
+}
|
|
|
|
|
|
async function deleteAndUpdateState(datas) {
|
|
|
let result = {
|
|
@@ -506,12 +513,10 @@ function save(user_id, datas, callback) {
|
|
|
}
|
|
|
|
|
|
async function getLibInfo(req) {
|
|
|
- let gljLibId = null, engineerID, sessionCompilation = req.session.sessionCompilation,
|
|
|
- engineeringLibModel = new EngineeringLibModel() ;
|
|
|
+ let gljLibId = null, engineerID, sessionCompilation = req.session.sessionCompilation;
|
|
|
engineerID = req.params.engineerID;
|
|
|
if(engineerID){
|
|
|
- let engineeringInfo = await engineeringLibModel.findDataByCondition({'_id': engineerID});
|
|
|
- gljLibId = engineeringInfo.glj_lib.length > 0 && typeof engineeringInfo.glj_lib !== 'undefined' ? engineeringInfo.glj_lib[0].id : null;
|
|
|
+ gljLibId = await getGLJLibByEngineerID(engineerID);
|
|
|
}else {
|
|
|
throw new Error("工程专业ID为空!");
|
|
|
}
|
|
@@ -524,6 +529,14 @@ async function getLibInfo(req) {
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
+async function getGLJLibByEngineerID (engineerID) {
|
|
|
+ let engineeringLibModel = new EngineeringLibModel() ;
|
|
|
+ let engineeringInfo = await engineeringLibModel.findDataByCondition({'_id': engineerID});
|
|
|
+ let gljLibId = engineeringInfo.glj_lib.length > 0 && typeof engineeringInfo.glj_lib !== 'undefined' ? engineeringInfo.glj_lib[0].id : null;
|
|
|
+ return gljLibId
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
function getGLJData(info, callback) {
|
|
|
let gljDao = new GljDao();
|
|
|
let datas = {};
|
|
@@ -603,8 +616,22 @@ async function prepareExtData(projectID,compilation) {
|
|
|
|
|
|
|
|
|
async function addGLJ(rgList,compilation) {
|
|
|
- let newRecodes = [];
|
|
|
if (rgList.length <= 0) return {};
|
|
|
+ let newRecodes = await insertAddTypeGLJ(rgList,compilation);
|
|
|
+ let stateResult = await glj_calculate_facade.calculateQuantity({
|
|
|
+ projectID: rgList[0].projectID,
|
|
|
+ rationID: rgList[0].rationID
|
|
|
+ });
|
|
|
+ let result = {
|
|
|
+ newRecodes: newRecodes,
|
|
|
+ showData: rgList,
|
|
|
+ adjustState: stateResult.adjustState
|
|
|
+ };
|
|
|
+ return result;
|
|
|
+}
|
|
|
+
|
|
|
+async function insertAddTypeGLJ(rgList,compilation) {
|
|
|
+ let newRecodes = [];
|
|
|
let [unitFileId,ext] = await prepareExtData(rgList[0].projectID,compilation);
|
|
|
for (let g of rgList) {
|
|
|
let projectGljModel = new GLJListModel();
|
|
@@ -625,19 +652,10 @@ async function addGLJ(rgList,compilation) {
|
|
|
newRecodes.push(createNewRecord(g));
|
|
|
}
|
|
|
await ration_glj.insertMany(newRecodes);
|
|
|
-
|
|
|
- let stateResult = await glj_calculate_facade.calculateQuantity({
|
|
|
- projectID: rgList[0].projectID,
|
|
|
- rationID: rgList[0].rationID
|
|
|
- });
|
|
|
- let result = {
|
|
|
- newRecodes: newRecodes,
|
|
|
- showData: rgList,
|
|
|
- adjustState: stateResult.adjustState
|
|
|
- }
|
|
|
- return result;
|
|
|
+ return newRecodes;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
async function replaceGLJ(data,compilation) {
|
|
|
let rdata = {};
|
|
|
let projectGljModel = new GLJListModel();
|
|
@@ -835,6 +853,28 @@ async function changAdjustState(data, rationList) {
|
|
|
return stateList;
|
|
|
}
|
|
|
|
|
|
+async function getGLJDataByCodes(data,compilation) {
|
|
|
+ let gljLibId = await getGLJLibByEngineerID(data.engineerID);
|
|
|
+ let gljDatas = [];
|
|
|
+ if(gljLibId){
|
|
|
+ let stdList = await std_glj_lib_gljList_model.find({'repositoryId':gljLibId,code:{'$in':data.codes}});
|
|
|
+ if(stdList.length > 0){
|
|
|
+ let property = await projectDao.getProjectProperty(data.projectID);
|
|
|
+ let ext = projectDao.getExtendData(property,compilation);//多单价处理
|
|
|
+ for(let s of stdList){
|
|
|
+ let tem = JSON.parse(JSON.stringify(s));
|
|
|
+ if(ext && ext.priceField && tem && tem.priceProperty){
|
|
|
+ tem.basePrice = tem.priceProperty[ext.priceField];
|
|
|
+ }
|
|
|
+ gljDatas.push(tem);
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return gljDatas
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
async function testError() {
|
|
|
throw new Error('test Error');
|
|
|
}
|