|
@@ -3031,7 +3031,72 @@ billsLibDao.prototype.edUpdateItem = function(data, callback){
|
|
|
};
|
|
|
//
|
|
|
|
|
|
-billsLibDao.prototype.getStdBillsByCode = function (data, callback) {
|
|
|
+billsLibDao.prototype.getStdBillsByCode = async function (data, callback) {
|
|
|
+ let findData = function (value, field, Array) {
|
|
|
+ let i = 0;
|
|
|
+ for (i = 0; i < Array.length; i++) {
|
|
|
+ if (value[field] === Array[i][field]) {
|
|
|
+ return Array[i];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ };
|
|
|
+ let MergeData = function (arr) {
|
|
|
+ let result = "", count = 0;
|
|
|
+ for(let i = 0; i < arr.length; i++){
|
|
|
+ if(arr[i].isChecked === true){
|
|
|
+ count += 1;
|
|
|
+ if (count === 1) {
|
|
|
+ result += count + ". " + arr[i].content;
|
|
|
+ } else {
|
|
|
+ result += "\n" + count + ". " + arr[i].content;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+ try{
|
|
|
+ let bills = await Bills.findOne({billsLibId: data.billsLibId, code: data.code, deleted: false}, '-_id');
|
|
|
+ //设置清单备注(父项清单补注)
|
|
|
+ if(bills.ParentID != -1){
|
|
|
+ let parentBills = await Bills.findOne({billsLibId: data.billsLibId, ID: bills.ParentID, deleted: false});
|
|
|
+ if(parentBills && parentBills.recharge){
|
|
|
+ bills.recharge = parentBills.recharge;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(bills){
|
|
|
+ //设置项目特征
|
|
|
+ let itemCharacters = await ItemCharacter.find({billsLibId: data.billsLibId, deleted: false}, '-_id');
|
|
|
+ bills._doc.itemCharacter = [];
|
|
|
+ if(itemCharacters && bills.items){
|
|
|
+ for(let item of bills.items){
|
|
|
+ let itemData = findData(item, 'id', itemCharacters);
|
|
|
+ if(itemData){
|
|
|
+ bills._doc.itemCharacter.push(itemData);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ bills._doc.itemCharacterText = MergeData(bills._doc.itemCharacter);
|
|
|
+ //设置工作内容
|
|
|
+ let jobContents = await JobContent.find({billsLibId: data.billsLibId, deleted: false}, '-_id');
|
|
|
+ bills._doc.jobContent = [];
|
|
|
+ if(jobContents && bills.jobs){
|
|
|
+ for(let job of bills.jobs){
|
|
|
+ let jobData = findData(job, 'id', jobContents);
|
|
|
+ jobData.isChecked = true;
|
|
|
+ bills._doc.jobContent.push(jobData);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ bills._doc.jobContentText = MergeData(bills._doc.jobContent);
|
|
|
+ }
|
|
|
+ callback(0, '', bills);
|
|
|
+
|
|
|
+ }
|
|
|
+ catch(err){
|
|
|
+ callback(1, err, null);
|
|
|
+ }
|
|
|
+};
|
|
|
+billsLibDao.prototype.getStdBillsByCodet = function (data, callback) {
|
|
|
let findData = function (value, field, Array) {
|
|
|
let i = 0;
|
|
|
for (i = 0; i < Array.length; i++) {
|
|
@@ -3067,23 +3132,23 @@ billsLibDao.prototype.getStdBillsByCode = function (data, callback) {
|
|
|
if (err) {
|
|
|
callback(err, bills);
|
|
|
} else {
|
|
|
- bills.itemCharacter = [];
|
|
|
+ bills._doc.itemCharacter = [];
|
|
|
if (result && bills && bills.items) {
|
|
|
for (let item of bills.items) {
|
|
|
let itemData = findData(item, 'id', result);
|
|
|
if (itemData) {
|
|
|
- bills.itemCharacter.push(JSON.parse(JSON.stringify(itemData)));
|
|
|
+ bills._doc.itemCharacter.push(JSON.parse(JSON.stringify(itemData)));
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- bills.itemCharacterText = MergeData(bills.itemCharacter);
|
|
|
+ bills._doc.itemCharacterText = MergeData(bills.itemCharacter);
|
|
|
callback(err, bills);
|
|
|
}
|
|
|
});
|
|
|
} else {
|
|
|
callback(null, bills);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
},
|
|
|
function (bills, callback) {
|
|
|
if (bills) {
|