|
@@ -133,7 +133,7 @@ module.exports = app => {
|
|
|
if (stage) {
|
|
|
lastAuditor = await ctx.service.stageAudit.getLastestAuditor(ctx.stage.id, ctx.stage.times, auditConst.stage.status.checked);
|
|
|
} else {
|
|
|
- lastAuditor = stageList.length > 0 ? await ctx.service.stageAudit.getLastestAuditor(stageList[0].id, stageList[0].times, auditConst.stage.status.checked) : null;
|
|
|
+ lastAuditor = stageList.length > 0 ? await ctx.service.stageAudit.getLastestAuditor(stageList[stageList.length - 1].id, stageList[0].times, auditConst.stage.status.checked) : null;
|
|
|
}
|
|
|
let archiveList = [];
|
|
|
if (stage) {
|
|
@@ -550,6 +550,7 @@ module.exports = app => {
|
|
|
await this.ctx.helper.recursiveMkdirSync(this.app.baseDir + '/app/public/download');
|
|
|
|
|
|
const runnableRst = [];
|
|
|
+ /*
|
|
|
for (let idx = 0; idx < pageRstArr.length; idx++) {
|
|
|
let roleRel = null;
|
|
|
for (const roleR of roleRelArr) {
|
|
@@ -566,6 +567,28 @@ module.exports = app => {
|
|
|
}
|
|
|
runnableRst.push(getExcelByPageData(pageRstArr[idx], params.rpt_names[idx], roleRel));
|
|
|
}
|
|
|
+ /*/
|
|
|
+ for (let pageRst of pageRstArr) {
|
|
|
+ // _chkIfNeedBreakPage(pageRst);
|
|
|
+ }
|
|
|
+ const pageBrkAmt = 300;
|
|
|
+ const newRptNames = []; // 这个为导出PDF控制分页用
|
|
|
+ const newPageDataRst = _resetPageDataByBreaks(pageRstArr, pageBrkAmt, params.rpt_names, newRptNames);
|
|
|
+ for (let idx = 0; idx < newPageDataRst.length; idx++) {
|
|
|
+ let roleRel = null;
|
|
|
+ for (const roleR of roleRelArr) {
|
|
|
+ if (roleR.rpt_id === params.rpt_ids[idx]) {
|
|
|
+ roleRel = JSON.parse(roleR.rel_content);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (params.stage_status === 3) {
|
|
|
+ mergeSignAudit(newPageDataRst[idx], roleRel, stgAudit);
|
|
|
+ mergeSignDate(newPageDataRst[idx], params.stage_id, roleRel, stgAudit, stgAuditForOrg, stageList);
|
|
|
+ }
|
|
|
+ runnableRst.push(getExcelByPageData(newPageDataRst[idx], newRptNames[idx], roleRel));
|
|
|
+ }
|
|
|
+ // */
|
|
|
// fsUtil.writeObjToFile(pageRstArr, 'D:/GitHome/temp/计量导出pageArr.js');
|
|
|
const uuidRst = await Promise.all(runnableRst);
|
|
|
ctx.body = { data: uuidRst, waterMarkStr };
|
|
@@ -613,6 +636,7 @@ module.exports = app => {
|
|
|
const stageList = (params.stage_status === 3) ? (await ctx.service.stage.getValidStagesShort(params.tender_id)) : [];
|
|
|
|
|
|
const pageRstArr = await getMultiRptsCommon(ctx, params, JV.OUTPUT_TYPE_NORMAL, this.app.baseDir);
|
|
|
+ // fsUtil.writeObjToFile(pageRstArr, 'D:/GitHome/temp/pageRstArrForExcel.js');
|
|
|
for (const pageRst of pageRstArr) {
|
|
|
for (const page of pageRst.items) {
|
|
|
page[JV.PROP_WATERMARK_CELLS] = [];
|
|
@@ -1400,3 +1424,55 @@ function _getSignDateDftName() {
|
|
|
return ' 年 月 日';
|
|
|
}
|
|
|
|
|
|
+function _chkIfNeedBreakPage(pageData) {
|
|
|
+ let rst = -1, hasPic = false, picSize = 0;
|
|
|
+ const picKeys = [];
|
|
|
+ // fs.statSync(`${filesPath}${file}`).size
|
|
|
+ for (let pi = 0; pi < pageData.items.length; pi++) {
|
|
|
+ // 每页判断
|
|
|
+ for (let ci = 0; ci < pageData.items[pi][JV.PROP_SIGNATURE_CELLS].length; ci++) {
|
|
|
+ const picPath = pageData.items[pi][JV.PROP_SIGNATURE_CELLS][ci].path;
|
|
|
+ if (picPath && picPath.indexOf('/sign') < 0 && picKeys.indexOf(picPath) < 0) {
|
|
|
+ picKeys.push(picPath);
|
|
|
+ hasPic = true;
|
|
|
+ }
|
|
|
+ // signature_cells PROP_SIGNATURE_CELLS
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return rst;
|
|
|
+}
|
|
|
+
|
|
|
+function _resetPageDataByBreaks(pageDataArr, breakAmt, rpt_names, newRptNames) {
|
|
|
+ const rst = [];
|
|
|
+ for (let pi = 0; pi < pageDataArr.length; pi++) {
|
|
|
+ const pageItem = pageDataArr[pi];
|
|
|
+ const currentRptName = rpt_names[pi];
|
|
|
+ if (pageItem.items.length > breakAmt) {
|
|
|
+ let pa = Math.floor(pageItem.items.length / breakAmt);
|
|
|
+ if (pageItem.items.length % breakAmt > 0) {
|
|
|
+ pa++;
|
|
|
+ }
|
|
|
+ for (let idx = 0; idx < pa; idx++) {
|
|
|
+ const newPageDataObj = { items: [] };
|
|
|
+ // newPageDataObj[JV.NODE_PAGE_INFO] = JSON.parse(JSON.stringify(pageItem[JV.NODE_PAGE_INFO]));
|
|
|
+ newPageDataObj[JV.NODE_PAGE_INFO] = pageItem[JV.NODE_PAGE_INFO];
|
|
|
+ // newPageDataObj[JV.BAND_PROP_MERGE_BAND] = JSON.parse(JSON.stringify(pageItem[JV.BAND_PROP_MERGE_BAND]));
|
|
|
+ newPageDataObj[JV.BAND_PROP_MERGE_BAND] = pageItem[JV.BAND_PROP_MERGE_BAND];
|
|
|
+
|
|
|
+ newPageDataObj[JV.NODE_FONT_COLLECTION] = pageItem[JV.NODE_FONT_COLLECTION];
|
|
|
+ newPageDataObj[JV.NODE_STYLE_COLLECTION] = pageItem[JV.NODE_STYLE_COLLECTION];
|
|
|
+ newPageDataObj[JV.NODE_CONTROL_COLLECTION] = pageItem[JV.NODE_CONTROL_COLLECTION];
|
|
|
+
|
|
|
+ for (let dIdx = idx * breakAmt; dIdx < (Math.min((idx + 1) * breakAmt, pageItem.items.length)); dIdx++) {
|
|
|
+ newPageDataObj.items.push(pageItem.items[dIdx]);
|
|
|
+ }
|
|
|
+ rst.push(newPageDataObj);
|
|
|
+ newRptNames.push(currentRptName + '_' + (idx + 1));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ rst.push(pageItem);
|
|
|
+ newRptNames.push(currentRptName);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return rst;
|
|
|
+};
|