|
@@ -219,17 +219,22 @@ const gclCompareModel = (function () {
|
|
|
const posRange = gsPos.getLedgerPos(node.id);
|
|
|
const detail = posRange && posRange.length > 0 ? posRange : [node];
|
|
|
for (const d of detail) {
|
|
|
- const dx = _.assign({}, cacheLeafXmj);
|
|
|
- gatherfields(dx, d, ledgerSetting.posFields, ledgerSetting.prefix);
|
|
|
- dx.gcl_id = node.id;
|
|
|
- if (d.name !== node.name) {
|
|
|
- dx.bwmx = d.name;
|
|
|
- dx.mx_id = d.id;
|
|
|
- }
|
|
|
- if (d.drawing_code) {
|
|
|
- dx.drawing_code = d.drawing_code;
|
|
|
+ const lx = gcl.leafXmjs.find(x => {return x.id === leafXmj.id && (x.mx_id === d.id || x.gcl_id === d.id)});
|
|
|
+ if (lx) {
|
|
|
+ gatherfields(lx, d, ledgerSetting.posFields, ledgerSetting.prefix);
|
|
|
+ } else {
|
|
|
+ const dx = _.assign({}, cacheLeafXmj);
|
|
|
+ gatherfields(dx, d, ledgerSetting.posFields, ledgerSetting.prefix);
|
|
|
+ dx.gcl_id = node.id;
|
|
|
+ if (d.name !== node.name) {
|
|
|
+ dx.bwmx = d.name;
|
|
|
+ dx.mx_id = d.id;
|
|
|
+ }
|
|
|
+ if (d.drawing_code) {
|
|
|
+ dx.drawing_code = d.drawing_code;
|
|
|
+ }
|
|
|
+ gcl.leafXmjs.push(dx);
|
|
|
}
|
|
|
- gcl.leafXmjs.push(dx);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -338,7 +343,7 @@ const gclCompareModel = (function () {
|
|
|
function gatherLedgerData(bills, pos, setting) {
|
|
|
ledgerSetting = setting;
|
|
|
try {
|
|
|
- //if (leafXmjs.length > 0) leafXmjs.length = 0;
|
|
|
+ if (leafXmjs.length > 0) leafXmjs.length = 0;
|
|
|
gsTree = createNewPathTree('ledger', setting.tree);
|
|
|
gsTree.loadDatas(bills);
|
|
|
const gsPos = new PosData(setting.pos);
|