|
@@ -5,7 +5,8 @@ let mongoose = require("mongoose")
|
|
|
let ration_glj_facade = require('../facade/ration_glj_facade')
|
|
|
const EngineeringLibModel = require("../../users/models/engineering_lib_model");
|
|
|
let logger = require("../../../logs/log_helper").logger;
|
|
|
-const { COMPILATION, COMPLEMENTARY_LIB } = require('../../../public/common_constants');
|
|
|
+const { COMPILATION, COMPLEMENTARY_LIB, ShareLibType } = require('../../../public/common_constants');
|
|
|
+const pmFacade = require('../../pm/facade/pm_facade');
|
|
|
|
|
|
module.exports={
|
|
|
createRationGLJ:createRationGLJ,
|
|
@@ -67,12 +68,18 @@ async function getGLJDataPaging(req, res) {
|
|
|
const compilationId = req.session.sessionCompilation._id;
|
|
|
const userID = req.session.sessionUser.id;
|
|
|
let libData = null;
|
|
|
- if (condition.gljLibID !== COMPLEMENTARY_LIB) {
|
|
|
+ const cptLibReg = new RegExp(COMPLEMENTARY_LIB);
|
|
|
+ if (!cptLibReg.test(condition.gljLibID)) {
|
|
|
condition.gljLibID = +condition.gljLibID;
|
|
|
}
|
|
|
if (condition.initLibs) {
|
|
|
libData = await ration_glj_facade.getLibOptionsForCompilation(compilationId);
|
|
|
- libData.push({ name: '补充工料机', gljLibId: COMPLEMENTARY_LIB });
|
|
|
+ libData.push({ name: '我的补充人材机库', gljLibId: COMPLEMENTARY_LIB });
|
|
|
+ // 设置被分享的人材机库
|
|
|
+ const receiveData = await pmFacade.getReceiveLibList(userID, compilationId, ShareLibType.GLJ_LIB);
|
|
|
+ receiveData.forEach(user => {
|
|
|
+ libData.push({ name: `${user.real_name}的补充人材机库`, gljLibId: `${COMPLEMENTARY_LIB}*${user._id}` });
|
|
|
+ });
|
|
|
if (condition.gljLibID) { // 替换人材机初始化会触发此条件(初始化库且定位了库)
|
|
|
const orgDefalutLib = libData.find(lib => lib.isDefault);
|
|
|
const newDefaultLib = libData.find(lib => lib.gljLibId === condition.gljLibID);
|
|
@@ -85,9 +92,16 @@ async function getGLJDataPaging(req, res) {
|
|
|
if (!condition.gljLibID && libData) {
|
|
|
condition.gljLibID = (libData.find(lib => lib.isDefault) || {}).gljLibId;
|
|
|
}
|
|
|
- const info = condition.gljLibID === COMPLEMENTARY_LIB
|
|
|
+ let info;
|
|
|
+ if (cptLibReg.test(condition.gljLibID)) {
|
|
|
+ const owner = condition.gljLibID.split('*')[1] || userID;
|
|
|
+ info = { gljLibId: null, userID: owner, compilationId };
|
|
|
+ } else {
|
|
|
+ info = { gljLibId: condition.gljLibID, userID: null, compilationId: null };
|
|
|
+ }
|
|
|
+ /* const info = condition.gljLibID === COMPLEMENTARY_LIB
|
|
|
? { gljLibId: null, userID, compilationId }
|
|
|
- : { gljLibId: condition.gljLibID, userID: null, compilationId: null };
|
|
|
+ : { gljLibId: condition.gljLibID, userID: null, compilationId: null }; */
|
|
|
result.data = await ration_glj_facade.getGLJDataPaging(info, condition);
|
|
|
if (req.session.sessionCompilation.priceProperties) {
|
|
|
result.data.priceProperties = req.session.sessionCompilation.priceProperties
|
|
@@ -133,15 +147,23 @@ async function getGLJData(req, res) {
|
|
|
try {
|
|
|
let libData = null;
|
|
|
let { engineerID, gljLibId, isInitial } = req.params;
|
|
|
- if (gljLibId !== COMPLEMENTARY_LIB) {
|
|
|
+ const userID = req.session.sessionUser.id;
|
|
|
+ const compilationId = req.session.sessionCompilation._id;
|
|
|
+ const cptLibReg = new RegExp(COMPLEMENTARY_LIB);
|
|
|
+ if (!cptLibReg.test(gljLibId)) {
|
|
|
gljLibId = +gljLibId;
|
|
|
}
|
|
|
isInitial = JSON.parse(isInitial);
|
|
|
if (!gljLibId || isInitial) { // 替换人材机的话,可能存在gljLibID,但是是初始化的操作
|
|
|
libData = engineerID === COMPILATION
|
|
|
- ? await ration_glj_facade.getLibOptionsForCompilation(req.session.sessionCompilation._id)
|
|
|
+ ? await ration_glj_facade.getLibOptionsForCompilation(compilationId)
|
|
|
: await ration_glj_facade.getLibOptions(engineerID);
|
|
|
libData.push({ name: '补充工料机', gljLibId: COMPLEMENTARY_LIB });
|
|
|
+ // 设置被分享的人材机库
|
|
|
+ const receiveData = await pmFacade.getReceiveLibList(userID, compilationId, ShareLibType.GLJ_LIB);
|
|
|
+ receiveData.forEach(user => {
|
|
|
+ libData.push({ name: `${user.real_name}的补充人材机库`, gljLibId: `${COMPLEMENTARY_LIB}*${user._id}` });
|
|
|
+ });
|
|
|
if (gljLibId) { // 替换人材机初始化会触发此条件
|
|
|
const orgDefalutLib = libData.find(lib => lib.isDefault);
|
|
|
const newDefaultLib = libData.find(lib => lib.gljLibId === gljLibId);
|
|
@@ -155,9 +177,16 @@ async function getGLJData(req, res) {
|
|
|
if (!gljLibId && libData) {
|
|
|
gljLibId = (libData.find(lib => lib.isDefault) || {}).gljLibId;
|
|
|
}
|
|
|
- const info = gljLibId === COMPLEMENTARY_LIB
|
|
|
+ let info;
|
|
|
+ if (cptLibReg.test(gljLibId)) {
|
|
|
+ const owner = gljLibId.split('*')[1] || userID;
|
|
|
+ info = { gljLibId: null, userID: owner, compilationId };
|
|
|
+ } else {
|
|
|
+ info = { gljLibId, userID: null, compilationId: null };
|
|
|
+ }
|
|
|
+/* const info = gljLibId === COMPLEMENTARY_LIB
|
|
|
? { gljLibId: null, userID: req.session.sessionUser.id, compilationId: req.session.sessionCompilation._id }
|
|
|
- : { gljLibId, userID: null, compilationId: null };
|
|
|
+ : { gljLibId, userID: null, compilationId: null }; */
|
|
|
info.skipGLJ = skipGLJ;
|
|
|
ration_glj_facade.getGLJData(info,function (err,datas) {
|
|
|
if(err){
|