|
@@ -87,10 +87,10 @@ async function calculateQuantity(query,noNeedCal=null,refreshRationName = false)
|
|
|
gljList = gljUtil.sortRationGLJ(gljList);
|
|
gljList = gljUtil.sortRationGLJ(gljList);
|
|
|
for(let i =0;i<gljList.length;i++ ){
|
|
for(let i =0;i<gljList.length;i++ ){
|
|
|
let r = await calculateQuantityPerGLJ(gljList[i],gljList,coeList,assList,adjustState,mixRatioMap,noNeedCal);
|
|
let r = await calculateQuantityPerGLJ(gljList[i],gljList,coeList,assList,adjustState,mixRatioMap,noNeedCal);
|
|
|
- result.glj_result.push(r);
|
|
|
|
|
|
|
+ if(quantityUpdateCheck(gljList[i],r) == true) result.glj_result.push(r);
|
|
|
}
|
|
}
|
|
|
if(noNeedCal==null){
|
|
if(noNeedCal==null){
|
|
|
- await ration_glj.bulkWrite(generateUpdateTasks(result.glj_result));
|
|
|
|
|
|
|
+ await ration_glj.bulkWrite(generateUpdateTasks(result.glj_result));
|
|
|
}
|
|
}
|
|
|
adjustState= _.sortByOrder(adjustState, ['index'], ['asc']);
|
|
adjustState= _.sortByOrder(adjustState, ['index'], ['asc']);
|
|
|
adjustState=_.map(adjustState, _.property('content'));
|
|
adjustState=_.map(adjustState, _.property('content'));
|
|
@@ -110,6 +110,13 @@ async function calculateQuantity(query,noNeedCal=null,refreshRationName = false)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+function quantityUpdateCheck(glj,r) {//检查,有改变的才更新
|
|
|
|
|
+ for(let key in r.doc){
|
|
|
|
|
+ if(glj._doc[key] != r.doc[key]) return true
|
|
|
|
|
+ }
|
|
|
|
|
+ return false
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
function generateRationName(ration,gljList) {
|
|
function generateRationName(ration,gljList) {
|
|
|
let caption = ration.caption ? ration.caption:ration.name;
|
|
let caption = ration.caption ? ration.caption:ration.name;
|
|
|
let replaceList = [];
|
|
let replaceList = [];
|
|
@@ -158,7 +165,7 @@ function generateUpdateTasks(result) {
|
|
|
filter: result[i].query,
|
|
filter: result[i].query,
|
|
|
update: result[i].doc
|
|
update: result[i].doc
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
|
|
+ };
|
|
|
tasks.push(task);
|
|
tasks.push(task);
|
|
|
}
|
|
}
|
|
|
return tasks;
|
|
return tasks;
|
|
@@ -179,8 +186,7 @@ async function calculateQuantityPerGLJ(glj,gljList,coeList,assList,adjustState,m
|
|
|
let quantity = scMathUtil.roundTo(parseFloat(glj.quantity),-decimal);
|
|
let quantity = scMathUtil.roundTo(parseFloat(glj.quantity),-decimal);
|
|
|
let result={
|
|
let result={
|
|
|
query:{
|
|
query:{
|
|
|
- ID:glj.ID,
|
|
|
|
|
- projectID:glj.projectID
|
|
|
|
|
|
|
+ ID:glj.ID
|
|
|
},
|
|
},
|
|
|
doc:{
|
|
doc:{
|
|
|
quantity: quantity
|
|
quantity: quantity
|