|
@@ -10,7 +10,6 @@ let rationRepositoryDao = require('./repository_map');
|
|
|
const scMathUtil = require('../../../public/scMathUtil').getUtil();
|
|
|
const rationItemModel = mongoose.model('std_ration_lib_ration_items');
|
|
|
const stdRationLibModel = mongoose.model('std_ration_lib_map');
|
|
|
-const stdRationSectionModel = mongoose.model('std_ration_lib_ration_chapter_trees');
|
|
|
const compleRationModel = mongoose.model('complementary_ration_items');
|
|
|
import STDGLJListModel from '../../std_glj_lib/models/gljModel';
|
|
|
import InstallationDao from '../models/installation';
|
|
@@ -21,6 +20,82 @@ import stdgljutil from "../../../public/cache/std_glj_type_util";
|
|
|
|
|
|
var rationItemDAO = function(){};
|
|
|
|
|
|
+/* rationItemDAO.prototype.copyLib = async function (sourceLibID, targetLibID) {
|
|
|
+ // coe-list
|
|
|
+ const coeIDMap = {};
|
|
|
+ const newCoeData = [];
|
|
|
+ const sourceCoeData = await _stdRationCoeModel.find({ libID: sourceLibID }, '-_id').lean();
|
|
|
+ const coeCount = await counter.counterDAO.getIDAfterCount(counter.moduleName.coeList, sourceCoeData.length);
|
|
|
+ const coeIdx = coeCount.sequence_value - (sourceCoeData.length - 1);
|
|
|
+ sourceCoeData.forEach((coe, index) => {
|
|
|
+ coeIDMap[coe.ID] = coeIdx + index;
|
|
|
+ newCoeData.push({
|
|
|
+ ...coe,
|
|
|
+ libID: targetLibID,
|
|
|
+ ID: coeIDMap[coe.ID]
|
|
|
+ });
|
|
|
+ });
|
|
|
+ await stdRationCoeModel.insertMany(newCoeData);
|
|
|
+ // ration-section
|
|
|
+ const sectionIDMap = {};
|
|
|
+ const newSectionData = [];
|
|
|
+ const sourceSectionData = await _stdRationSectionModel.find({ rationRepId: sourceLibID }, '-_id').lean();
|
|
|
+ const sectionCount = await counter.counterDAO.getIDAfterCount(counter.moduleName.rationTree, sourceSectionData.length);
|
|
|
+ const sectionIdx = sectionCount.sequence_value - (sourceSectionData.length - 1);
|
|
|
+ sourceSectionData.forEach((section, index) => {
|
|
|
+ sectionIDMap[section.ID] = sectionIdx + index;
|
|
|
+ });
|
|
|
+ sourceSectionData.forEach(section => {
|
|
|
+ newSectionData.push({
|
|
|
+ ...section,
|
|
|
+ rationRepId: targetLibID,
|
|
|
+ ID: sectionIDMap[section.ID],
|
|
|
+ ParentID: sectionIDMap[section.ParentID] || -1,
|
|
|
+ NextSiblingID: sectionIDMap[section.NextSiblingID] || -1
|
|
|
+ });
|
|
|
+ });
|
|
|
+ await stdRationSectionModel.insertMany(newSectionData);
|
|
|
+ // glj
|
|
|
+ const sourceGLJData = await stdGLJModel.find({ repositoryId: 182 }, '-_id').lean();
|
|
|
+ const gljIDMap = {};
|
|
|
+ sourceGLJData.forEach(glj => {
|
|
|
+ gljIDMap[glj.orgID] = glj.ID;
|
|
|
+ });
|
|
|
+ const newGLJData = sourceGLJData.map(glj => {
|
|
|
+ delete glj.orgID;
|
|
|
+ return glj;
|
|
|
+ });
|
|
|
+ await stdGLJModel.remove({ repositoryId: 182 }); // 5412
|
|
|
+ await stdGLJModel.insertMany(newGLJData);
|
|
|
+ // ration
|
|
|
+ const newRationData = [];
|
|
|
+ const sourceRationData = await _rationItemModel.find({ rationRepId: sourceLibID }, '-_id').lean();
|
|
|
+ const rationCount = await counter.counterDAO.getIDAfterCount(counter.moduleName.rations, sourceRationData.length);
|
|
|
+ const rationIdx = rationCount.sequence_value - (sourceRationData.length - 1);
|
|
|
+ sourceRationData.forEach((ration, index) => {
|
|
|
+ const rationID = rationIdx + index;
|
|
|
+ const sectionID = sectionIDMap[ration.sectionId];
|
|
|
+ const newRationCoeList = (ration.rationCoeList || []).map(rCoe => ({
|
|
|
+ no: rCoe.no,
|
|
|
+ ID: coeIDMap[rCoe.ID]
|
|
|
+ }));
|
|
|
+ const newRationGLJList = (ration.rationGljList || []).map(rGLJ => ({
|
|
|
+ ...rGLJ,
|
|
|
+ gljId: gljIDMap[rGLJ.gljId],
|
|
|
+ }));
|
|
|
+ newRationData.push({
|
|
|
+ ...ration,
|
|
|
+ rationRepId: targetLibID,
|
|
|
+ ID: rationID,
|
|
|
+ sectionId: sectionID,
|
|
|
+ rationCoeList: newRationCoeList,
|
|
|
+ rationGljList: newRationGLJList
|
|
|
+ });
|
|
|
+ });
|
|
|
+ await rationItemModel.insertMany(newRationData);
|
|
|
+
|
|
|
+};
|
|
|
+ */
|
|
|
// 由于导入excel时,excel数据存在负的工程量,所以导入后一些定额人材机的消耗量可能为负,需要处理
|
|
|
rationItemDAO.prototype.handleMinusQuantity = async function() {
|
|
|
const updateTask = [];
|
|
@@ -46,8 +121,6 @@ rationItemDAO.prototype.handleMinusQuantity = async function() {
|
|
|
if (updateTask.length) {
|
|
|
await rationItemModel.bulkWrite(updateTask);
|
|
|
}
|
|
|
- console.log(`repIDs`);
|
|
|
- console.log(repIDs);
|
|
|
};
|
|
|
|
|
|
rationItemDAO.prototype.prepareInitData = async function (rationRepId) {
|