|
@@ -69,8 +69,8 @@ const GCommonGandartHeads = {
|
|
|
'Accept-Language': `zh-CN,zh-Hans;q=0.9`,
|
|
'Accept-Language': `zh-CN,zh-Hans;q=0.9`,
|
|
|
'token': gandartToken
|
|
'token': gandartToken
|
|
|
};
|
|
};
|
|
|
-
|
|
|
|
|
-const gMaterialDetails = {};
|
|
|
|
|
|
|
+let gAllMaterialDetails = null;
|
|
|
|
|
+const gUsedMaterialDetails = {};
|
|
|
let gFuncEnables = lk.getVal(GandartConstKey.CompositeFuncEnalbleList);
|
|
let gFuncEnables = lk.getVal(GandartConstKey.CompositeFuncEnalbleList);
|
|
|
if (!lk.isEmpty(gFuncEnables)) {
|
|
if (!lk.isEmpty(gFuncEnables)) {
|
|
|
gFuncEnables = gFuncEnables.split(',');
|
|
gFuncEnables = gFuncEnables.split(',');
|
|
@@ -259,7 +259,7 @@ function printMaterialGroupsInfo(materialGroups) {
|
|
|
lk.log(detailStr);
|
|
lk.log(detailStr);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-async function checkGetMaterialDetails(gMaterialDetails, materialDict) {
|
|
|
|
|
|
|
+async function checkGetMaterialDetails(gUsedMaterialDetails, materialDict) {
|
|
|
let useCache = lk.getVal(GandartConstKey.CompositeMaterialCache);
|
|
let useCache = lk.getVal(GandartConstKey.CompositeMaterialCache);
|
|
|
if (!lk.isEmpty(useCache)) {
|
|
if (!lk.isEmpty(useCache)) {
|
|
|
useCache = JSON.parse(useCache);
|
|
useCache = JSON.parse(useCache);
|
|
@@ -273,8 +273,9 @@ async function checkGetMaterialDetails(gMaterialDetails, materialDict) {
|
|
|
if (!lk.isEmpty(jsonStr)) {
|
|
if (!lk.isEmpty(jsonStr)) {
|
|
|
try {
|
|
try {
|
|
|
let data = JSON.parse(jsonStr);
|
|
let data = JSON.parse(jsonStr);
|
|
|
|
|
+ gAllMaterialDetails = data;
|
|
|
for (let k in materialDict) {
|
|
for (let k in materialDict) {
|
|
|
- gMaterialDetails[k] = data[k];
|
|
|
|
|
|
|
+ gUsedMaterialDetails[k] = data[k];
|
|
|
}
|
|
}
|
|
|
} catch (error) {
|
|
} catch (error) {
|
|
|
lk.logErr(error);
|
|
lk.logErr(error);
|
|
@@ -289,10 +290,10 @@ async function checkGetMaterialDetails(gMaterialDetails, materialDict) {
|
|
|
if (isReqServerData) {
|
|
if (isReqServerData) {
|
|
|
for (let k in materialDict) {
|
|
for (let k in materialDict) {
|
|
|
let mInfo = materialDict[k];
|
|
let mInfo = materialDict[k];
|
|
|
- gMaterialDetails[k] = await getDetailByCasting(mInfo.castingId, mInfo.collectionName);
|
|
|
|
|
|
|
+ gUsedMaterialDetails[k] = await getDetailByCasting(mInfo.castingId, mInfo.collectionName);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
- return gMaterialDetails;
|
|
|
|
|
|
|
+ return gUsedMaterialDetails;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
async function tryToExecCompositeTask(taskId, taskInfo = {}) {
|
|
async function tryToExecCompositeTask(taskId, taskInfo = {}) {
|
|
@@ -326,9 +327,9 @@ async function tryToExecCompositeTask(taskId, taskInfo = {}) {
|
|
|
// printMaterialGroupsInfo(materialGroups);
|
|
// printMaterialGroupsInfo(materialGroups);
|
|
|
let materialDict = ret[1];
|
|
let materialDict = ret[1];
|
|
|
// 获取用户材料拥有详情
|
|
// 获取用户材料拥有详情
|
|
|
- await checkGetMaterialDetails(gMaterialDetails, materialDict);
|
|
|
|
|
|
|
+ await checkGetMaterialDetails(gUsedMaterialDetails, materialDict);
|
|
|
// 找出可行的合成搭配
|
|
// 找出可行的合成搭配
|
|
|
- let validCompositeGroups = findValidGroupMaterialGroups(materialGroups, gMaterialDetails);
|
|
|
|
|
|
|
+ let validCompositeGroups = findValidGroupMaterialGroups(materialGroups, gUsedMaterialDetails);
|
|
|
setCompositeTaskMateListForDisplay(validCompositeGroups);
|
|
setCompositeTaskMateListForDisplay(validCompositeGroups);
|
|
|
// printMaterialGroupsInfo(validCompositeGroups, '预估可行组合数');
|
|
// printMaterialGroupsInfo(validCompositeGroups, '预估可行组合数');
|
|
|
|
|
|
|
@@ -338,7 +339,7 @@ async function tryToExecCompositeTask(taskId, taskInfo = {}) {
|
|
|
for (let k in compositeCountDict) {
|
|
for (let k in compositeCountDict) {
|
|
|
let mGroup = validCompositeGroups[k];
|
|
let mGroup = validCompositeGroups[k];
|
|
|
if (mGroup) {
|
|
if (mGroup) {
|
|
|
- let arr = checkPickMaterialForComposite(mGroup, gMaterialDetails, compositeCountDict[k]);
|
|
|
|
|
|
|
+ let arr = checkPickMaterialForComposite(mGroup, gUsedMaterialDetails, compositeCountDict[k]);
|
|
|
finalGroups = finalGroups.concat(arr);
|
|
finalGroups = finalGroups.concat(arr);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -348,7 +349,7 @@ async function tryToExecCompositeTask(taskId, taskInfo = {}) {
|
|
|
if (isExecFinalComposite()) {
|
|
if (isExecFinalComposite()) {
|
|
|
if (finalGroups.length == 0) {
|
|
if (finalGroups.length == 0) {
|
|
|
lk.log('暂无可行的合成组合,请检查');
|
|
lk.log('暂无可行的合成组合,请检查');
|
|
|
- lk.appendNotifyInfo('⚠️暂无可行的合成组合');
|
|
|
|
|
|
|
+ // lk.appendNotifyInfo('⚠️暂无可行的合成组合');
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
await doExecFinalComposite(taskId, taskInfo, finalGroups);
|
|
await doExecFinalComposite(taskId, taskInfo, finalGroups);
|
|
@@ -409,11 +410,14 @@ async function doExecFinalComposite(taskId, taskInfo, finalGroups) {
|
|
|
lk.log(`库存不足单数:${noStockCnt}`);
|
|
lk.log(`库存不足单数:${noStockCnt}`);
|
|
|
|
|
|
|
|
// 从高的序号删除
|
|
// 从高的序号删除
|
|
|
|
|
+ let usedGroups = [];
|
|
|
for (let i = retWillDelLst.length - 1; i >= 0; i--) {
|
|
for (let i = retWillDelLst.length - 1; i >= 0; i--) {
|
|
|
let idx = retWillDelLst[i];
|
|
let idx = retWillDelLst[i];
|
|
|
|
|
+ usedGroups.push(finalGroups[idx]);
|
|
|
finalGroups.splice(idx, 1);
|
|
finalGroups.splice(idx, 1);
|
|
|
}
|
|
}
|
|
|
setCompositeTaskFinalList(taskInfo, finalGroups);
|
|
setCompositeTaskFinalList(taskInfo, finalGroups);
|
|
|
|
|
+ refreshMaterialAfterComposite(usedGroups);
|
|
|
} else {
|
|
} else {
|
|
|
lk.log('合成成功单数:0');
|
|
lk.log('合成成功单数:0');
|
|
|
}
|
|
}
|
|
@@ -433,6 +437,20 @@ function setCompositeTaskFinalList(taskInfo, finalGroups) {
|
|
|
lk.setVal(GandartConstKey.CompositeTaskFinalList, JSON.stringify(finalCacheData, null, 2));
|
|
lk.setVal(GandartConstKey.CompositeTaskFinalList, JSON.stringify(finalCacheData, null, 2));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+function refreshMaterialAfterComposite(usedGroups) {
|
|
|
|
|
+ if (!gAllMaterialDetails) {
|
|
|
|
|
+ let jsonStr = lk.getVal(GandartConstKey.PrivCollectionDetail);
|
|
|
|
|
+ if (!lk.isEmpty(jsonStr)) {
|
|
|
|
|
+ try {
|
|
|
|
|
+ let data = JSON.parse(jsonStr);
|
|
|
|
|
+ gAllMaterialDetails = data;
|
|
|
|
|
+ } catch (error) {
|
|
|
|
|
+ lk.logErr(error);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
function getCompositeTaskFinalList() {
|
|
function getCompositeTaskFinalList() {
|
|
|
let data;
|
|
let data;
|
|
|
let jsonStr = lk.getVal(GandartConstKey.CompositeTaskFinalList);
|
|
let jsonStr = lk.getVal(GandartConstKey.CompositeTaskFinalList);
|