@steedos-labs/content-compliance 1.0.4 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/dist/index.js +1 -1
  2. package/lib/actions/bypassApproval.js +38 -36
  3. package/lib/actions/bypassApproval.js.map +1 -1
  4. package/lib/actions/terminate.js +1 -1
  5. package/lib/actions/terminate.js.map +1 -1
  6. package/lib/methods/__tests__/attachment.test.d.ts +1 -0
  7. package/lib/methods/__tests__/attachment.test.js +31 -0
  8. package/lib/methods/__tests__/attachment.test.js.map +1 -0
  9. package/lib/methods/__tests__/terminateBypassAttachments.test.d.ts +1 -0
  10. package/lib/methods/__tests__/terminateBypassAttachments.test.js +163 -0
  11. package/lib/methods/__tests__/terminateBypassAttachments.test.js.map +1 -0
  12. package/lib/methods/approval_engine.d.ts +1 -1
  13. package/lib/methods/approval_engine.js +69 -43
  14. package/lib/methods/approval_engine.js.map +1 -1
  15. package/lib/methods/attachment.d.ts +2 -0
  16. package/lib/methods/attachment.js +21 -0
  17. package/lib/methods/attachment.js.map +1 -0
  18. package/main/default/objects/pepsico_approval_process/fields/attachments.field.yml +11 -0
  19. package/main/default/objects/pepsico_material_approval/buttons/pepsico_bypass_approval.button.yml +24 -1
  20. package/main/default/objects/pepsico_material_approval/buttons/pepsico_terminate.button.yml +24 -1
  21. package/main/default/objects/pepsico_material_approval/fields/approval_bypassed.field.yml +2 -2
  22. package/main/default/objects/pepsico_material_approval/fields/approval_materials_quantity.field.yml +2 -2
  23. package/main/default/objects/pepsico_material_approval/fields/approval_status.field.yml +2 -2
  24. package/main/default/objects/pepsico_material_approval/fields/approved_flows.field.yml +2 -2
  25. package/main/default/objects/pepsico_material_approval/fields/assistance.field.yml +4 -2
  26. package/main/default/objects/pepsico_material_approval/fields/aunch_time.field.yml +4 -3
  27. package/main/default/objects/pepsico_material_approval/fields/autonumber.field.yml +2 -2
  28. package/main/default/objects/pepsico_material_approval/fields/available_channels.field.yml +2 -2
  29. package/main/default/objects/pepsico_material_approval/fields/available_channels_label.field.yml +1 -1
  30. package/main/default/objects/pepsico_material_approval/fields/bgm.field.yml +1 -1
  31. package/main/default/objects/pepsico_material_approval/fields/brief_flow.field.yml +2 -2
  32. package/main/default/objects/pepsico_material_approval/fields/brief_flow_number.field.yml +2 -1
  33. package/main/default/objects/pepsico_material_approval/fields/ca_approval_status.field.yml +2 -2
  34. package/main/default/objects/pepsico_material_approval/fields/ca_assistance.field.yml +4 -2
  35. package/main/default/objects/pepsico_material_approval/fields/ca_bypassed.field.yml +2 -2
  36. package/main/default/objects/pepsico_material_approval/fields/ca_materials_quantity.field.yml +2 -2
  37. package/main/default/objects/pepsico_material_approval/fields/ca_reviewer.field.yml +2 -0
  38. package/main/default/objects/pepsico_material_approval/fields/cc_users.field.yml +4 -4
  39. package/main/default/objects/pepsico_material_approval/fields/ch_material_group.field.yml +7 -7
  40. package/main/default/objects/pepsico_material_approval/fields/ch_material_group_path.field.yml +5 -5
  41. package/main/default/objects/pepsico_material_approval/fields/ch_sync_enabled.field.yml +3 -3
  42. package/main/default/objects/pepsico_material_approval/fields/ch_sync_manual.field.yml +1 -1
  43. package/main/default/objects/pepsico_material_approval/fields/ch_sync_rule_check.field.yml +5 -9
  44. package/main/default/objects/pepsico_material_approval/fields/ch_uploader_notified_group.field.yml +1 -1
  45. package/main/default/objects/pepsico_material_approval/fields/child_files.field.yml +3 -3
  46. package/main/default/objects/pepsico_material_approval/fields/classification.field.yml +4 -2
  47. package/main/default/objects/pepsico_material_approval/fields/content_rule.field.yml +2 -2
  48. package/main/default/objects/pepsico_material_approval/fields/content_rule_label.field.yml +1 -1
  49. package/main/default/objects/pepsico_material_approval/fields/copyright_front.field.yml +1 -1
  50. package/main/default/objects/pepsico_material_approval/fields/copyright_music.field.yml +1 -1
  51. package/main/default/objects/pepsico_material_approval/fields/copyright_other.field.yml +1 -1
  52. package/main/default/objects/pepsico_material_approval/fields/current_step.field.yml +2 -2
  53. package/main/default/objects/pepsico_material_approval/fields/effective_date.field.yml +3 -4
  54. package/main/default/objects/pepsico_material_approval/fields/expiry_date.field.yml +9 -5
  55. package/main/default/objects/pepsico_material_approval/fields/followers.field.yml +3 -2
  56. package/main/default/objects/pepsico_material_approval/fields/font_copyright.field.yml +1 -1
  57. package/main/default/objects/pepsico_material_approval/fields/handler_preca.field.yml +2 -2
  58. package/main/default/objects/pepsico_material_approval/fields/handler_prens.field.yml +2 -2
  59. package/main/default/objects/pepsico_material_approval/fields/handler_preqc.field.yml +2 -2
  60. package/main/default/objects/pepsico_material_approval/fields/handler_presra.field.yml +2 -2
  61. package/main/default/objects/pepsico_material_approval/fields/has_detail_page.field.yml +18 -0
  62. package/main/default/objects/pepsico_material_approval/fields/internal_collaborator.field.yml +3 -3
  63. package/main/default/objects/pepsico_material_approval/fields/internal_collaborator_edit.field.yml +4 -4
  64. package/main/default/objects/pepsico_material_approval/fields/is_skip_approver.field.yml +2 -2
  65. package/main/default/objects/pepsico_material_approval/fields/kids_approval_status.field.yml +2 -2
  66. package/main/default/objects/pepsico_material_approval/fields/kids_bypassed.field.yml +2 -2
  67. package/main/default/objects/pepsico_material_approval/fields/kids_file_name.field.yml +3 -2
  68. package/main/default/objects/pepsico_material_approval/fields/kids_materials_quantity.field.yml +2 -2
  69. package/main/default/objects/pepsico_material_approval/fields/kids_reviewer.field.yml +2 -2
  70. package/main/default/objects/pepsico_material_approval/fields/launch.field.yml +4 -2
  71. package/main/default/objects/pepsico_material_approval/fields/legal_approval_status.field.yml +2 -2
  72. package/main/default/objects/pepsico_material_approval/fields/legal_assistance.field.yml +4 -2
  73. package/main/default/objects/pepsico_material_approval/fields/legal_bypassed.field.yml +2 -2
  74. package/main/default/objects/pepsico_material_approval/fields/legal_materials_quantity.field.yml +2 -2
  75. package/main/default/objects/pepsico_material_approval/fields/legal_reviewer.field.yml +2 -0
  76. package/main/default/objects/pepsico_material_approval/fields/material_editable.field.yml +20 -28
  77. package/main/default/objects/pepsico_material_approval/fields/material_owner.field.yml +5 -5
  78. package/main/default/objects/pepsico_material_approval/fields/material_type.field.yml +1 -1
  79. package/main/default/objects/pepsico_material_approval/fields/material_type_label.field.yml +1 -1
  80. package/main/default/objects/pepsico_material_approval/fields/materials_quantity.field.yml +2 -2
  81. package/main/default/objects/pepsico_material_approval/fields/music_copyright.field.yml +1 -1
  82. package/main/default/objects/pepsico_material_approval/fields/name.field.yml +3 -3
  83. package/main/default/objects/pepsico_material_approval/fields/ns_approval_status.field.yml +2 -2
  84. package/main/default/objects/pepsico_material_approval/fields/ns_assistance.field.yml +4 -2
  85. package/main/default/objects/pepsico_material_approval/fields/ns_bypassed.field.yml +2 -2
  86. package/main/default/objects/pepsico_material_approval/fields/ns_materials_quantity.field.yml +2 -2
  87. package/main/default/objects/pepsico_material_approval/fields/ns_reviewer.field.yml +2 -0
  88. package/main/default/objects/pepsico_material_approval/fields/pls_file.field.yml +2 -2
  89. package/main/default/objects/pepsico_material_approval/fields/postpone_launch_date.field.yml +4 -3
  90. package/main/default/objects/pepsico_material_approval/fields/pre_approval_status.field.yml +2 -2
  91. package/main/default/objects/pepsico_material_approval/fields/pre_ca_approval_status.field.yml +2 -2
  92. package/main/default/objects/pepsico_material_approval/fields/pre_ca_materials_quantity.field.yml +2 -2
  93. package/main/default/objects/pepsico_material_approval/fields/pre_ca_reviewer.field.yml +4 -2
  94. package/main/default/objects/pepsico_material_approval/fields/pre_legal_approval_status.field.yml +2 -2
  95. package/main/default/objects/pepsico_material_approval/fields/pre_legal_materials_quantity.field.yml +2 -2
  96. package/main/default/objects/pepsico_material_approval/fields/pre_legal_reviewer.field.yml +2 -0
  97. package/main/default/objects/pepsico_material_approval/fields/pre_materials_quantity.field.yml +2 -2
  98. package/main/default/objects/pepsico_material_approval/fields/pre_ns_approval_status.field.yml +2 -2
  99. package/main/default/objects/pepsico_material_approval/fields/pre_ns_materials_quantity.field.yml +2 -2
  100. package/main/default/objects/pepsico_material_approval/fields/pre_ns_reviewer.field.yml +4 -2
  101. package/main/default/objects/pepsico_material_approval/fields/pre_qc_approval_status.field.yml +2 -2
  102. package/main/default/objects/pepsico_material_approval/fields/pre_qc_materials_quantity.field.yml +2 -2
  103. package/main/default/objects/pepsico_material_approval/fields/pre_qc_reviewer.field.yml +4 -2
  104. package/main/default/objects/pepsico_material_approval/fields/pre_reviewer.field.yml +4 -2
  105. package/main/default/objects/pepsico_material_approval/fields/pre_sra_approval_status.field.yml +2 -2
  106. package/main/default/objects/pepsico_material_approval/fields/pre_sra_materials_quantity.field.yml +2 -2
  107. package/main/default/objects/pepsico_material_approval/fields/pre_sra_reviewer.field.yml +4 -2
  108. package/main/default/objects/pepsico_material_approval/fields/product.field.yml +20 -10
  109. package/main/default/objects/pepsico_material_approval/fields/product_label.field.yml +1 -1
  110. package/main/default/objects/pepsico_material_approval/fields/qc_approval_status.field.yml +2 -2
  111. package/main/default/objects/pepsico_material_approval/fields/qc_assistance.field.yml +4 -2
  112. package/main/default/objects/pepsico_material_approval/fields/qc_bypass_reason.field.yml +2 -2
  113. package/main/default/objects/pepsico_material_approval/fields/qc_bypassed.field.yml +2 -2
  114. package/main/default/objects/pepsico_material_approval/fields/qc_bypassed_at.field.yml +2 -2
  115. package/main/default/objects/pepsico_material_approval/fields/qc_bypassed_by.field.yml +2 -2
  116. package/main/default/objects/pepsico_material_approval/fields/qc_materials_quantity.field.yml +2 -2
  117. package/main/default/objects/pepsico_material_approval/fields/qc_reviewer.field.yml +2 -0
  118. package/main/default/objects/pepsico_material_approval/fields/review_status.field.yml +2 -2
  119. package/main/default/objects/pepsico_material_approval/fields/reviewer.field.yml +2 -0
  120. package/main/default/objects/pepsico_material_approval/fields/sra_approval_status.field.yml +2 -2
  121. package/main/default/objects/pepsico_material_approval/fields/sra_assistance.field.yml +4 -2
  122. package/main/default/objects/pepsico_material_approval/fields/sra_bypassed.field.yml +2 -2
  123. package/main/default/objects/pepsico_material_approval/fields/sra_materials_quantity.field.yml +2 -2
  124. package/main/default/objects/pepsico_material_approval/fields/sra_reviewer.field.yml +2 -0
  125. package/main/default/objects/pepsico_material_approval/fields/subtitles.field.yml +1 -1
  126. package/main/default/objects/pepsico_material_approval/fields/title.field.yml +3 -2
  127. package/main/default/objects/pepsico_material_approval/pepsico_material_approval.object.yml +1 -8
  128. package/package.json +2 -2
  129. package/public/account-apply/ccs-agency-application.docx +0 -0
  130. package/public/account-apply/ccs-employee-application.docx +0 -0
  131. package/public/dynamic.css +192 -7
  132. package/public/dynamic.js +96 -0
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- (()=>{"use strict";var e={164:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.initUrgentQuota=void 0;var a=r(5584);t.initUrgentQuota={rest:{method:"POST",fullPath:"/api/pepsico-content/urgent-quota/init"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n,i,o,c,l,p,u,_,d,v,g,f,m,h,b,w;return a.__generator(this,function(y){switch(y.label){case 0:if(e.getObject=this.getObject,t=e.meta.user,!(r=null==t?void 0:t.spaceId))throw new Error("无法获取当前工作区");if(s=e.params,n=s.year,i=s.h1_used,o=s.h2_used,!n||"number"!=typeof n)throw new Error("请指定有效的年份");return c="number"==typeof i?i:0,l="number"==typeof o?o:0,[4,e.getObject("space_users").directFind({filters:[["space","=",r],["user_accepted","=",!0],["is_collaborator","!=",!0]],fields:["user"]})];case 1:if(p=y.sent(),0===(u=a.__spreadArray([],a.__read(new Set(p.map(function(e){return e.user}).filter(Boolean))),!1)).length)return[2,{message:"未找到任何内部用户",created:0,updated:0}];_=0,d=0,y.label=2;case 2:y.trys.push([2,10,11,12]),v=a.__values(u),g=v.next(),y.label=3;case 3:return g.done?[3,9]:(f=g.value,[4,e.getObject("pepsico_urgent_quota").findOne({filters:[["user","=",f],["space","=",r],["year","=",n]]})]);case 4:return(m=y.sent())?[4,e.getObject("pepsico_urgent_quota").directUpdate(m._id,{h1_used:c,h2_used:l})]:[3,6];case 5:return y.sent(),d++,[3,8];case 6:return[4,e.getObject("pepsico_urgent_quota").insert({user:f,space:r,year:n,h1_used:c,h2_used:l})];case 7:y.sent(),_++,y.label=8;case 8:return g=v.next(),[3,3];case 9:return[3,12];case 10:return h=y.sent(),b={error:h},[3,12];case 11:try{g&&!g.done&&(w=v.return)&&w.call(v)}finally{if(b)throw b.error}return[7];case 12:return[2,{message:"初始化完成:".concat(_," 条新建,").concat(d," 条更新"),created:_,updated:d,total:u.length}]}})})}}},256:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});var a=r(5584);a.__exportStar(r(5510),t),a.__exportStar(r(2143),t),a.__exportStar(r(751),t),a.__exportStar(r(4809),t),a.__exportStar(r(4665),t),a.__exportStar(r(2777),t),a.__exportStar(r(6903),t),a.__exportStar(r(6658),t)},298:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.addBulkMaterials=void 0;var a=r(5584),s=r(7825),n=r(2143);t.addBulkMaterials={rest:{method:"POST",fullPath:"/api/pepsico-content/approve/material/add"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,i,o,c,l,p,u,_,d,v=this;return a.__generator(this,function(g){switch(g.label){case 0:return e.getObject=this.getObject,[4,this.getLogger()];case 1:return t=g.sent(),e.logger=t,[4,e.getObject("cfs_files_filerecord").find({filters:["_id","=",e.params.files]})];case 2:r=g.sent(),i=function(r,s){return a.__awaiter(v,void 0,void 0,function(){var n,i;return a.__generator(this,function(a){switch(a.label){case 0:return[4,t.warn("".concat(e.params.approvalId,"-[添加素材被拒]:").concat(r),{objectName:"pepsico_material_approval",pepsico_material_approval:e.params.approvalId,file_name:s.original.name,file_size:s.original.size,uploaded_file:s._id,uploaded_by:null===(i=null===(n=e.meta)||void 0===n?void 0:n.user)||void 0===i?void 0:i.userId,reason:r})];case 1:return a.sent(),[2,{status:"500",msg:r,data:{}}]}})})},g.label=3;case 3:g.trys.push([3,10,11,12]),o=a.__values(r),c=o.next(),g.label=4;case 4:return c.done?[3,9]:(l=c.value,s.includes(l.original.name,"版权")?[4,i("上传素材中包含“版权”文件,请删除版权文件后再次提交。",l)]:[3,6]);case 5:return[2,g.sent()];case 6:return(p=(0,n.officeFileSizeProblem)(l.original.name,l.original.size))?[4,i("素材「".concat(l.original.name,"」:").concat(p),l)]:[3,8];case 7:return[2,g.sent()];case 8:return c=o.next(),[3,4];case 9:return[3,12];case 10:return u=g.sent(),_={error:u},[3,12];case 11:try{c&&!c.done&&(d=o.return)&&d.call(o)}finally{if(_)throw _.error}return[7];case 12:return[4,this.addBulkMaterials(e,e.params.approvalId,e.params.files)];case 13:return g.sent(),[3,15];case 14:if(!g.sent())return[2,{status:"500",msg:"素材上传失败, 请稍后重试",data:{}}];g.label=15;case 15:return[2,{}]}})})}}},751:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.dashboardSyncData=void 0;var a=r(5584),s=r(7825),n=r(4716),i=r(7283),o=function(e,t,r){return void 0===r&&(r=i.LEGACY_PRODUCT_PICKLIST_CODE),a.__awaiter(void 0,void 0,void 0,function(){var n,i,o,c;return a.__generator(this,function(a){switch(a.label){case 0:return n=s.split(t,"-"),[4,e.getObject("picklists").find({filters:["code","=",r]})];case 1:return i=a.sent(),n.length>0&&i.length>0?[4,e.getObject("picklist_options").find({filters:[["picklist","=",i[0]._id],["value","=",s.first(n)]]})]:[3,3];case 2:return o=a.sent(),c=[],s.each(n,function(e){var t=s.find(o,{value:e});t&&c.push(t.name)}),[2,s.join(c,"-")];case 3:return[2,""]}})})},c=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){return a.__generator(this,function(r){switch(r.label){case 0:return[4,e.getObject("pepsico_approval_process").directFind({filters:[["pepsico_material_approval","=",t],["approved","!=","progess"],["current_step","=","submitter_revisions"]]})];case 1:return[2,r.sent().length>0]}})})},l=function(e){return 0==e?null:1===e?"v1":e>1?"v3":void 0},p=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){var r;return a.__generator(this,function(a){switch(a.label){case 0:return[4,e.getObject("pepsico_approval_process").directFind({filters:[["pepsico_material_approval","=",t],["approved","in",["approved","rejected","submit"]],["type","in",["NS","Legal","SRA","CA","Kids","guding"]]]})];case 1:return r=a.sent(),[2,{NS:l(s.size(s.filter(r,{type:"NS"}))),Legal:l(s.size(s.filter(r,{type:"Legal"}))),SRA:l(s.size(s.filter(r,{type:"SRA"}))),CA:l(s.size(s.filter(r,{type:"CA"}))),Kids:l(s.size(s.filter(r,{type:"Kids"}))),guding:l(s.size(s.filter(r,{type:"guding"})))}]}})})},u=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){var r,n,i;return a.__generator(this,function(a){switch(a.label){case 0:return[4,e.getObject("picklists").find({filters:["code","=","classification"]})];case 1:return r=a.sent(),n=s.split(t,"-"),t&&r.length>0?[4,e.getObject("picklist_options").find({filters:[["picklist","=",r[0]._id],["value","=",s.last(n)]]})]:[3,3];case 2:return[2,(i=a.sent()).length>0?i[0].name:""];case 3:return[2]}})})},_=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){var r;return a.__generator(this,function(a){switch(a.label){case 0:return[4,e.getObject("pepsico_approval_process").directFind({filters:[["pepsico_material_approval","=",t],["current_step","=","awaiting_deployment"]]})];case 1:return[2,(r=a.sent()).length>0?r[0].created:null]}})})},d=!1;t.dashboardSyncData=function(e){return a.__awaiter(void 0,void 0,void 0,function(){var t,r,l,v,g,f,m,h,b,w,y,O,S,A,I,P,T,E,j,D,C,k,R,L,U,N,M;return a.__generator(this,function(x){switch(x.label){case 0:if(!0===d)throw new Error("同步中, 请勿重复调用...");d=!0,t={success:0,fail:0},x.label=1;case 1:return x.trys.push([1,30,,32]),r=[["current_step","in",["conclusion","awaiting_deployment"]],["synced","!=",!0],["is_skip_approver","!=",!0]],[4,e.getObject("pepsico_material_approval").directFind({filters:r})];case 2:if(!((l=x.sent()).length>0))return[3,29];x.label=3;case 3:x.trys.push([3,27,28,29]),v=a.__values(l),g=v.next(),x.label=4;case 4:if(g.done)return[3,26];f=g.value,x.label=5;case 5:return x.trys.push([5,23,,25]),[4,o(e,f.product,(0,i.getProductPicklistCode)(f))];case 6:return m=x.sent(),[4,u(e,f.classification)];case 7:return h=x.sent(),[4,e.getObject("organizations").findOne(f.owner_department)];case 8:return b=x.sent(),[4,c(e,f._id)];case 9:return w=x.sent(),[4,p(e,f._id)];case 10:return y=x.sent(),[4,_(e,f._id)];case 11:return O=x.sent(),S="","发起人中止"===f.termination_type?S="v1":"审批人中止"===f.termination_type&&(S="v2"),A=w?"v2":"v1",S&&(A=""),[4,e.getObject("pepsico_material_approval_data").directInsert({name:f.name,pepsico_material_approval:f._id,approve_users:f.person_approved,current_step:f.current_step,material_approve_org:"personnel_review"==f.approval_type?"guding":"four",peoduct:m,classify:h,flow_pass_times:A,approve_status:"terminated"===f.review_status?"v3":"v2",termination:S||null,type:f.internal_collaborator?"外部":"内部",submit_org:(null==b?void 0:b.name)||null,submit_time:f.draft_submitted||null,approve_finish_time:O||null,end_time:f.termination_date||null,review_time:O&&f.draft_submitted?parseFloat(n.duration(n(O).diff(f.draft_submitted)).asHours().toFixed(2)):null,ca_pass:f.ca_approval_status||null,ca_approve_times:y.CA||null,legal_pass:f.legal_approval_status||null,approve_org:y.Legal||null,sra_pass:f.sra_approval_status||null,sra_approve_times:y.SRA||null,ns_pass:f.ns_approval_status||null,ns_approve_times:y.NS||null,guding_pass:"approved"==f.approval_status||f.approval_status||null,guding_approve_times:y.guding||null,kids:f.kids_approval_status||null,kids_approve_times:y.Kids||null,owner:f.owner,space:f.space,created:new Date,modified:new Date})];case 12:return I=x.sent(),S?[3,21]:[4,e.getObject("pepsico_material").directFind({filters:[["pepsico_material_approval","=",f._id]]})];case 13:if(!((P=x.sent()).length>0))return[3,21];x.label=14;case 14:x.trys.push([14,19,20,21]),N=void 0,T=a.__values(P),E=T.next(),x.label=15;case 15:return E.done?[3,18]:(j=E.value,[4,e.getObject("pepsico_material_data").directInsert({pepsico_material_approval:f._id,approve_users:f.person_approved,classify:h,material_void:j.void_material||!1,material_type:(F=j.extension_type,s.includes(["jpg","jpeg","png","gif","bmp","tiff","tif","svg","webp","ico","heif","heic"],F)?"v1":s.includes(["mp4","avi","mov","wmv","flv","mkv","webm","mpeg","mpg","3gp","m4v","qt"],F)?"v2":s.includes(["ppt","pptx"],F)?"v3":s.includes(["doc","docx"],F)?"v4":F),brand:m,submit_org:null==b?void 0:b.name,submit_time:f.draft_submitted,name:j.name,material_approve_org:"personnel_review"==f.approval_type?"v2":"v1",ns_pass:j.ns_approval_status||null,legal_pass:j.legal_approval_status||null,ca_pass:j.ca_approval_status||null,sra_pass:j.sra_approval_status||null,guding_pass:j.approval_status||null,kids_pass:j.kids_approval_status||null,pepsico_material_approval_data:I._id,pepsico_material:j._id,owner:f.owner,space:f.space,created:new Date,modified:new Date})]);case 16:x.sent(),x.label=17;case 17:return E=T.next(),[3,15];case 18:return[3,21];case 19:return D=x.sent(),N={error:D},[3,21];case 20:try{E&&!E.done&&(M=T.return)&&M.call(T)}finally{if(N)throw N.error}return[7];case 21:return[4,e.getObject("pepsico_material_approval").directUpdate(f._id,{synced:!0})];case 22:return x.sent(),t.success++,[3,25];case 23:return C=x.sent(),[4,e.logger.error("[Dashboard同步Data]",{pepsico_material_approval:f._id,error:C.message})];case 24:return x.sent(),t.fail++,[3,25];case 25:return g=v.next(),[3,4];case 26:return[3,29];case 27:return k=x.sent(),L={error:k},[3,29];case 28:try{g&&!g.done&&(U=v.return)&&U.call(v)}finally{if(L)throw L.error}return[7];case 29:return d=!1,[2,t];case 30:return R=x.sent(),d=!1,console.log("[Dashboard同步Data]",{error:R.message}),[4,e.logger.error("[Dashboard同步Data]",{error:R.message})];case 31:return x.sent(),[3,32];case 32:return[2]}var F})})}},777:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.mockMaterialGroups=t.toMaterialGroupPath=t.queryMaterialGroupTree=t.buildMaterialGroupTree=t.getTenantAccessToken=t.isMaterialGroupMock=t.toMaterialGroupId=void 0;var a=r(5584),s=r(8938),n=r(7825),i="|";t.toMaterialGroupId=function(e){return null==e||""===e?null:n.isArray(e)?(0,t.toMaterialGroupId)(e[0]):n.isPlainObject(e)?(0,t.toMaterialGroupId)(null!=e.value?e.value:null!=e.materialGroupId?e.materialGroupId:e._id):String(e)},t.isMaterialGroupMock=function(){return"true"===process.env.PEPSICO_CONTENT_HUB_MATERIAL_GROUP_MOCK};var o=null;t.getTenantAccessToken=function(){return a.__awaiter(void 0,void 0,void 0,function(){var e,t,r,n,i,c;return a.__generator(this,function(a){switch(a.label){case 0:return o&&o.expireAt>Date.now()?[2,o.token]:[4,s.default.post("".concat(process.env.PEPSICO_CONTENT_HUB_BASE_URL,"/creativeSaas/auth/v1/tenantAccessToken/internal"),{appId:process.env.PEPSICO_CONTENT_HUB_APP_ID,appSecret:process.env.PEPSICO_CONTENT_HUB_APP_SECRET})];case 1:if(e=a.sent(),!(t=(null===(n=e.data)||void 0===n?void 0:n.data)||{}).tenantAccessToken)throw new Error("获取 Content Hub token 失败: ".concat((null===(i=e.data)||void 0===i?void 0:i.msg)||(null===(c=e.data)||void 0===c?void 0:c.message)||"无返回"));return r=Number(t.expire)||7200,[2,(o={token:t.tenantAccessToken,expireAt:Date.now()+1e3*Math.max(r-300,60)}).token]}})})};var c=function(e){return a.__awaiter(void 0,void 0,void 0,function(){var n,i,o,c;return a.__generator(this,function(a){switch(a.label){case 0:return[4,(0,t.getTenantAccessToken)()];case 1:return n=a.sent(),i={tenantId:process.env.PEPSICO_CONTENT_HUB_TENANT_ID,workspaceId:process.env.PEPSICO_CONTENT_HUB_WORKSPACE_ID,sales:!!e.sales},e.sales||(i.materialGroupPath=e.materialGroupPath),[4,s.default.post("".concat(process.env.PEPSICO_CONTENT_HUB_BASE_URL,"/creativeSaas/pepsico/compliance/v1/material-groups/list"),i,{headers:{"tenant-access-token":n,"X-Request-Id":(l=r(8749),l.randomUUID?l.randomUUID():"".concat(Date.now(),"-").concat(Math.random().toString(16).slice(2))),"Content-Type":"application/json; charset=UTF-8"},timeout:15e3})];case 2:if(o=a.sent(),!0!==(c=o.data||{}).success||200!==c.code)throw new Error(c.msg||c.message||"Content Hub 素材组查询失败");return[2,c.data||[]]}var l})})};t.buildMaterialGroupTree=function(e){var t,r,s,i,o={},c=n.uniqBy(n.filter(e,function(e){return e&&null!=e.materialGroupId}),function(e){return String(e.materialGroupId)});try{for(var l=a.__values(c),p=l.next();!p.done;p=l.next()){var u=p.value;o[String(u.materialGroupId)]=a.__assign({label:u.materialGroupName,value:String(u.materialGroupId),materialGroupPath:u.materialGroupPath,level:u.level},!1===u.selectable?{disabled:!0}:{})}}catch(e){t={error:e}}finally{try{p&&!p.done&&(r=l.return)&&r.call(l)}finally{if(t)throw t.error}}var _=[];try{for(var d=a.__values(c),v=d.next();!v.done;v=d.next()){u=v.value;var g=o[String(u.materialGroupId)],f=null!=u.parentMaterialGroupId?o[String(u.parentMaterialGroupId)]:null;f?(f.children=f.children||[]).push(g):_.push(g)}}catch(e){s={error:e}}finally{try{v&&!v.done&&(i=d.return)&&i.call(d)}finally{if(s)throw s.error}}return _},t.queryMaterialGroupTree=function(e,r){return a.__awaiter(void 0,void 0,void 0,function(){var s,i,o,l,p;return a.__generator(this,function(a){switch(a.label){case 0:if(s=n.compact(n.map(r.materialGroupPath,function(e){return n.isString(e)?e.trim():null})),!r.sales&&0===s.length)throw new Error("素材组路径为空,请联系管理员");return i={sales:!!r.sales,materialGroupPath:s},(0,t.isMaterialGroupMock)()?(l=(0,t.mockMaterialGroups)(i),[3,3]):[3,1];case 1:return[4,c(i)];case 2:l=a.sent(),a.label=3;case 3:return o=l,[4,null===(p=e.logger)||void 0===p?void 0:p.info("[Content Hub 素材组查询]".concat((0,t.isMaterialGroupMock)()?"(模拟数据)":""),{sales:i.sales,materialGroupPath:s,count:o.length})];case 4:return a.sent(),[2,(0,t.buildMaterialGroupTree)(o)]}})})},t.toMaterialGroupPath=function(e){return n.compact(e).join(i)};var l=function(e){var t,r,s=0;try{for(var n=a.__values(e),i=n.next();!i.done;i=n.next())s=(31*s+i.value.charCodeAt(0))%1000000007}catch(e){t={error:e}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(t)throw t.error}}return String(22e13+s)},p=[{name:"Campaign Design Content"},{name:"Social Material"},{name:"KOL Material"}],u=function(){return[{name:"2026 春节 Campaign",children:p},{name:"2026 夏日 Campaign - 抖音达人种草与线下 POSM 联动项目(全国重点城市 KA 门店同步执行)",children:p},{name:"Always On 日常内容",children:p}]},_=function(){return[{name:"2026 年度",children:u()},{name:"2025 年度",children:u()}]},d=[{name:"主图与详情页"},{name:"短视频"},{name:"直播间物料"}],v=function(){return[{name:"2026 Q1 渠道大促",children:d},{name:"2026 618 年中大促 - 全渠道联合营销素材(含站内外投放与直播间物料)",children:d},{name:"日常上新",children:d}]},g=function(e){return{name:e,children:[{name:"2026 年度",children:v()},{name:"2025 年度",children:v()}]}},f=[{name:"线上衍生素材",children:a.__spreadArray(a.__spreadArray([],a.__read(["抖音","O2O","天猫","京东","拼多多","猫超"].map(g)),!1),[{name:"EKA-Vertical",children:["小象超市","叮咚买菜","朴朴"].map(g)}],!1)},{name:"线下衍生素材",children:["永辉","华润万家/多点","盒马","山姆/沃尔玛","大润发","团购","其他渠道"].map(g)},{name:"非渠道衍生素材-EKA",children:["Gifting","EC Page","POSM"].map(g)},{name:"非渠道衍生素材-DCO",children:["Gifting","EC Page","POSM"].map(g)}],m=function(e,t,r){var s,n;try{for(var o=a.__values(e),c=o.next();!c.done;c=o.next()){var p=c.value,u=t?"".concat(t.path).concat(i).concat(p.name):p.name,_=l(u),d=a.__spreadArray(a.__spreadArray([],a.__read(t?t.idPath:[]),!1),[_],!1),v=t?t.level+1:1;r.push({materialGroupId:_,materialGroupName:p.name,parentMaterialGroupId:t?t.id:null,level:v,materialGroupIdPath:d,materialGroupPath:u,leaf:!p.children||0===p.children.length,selectable:!0,updatedAt:"2026-09-28T10:30:00+08:00"}),p.children&&m(p.children,{id:_,idPath:d,path:u,level:v},r)}}catch(e){s={error:e}}finally{try{c&&!c.done&&(n=o.return)&&n.call(o)}finally{if(s)throw s.error}}return r};t.mockMaterialGroups=function(e){return e.sales?m(f,null,[]):n.flatMap(e.materialGroupPath,function(e){var t=e.split(i),r=t.slice(0,-1),a=r.length>0?{id:l(r.join(i)),idPath:r.map(function(e,t){return l(r.slice(0,t+1).join(i))}),path:r.join(i),level:r.length}:null;return m([{name:n.last(t),children:[{name:"原味",children:_()},{name:"青柠味",children:_()},{name:"番茄味(限定装 · 2026 春节特别版 · 含品牌联名礼盒与电商专供规格)",children:_()}]}],a,[])})}},904:e=>{e.exports=require("mime-types")},1057:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.sendByMaterial=t.PUSH_RECORD_OBJECT_NAME=t.inventoryApprovalMaterial=t.CONTENT_HUB_PUSH_LOG_NAME=void 0;var a=r(5584),s=r(8938),n=r(7825),i=r(904),o=r(8862),c=r(8844),l=r(4809),p=r(8559),u=r(777),_=r(8666),d=r(7283),v=r(7825),g=r(6293),f=process.env.PEPSICO_CONTENT_HUB_WORKSPACE_ID,m=process.env.PEPSICO_CONTENT_HUB_BASE_URL,h=process.env.PEPSICO_CONTENT_HUB_APP_ID,b=process.env.PEPSICO_CONTENT_HUB_APP_SECRET,w=function(){return a.__awaiter(void 0,void 0,void 0,function(){return a.__generator(this,function(e){switch(e.label){case 0:return[4,s.default.post("".concat(m,"/creativeSaas/auth/v1/tenantAccessToken/internal"),{appId:h,appSecret:b})];case 1:return[2,e.sent().data.data.tenantAccessToken]}})})},y=function(e){var t=e.map(function(e){var t=e.split("-");return(0,n.last)(t)}).filter(function(e){return null!==e});return(0,n.compact)(t)},O=function(){return process.env.PEPSICO_CONTENT_HUB_TAG_ID_EFFECTIVE_DATE||"22334050712759158"},S="223321022150011",A=["jpg","jpeg","png","gif","bmp","tiff","tif","svg","webp","ico","heif","heic","psd"],I=["mp4","avi","mov","wmv","flv","mkv","webm","mpeg","mpg","3gp","m4v","qt"];t.CONTENT_HUB_PUSH_LOG_NAME="Content Hub推送",t.inventoryApprovalMaterial=function(e,t,r,s){return void 0===s&&(s={}),a.__awaiter(void 0,void 0,void 0,function(){var n,i,o,l;return a.__generator(this,function(a){switch(a.label){case 0:return n={materialList:[],files:[]},i=Date.now(),[4,D(e,t,r,s,n)];case 1:return o=a.sent(),[4,j(e,{approvalId:t,materialId:r,options:s,trace:n,result:o,cost:Date.now()-i})];case 2:return a.sent(),[4,E(e,t,n,o)];case 3:return a.sent(),l=n.approval,!n.requested||n.error||o&&!1===o.success||!(0,c.isContentHubForm)(l)||v.isEmpty(n.materialGroupIdList)?[3,5]:[4,(0,_.grantUploaderAndNotify)(e,l,n.materialGroupIdList,w)];case 4:a.sent(),a.label=5;case 5:return[2,o]}})})},t.PUSH_RECORD_OBJECT_NAME="pepesio_ch__c";var P=function(e,t,r){return a.__awaiter(void 0,void 0,void 0,function(){var s,i,o;return a.__generator(this,function(a){switch(a.label){case 0:return 0===(s=v.uniq(v.compact(v.flatMap(r,function(e){return y((0,n.concat)([],e||[]))})))).length?[2,{}]:[4,e.getObject("picklists").directFind({filters:[["code","=",t]],fields:["_id"],top:1})];case 1:return(i=a.sent())&&0!==i.length?[4,e.getObject("picklist_options").directFind({filters:[["picklist","=",i[0]._id],["value","in",s]],fields:["_id","value"]})]:[2,{}];case 2:return o=a.sent(),[2,v.mapValues(v.keyBy(o||[],"value"),"_id")]}})})},T=function(e,t){var r=v.last(y((0,n.concat)([],t||[])));return r?e[r]:void 0},E=function(e,r,s,n){return a.__awaiter(void 0,void 0,void 0,function(){var i,o,c,l,p,u,_,g,f,m,h,b,w,y;return a.__generator(this,function(O){switch(O.label){case 0:if(!s.requested||0===s.files.length)return[2];O.label=1;case 1:return O.trys.push([1,12,,14]),i=s.approval||{},o=!(s.error||n&&!1===n.success),[4,P(e,(0,d.getProductPicklistCode)(i),[i.product])];case 2:return c=O.sent(),[4,P(e,"223321001114222",v.map(s.files,"materialType"))];case 3:l=O.sent(),p=new Date,u=e.getObject(t.PUSH_RECORD_OBJECT_NAME),O.label=4;case 4:O.trys.push([4,9,10,11]),_=a.__values(s.files),g=_.next(),O.label=5;case 5:return g.done?[3,8]:(f=g.value,[4,u.directInsert({name:i.name||r,pepsico_material_approval:r,file_name:f.fileName,type:f.ext,media_type:(S=f.ext,v.includes(A,S)?"图片":v.includes(I,S)?"视频":"zip"===S?"压缩包":null),product:T(c,i.product),material_type:T(l,f.materialType),push_status:o?"success":"failed",time:p,space:i.space,owner:i.owner})]);case 6:O.sent(),O.label=7;case 7:return g=_.next(),[3,5];case 8:return[3,11];case 9:return m=O.sent(),b={error:m},[3,11];case 10:try{g&&!g.done&&(w=_.return)&&w.call(_)}finally{if(b)throw b.error}return[7];case 11:return[3,14];case 12:return h=O.sent(),[4,null===(y=e.logger)||void 0===y?void 0:y.error("[Content Hub 推送明细]写入失败-".concat(r),{error:h.message})];case 13:return O.sent(),[3,14];case 14:return[2]}var S})})},j=function(e,r){var s=r.approvalId,n=r.materialId,i=r.options,o=r.trace,c=r.result,p=r.cost;return a.__awaiter(void 0,void 0,void 0,function(){var r,u,_;return a.__generator(this,function(a){switch(a.label){case 0:return r=o.approval,u=o.error?"failed":o.requested?c&&!1===c.success?"failed":"pushed":"skipped",_={action:"content-hub-push",trigger:i.force?"manual":i.spotCheck?"spot_check":"launch",status:u,reason:"skipped"===u?c&&c.msg:void 0,approval_id:s,approval_name:r&&r.name,form_version:r&&r.form_version,material_id:n,material_count:o.materialList.length,materials:v.map(o.materialList,"name"),copyright_zip:o.copyrightZip,request:o.requested?{url:"/creativeSaas/v1/material/inbound_url",body:{requestId:s,materialList:o.materialList}}:void 0,material_group_ids:o.materialGroupIdList,response:o.requested&&!o.error?c:void 0,error:o.error,operator:e.meta&&e.meta.user&&e.meta.user.userId,cost:p},[4,(0,l.writeSystemLog)(e,"failed"===u?"error":"info",_,t.CONTENT_HUB_PUSH_LOG_NAME,r&&r.space)];case 1:return a.sent(),[2]}})})},D=function(e,t,r,l,_){return a.__awaiter(void 0,void 0,void 0,function(){var h,b,A,I,P,T,E,j,D,C,k,R,L,U,N,M,x,F,q,G,B,V,H,J,Q,Y,z,K,$,Z,X,W,ee,te;return a.__generator(this,function(re){switch(re.label){case 0:h=_.materialList,re.label=1;case 1:return re.trys.push([1,17,,19]),[4,e.getObject("pepsico_material_approval").findOne(t)];case 2:if(b=re.sent(),_.approval=b,!b)throw new Error("无效的approvalId:"+t);if(A=(0,c.isContentHubForm)(b),I=A&&l.spotCheck,b.is_skip_approver&&!v.includes(o.DCO_TYPES,b.classification)&&!I)return[2,{msg:"不需要推送到Content Hub"}];if(A&&!l.force){if(l.spotCheck&&!b.is_skip_approver)return[2,{msg:"已在确认上线时按申请单处理, 抽查核准不再推送"}];if(!0!==b.ch_sync_enabled)return[2,{msg:"申请单未选择同步到Content Hub, 不推送"}]}return P=process.env.PEPSICO_CONTENT_HUB_TEST_OWNER||b.material_owner,T=function(e){if((0,c.isContentHubForm)(e))return function(e){return[{tagId:d.PRODUCT_TAG_ID,tagValIdList:y((0,n.concat)([],e.product||[]))},{tagId:"223321018147010",value:e.expiry_date?g(e.expiry_date).format("YYYY-MM-DD"):""},{tagId:O(),value:e.effective_date?g(e.effective_date).format("YYYY-MM-DD"):""},{tagId:S,tagValIdList:y((0,n.concat)([],e.material_editable||[]))}]}(e);var t=[];return t.push({tagId:"223321001114213",tagValIdList:y((0,n.concat)([],e.product||[]))}),t.push({tagId:"223321001114944",tagValIdList:y((0,n.concat)([],e.available_channels||[]))}),t.push({tagId:"223321001114222",tagValIdList:y((0,n.concat)([],e.material_type||[]))}),t.push({tagId:"223321022150011",tagValIdList:y((0,n.concat)([],e.content_rule||[]))}),t.push({tagId:"223321018147010",value:e.expiry_date?g(e.expiry_date).format("YYYY-MM-DD"):""}),t.push({tagId:O(),value:e.effective_date?g(e.effective_date).format("YYYY-MM-DD"):""}),t}(b),E=A?(0,n.compact)([(0,u.toMaterialGroupId)(b.ch_material_group)]):[],_.materialGroupIdList=E,j=[["pepsico_material_approval","=",t],["void_material","!=",!0]],r&&j.push(["_id","=",r]),[4,e.getObject("pepsico_material").find({filters:j})];case 3:D=re.sent(),re.label=4;case 4:re.trys.push([4,9,10,11]),C=a.__values(D),k=C.next(),re.label=5;case 5:return k.done?[3,8]:(R=k.value,L=null===(X=R.extension_type)||void 0===X?void 0:X.toLowerCase(),U=!1,"jpg"!==L&&"jpeg"!==L&&"png"!==L&&"gif"!==L&&"bmp"!==L&&"tiff"!==L&&"tif"!==L&&"svg"!==L&&"webp"!==L&&"ico"!==L&&"heif"!==L&&"heic"!==L&&"psd"!==L||(U=!0),"mp4"!==L&&"avi"!==L&&"mov"!==L&&"wmv"!==L&&"flv"!==L&&"mkv"!==L&&"webm"!==L&&"mpeg"!==L&&"mpg"!==L&&"3gp"!==L&&"m4v"!==L&&"qt"!==L||(U=!0),U&&(_.files.push({fileName:R.name,ext:L,materialType:R.material_type}),h.push({workspaceId:+f,name:R.name,owner:P,url:"".concat(process.env.ROOT_URL,"/api/files/files/").concat(R.material,"?download=true"),materialGroupIdList:E,tagList:T})),R.supplement_materials&&!1===(0,n.isEmpty)(R.supplement_materials)&&(0,n.isArray)(R.supplement_materials)?[4,e.getObject("cfs_files_filerecord").find({filters:["_id","in",R.supplement_materials]})]:[3,7]);case 6:N=re.sent();try{for($=void 0,M=a.__values(N),x=M.next();!x.done;x=M.next()){F=x.value;try{q=null===(W=(0,i.extension)(F.original.type))||void 0===W?void 0:W.toLowerCase(),G=!1,"jpg"!==q&&"jpeg"!==q&&"png"!==q&&"gif"!==q&&"bmp"!==q&&"tiff"!==q&&"tif"!==q&&"svg"!==q&&"webp"!==q&&"ico"!==q&&"heif"!==q&&"heic"!==q&&"psd"!==q||(G=!0),"mp4"!==q&&"avi"!==q&&"mov"!==q&&"wmv"!==q&&"flv"!==q&&"mkv"!==q&&"webm"!==q&&"mpeg"!==q&&"mpg"!==q&&"3gp"!==q&&"m4v"!==q&&"qt"!==q||(G=!0),G&&(_.files.push({fileName:F.original.name,ext:q,materialType:R.material_type}),h.push({workspaceId:+f,name:F.original.name,owner:P,url:"".concat(process.env.ROOT_URL,"/api/files/files/").concat(F._id,"?download=true"),materialGroupIdList:E,tagList:T}))}catch(e){console.log(e)}}}catch(e){$={error:e}}finally{try{x&&!x.done&&(Z=M.return)&&Z.call(M)}finally{if($)throw $.error}}re.label=7;case 7:return k=C.next(),[3,5];case 8:return[3,11];case 9:return B=re.sent(),z={error:B},[3,11];case 10:try{k&&!k.done&&(K=C.return)&&K.call(C)}finally{if(z)throw z.error}return[7];case 11:return A&&h.length>0?[4,(0,p.prepareCopyrightZip)(e,b)]:[3,13];case 12:(V=re.sent())&&(_.copyrightZip=V,_.files.push({fileName:V.name,ext:"zip"}),h.push({workspaceId:+f,name:V.name,owner:P,url:"".concat(process.env.ROOT_URL,"/api/files/files/").concat(V.fileId,"?download=true"),materialGroupIdList:E,tagList:T})),re.label=13;case 13:return[4,w()];case 14:return H=re.sent(),_.requested=!0,[4,s.default.post("".concat(m,"/creativeSaas/v1/material/inbound_url"),{requestId:t,materialList:h},{headers:{"tenant-access-token":H}})];case 15:return J=re.sent(),Q=J.data,[4,null===(ee=e.logger)||void 0===ee?void 0:ee.info("[调用 content hub API]-".concat(t),{result:Q,materialList:h})];case 16:return re.sent(),[2,Q];case 17:return Y=re.sent(),_.error=Y.message,[4,null===(te=e.logger)||void 0===te?void 0:te.error("[调用 content hub API]-".concat(t),{error:Y.message,materialList:h})];case 18:return re.sent(),[2,Y.message];case 19:return[2]}})})};t.sendByMaterial=function(e,r){return a.__awaiter(void 0,void 0,void 0,function(){var s;return a.__generator(this,function(a){switch(a.label){case 0:return[4,e.getObject("pepsico_material").findOne(r)];case 1:return s=a.sent(),[4,(0,t.inventoryApprovalMaterial)(e,s.pepsico_material_approval,r,{spotCheck:!0})];case 2:return[2,a.sent()]}})})}},1072:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.contentHubMaterialGroups=void 0;var a=r(5584),s=r(6118),n=r(8844);t.contentHubMaterialGroups={rest:{method:"GET",fullPath:"/api/pepsico-content/content-hub/material-groups"},handler:function(e){var t,r;return a.__awaiter(this,void 0,void 0,function(){var i,o,c,l,p,u,_,d,v,g,f,m;return a.__generator(this,function(a){switch(a.label){case 0:return(i=e.meta.user)&&i.userId?[4,this.getLogger()]:[2,{status:401,msg:"未登录",data:{options:[]}}];case 1:o=a.sent(),e.logger=o,e.getObject=this.getObject,c=e.params||{},l=c.product,p=c.path,u=c.owner_department,_=c.classification,d=!0===(null===(t=e.params)||void 0===t?void 0:t.sales)||"true"===(null===(r=e.params)||void 0===r?void 0:r.sales),a.label=2;case 2:return a.trys.push([2,5,,7]),v=s.loadMaterialGroupOptions,g=[e],m={product:l,path:p},[4,(0,n.resolveOwnerDepartment)(e,u)];case 3:return[4,v.apply(void 0,g.concat([(m.ownerDepartment=a.sent(),m.classification=_,m.sales=d,m)]))];case 4:return[2,{status:0,msg:"",data:{options:a.sent()}}];case 5:return f=a.sent(),[4,o.error("[Content Hub 素材组查询]失败",{product:l,path:p,owner_department:u,classification:_,sales:d,error:f.message})];case 6:return a.sent(),[2,{status:500,msg:f.message,data:{options:[]}}];case 7:return[2]}})})}}},1401:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getReviewerAgentsInfo=void 0;var a=r(5584),s=function(e,t,r){return a.__awaiter(void 0,void 0,void 0,function(){var s,n,i,o;return a.__generator(this,function(a){switch(a.label){case 0:return s=new Date,[4,e.getObject("process_delegation_rules").find({filters:[["space","=",t],["from","=",r],["enabled","=",!0],["start_time","<=",s],["end_time",">=",s]],top:1,sort:"modified desc"})];case 1:return n=a.sent(),i=n.length>0?null===(o=n[0])||void 0===o?void 0:o.to:null,console.log("getAgent",i,JSON.stringify({filters:[["space","=",t],["from","=",r],["enabled","=",!0],["start_time","<=",s],["end_time",">=",s]],top:1,sort:"modified desc"})),[2,i]}})})};t.getReviewerAgentsInfo=function(e,t,r){return a.__awaiter(void 0,void 0,void 0,function(){var n,i,o,c,l,p,u,_;return a.__generator(this,function(d){switch(d.label){case 0:n={userIds:[],clientUserIds:[]},d.label=1;case 1:d.trys.push([1,6,7,8]),i=a.__values(r),o=i.next(),d.label=2;case 2:return o.done?[3,5]:(c=o.value,[4,s(e,t,c)]);case 3:l=d.sent(),n.userIds.push(l||c),n.clientUserIds.push(c),d.label=4;case 4:return o=i.next(),[3,2];case 5:return[3,8];case 6:return p=d.sent(),u={error:p},[3,8];case 7:try{o&&!o.done&&(_=i.return)&&_.call(i)}finally{if(u)throw u.error}return[7];case 8:return console.log("getReviewerAgentsInfo:",r,n),[2,n]}})})}},1826:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.sendToContentHub=void 0;var a=r(5584),s=r(1057);t.sendToContentHub={rest:{method:"GET",fullPath:"/api/pepsico-content/send/content-hub/:approverId"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r;return a.__generator(this,function(a){switch(a.label){case 0:if(!e.meta.user.is_space_admin)throw new Error("无权限!");if(!(t=e.params.approverId))throw new Error("请传入参数approverId");return[4,this.getLogger()];case 1:return r=a.sent(),e.logger=r,e.getObject=this.getObject,[4,(0,s.inventoryApprovalMaterial)(e,t,void 0,{force:!0})];case 2:return[2,a.sent()]}})})}}},1959:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.postponeReview=void 0;var a=r(5584);t.postponeReview={rest:{method:"POST",fullPath:"/api/pepsico-content/approve/postpone-review/:recordId"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t;return a.__generator(this,function(r){switch(r.label){case 0:return e.getObject=this.getObject,[4,this.getLogger()];case 1:return t=r.sent(),e.logger=t,[4,this.postponeReview.call(this,e,e.params.recordId,e.params)];case 2:return r.sent(),[2,{}]}})})}}},1972:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.contentHubSyncPreview=void 0;var a=r(5584),s=r(8844);t.contentHubSyncPreview={rest:{method:"GET",fullPath:"/api/pepsico-content/content-hub/sync-preview"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,n,i,o,c,l,p,u,_,d,v,g,f,m;return a.__generator(this,function(a){switch(a.label){case 0:return(t=e.meta.user)&&t.userId?[4,this.getLogger()]:[2,{status:401,msg:"未登录",data:{}}];case 1:r=a.sent(),e.logger=r,e.getObject=this.getObject,n=e.params||{},i=n.owner_department,o=n.classification,c=n.product,l=n.kol_classification,a.label=2;case 2:return a.trys.push([2,5,,7]),v=s.previewSyncForForm,g=[e],m={},[4,(0,s.resolveOwnerDepartment)(e,i)];case 3:return[4,v.apply(void 0,g.concat([(m.ownerDepartment=a.sent(),m.classification=o,m.product=c,m.kolClassification=l,m)]))];case 4:return p=a.sent(),u=p.needSync,_=p.rule,d=p.mismatches,[2,{status:0,msg:"",data:{ch_sync_preview:{needSync:u,ruleName:_?_.name:null,mismatches:d}}}];case 5:return f=a.sent(),[4,r.error("[Content Hub 同步规则]填单预判失败",{owner_department:i,classification:o,product:c,kol_classification:l,error:f.message})];case 6:return a.sent(),[2,{status:500,msg:f.message,data:{}}];case 7:return[2]}})})}}},2045:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});var a=r(5584);a.__exportStar(r(7065),t),a.__exportStar(r(4754),t),a.__exportStar(r(298),t),a.__exportStar(r(5256),t),a.__exportStar(r(3222),t),a.__exportStar(r(5264),t),a.__exportStar(r(9536),t),a.__exportStar(r(3180),t),a.__exportStar(r(3334),t),a.__exportStar(r(4727),t),a.__exportStar(r(4932),t),a.__exportStar(r(2458),t),a.__exportStar(r(8152),t),a.__exportStar(r(9082),t),a.__exportStar(r(1826),t),a.__exportStar(r(9227),t),a.__exportStar(r(8864),t),a.__exportStar(r(6074),t),a.__exportStar(r(2418),t),a.__exportStar(r(4676),t),a.__exportStar(r(2189),t),a.__exportStar(r(9435),t),a.__exportStar(r(7815),t),a.__exportStar(r(6586),t),a.__exportStar(r(1959),t),a.__exportStar(r(2563),t),a.__exportStar(r(164),t),a.__exportStar(r(5383),t),a.__exportStar(r(5176),t),a.__exportStar(r(1072),t),a.__exportStar(r(1972),t),a.__exportStar(r(9600),t)},2143:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.downloadDocFromOneDriveDoc=t.downloadBulkFromOneDriveDoc=t.deleteDocOneDriveShareLink=t.deleteBulkDocOneDriveShareLink=t.uploadBulkDocToOneDrive=t.getOneDriveMaterials=t.getPendingUploadsToOneDriveMaterials=t.uploadDocToOneDrive=t.getUserReviewedAllMaterialsStatus=t.getApproverFieldByType=t.getApproverField=t.submitMaterial=t.addBulkMaterials=t.hasDuplicateMaterials=t.officeFileSizeProblem=void 0;var a=r(5584),s=r(8398),n=r(7825),i=r(904),o=r(6928),c=r(8862),l=["doc","docx","ppt","pptx","xls","xlsx"];t.officeFileSizeProblem=function(e,t){return l.includes(function(e){return o.extname(e||"").slice(1).toLowerCase()}(e))&&t>262144e3?"文档类素材最大支持 250MB(SharePoint 接口限制),当前文件约 ".concat(Math.round(t/1024/1024),"MB。请精简文件后重新上传。"):""},t.hasDuplicateMaterials=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){var r,s,i;return a.__generator(this,function(a){switch(a.label){case 0:return[4,e.getObject("pepsico_material").directFind({filters:[["pepsico_material_approval","=",t],["void_material","!=",!0],["is_bypassed","!=",!0]],fields:["_id","material","md5"]})];case 1:return r=a.sent(),(s=n.compact(n.map(r,"md5"))).length!==n.uniq(s).length?[2,!0]:[4,e.getObject("pepsico_material").directFind({filters:["md5","=",s],fields:["_id"]})];case 2:return i=a.sent(),[2,s.length<i.length]}})})},t.addBulkMaterials=function(e,t,r){return a.__awaiter(void 0,void 0,void 0,function(){var o,l,p,u,_,d,v,g,f,m,h,b,w,y,O,S;return a.__generator(this,function(A){switch(A.label){case 0:return o=e.meta.user,[4,e.getObject("pepsico_material_approval").findOne(t)];case 1:if(l=A.sent(),o.userId!=l.owner)throw new Error("只有创建者才能添加素材");if(p=l.materials_quantity||0,u=n.includes(c.DCO_TYPES,l.classification)?300:50,p>=u)throw new Error("素材数量:最多".concat(u,"个"));if(p+r.length>u)throw new Error("素材数量:最多".concat(u,"个. 您本次添加了").concat(r.length,"个素材"));return _=n.includes(c.DCO_TYPES,l.classification)?10737418240:1073741824,[4,e.getObject("pepsico_material").find({filters:["pepsico_material_approval","=",l._id],fields:["material"]})];case 2:return d=A.sent(),v=n.concat(r,n.map(d,"material")),[4,e.getObject("cfs_files_filerecord").aggregate({},[{$match:{_id:{$in:v}}},{$group:{_id:null,totalSize:{$sum:"$copies.files.size"}}}])];case 3:if(g=A.sent(),((null===(S=g[0])||void 0===S?void 0:S.totalSize)||0)>_)throw new Error("附件总大小超过 10GB,禁止添加素材");return[4,e.getObject("cfs_files_filerecord").find({filters:["_id","=",r]})];case 4:if(f=A.sent(),l.current_step!=s.Step.draft&&l.current_step!=s.Step.submitter_revisions)return[3,12];A.label=5;case 5:A.trys.push([5,10,11,12]),m=a.__values(f),h=m.next(),A.label=6;case 6:return h.done?[3,9]:(b=h.value,[4,e.getObject("pepsico_material").insert({pepsico_material_approval:l._id,product:n.first(n.split(l.product,"-")),shop_tag:l.shop_tag,material:b._id,material_original:b._id,md5:b.original.md5,name:n.trim(b.original.name),classification:l.classification,extension_type:(0,i.extension)(b.original.type),material_type:l.material_type,social_media:l.social_media,followers:l.followers,kol_classification:l.kol_classification,owner_department:l.owner_department,brief_flow:l.brief_flow,owner:l.owner,space:l.space,created:new Date,created_by:o.userId,modified:new Date,modified_by:o.userId})]);case 7:A.sent(),A.label=8;case 8:return h=m.next(),[3,6];case 9:return[3,12];case 10:return w=A.sent(),y={error:w},[3,12];case 11:try{h&&!h.done&&(O=m.return)&&O.call(m)}finally{if(y)throw y.error}return[7];case 12:return[2,{}]}})})},t.submitMaterial=function(e,t,r){return a.__awaiter(this,void 0,void 0,function(){return a.__generator(this,function(a){switch(a.label){case 0:switch(r){case s.ApprovalStatus.approved:return[3,1];case s.ApprovalStatus.pass:return[3,3];case s.ApprovalStatus.rejected:return[3,5]}return[3,7];case 1:return[4,p.call(this,e,t)];case 2:case 4:case 6:return[2,a.sent()];case 3:return[4,p.call(this,e,t,s.ApprovalStatus.pass)];case 5:return[4,u.call(this,e,t)];case 7:return[2,{}]}})})},t.getApproverField=function(e,r,i,o){return a.__awaiter(void 0,void 0,void 0,function(){var c,l,p;return a.__generator(this,function(a){switch(a.label){case 0:return c="",console.log("[getApproverField]",JSON.stringify({userId:o,ca_reviewer:r.ca_reviewer,qc_reviewer:r.qc_reviewer,sra_reviewer:r.sra_reviewer,ns_reviewer:r.ns_reviewer,legal_reviewer:r.legal_reviewer,reviewer:r.reviewer,current_step:r.current_step})),[4,e.getObject("pepsico_approval_process").find({filters:[["owner","=",o],["pepsico_material_approval","=",r._id],["current_step","=",r.current_step],["space","=",r.space],["approved","=","progess"]],top:1,sort:"modified asc"})];case 1:return(l=a.sent()).length>0&&(p=l[0].type,c="Kids"===p?"kids_approval_status":(0,t.getApproverFieldByType)(p)),c||(r.current_step==s.Step.departmental_review&&(r.pre_ns_reviewer===o?c="pre_ns_approval_status":r.pre_legal_reviewer===o?c="pre_legal_approval_status":r.pre_sra_reviewer===o?c="pre_sra_approval_status":r.pre_ca_reviewer===o?c="pre_ca_approval_status":"yes"===r.ec_has_detail_page&&r.pre_qc_reviewer===o?c="pre_qc_approval_status":n.includes(r.ca_reviewer,o)?c="ca_approval_status":n.includes(r.sra_reviewer,o)?c="sra_approval_status":n.includes(r.ns_reviewer,o)?c="ns_approval_status":n.includes(r.legal_reviewer,o)?c="legal_approval_status":"yes"===r.ec_has_detail_page&&n.includes(r.qc_reviewer,o)&&(c="qc_approval_status")),r.current_step==s.Step.personnel_review&&(r.pre_reviewer===o?c="pre_approval_status":n.includes(r.reviewer,o)&&1!=i.approval_status&&(c="approval_status"))),n.includes([r.kids_reviewer],o)&&(c="kids_approval_status"),console.log("[getApproverField] fieldName:",c),[2,c]}})})},t.getApproverFieldByType=function(e){var t="";switch(e){case s.ProcessApprovalType.CA:t="ca_approval_status";break;case s.ProcessApprovalType.QC:t="qc_approval_status";break;case s.ProcessApprovalType.Legal:t="legal_approval_status";break;case s.ProcessApprovalType.NS:t="ns_approval_status";break;case s.ProcessApprovalType.SRA:t="sra_approval_status";break;case s.ProcessApprovalType.Kids:t="kids_approval_status";break;case s.ProcessApprovalType.guding:t="approval_status";break;case s.ProcessApprovalType.PreNS:t="pre_ns_approval_status";break;case s.ProcessApprovalType.PreLegal:t="pre_legal_approval_status";break;case s.ProcessApprovalType.PreSRA:t="pre_sra_approval_status";break;case s.ProcessApprovalType.PreCA:t="pre_ca_approval_status";break;case s.ProcessApprovalType.PreQC:t="pre_qc_approval_status";break;case s.ProcessApprovalType.Preguding:t="pre_approval_status"}return t};var p=function(e,r,n){return void 0===n&&(n=s.ApprovalStatus.approved),a.__awaiter(this,void 0,void 0,function(){var i,o,c,l,p,u;return a.__generator(this,function(a){switch(a.label){case 0:return i=e.meta.user,[4,e.getObject("pepsico_material").findOne(r)];case 1:return o=a.sent(),[4,e.getObject("pepsico_material_approval").findOne(o.pepsico_material_approval)];case 2:return c=a.sent(),[4,(0,t.getApproverField)(e,c,o,i.userId)];case 3:return(l=a.sent())?[4,e.getObject("pepsico_material").update(r,(u={},u[l]=n===s.ApprovalStatus.approved||"pass",u))]:[2];case 4:return a.sent(),l&&"kids_approval_status"===l&&"pass"!=n?[2,{}]:(console.log("[approveMaterial] approveField",l),[4,(0,t.getUserReviewedAllMaterialsStatus)(e,c._id,l)]);case 5:return p=a.sent(),console.log("[approveMaterial] materialStatus",p),p==s.ApprovalStatus.pending?[3,9]:p!=s.ApprovalStatus.approved&&p!==s.ApprovalStatus.pass?[3,7]:[4,this.approvalContent(e,c._id,{approveField:l,materialStatus:p})];case 6:return a.sent(),[3,9];case 7:return p!=s.ApprovalStatus.rejected?[3,9]:[4,this.rejectContent(e,c._id,{approveField:l,materialStatus:p})];case 8:a.sent(),a.label=9;case 9:return[2]}})})},u=function(e,r){return a.__awaiter(this,void 0,void 0,function(){var n,i,o,c,l,p;return a.__generator(this,function(a){switch(a.label){case 0:return n=e.meta.user,[4,e.getObject("pepsico_material").findOne(r)];case 1:return i=a.sent(),[4,e.getObject("pepsico_material_approval").findOne(i.pepsico_material_approval)];case 2:return o=a.sent(),[4,(0,t.getApproverField)(e,o,i,n.userId)];case 3:return(c=a.sent())?[4,e.getObject("pepsico_material").update(r,(p={},p[c]=!1,p))]:[2];case 4:return a.sent(),[4,(0,t.getUserReviewedAllMaterialsStatus)(e,o._id,c)];case 5:return(l=a.sent())==s.ApprovalStatus.pending?[3,7]:[4,this.rejectContent(e,o._id,{approveField:c,materialStatus:l})];case 6:a.sent(),a.label=7;case 7:return[2]}})})};t.getUserReviewedAllMaterialsStatus=function(e,t,r){return a.__awaiter(void 0,void 0,void 0,function(){var i,o;return a.__generator(this,function(a){switch(a.label){case 0:return[4,e.getObject("pepsico_material").find({filters:[["pepsico_material_approval","=",t],["void_material","!=",!0],["is_bypassed","!=",!0]]})];case 1:return i=a.sent(),o=n.filter(i,function(e){return null===e[r]||!n.has(e,r)||""===e[r]||void 0===e[r]}).length>0,console.log("getUserReviewedAllMaterialsStatus:",t,"未作废/跳过的素材数量为:",i.length,"hasPending:",o,r),o?[2,s.ApprovalStatus.pending]:n.filter(i,function(e){return!1===e[r]}).length>0?[2,s.ApprovalStatus.rejected]:n.filter(i,function(e){return"pass"===e[r]}).length===i.length?[2,s.ApprovalStatus.pass]:[2,s.ApprovalStatus.approved]}})})},t.uploadDocToOneDrive=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){var r,s,n,i,o;return a.__generator(this,function(a){switch(a.label){case 0:return a.trys.push([0,4,,7]),[4,e.broker.call("content-version-bridge.material_uploadDocToOneDrive",{material:t})];case 1:return r=a.sent(),s=r.item,n=r.viewSharedLink,i=r.editSharedLink,[4,e.getObject("pepsico_material").directUpdate(t._id,{uploaded_to_onedrive:!0,onedrive_item:s,onedrive_shared_link_view:n,onedrive_shared_link_edit:i})];case 2:return a.sent(),[4,e.logger.info("".concat(t.pepsico_material_approval,"-").concat(t._id,"-[素材上传到oneDrive成功]"),{objectName:"pepsico_material",_id:t._id,pepsico_material_approval:t.pepsico_material_approval,fileInfo:s,viewSharedLink:n,editSharedLink:i})];case 3:return a.sent(),[2,!0];case 4:return o=a.sent(),[4,e.getObject("pepsico_material").directUpdate(t._id,{uploaded_to_onedrive:!1})];case 5:return a.sent(),[4,e.logger.error("".concat(t.pepsico_material_approval,"-").concat(t._id,"-[素材上传到oneDrive失败]:").concat(o.message),{objectName:"pepsico_material",_id:t._id,pepsico_material_approval:t.pepsico_material_approval,file_name:t.name,extension_type:t.extension_type,uploaded_file:t.material,error:o.message})];case 6:return a.sent(),console.log("uploadDocToOneDrive error:",o),[2,!1];case 7:return[2]}})})},t.getPendingUploadsToOneDriveMaterials=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){return a.__generator(this,function(r){switch(r.label){case 0:return[4,e.getObject("pepsico_material").find({filters:[["pepsico_material_approval","=",t],["extension_type","in",["doc","docx","ppt","pptx"]],["void_material","!=",!0],["uploaded_to_onedrive","!=",!0]]})];case 1:return[2,r.sent()]}})})},t.getOneDriveMaterials=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){return a.__generator(this,function(r){switch(r.label){case 0:return[4,e.getObject("pepsico_material").find({filters:[["pepsico_material_approval","=",t],["extension_type","in",["doc","docx","ppt","pptx"]],["void_material","!=",!0]]})];case 1:return[2,r.sent()]}})})},t.uploadBulkDocToOneDrive=function(e,r){return a.__awaiter(void 0,void 0,void 0,function(){var s,n,i,o,c,l,p,u;return a.__generator(this,function(_){switch(_.label){case 0:return[4,(0,t.getPendingUploadsToOneDriveMaterials)(e,r)];case 1:s=_.sent(),n=!0,_.label=2;case 2:_.trys.push([2,7,8,9]),i=a.__values(s),o=i.next(),_.label=3;case 3:return o.done?[3,6]:(c=o.value,[4,(0,t.uploadDocToOneDrive)(e,c)]);case 4:!1===_.sent()&&(n=!1),_.label=5;case 5:return o=i.next(),[3,3];case 6:return[3,9];case 7:return l=_.sent(),p={error:l},[3,9];case 8:try{o&&!o.done&&(u=i.return)&&u.call(i)}finally{if(p)throw p.error}return[7];case 9:return 1!=n?[3,11]:[4,e.getObject("pepsico_material_approval").directUpdate(r,{materials_uploaded_to_onedrive_status:"completed"})];case 10:return _.sent(),[3,13];case 11:return[4,e.getObject("pepsico_material_approval").directUpdate(r,{materials_uploaded_to_onedrive_status:"failed",$inc:{materials_uploaded_to_onedrive_failed_count:1}})];case 12:_.sent(),_.label=13;case 13:return[2,n]}})})},t.deleteBulkDocOneDriveShareLink=function(e,r){return a.__awaiter(void 0,void 0,void 0,function(){var s,n,i,o,c,l,p,u;return a.__generator(this,function(_){switch(_.label){case 0:return s=!0,[4,e.getObject("pepsico_material").find({filters:[["pepsico_material_approval","=",r],["extension_type","in",["doc","docx","ppt","pptx"]]]})];case 1:n=_.sent(),_.label=2;case 2:_.trys.push([2,7,8,9]),i=a.__values(n),o=i.next(),_.label=3;case 3:return o.done?[3,6]:(c=o.value,[4,(0,t.deleteDocOneDriveShareLink)(e,c)]);case 4:!1===_.sent()&&(s=!1),_.label=5;case 5:return o=i.next(),[3,3];case 6:return[3,9];case 7:return l=_.sent(),p={error:l},[3,9];case 8:try{o&&!o.done&&(u=i.return)&&u.call(i)}finally{if(p)throw p.error}return[7];case 9:return 1!=s?[3,11]:[4,e.getObject("pepsico_material_approval").directUpdate(r,{materials_remove_share_link_from_onedrive_status:"completed"})];case 10:return _.sent(),[3,13];case 11:return[4,e.getObject("pepsico_material_approval").directUpdate(r,{materials_remove_share_link_from_onedrive_status:"failed",$inc:{materials_remove_share_link_from_onedrive_failed_count:1}})];case 12:_.sent(),_.label=13;case 13:return[2,s]}})})},t.deleteDocOneDriveShareLink=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){var r;return a.__generator(this,function(a){switch(a.label){case 0:return a.trys.push([0,4,7,9]),console.log("deleteDocOneDriveShareLink",t.onedrive_item.id,t._id),[4,e.broker.call("content-version-bridge.material_deleteDocOneDriveShareLink",{material:t})];case 1:return a.sent(),[4,e.getObject("pepsico_material").directUpdate(t._id,{remove_share_link_from_onedrive:!0})];case 2:return a.sent(),[4,e.logger.info("".concat(t.pepsico_material_approval,"-").concat(t._id,"-[从oneDrive删除共享连接成功]"),{objectName:"pepsico_material",_id:t._id,pepsico_material_approval:t.pepsico_material_approval})];case 3:return a.sent(),[2,!0];case 4:return r=a.sent(),[4,e.getObject("pepsico_material").directUpdate(t._id,{remove_share_link_from_onedrive:!1})];case 5:return a.sent(),[4,e.logger.error("".concat(t.pepsico_material_approval,"-").concat(t._id,"-[从oneDrive删除共享连接失败]:").concat(r.message),{objectName:"pepsico_material",_id:t._id,pepsico_material_approval:t.pepsico_material_approval})];case 6:return a.sent(),console.log("deleteDocOneDriveShareLink error:",r),[2,!1];case 7:return[4,e.getObject("pepsico_material").directUpdate(t._id,{onedrive_shared_link_edit:null})];case 8:return a.sent(),[7];case 9:return[2]}})})},t.downloadBulkFromOneDriveDoc=function(e,r){return a.__awaiter(void 0,void 0,void 0,function(){var s,n,i,o,c,l,p,u;return a.__generator(this,function(_){switch(_.label){case 0:return[4,e.getObject("pepsico_material").find({filters:[["pepsico_material_approval","=",r],["extension_type","in",["doc","docx","ppt","pptx"]],["void_material","!=",!0],["download_from_onedrive","!=",!0]]})];case 1:s=_.sent(),n=!0,_.label=2;case 2:_.trys.push([2,7,8,9]),i=a.__values(s),o=i.next(),_.label=3;case 3:return o.done?[3,6]:(c=o.value,[4,(0,t.downloadDocFromOneDriveDoc)(e,c)]);case 4:!1===_.sent()&&(n=!1),_.label=5;case 5:return o=i.next(),[3,3];case 6:return[3,9];case 7:return l=_.sent(),p={error:l},[3,9];case 8:try{o&&!o.done&&(u=i.return)&&u.call(i)}finally{if(p)throw p.error}return[7];case 9:return 1!=n?[3,11]:[4,e.getObject("pepsico_material_approval").directUpdate(r,{materials_download_from_onedrive_status:"completed"})];case 10:return _.sent(),[3,13];case 11:return[4,e.getObject("pepsico_material_approval").directUpdate(r,{materials_download_from_onedrive_status:"failed",$inc:{materials_download_from_onedrive_failed_count:1}})];case 12:_.sent(),_.label=13;case 13:return[2,n]}})})},t.downloadDocFromOneDriveDoc=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){var r,s,n;return a.__generator(this,function(a){switch(a.label){case 0:r=(new Date).getTime(),a.label=1;case 1:return a.trys.push([1,5,,8]),[4,e.broker.call("content-version-bridge.material_downloadDocFromOneDriveDoc",{material:t})];case 2:return s=a.sent(),console.log("downloadDocFromOneDriveDoc-".concat(t._id),s._id,s),[4,e.getObject("pepsico_material").directUpdate(t._id,{material:s._id,$push:{material_one_drive_history:s._id},download_from_onedrive:!0})];case 3:return a.sent(),[4,e.logger.info("".concat(t.pepsico_material_approval,"-").concat(t._id,"-[从oneDrive下载素材成功]"),{objectName:"pepsico_material",_id:t._id,pepsico_material_approval:t.pepsico_material_approval,time:(new Date).getTime()-r})];case 4:return a.sent(),[2,!0];case 5:return n=a.sent(),[4,e.getObject("pepsico_material").directUpdate(t._id,{download_from_onedrive:!1})];case 6:return a.sent(),[4,e.logger.error("".concat(t.pepsico_material_approval,"-").concat(t._id,"-[从oneDrive下载素材失败]:").concat(n.message),{objectName:"pepsico_material",_id:t._id,pepsico_material_approval:t.pepsico_material_approval,time:(new Date).getTime()-r})];case 7:return a.sent(),console.log("downloadDocFromOneDriveDoc error:",n),[2,!1];case 8:return[2]}})})}},2189:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getImageComparisonStatus=t.triggerImageComparison=void 0;var a=r(5584);t.triggerImageComparison={rest:{method:"POST",fullPath:"/api/pepsico-content/image-comparison/trigger/:recordId"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,s,n,i;return a.__generator(this,function(a){switch(a.label){case 0:return e.getObject=this.getObject,[4,this.getLogger()];case 1:t=a.sent(),e.logger=t,s=e.params.recordId,a.label=2;case 2:return a.trys.push([2,5,,6]),[4,Promise.resolve().then(function(){return r(4665)})];case 3:return n=a.sent().triggerImageComparisonAsync,console.log("[API] 手动触发图片对比: ".concat(s)),[4,n(e,s)];case 4:return a.sent(),[2,{success:!0,message:"图片对比任务已触发"}];case 5:return i=a.sent(),console.error("[API] 触发图片对比失败: ".concat(s),i.message),[2,{success:!1,error:i.message}];case 6:return[2]}})})}},t.getImageComparisonStatus={rest:{method:"GET",fullPath:"/api/pepsico-content/image-comparison/status/:recordId"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s;return a.__generator(this,function(a){switch(a.label){case 0:e.getObject=this.getObject,t=e.params.recordId,a.label=1;case 1:return a.trys.push([1,3,,4]),[4,e.getObject("pepsico_material_approval").findOne(t)];case 2:return(r=a.sent())?[2,{success:!0,data:{status:r.image_comparison_status,stats:r.image_comparison_stats,comparedAt:r.image_comparison_at}}]:[2,{success:!1,error:"审批单不存在"}];case 3:return s=a.sent(),console.error("[API] 获取图片对比状态失败: ".concat(t),s.message),[2,{success:!1,error:s.message}];case 4:return[2]}})})}}},2418:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.bypassApproval=void 0;var a=r(5584),s=r(8398),n=r(7825);t.bypassApproval={rest:{method:"POST",fullPath:"/api/pepsico-content/approve/bypass-approval/:recordId"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,i,o,c,l,p,u,_,d,v,g,f,m,h,b,w,y,O,S,A,I,P,T,E,j,D,C,k;return a.__generator(this,function(R){switch(R.label){case 0:return e.getObject=this.getObject,[4,this.getLogger()];case 1:if(t=R.sent(),e.logger=t,r=e.params.recordId,i=e.params.reason,o=e.meta.user.userId,!i)throw new Error("请提供跳过原因");return[4,e.getObject("pepsico_material_approval").findOne(r)];case 2:if(!(c=R.sent()))throw new Error("未找到审批单");if(c.current_step===s.Step.conclusion||c.current_step===s.Step.draft)throw new Error("当前步骤不支持跳过操作");if(l="",p="",u="",_="",d="",v="",c.current_step===s.Step.departmental_review&&(n.includes(c.handler_preca||(c.pre_ca_reviewer?[c.pre_ca_reviewer]:[]),o)&&"pass"!==c.pre_ca_approval_status&&!0!==c.pre_ca_approval_status?(l="pre_ca_approval_status",v="CA预审"):n.includes(c.handler_presra||(c.pre_sra_reviewer?[c.pre_sra_reviewer]:[]),o)&&"pass"!==c.pre_sra_approval_status&&!0!==c.pre_sra_approval_status?(l="pre_sra_approval_status",v="SRA预审"):n.includes(c.handler_prens||(c.pre_ns_reviewer?[c.pre_ns_reviewer]:[]),o)&&"pass"!==c.pre_ns_approval_status&&!0!==c.pre_ns_approval_status?(l="pre_ns_approval_status",v="NS预审"):n.includes(c.handler_prelegal||(c.pre_legal_reviewer?[c.pre_legal_reviewer]:[]),o)&&"pass"!==c.pre_legal_approval_status&&!0!==c.pre_legal_approval_status?(l="pre_legal_approval_status",v="Legal预审"):"yes"===c.ec_has_detail_page&&n.includes(c.handler_preqc||(c.pre_qc_reviewer?[c.pre_qc_reviewer]:[]),o)&&"pass"!==c.pre_qc_approval_status&&!0!==c.pre_qc_approval_status?(l="pre_qc_approval_status",v="QC预审"):n.includes(c.handler_ca||c.ca_reviewer,o)&&!0!==c.ca_bypassed?(l="ca_approval_status",p="ca_bypassed",u="ca_bypassed_by",_="ca_bypass_reason",d="ca_bypassed_at",v="CA"):n.includes(c.handler_sra||c.sra_reviewer,o)&&!0!==c.sra_bypassed?(l="sra_approval_status",p="sra_bypassed",u="sra_bypassed_by",_="sra_bypass_reason",d="sra_bypassed_at",v="SRA"):n.includes(c.handler_ns||c.ns_reviewer,o)&&!0!==c.ns_bypassed?(l="ns_approval_status",p="ns_bypassed",u="ns_bypassed_by",_="ns_bypass_reason",d="ns_bypassed_at",v="NS"):n.includes(c.handler_legal||c.legal_reviewer,o)&&!0!==c.legal_bypassed?(l="legal_approval_status",p="legal_bypassed",u="legal_bypassed_by",_="legal_bypass_reason",d="legal_bypassed_at",v="Legal"):"yes"===c.ec_has_detail_page&&n.includes(c.handler_qc||c.qc_reviewer,o)&&!0!==c.qc_bypassed&&(l="qc_approval_status",p="qc_bypassed",u="qc_bypassed_by",_="qc_bypass_reason",d="qc_bypassed_at",v="QC")),c.current_step===s.Step.personnel_review&&(n.includes(c.handler_preguding||(c.pre_reviewer?[c.pre_reviewer]:[]),o)&&"pass"!==c.pre_approval_status&&!0!==c.pre_approval_status?(l="pre_approval_status",v="固定人员预审"):n.includes(c.handler_personnel||c.reviewer,o)&&(l="approval_status",p="approval_bypassed",u="approval_bypassed_by",_="approval_bypass_reason",d="approval_bypassed_at",v="固定人员")),""===l&&n.includes(c.handler_kids||c.kids_reviewer,o)&&(l="kids_approval_status",p="kids_bypassed",u="kids_bypassed_by",_="kids_bypass_reason",d="kids_bypassed_at",v="Kids"),console.log("approveField===>",l),!l)throw new Error("您不是当前步骤的审核人,无权限跳过");return p?[4,e.getObject("pepsico_material_approval").directUpdate(r,(T={},T[p]=!0,T[u]=o,T[_]=i,T[d]=new Date,T))]:[3,4];case 3:R.sent(),R.label=4;case 4:return[4,e.getObject("pepsico_material").find({filters:[["pepsico_material_approval","=",r],["void_material","!=",!0]]})];case 5:g=R.sent(),R.label=6;case 6:R.trys.push([6,11,12,13]),f=a.__values(g),m=f.next(),R.label=7;case 7:return m.done?[3,10]:!0===(h=m.value)[l]||"pass"===h[l]?[3,9]:((D={})[l]="pass",b=D,p&&(b[p]=!0,b[u]=o,b[_]=i,b[d]=new Date),[4,e.getObject("pepsico_material").directUpdate(h._id,b)]);case 8:R.sent(),t.info("User ".concat(o," (").concat(v,") bypassed material ").concat(h._id," via approval bypass")),R.label=9;case 9:return m=f.next(),[3,7];case 10:return[3,13];case 11:return w=R.sent(),E={error:w},[3,13];case 12:try{m&&!m.done&&(j=f.return)&&j.call(f)}finally{if(E)throw E.error}return[7];case 13:return y=[["owner","=",o],["pepsico_material_approval","=",r],["current_step","=",c.current_step],["space","=",c.space],["approved","=","progess"]],l&&("kids_approval_status"===l?y.push(["type","=","Kids"]):"ca_approval_status"===l?y.push(["type","=","CA"]):"qc_approval_status"===l?y.push(["type","=","QC"]):"sra_approval_status"===l?y.push(["type","=","SRA"]):"ns_approval_status"===l?y.push(["type","=","NS"]):"legal_approval_status"===l?y.push(["type","=","Legal"]):"approval_status"===l?y.push(["type","=","guding"]):"pre_ns_approval_status"===l?y.push(["type","=","PreNS"]):"pre_legal_approval_status"===l?y.push(["type","=","PreLegal"]):"pre_sra_approval_status"===l?y.push(["type","=","PreSRA"]):"pre_ca_approval_status"===l?y.push(["type","=","PreCA"]):"pre_qc_approval_status"===l?y.push(["type","=","PreQC"]):"pre_approval_status"===l&&y.push(["type","=","Preguding"])),[4,e.getObject("pepsico_approval_process").find({filters:y,sort:"modified asc"})];case 14:O=R.sent(),R.label=15;case 15:R.trys.push([15,20,21,22]),S=a.__values(O),A=S.next(),R.label=16;case 16:return A.done?[3,19]:(I=A.value,[4,e.getObject("pepsico_approval_process").update(I._id,{submitted:new Date,modified:new Date,modified_by:o,approved:"pass",name:i})]);case 17:R.sent(),R.label=18;case 18:return A=S.next(),[3,16];case 19:return[3,22];case 20:return P=R.sent(),C={error:P},[3,22];case 21:try{A&&!A.done&&(k=S.return)&&k.call(S)}finally{if(C)throw C.error}return[7];case 22:return[4,this.approvalContent.call(this,e,r,{approveField:l,materialStatus:s.ApprovalStatus.pass})];case 23:return R.sent(),[2,{success:!0,message:"已跳过该审批单的".concat(v,"审核")}]}})})}}},2458:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getDownloadMaterialsProgress=t.getUploadMaterialsProgress=void 0;var a=r(5584);t.getUploadMaterialsProgress={rest:{method:"GET",fullPath:"/api/pepsico-content/approve/:approveId/material/upload/progress"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s;return a.__generator(this,function(a){switch(a.label){case 0:return e.getObject=this.getObject,[4,this.getLogger()];case 1:return t=a.sent(),e.logger=t,[4,this.getOneDriveMaterials(e,e.params.approveId)];case 2:return(r=a.sent()).length<1?[2,{progress:100}]:(s=r.filter(function(e){return!0!==e.uploaded_to_onedrive}),[2,{progress:Math.round(100*(1-s.length/r.length))}])}})})}},t.getDownloadMaterialsProgress={rest:{method:"GET",fullPath:"/api/pepsico-content/approve/:approveId/material/download/progress"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s;return a.__generator(this,function(a){switch(a.label){case 0:return e.getObject=this.getObject,[4,this.getLogger()];case 1:return t=a.sent(),e.logger=t,[4,this.getOneDriveMaterials(e,e.params.approveId)];case 2:return(r=a.sent()).length<1?[2,{progress:100}]:(s=r.filter(function(e){return!0!==e.download_from_onedrive}),[2,{progress:Math.round(100*(1-s.length/r.length))}])}})})}}},2563:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getUrgentQuotaAction=t.urgentApproval=void 0;var a=r(5584);t.urgentApproval={rest:{method:"POST",fullPath:"/api/pepsico-content/approve/urgent/:recordId"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r;return a.__generator(this,function(a){switch(a.label){case 0:return e.getObject=this.getObject,t=e.meta.user,r=null==t?void 0:t.userId,[4,this.doUrgent(e,e.params.recordId,r)];case 1:return[2,a.sent()]}})})}},t.getUrgentQuotaAction={rest:{method:"GET",fullPath:"/api/pepsico-content/approve/urgent-quota/:recordId"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r;return a.__generator(this,function(a){switch(a.label){case 0:return e.getObject=this.getObject,t=e.meta.user,r=null==t?void 0:t.userId,[4,this.canUrgent(e,e.params.recordId,r)];case 1:return[2,a.sent()]}})})}}},2777:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.checkUserPasswordExpiration=void 0;var a=r(5584),s=r(4716);t.checkUserPasswordExpiration=function(e){return a.__awaiter(void 0,void 0,void 0,function(){var t,r,n,i,o,c,l,p,u,_,d,v,g,f,m,h,b,w,y,O,S,A,I,P,T,E,j,D,C,k;return a.__generator(this,function(R){switch(R.label){case 0:return R.trys.push([0,25,,26]),new Date,t=parseInt(process.env.PEPSICO_PASSWORD_EXPIRY_ADVANCE_DAYS||"5"),r=new Set,[4,e.getObject("spaces").find({filters:[["password_expiration_days",">",0]],fields:["_id","name","password_expiration_days"]})];case 1:n=R.sent(),R.label=2;case 2:R.trys.push([2,22,23,24]),i=a.__values(n),o=i.next(),R.label=3;case 3:if(o.done)return[3,21];c=o.value,l=c.password_expiration_days,p=[{type:"expired",daysOffset:l}],t>0&&t<l&&p.push({type:"warning",daysOffset:l-t}),R.label=4;case 4:R.trys.push([4,18,19,20]),j=void 0,u=a.__values(p),_=u.next(),R.label=5;case 5:return _.done?[3,17]:(d=_.value,v=s().subtract(d.daysOffset,"days").startOf("day").toDate(),g=s().subtract(d.daysOffset,"days").endOf("day").toDate(),console.log("[PasswordExpiry] Checking space '".concat(c.name,"' (expiration: ").concat(l," days, type: ").concat(d.type,"). Looking for passwords modified between ").concat(v," and ").concat(g)),[4,e.getObject("users").find({filters:[["password_modified_date",">=",v],["password_modified_date","<=",g],["is_valid","=",!0],["email","!=",null]],fields:["_id","name","email","password_modified_date"]})]);case 6:f=R.sent(),console.log("[PasswordExpiry] Found ".concat(f.length," users to notify in space ").concat(c.name," for ").concat(d.type)),R.label=7;case 7:R.trys.push([7,14,15,16]),C=void 0,m=a.__values(f),h=m.next(),R.label=8;case 8:if(h.done)return[3,13];if(b=h.value,r.has(b._id))return[3,12];R.label=9;case 9:return R.trys.push([9,11,,12]),w="",y="","expired"===d.type?(w="您的密码已过期 - ".concat(c.name),y="\n <p>尊敬的 ".concat(b.name,":</p>\n <p>根据 ").concat(c.name," 的安全策略,用户的密码有效期为 ").concat(l," 天。</p>\n <p>您的密码最后修改于 ").concat(s(b.password_modified_date).format("YYYY-MM-DD"),",目前已经过期。</p>\n <p>请尽快登录系统并修改您的密码。</p>\n <br/>\n <p>系统自动发送,请勿回复。</p>\n ")):(w="您的密码即将过期 - ".concat(c.name),y="\n <p>尊敬的 ".concat(b.name,":</p>\n <p>根据 ").concat(c.name," 的安全策略,用户的密码有效期为 ").concat(l," 天。</p>\n <p>您的密码最后修改于 ").concat(s(b.password_modified_date).format("YYYY-MM-DD"),",将于 ").concat(t," 天后过期。</p>\n <p>请尽快登录系统并修改您的密码。</p>\n <br/>\n <p>系统自动发送,请勿回复。</p>\n ")),[4,e.broker.call("@builder6/email.send",{to:b.email,subject:w,html:y})];case 10:return R.sent(),console.log("[PasswordExpiry] Email sent to ".concat(b.email," (").concat(b._id,") - ").concat(d.type)),r.add(b._id),[3,12];case 11:return O=R.sent(),console.error("[PasswordExpiry] Failed to send email to ".concat(b.email,":"),O),r.add(b._id),[3,12];case 12:return h=m.next(),[3,8];case 13:return[3,16];case 14:return S=R.sent(),C={error:S},[3,16];case 15:try{h&&!h.done&&(k=m.return)&&k.call(m)}finally{if(C)throw C.error}return[7];case 16:return _=u.next(),[3,5];case 17:return[3,20];case 18:return A=R.sent(),j={error:A},[3,20];case 19:try{_&&!_.done&&(D=u.return)&&D.call(u)}finally{if(j)throw j.error}return[7];case 20:return o=i.next(),[3,3];case 21:return[3,24];case 22:return I=R.sent(),T={error:I},[3,24];case 23:try{o&&!o.done&&(E=i.return)&&E.call(i)}finally{if(T)throw T.error}return[7];case 24:return[3,26];case 25:return P=R.sent(),console.error("[PasswordExpiry] Error:",P),[3,26];case 26:return[2]}})})}},2972:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.callChangePLSReview=t.callAIReview=void 0;var a=r(5584),s=r(8938),n=r(4809),i=process.env.PEPSICO_AI_HOST,o=process.env.PEPSICO_AI_API_KEY;t.callAIReview=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){var r,c,l,p,u,_,d;return a.__generator(this,function(a){switch(a.label){case 0:r="".concat(i,"/api/v1/review"),c=e.meta&&e.meta.user&&e.meta.user.userId,l=(new Date).getTime(),a.label=1;case 1:return a.trys.push([1,5,,8]),console.log("[调用 AI review API] 开始:",r,{approval_id:t},new Date),[4,s.default.post(r,{approval_id:t},{headers:{"X-API-Key":o}})];case 2:return p=a.sent(),u=p.data,d=(new Date).getTime()-l,console.log("[调用 AI review API]-".concat(t),u,"耗时:",d),[4,e.logger.info("[调用 AI review API]-".concat(t),u)];case 3:return a.sent(),[4,(0,n.writeSystemLog)(e,"info",{action:"ai-review",id:t,operator:c,url:r,status:"success",cost:d,response:u},"AI审核调用")];case 4:return a.sent(),[2,u];case 5:return _=a.sent(),d=(new Date).getTime()-l,console.error("[调用 AI review API]-".concat(t),_&&_.message,new Date),[4,e.logger.error("[调用 AI review API]-".concat(t),_&&_.message)];case 6:return a.sent(),[4,(0,n.writeSystemLog)(e,"error",{action:"ai-review",id:t,operator:c,url:r,status:"fail",cost:d,error:_&&_.message},"AI审核调用")];case 7:return a.sent(),[3,8];case 8:return[2]}})})},t.callChangePLSReview=function(e,t){var r=t.approvalId,c=t.materialId,l=t.plsFileId,p=t.newPlsFileIds;return a.__awaiter(void 0,void 0,void 0,function(){var t,u,_,d,v,g,f,m,h;return a.__generator(this,function(a){switch(a.label){case 0:t="".concat(i,"/api/v1/change_pls_review"),u=e.meta&&e.meta.user&&e.meta.user.userId,_=(new Date).getTime(),d=(Array.isArray(p)?p:[p]).filter(Boolean),v={approval_id:r,material_id:c,pls_file_id:l,new_pls_file_id:d.filter(function(e,t){return d.indexOf(e)===t})},a.label=1;case 1:return a.trys.push([1,5,,8]),console.log("[调用 AI change_pls_review API] 开始:",t,v,new Date),[4,s.default.post(t,v,{headers:{"X-API-Key":o}})];case 2:return g=a.sent(),f=g.data,h=(new Date).getTime()-_,console.log("[调用 AI change_pls_review API]-".concat(r),f,"耗时:",h),[4,e.logger.info("[调用 AI change_pls_review API]-".concat(r),f)];case 3:return a.sent(),[4,(0,n.writeSystemLog)(e,"info",{action:"change-pls-review",id:r,operator:u,url:t,request:v,status:"success",cost:h,response:f},"AI审核调用")];case 4:return a.sent(),[2,f];case 5:return m=a.sent(),h=(new Date).getTime()-_,console.error("[调用 AI change_pls_review API]-".concat(r),m&&m.message,new Date),[4,e.logger.error("[调用 AI change_pls_review API]-".concat(r),m&&m.message)];case 6:return a.sent(),[4,(0,n.writeSystemLog)(e,"error",{action:"change-pls-review",id:r,operator:u,url:t,request:v,status:"fail",cost:h,error:m&&m.message},"AI审核调用")];case 7:return a.sent(),[3,8];case 8:return[2]}})})}},3106:e=>{e.exports=require("zlib")},3180:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.submitPreReview=void 0;var a=r(5584);t.submitPreReview={rest:{method:"POST",fullPath:"/api/pepsico-content/approve/pre-review/submit/:recordId"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r;return a.__generator(this,function(a){switch(a.label){case 0:return e.getObject=this.getObject,[4,this.getLogger()];case 1:if(t=a.sent(),e.logger=t,"approved"!==(r=e.params.approvalStatus)&&"rejected"!==r)throw new Error("无效的审核状态, 必须是 approved 或 rejected");return[4,this.submitPreReviewContent(e,e.params.recordId,r)];case 2:return a.sent(),[2,{}]}})})}}},3200:e=>{e.exports=require("@steedos/service-package-loader")},3222:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.confirmDeployment=void 0;var a=r(5584);t.confirmDeployment={rest:{method:"POST",fullPath:"/api/pepsico-content/approve/confirm-deployment/:recordId"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r;return a.__generator(this,function(a){switch(a.label){case 0:return e.getObject=this.getObject,t=e.params.content_rule,[4,this.getLogger()];case 1:return r=a.sent(),e.logger=r,[4,this.confirmDeployment.call(this,e,e.params.recordId,{content_rule:t})];case 2:return a.sent(),[2,{}]}})})}}},3334:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.calculateSpotCheckRates=void 0;var a=r(5584);r(7825),t.calculateSpotCheckRates={rest:{method:"POST",fullPath:"/api/pepsico-content/calculateSpotCheckRates"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n,i,o,c,l,p,u,_,d,v,g,f,m,h,b,w,y,O;return a.__generator(this,function(S){switch(S.label){case 0:if(t=this.getObject("pepsico_material"),r=[],e.params.filters)try{r="string"==typeof e.params.filters?JSON.parse(e.params.filters):e.params.filters,Array.isArray(r)||(r=[])}catch(e){r=[]}return s=r.length>0,n=function(e,t){return 0===t.length?e:0===e.length?t:a.__spreadArray(a.__spreadArray(a.__spreadArray([],a.__read(e),!1),["and"],!1),a.__read(t),!1)},[4,this.getObject("organizations").find({filters:[["name","in",["NS","Legal","SRA","CA"]]],fields:["_id","name"]})];case 1:i=S.sent(),o={},i.forEach(function(e){return o[e.name]=e._id}),c=[["approval_status","=",!0],["kol_classification","=","Mid-tier"],["void_material","!=",!0]],l=[t.count({filters:s?r:c})],console.log("orgMap",o),p=["NS","Legal","SRA","CA"];try{for(u=a.__values(p),_=u.next();!_.done;_=u.next())d=_.value,o[d]?(v=[["spot_check_departments","=",o[d]],["kol_classification","=","Mid-tier"]],l.push(t.count({filters:s?n(r,[["spot_check_departments","=",o[d]]]):v}))):l.push(Promise.resolve(0))}catch(e){y={error:e}}finally{try{_&&!_.done&&(O=u.return)&&O.call(u)}finally{if(y)throw y.error}}return[4,Promise.all(l)];case 2:return g=a.__read.apply(void 0,[S.sent(),5]),f=g[0],m=g[1],h=g[2],b=g[3],w=g[4],[2,{pending_spot_count:f,ns_materials_quantity:m,legal_materials_quantity:h,sra_materials_quantity:b,ca_materials_quantity:w}]}})})}}},3833:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.sendDelayNotifications=t.processPostponeReviewNotifications=t.sendCcNotifications=t.sendNotifications=void 0;var a=r(5584),s=r(4716);t.sendNotifications=function(e,t,r,s){return a.__awaiter(void 0,void 0,void 0,function(){var n,i,o,c,l,p,u,_,d,v,g,f,m,h,b;return a.__generator(this,function(w){switch(w.label){case 0:console.log("sendNotifications",t._id,t.name,r,s),w.label=1;case 1:w.trys.push([1,21,,22]),w.label=2;case 2:w.trys.push([2,7,8,9]),n=a.__values(r),i=n.next(),w.label=3;case 3:return i.done?[3,6]:(o=i.value,[4,e.broker.call("notifications.add",{message:{name:"".concat(s,": ").concat(t.name),body:"",related_to:{o:"pepsico_material_approval",ids:[t._id]},related_name:t.name,from:t.owner,space:t.space},from:t.owner,to:o})]);case 4:w.sent(),w.label=5;case 5:return i=n.next(),[3,3];case 6:return[3,9];case 7:return c=w.sent(),f={error:c},[3,9];case 8:try{i&&!i.done&&(m=n.return)&&m.call(n)}finally{if(f)throw f.error}return[7];case 9:return[4,e.getObject("space_users").find({filters:[["user","=",r],["space","=",t.space]]})];case 10:l=w.sent(),w.label=11;case 11:w.trys.push([11,18,19,20]),p=a.__values(l),u=p.next(),w.label=12;case 12:if(u.done)return[3,17];if(!(_=u.value).email||!_.email_notification)return[3,16];w.label=13;case 13:return w.trys.push([13,15,,16]),[4,e.broker.call("@builder6/email.send",{to:_.email,subject:"".concat(s,": ").concat(t.name),html:'\n <p>您有一份文件需要查看和处理。请点击下面的链接来访问该文件:</p>\n <a href="'.concat(process.env.ROOT_URL,"/app/pepsico_content_review/pepsico_material_approval/view/").concat(t._id,'?side_object=pepsico_material_approval&side_listview_id=pending">').concat(t.name,"</a>\n ")})];case 14:return w.sent(),[3,16];case 15:return d=w.sent(),console.log(d),[3,16];case 16:return u=p.next(),[3,12];case 17:return[3,20];case 18:return v=w.sent(),h={error:v},[3,20];case 19:try{u&&!u.done&&(b=p.return)&&b.call(p)}finally{if(h)throw h.error}return[7];case 20:return console.timeEnd("sendNotifications-email: "+r.length),[3,22];case 21:return g=w.sent(),console.log(g),[3,22];case 22:return[2]}})})};var n={cc_added:{title:"审批单已抄送给您",intro:"您已被设为该内容审批单的抄送人,可随时查看审批进展。"},rejected:{title:"审批单已被驳回",intro:"抄送给您的审批单已被审核驳回,已退回发起人修订。"},awaiting_deployment:{title:"审批单已通过、待上线",intro:"抄送给您的审批单已全部审核通过,进入待上线阶段。"},completed:{title:"审批单审核已完成",intro:"抄送给您的审批单审核已完成。"}};t.sendCcNotifications=function(e,t,r,s){return a.__awaiter(void 0,void 0,void 0,function(){var i,o,c,l,p,u,_,d,v,g,f,m,h,b,w,y,O,S,A,I,P;return a.__generator(this,function(T){switch(T.label){case 0:o=(i=n[s]||n.cc_added).intro,"cc_added"===s&&(c=null===(P=null===(I=e.meta)||void 0===I?void 0:I.user)||void 0===P?void 0:P.name,o=c?"您已被".concat(c,"设置为该内容审批单的抄送人,可随时查看审批进展。"):i.intro),l="【抄送通知】".concat(i.title,":").concat(t.name),console.log("sendCcNotifications",t._id,t.name,r,s),T.label=1;case 1:T.trys.push([1,21,,22]),T.label=2;case 2:T.trys.push([2,7,8,9]),p=a.__values(r),u=p.next(),T.label=3;case 3:return u.done?[3,6]:(_=u.value,[4,e.broker.call("notifications.add",{message:{name:l,body:o,related_to:{o:"pepsico_material_approval",ids:[t._id]},related_name:t.name,from:t.owner,space:t.space},from:t.owner,to:_})]);case 4:T.sent(),T.label=5;case 5:return u=p.next(),[3,3];case 6:return[3,9];case 7:return d=T.sent(),y={error:d},[3,9];case 8:try{u&&!u.done&&(O=p.return)&&O.call(p)}finally{if(y)throw y.error}return[7];case 9:return[4,e.getObject("space_users").find({filters:[["user","=",r],["space","=",t.space]]})];case 10:v=T.sent(),T.label=11;case 11:T.trys.push([11,18,19,20]),g=a.__values(v),f=g.next(),T.label=12;case 12:if(f.done)return[3,17];if(!(m=f.value).email||!m.email_notification)return[3,16];T.label=13;case 13:return T.trys.push([13,15,,16]),[4,e.broker.call("@builder6/email.send",{to:m.email,subject:l,html:"\n <p>".concat(o,'</p>\n <p>如需查看审批单详情信息,请点击链接:<a href="').concat(process.env.ROOT_URL,"/app/pepsico_content_review/pepsico_material_approval/view/").concat(t._id,'?side_object=pepsico_material_approval&side_listview_id=all">').concat(t.name,"</a></p>\n ")})];case 14:return T.sent(),[3,16];case 15:return h=T.sent(),console.log(h),[3,16];case 16:return f=g.next(),[3,12];case 17:return[3,20];case 18:return b=T.sent(),S={error:b},[3,20];case 19:try{f&&!f.done&&(A=g.return)&&A.call(g)}finally{if(S)throw S.error}return[7];case 20:return[3,22];case 21:return w=T.sent(),console.log(w),[3,22];case 22:return[2]}})})},t.processPostponeReviewNotifications=function(e,r){return a.__awaiter(void 0,void 0,void 0,function(){var n,i,o,c,l,p,u,_,d,v;return a.__generator(this,function(g){switch(g.label){case 0:return console.time("processPostponeReviewNotifications"),n=s(),i=s(n).add(r,"minute").toDate(),[4,e.getObject("pepsico_review_postpone").directFind({filters:[["notification_sent","=",!1],["is_marker","!=",!0],["visible_after","<=",i]]})];case 1:o=g.sent(),console.log("processPostponeReviewNotifications count:",o.length),c=function(r){var s,n,i,o,c,l,p;return a.__generator(this,function(a){switch(a.label){case 0:return a.trys.push([0,8,,9]),s=r.pepsico_material_approval,n=r.postponed_user_ids?r.postponed_user_ids.split(",").filter(Boolean):[],s&&0!==n.length?[3,2]:[4,e.getObject("pepsico_review_postpone").directUpdate(r._id,{notification_sent:!0})];case 1:return a.sent(),[2,"continue"];case 2:return[4,e.getObject("pepsico_material_approval").findOne(s)];case 3:return(i=a.sent())?(o=i.review_postponed_users||[],c=o.filter(function(e){return!n.includes(e)}),[4,e.getObject("pepsico_material_approval").directUpdate(s,{review_postponed_users:c})]):[3,6];case 4:return a.sent(),"departmental_review"!==i.current_step&&"personnel_review"!==i.current_step?[3,6]:(l=n.filter(function(e){return Array.isArray(i.person_pending_approve)&&i.person_pending_approve.includes(e)})).length>0?[4,(0,t.sendNotifications)(e,i,l,"请审批")]:[3,6];case 5:a.sent(),a.label=6;case 6:return[4,e.getObject("pepsico_review_postpone").directUpdate(r._id,{notification_sent:!0})];case 7:return a.sent(),[3,9];case 8:return p=a.sent(),console.error("processPostponeReviewNotifications error for record",r._id,p),[3,9];case 9:return[2]}})},g.label=2;case 2:g.trys.push([2,7,8,9]),l=a.__values(o),p=l.next(),g.label=3;case 3:return p.done?[3,6]:(u=p.value,[5,c(u)]);case 4:g.sent(),g.label=5;case 5:return p=l.next(),[3,3];case 6:return[3,9];case 7:return _=g.sent(),d={error:_},[3,9];case 8:try{p&&!p.done&&(v=l.return)&&v.call(l)}finally{if(d)throw d.error}return[7];case 9:return console.timeEnd("processPostponeReviewNotifications"),[2]}})})},t.sendDelayNotifications=function(e,r){return a.__awaiter(void 0,void 0,void 0,function(){var n,i,o,c,l,p,u,_;return a.__generator(this,function(d){switch(d.label){case 0:return console.time("sendDelayNotifications"),n=s(),[4,e.getObject("pepsico_material_approval").find({filters:[["launch","=","postpone"],["postpone_launch_date",">=",n.toDate()],["postpone_launch_date","<=",s(n).add(r,"minute").toDate()]]})];case 1:i=d.sent(),console.log("sendDelayNotifications count:",i.length,{filters:[["launch","=","postpone"],["postpone_launch_date",">=",n.toDate()],["postpone_launch_date","<=",s(n).add(r,"minute").toDate()]]}),d.label=2;case 2:d.trys.push([2,7,8,9]),o=a.__values(i),c=o.next(),d.label=3;case 3:return c.done?[3,6]:(l=c.value).material_owner_id?[4,(0,t.sendNotifications)(e,l,[l.material_owner_id],"请确认上线")]:[3,5];case 4:d.sent(),d.label=5;case 5:return c=o.next(),[3,3];case 6:return[3,9];case 7:return p=d.sent(),u={error:p},[3,9];case 8:try{c&&!c.done&&(_=o.return)&&_.call(o)}finally{if(u)throw u.error}return[7];case 9:return console.timeEnd("sendDelayNotifications"),[2]}})})}},4425:e=>{e.exports=require("amis-formula")},4665:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.processPendingImageComparisons=t.triggerImageComparisonAsync=t.processBulkImageComparison=t.processImageComparison=t.storeComparisonResult=t.callImageComparisonAPI=t.prepareImageComparisonData=t.getMaterialVersions=t.getImageMaterials=t.isModifiedSubmission=void 0;var a=r(5584),s=r(8938),n=r(8398),i=process.env.PEPSICO_AI_HOST,o=process.env.PEPSICO_AI_API_KEY,c=["jpg","jpeg","png","gif","bmp","tiff","tif","svg","webp","ico","heif","heic"];t.isModifiedSubmission=function(e){return e.current_step===n.Step.submitter_revisions},t.getImageMaterials=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){return a.__generator(this,function(r){switch(r.label){case 0:return[4,e.getObject("pepsico_material").find({filters:[["pepsico_material_approval","=",t],["extension_type","in",c],["void_material","!=",!0],["is_bypassed","!=",!0]]})];case 1:return[2,r.sent()]}})})},t.getMaterialVersions=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){var e,r;return a.__generator(this,function(a){return e={current:t.material,previous:null,currentUrl:"",previousUrl:null},r=process.env.ROOT_URL||"",e.currentUrl="".concat(r,"/api/v6/files/cfs.files.filerecord/").concat(t.material),!e.previous&&t.material_original&&t.material_original!==t.material&&(e.previous=t.material_original,e.previousUrl="".concat(r,"/api/v6/files/cfs.files.filerecord/").concat(e.previous)),[2,e]})})},t.prepareImageComparisonData=function(e,t,r,s){return a.__awaiter(void 0,void 0,void 0,function(){var e,n;return a.__generator(this,function(a){return[2,{request:{image_url_a:r.previousUrl,image_url_b:r.currentUrl,threshold:null!==(e=null==s?void 0:s.threshold)&&void 0!==e?e:30,min_area:null!==(n=null==s?void 0:s.min_area)&&void 0!==n?n:50},metadata:{material_id:t._id,approval_id:t.pepsico_material_approval,name:t.name,current_file_id:r.current,previous_file_id:r.previous,extension_type:t.extension_type}}]})})},t.callImageComparisonAPI=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){var r,n,c,l,p,u,_,d,v,g,f,m,h,b;return a.__generator(this,function(a){switch(a.label){case 0:r=t.request,n=t.metadata,c="".concat(i,"/api/v1/compare_historical_images"),a.label=1;case 1:return a.trys.push([1,5,,8]),l=(new Date).getTime(),console.log("[调用 AI 图片对比 API] 开始:",c,{material_id:n.material_id,approval_id:n.approval_id,threshold:r.threshold,min_area:r.min_area},new Date),[4,s.default.post(c,r,{headers:{"X-API-Key":o,"Content-Type":"application/json"},timeout:12e4})];case 2:return p=a.sent(),u=p.data,console.log("[调用 AI 图片对比 API]-".concat(n.material_id),u,"耗时:",(new Date).getTime()-l),e.logger?[4,e.logger.info("[调用 AI 图片对比 API]-".concat(n.material_id),{data:u,duration:(new Date).getTime()-l})]:[3,4];case 3:a.sent(),a.label=4;case 4:return[2,u];case 5:return _=a.sent(),d=(null===(f=null===(g=_.response)||void 0===g?void 0:g.data)||void 0===f?void 0:f.detail)||(null===(h=null===(m=_.response)||void 0===m?void 0:m.data)||void 0===h?void 0:h.message)||_.message,v=null===(b=_.response)||void 0===b?void 0:b.status,console.error("[调用 AI 图片对比 API 失败]-".concat(n.material_id),"HTTP ".concat(v,":"),d,new Date),e.logger?[4,e.logger.error("[调用 AI 图片对比 API 失败]-".concat(n.material_id),{endpoint:c,body:r,error:d,statusCode:v,stack:_.stack})]:[3,7];case 6:a.sent(),a.label=7;case 7:throw _;case 8:return[2]}})})},t.storeComparisonResult=function(e,t,r){return a.__awaiter(void 0,void 0,void 0,function(){var s,n;return a.__generator(this,function(a){switch(a.label){case 0:return a.trys.push([0,4,,8]),s="too_many_differences"===r.status,[4,e.getObject("pepsico_material").directUpdate(t,{result_image:r.result_image,image_comparison_result:JSON.stringify({status:r.status,result_image:r.result_image,diff_regions:r.diff_regions||[],ssim_score:r.ssim_score,diff_count:r.diff_count,message:r.message||void 0}),image_comparison_status:s?"too_many_differences":"completed",image_comparison_at:new Date})];case 1:return a.sent(),console.log("[存储图片对比结果成功]-".concat(t),{status:r.status,diff_count:r.diff_count,ssim_score:r.ssim_score}),e.logger?[4,e.logger.info("[存储图片对比结果成功]-".concat(t),{status:r.status,diff_count:r.diff_count,ssim_score:r.ssim_score,has_result_image:!!r.result_image})]:[3,3];case 2:a.sent(),a.label=3;case 3:return[3,8];case 4:return n=a.sent(),console.error("[存储图片对比结果失败]-".concat(t),n.message),e.logger?[4,e.logger.error("[存储图片对比结果失败]-".concat(t),{error:n.message})]:[3,6];case 5:a.sent(),a.label=6;case 6:return[4,e.getObject("pepsico_material").directUpdate(t,{image_comparison_status:"failed",image_comparison_error:n.message,image_comparison_at:new Date})];case 7:throw a.sent(),n;case 8:return[2]}})})},t.processImageComparison=function(e,r){return a.__awaiter(void 0,void 0,void 0,function(){var s,n,i,o;return a.__generator(this,function(a){switch(a.label){case 0:return a.trys.push([0,7,,8]),[4,(0,t.getMaterialVersions)(e,r)];case 1:return(s=a.sent()).previous?[3,3]:(console.log("[跳过图片对比]-".concat(r._id,": 没有历史版本")),[4,e.getObject("pepsico_material").directUpdate(r._id,{image_comparison_status:"skipped",image_comparison_reason:"No previous version found"})]);case 2:return a.sent(),[2];case 3:return[4,(0,t.prepareImageComparisonData)(e,r,s)];case 4:return n=a.sent(),[4,(0,t.callImageComparisonAPI)(e,n)];case 5:return i=a.sent(),[4,(0,t.storeComparisonResult)(e,r._id,i)];case 6:return a.sent(),[2,i];case 7:throw o=a.sent(),console.error("[处理图片对比失败]-".concat(r._id),o.message),o;case 8:return[2]}})})},t.processBulkImageComparison=function(e,r){return a.__awaiter(void 0,void 0,void 0,function(){var s,n,i,o,c,l,p,u,_,d,v,g,f;return a.__generator(this,function(m){switch(m.label){case 0:return m.trys.push([0,16,,19]),[4,(0,t.getImageMaterials)(e,r)];case 1:if(s=m.sent(),console.log("[批量图片对比]-".concat(r,": 发现 ").concat(s.length," 个图片素材")),0===s.length)return[2,{total:0,processed:0,skipped:0,failed:0}];n=0,i=0,o=0,m.label=2;case 2:m.trys.push([2,12,13,14]),c=a.__values(s),l=c.next(),m.label=3;case 3:if(l.done)return[3,11];p=l.value,m.label=4;case 4:return m.trys.push([4,9,,10]),[4,(0,t.getMaterialVersions)(e,p)];case 5:return m.sent().previous?[3,7]:(i++,console.log("[跳过图片对比]-".concat(p._id,": 没有历史版本")),[4,e.getObject("pepsico_material").directUpdate(p._id,{image_comparison_status:"skipped",image_comparison_reason:"No previous version found"})]);case 6:return m.sent(),[3,10];case 7:return[4,(0,t.processImageComparison)(e,p)];case 8:return m.sent(),n++,[3,10];case 9:return u=m.sent(),o++,console.error("[图片对比失败]-".concat(p._id),u.message),[3,10];case 10:return l=c.next(),[3,3];case 11:return[3,14];case 12:return _=m.sent(),g={error:_},[3,14];case 13:try{l&&!l.done&&(f=c.return)&&f.call(c)}finally{if(g)throw g.error}return[7];case 14:return d={total:s.length,processed:n,skipped:i,failed:o},console.log("[批量图片对比完成]-".concat(r),d),[4,e.getObject("pepsico_material_approval").directUpdate(r,{image_comparison_status:o>0?"partial":"completed",image_comparison_stats:JSON.stringify(d),image_comparison_at:new Date})];case 15:return m.sent(),[2,d];case 16:return v=m.sent(),console.error("[批量图片对比失败]-".concat(r),v.message),e.logger?[4,e.logger.error("[批量图片对比失败]-".concat(r),{error:v.message})]:[3,18];case 17:m.sent(),m.label=18;case 18:throw v;case 19:return[2]}})})},t.triggerImageComparisonAsync=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){var r;return a.__generator(this,function(a){switch(a.label){case 0:return a.trys.push([0,2,,3]),[4,e.getObject("pepsico_material_approval").directUpdate(t,{image_comparison_status:"pending",image_comparison_at:new Date})];case 1:return a.sent(),console.log("[图片对比任务已标记为pending]-".concat(t)),[3,3];case 2:return r=a.sent(),console.error("[标记图片对比任务失败]-".concat(t),r.message),[3,3];case 3:return[2]}})})},t.processPendingImageComparisons=function(e,r){return void 0===r&&(r=3),a.__awaiter(void 0,void 0,void 0,function(){var s,n,i,o,c,l,p,u,_,d;return a.__generator(this,function(v){switch(v.label){case 0:return v.trys.push([0,16,,19]),[4,e.getObject("pepsico_material_approval").find({filters:[["image_comparison_status","in",["pending","failed"]]],top:10,sort:"modified desc"})];case 1:s=v.sent(),console.log("定时任务[图片对比] count: ".concat(s.length),{approvals:s.map(function(e){return{_id:e._id,status:e.image_comparison_status,failedCount:e.image_comparison_failed_count}})}),v.label=2;case 2:v.trys.push([2,13,14,15]),n=a.__values(s),i=n.next(),v.label=3;case 3:if(i.done)return[3,12];if(o=i.value,(c=o.image_comparison_failed_count||0)>=r)return console.log("[图片对比跳过]-".concat(o._id,": 已达最大重试次数 ").concat(r)),[3,11];v.label=4;case 4:return v.trys.push([4,7,,11]),[4,e.getObject("pepsico_material_approval").directUpdate(o._id,{image_comparison_status:"processing"})];case 5:return v.sent(),[4,(0,t.processBulkImageComparison)(e,o._id)];case 6:return v.sent(),[3,11];case 7:return l=v.sent(),console.error("[图片对比任务失败]-".concat(o._id),l.message),[4,e.getObject("pepsico_material_approval").directUpdate(o._id,{image_comparison_status:"failed",$inc:{image_comparison_failed_count:1}})];case 8:return v.sent(),e.logger?[4,e.logger.error("[图片对比任务失败]-".concat(o._id),{error:l.message,failedCount:c+1})]:[3,10];case 9:v.sent(),v.label=10;case 10:return[3,11];case 11:return i=n.next(),[3,3];case 12:return[3,15];case 13:return p=v.sent(),_={error:p},[3,15];case 14:try{i&&!i.done&&(d=n.return)&&d.call(n)}finally{if(_)throw _.error}return[7];case 15:return[3,19];case 16:return u=v.sent(),console.error("[定时任务-图片对比] 执行异常:",u.message),e.logger?[4,e.logger.error("[定时任务-图片对比] 执行异常",{error:u.message})]:[3,18];case 17:v.sent(),v.label=18;case 18:return[3,19];case 19:return[2]}})})}},4676:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.bypassMaterial=void 0;var a=r(5584),s=r(8398),n=r(7825);t.bypassMaterial={rest:{method:"POST",fullPath:"/api/pepsico-content/approve/material/bypass/:recordId"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,i,o,c,l,p,u,_,d,v,g,f,m,h,b,w,y,O,S,A,I;return a.__generator(this,function(P){switch(P.label){case 0:return e.getObject=this.getObject,[4,this.getLogger()];case 1:return t=P.sent(),e.logger=t,r=e.params.recordId,i=e.params.reason,o=e.meta.user.userId,[4,e.getObject("pepsico_material").findOne(r)];case 2:if(!(c=P.sent()))throw new Error("未找到素材");if(c.void_material)throw new Error("已作废的素材无需跳过");return[4,e.getObject("pepsico_material_approval").findOne(c.pepsico_material_approval)];case 3:if(!(l=P.sent()))throw new Error("未找到关联的审批单");if(l.current_step===s.Step.conclusion||l.current_step===s.Step.draft)throw new Error("当前步骤不支持跳过操作");if(p="",u="",_="",d="",v="",g="",l.current_step===s.Step.departmental_review&&(n.includes(l.handler_preca||(l.pre_ca_reviewer?[l.pre_ca_reviewer]:[]),o)&&"pass"!==l.pre_ca_approval_status&&!0!==l.pre_ca_approval_status?(p="pre_ca_approval_status",g="CA预审"):n.includes(l.handler_presra||(l.pre_sra_reviewer?[l.pre_sra_reviewer]:[]),o)&&"pass"!==l.pre_sra_approval_status&&!0!==l.pre_sra_approval_status?(p="pre_sra_approval_status",g="SRA预审"):n.includes(l.handler_prens||(l.pre_ns_reviewer?[l.pre_ns_reviewer]:[]),o)&&"pass"!==l.pre_ns_approval_status&&!0!==l.pre_ns_approval_status?(p="pre_ns_approval_status",g="NS预审"):n.includes(l.handler_prelegal||(l.pre_legal_reviewer?[l.pre_legal_reviewer]:[]),o)&&"pass"!==l.pre_legal_approval_status&&!0!==l.pre_legal_approval_status?(p="pre_legal_approval_status",g="Legal预审"):"yes"===l.ec_has_detail_page&&n.includes(l.handler_preqc||(l.pre_qc_reviewer?[l.pre_qc_reviewer]:[]),o)&&"pass"!==l.pre_qc_approval_status&&!0!==l.pre_qc_approval_status?(p="pre_qc_approval_status",g="QC预审"):n.includes(l.handler_ca||l.ca_reviewer,o)&&!0!==l.ca_bypassed&&"pass"!==l.ca_approval_status&&!0!==l.ca_approval_status&&!1!==l.ca_approval_status?(p="ca_approval_status",u="ca_bypassed",_="ca_bypassed_by",d="ca_bypass_reason",v="ca_bypassed_at",g="CA"):n.includes(l.handler_sra||l.sra_reviewer,o)&&!0!==l.sra_bypassed&&"pass"!==l.sra_approval_status&&!0!==l.sra_approval_status&&!1!==l.sra_approval_status?(p="sra_approval_status",u="sra_bypassed",_="sra_bypassed_by",d="sra_bypass_reason",v="sra_bypassed_at",g="SRA"):n.includes(l.handler_ns||l.ns_reviewer,o)&&!0!==l.ns_bypassed&&"pass"!==l.ns_approval_status&&!0!==l.ns_approval_status&&!1!==l.ns_approval_status?(p="ns_approval_status",u="ns_bypassed",_="ns_bypassed_by",d="ns_bypass_reason",v="ns_bypassed_at",g="NS"):n.includes(l.handler_legal||l.legal_reviewer,o)&&!0!==l.legal_bypassed&&"pass"!==l.legal_approval_status&&!0!==l.legal_approval_status&&!1!==l.legal_approval_status?(p="legal_approval_status",u="legal_bypassed",_="legal_bypassed_by",d="legal_bypass_reason",v="legal_bypassed_at",g="Legal"):"yes"===l.ec_has_detail_page&&n.includes(l.handler_qc||l.qc_reviewer,o)&&!0!==l.qc_bypassed&&"pass"!==l.qc_approval_status&&!0!==l.qc_approval_status&&!1!==l.qc_approval_status&&(p="qc_approval_status",u="qc_bypassed",_="qc_bypassed_by",d="qc_bypass_reason",v="qc_bypassed_at",g="QC")),l.current_step===s.Step.personnel_review&&(n.includes(l.handler_preguding||(l.pre_reviewer?[l.pre_reviewer]:[]),o)&&"pass"!==l.pre_approval_status&&!0!==l.pre_approval_status?(p="pre_approval_status",g="固定人员预审"):n.includes(l.handler_personnel||l.reviewer,o)&&(p="approval_status",u="approval_bypassed",_="approval_bypassed_by",d="approval_bypass_reason",v="approval_bypassed_at",g="固定人员")),""===p&&n.includes(l.handler_kids||l.kids_reviewer,o)&&(p="kids_approval_status",u="kids_bypassed",_="kids_bypassed_by",d="kids_bypass_reason",v="kids_bypassed_at",g="Kids"),!p)throw new Error("您不是当前步骤的审核人,无权限跳过");if(!0===c[p]||"pass"===c[p])throw new Error("该素材的".concat(g,"审核已完成"));return(O={})[p]="pass",f=O,u&&(f[u]=!0,f[_]=o,f[d]=i,f[v]=new Date),[4,e.getObject("pepsico_material").directUpdate(r,f)];case 4:return P.sent(),t.info("User ".concat(o," (").concat(g,") bypassed material ").concat(r)),[4,e.getObject("pepsico_material").find({filters:[["pepsico_material_approval","=",c.pepsico_material_approval],["void_material","!=",!0]]})];case 5:m=P.sent(),h=!1;try{for(b=a.__values(m),w=b.next();!w.done;w=b.next())if(!0!==(y=w.value)[p]&&"pass"!==y[p]){h=!0;break}}catch(e){S={error:e}}finally{try{w&&!w.done&&(A=b.return)&&A.call(b)}finally{if(S)throw S.error}}return h||!u?[3,7]:[4,e.getObject("pepsico_material_approval").directUpdate(l._id,(I={},I[u]=!0,I[_]=o,I[d]=i,I[v]=new Date,I))];case 6:P.sent(),t.info("User ".concat(o," (").concat(g,") also marked approval ").concat(l._id," as bypassed (no pending materials)")),P.label=7;case 7:return[4,this.submitMaterial.call(this,e,r,"pass")];case 8:return P.sent(),[2,{success:!0,message:"已跳过该素材的".concat(g,"审核")}]}})})}}},4716:e=>{e.exports=require("moment")},4727:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.rule=void 0;var a=r(5584);t.rule={rest:{method:"GET",fullPath:"/api/pepsico-content/approve/rule"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t;return a.__generator(this,function(r){switch(r.label){case 0:return e.getObject=this.getObject,[4,this.getLogger()];case 1:return t=r.sent(),e.logger=t,[2,this.getDefApproverStepRule.call(this,e)]}})})}}},4754:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.terminate=void 0;var a=r(5584);t.terminate={rest:{method:"POST",fullPath:"/api/pepsico-content/approve/terminate/:recordId"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t;return a.__generator(this,function(r){switch(r.label){case 0:return e.getObject=this.getObject,[4,this.getLogger()];case 1:return t=r.sent(),e.logger=t,[4,this.terminate(e,e.params.recordId,e.params.description)];case 2:return r.sent(),[2,{}]}})})}}},4809:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getPLSReviewGroups=t.getActivePLSOptions=t.replaceApprovalPLSSource=t.invalidateApprovalAIReviews=t.invalidatePLSReviews=t.getMaterialReviewPermissions=t.canAdoptReview=t.isApprovalReviewer=t.callExtractPLSRulesPriority=t.callExtractPLSRules=t.writeSystemLog=t.logPLSChange=t.setPLSFileActive=t.createApplicationPLSFiles=t.batchCreatePLSFiles=t.buildDuplicatePLSMessage=t.isVersionedForm=t.findDuplicatePLSFilesSafely=t.findDuplicatePLSFiles=t.readFileBuffer=t.DUPLICATE_PLS_MESSAGE=t.resetPLSFileAIExtract=t.backfillPLSFileTitles=t.scanPLSFiles=t.MAX_PLS_SOURCE_TOTAL=t.MAX_PLS_SOURCE_PER_MODE=void 0;var a=r(5584),s=r(7825),n=r(8749).createHash,i=r(8938),o=process.env.PEPSICO_AI_HOST,c=process.env.PEPSICO_AI_API_KEY,l="pepsico_ai_review",p=function(e){return!!e&&!1!==e.is_active},u=function(e){var t=e&&e.evidence_image;return!t||s.includes(String(t),"/")?e:Object.assign({},e,{evidence_image:"/api/files/images/".concat(t)})},_=["departmental_review","personnel_review"];t.MAX_PLS_SOURCE_PER_MODE=10,t.MAX_PLS_SOURCE_TOTAL=2*t.MAX_PLS_SOURCE_PER_MODE;var d=["awaiting_deployment","conclusion"],v=function(e){for(var t=String(e||""),r=0;r<5;r++){var a=s.unescape(t);if(a===t)break;t=a}return t},g=function(e){return(e&&e.original&&e.original.name||"").replace(/\.pdf$/i,"")};t.scanPLSFiles=function(e){return a.__awaiter(void 0,void 0,void 0,function(){var t,r,s,n,i,o,c,l,p,u,_,d,v,f,m,h,b,w,y,O,S,A,I,P,T,E,j,D,C,k,R,L;return a.__generator(this,function(U){switch(U.label){case 0:return t="",console.error("[scan pls files]: start ",new Date),[4,e.getObject("pepsico_material_approval").directFind({filters:[["current_step","in",["awaiting_deployment","conclusion"]],["scanned_pls","!=",!0]]})];case 1:r=U.sent(),console.error("[scan pls files]: approvals.length",r.length),s=0,U.label=2;case 2:U.trys.push([2,35,36,37]),n=a.__values(r),i=n.next(),U.label=3;case 3:if(i.done)return[3,34];o=i.value,U.label=4;case 4:return U.trys.push([4,31,,33]),t=o._id,[4,e.getObject("pepsico_material").directFind({filters:[["pepsico_material_approval","=",t]]})];case 5:c=U.sent(),console.error("[scan pls files]: approvalId",t),U.label=6;case 6:U.trys.push([6,18,19,20]),j=void 0,l=a.__values(c),p=l.next(),U.label=7;case 7:return p.done?[3,17]:(u=p.value,_=[["metadata/record_id","=","objects:pepsico_material:".concat(u._id)],["metadata/object_name","=","b6_rooms"],["original/type","=","application/pdf"],["original/name","contains","PLS"]],console.error("[scan pls files]: approvalId",t,"material-".concat(u._id),"filters: ",JSON.stringify(_)),[4,e.getObject("cfs_files_filerecord").directFind({filters:_})]);case 8:d=U.sent(),console.error("[scan pls files]: approvalId",t,"material-".concat(u._id),"files.length: ",d.length),U.label=9;case 9:U.trys.push([9,14,15,16]),C=void 0,v=a.__values(d),f=v.next(),U.label=10;case 10:return f.done?[3,13]:(m=f.value,[4,e.getObject("pepsico_km_pls_file").directInsert({name:g(m),ai_extract:!1,pls_file:m._id,pepsico_material:u._id,pepsico_material_approval:t,space:o.space,created:new Date,modified:new Date})]);case 11:U.sent(),s++,U.label=12;case 12:return f=v.next(),[3,10];case 13:return[3,16];case 14:return h=U.sent(),C={error:h},[3,16];case 15:try{f&&!f.done&&(k=v.return)&&k.call(v)}finally{if(C)throw C.error}return[7];case 16:return p=l.next(),[3,7];case 17:return[3,20];case 18:return b=U.sent(),j={error:b},[3,20];case 19:try{p&&!p.done&&(D=l.return)&&D.call(l)}finally{if(j)throw j.error}return[7];case 20:if(!(o.pls_file&&o.pls_file.length>0))return[3,29];U.label=21;case 21:U.trys.push([21,27,28,29]),R=void 0,w=a.__values(o.pls_file),y=w.next(),U.label=22;case 22:return y.done?[3,26]:(O=y.value,[4,e.getObject("cfs_files_filerecord").directFind({filters:[["_id","=",O]],fields:["original"]})]);case 23:return S=U.sent(),[4,e.getObject("pepsico_km_pls_file").directInsert({name:g(S&&S[0]),ai_extract:!1,pls_file:O,pepsico_material_approval:t,space:o.space,created_by:o.created_by,created:new Date,modified:new Date})];case 24:U.sent(),U.label=25;case 25:return y=w.next(),[3,22];case 26:return[3,29];case 27:return A=U.sent(),R={error:A},[3,29];case 28:try{y&&!y.done&&(L=w.return)&&L.call(w)}finally{if(R)throw R.error}return[7];case 29:return[4,e.getObject("pepsico_material_approval").directUpdate(t,{scanned_pls:!0,scanned_pls_date:new Date})];case 30:return U.sent(),[3,33];case 31:return I=U.sent(),console.error("[scan pls files]-".concat(t),I,new Date),[4,e.logger.error("[scan pls files]-".concat(t),I.message)];case 32:return U.sent(),[3,33];case 33:return i=n.next(),[3,3];case 34:return[3,37];case 35:return P=U.sent(),T={error:P},[3,37];case 36:try{i&&!i.done&&(E=n.return)&&E.call(n)}finally{if(T)throw T.error}return[7];case 37:return[2,s]}})})},t.backfillPLSFileTitles=function(e){return a.__awaiter(void 0,void 0,void 0,function(){var t,r,n,i,o,c,l,p,u,_,d,v,f,m,h;return a.__generator(this,function(b){switch(b.label){case 0:return t=e.getObject("pepsico_km_pls_file"),r=e.getObject("cfs_files_filerecord"),[4,t.directFind({fields:["_id","name","pls_file"]})];case 1:n=b.sent(),console.error("[backfill pls title]: records.length",n.length,new Date),i=0,o=0,b.label=2;case 2:b.trys.push([2,11,12,13]),c=a.__values(n),l=c.next(),b.label=3;case 3:if(l.done)return[3,10];p=l.value,b.label=4;case 4:return b.trys.push([4,7,,9]),(u=s.isArray(p.pls_file)?p.pls_file[0]:p.pls_file)?[4,r.directFind({filters:[["_id","=",u]],fields:["original"]})]:(o++,[3,9]);case 5:return _=b.sent(),(d=g(_&&_[0]))&&d!==p.name?[4,t.directUpdate(p._id,{name:d,modified:new Date})]:(o++,[3,9]);case 6:return b.sent(),i++,[3,9];case 7:return v=b.sent(),o++,console.error("[backfill pls title]-".concat(p._id),v&&v.message,new Date),[4,e.logger.error("[backfill pls title]-".concat(p._id),v&&v.message)];case 8:return b.sent(),[3,9];case 9:return l=c.next(),[3,3];case 10:return[3,13];case 11:return f=b.sent(),m={error:f},[3,13];case 12:try{l&&!l.done&&(h=c.return)&&h.call(c)}finally{if(m)throw m.error}return[7];case 13:return console.error("[backfill pls title]: done updated=".concat(i," skipped=").concat(o),new Date),[2,{total:n.length,updated:i,skipped:o}]}})})},t.resetPLSFileAIExtract=function(e){return a.__awaiter(void 0,void 0,void 0,function(){var t,r,s;return a.__generator(this,function(a){switch(a.label){case 0:return[4,(t=e.getObject("pepsico_km_pls_file")).directFind({filters:[["ai_extract","!=",!1]],fields:["_id"]})];case 1:return r=a.sent(),console.error("[reset pls ai_extract]: records.length",r.length,new Date),0===r.length?[2,{total:0,updated:0}]:(s=r.map(function(e){return e._id}),[4,t.directUpdateMany(["_id","in",s],{ai_extract:!1,modified:new Date})]);case 2:return a.sent(),console.error("[reset pls ai_extract]: done updated=".concat(r.length),new Date),[2,{total:r.length,updated:r.length}]}})})},t.DUPLICATE_PLS_MESSAGE="PLS文档已存在,请选择对应PLS知识库中对应pls文件";var f=function(e){return String(e||"").replace(/\.pdf$/i,"").replace(/\s+/g," ").trim().toLowerCase()};t.readFileBuffer=function(e,t,r){return void 0===r&&(r=1e4),a.__awaiter(void 0,void 0,void 0,function(){var n,i,o,c;return a.__generator(this,function(a){switch(a.label){case 0:if(!(n=e&&e.broker)||!s.isFunction(n.call))return[2,null];i=null,a.label=1;case 1:return a.trys.push([1,3,4,5]),[4,Promise.race([n.call("~packages-@steedos/service-files.getFileById",{fileId:t,collectionName:"files"}),new Promise(function(e){i=setTimeout(function(){return e(null)},r)})])];case 2:return[2,(o=a.sent())?Buffer.from(o):null];case 3:return c=a.sent(),console.error("[pls duplicate] 读取文件失败",t,c&&c.message),[2,null];case 4:return i&&clearTimeout(i),[7];case 5:return[2]}})})};var m=function(e,r,s){return a.__awaiter(void 0,void 0,void 0,function(){var i,o,c,l,p;return a.__generator(this,function(a){switch(a.label){case 0:return(i=r&&r._id)?s.has(i)?[2,s.get(i)]:(o=r.original&&r.original.md5)?(c=String(o).toLowerCase(),s.set(i,c),[2,c]):(r.original&&r.original.size||0)>52428800?(s.set(i,""),[2,""]):[4,(0,t.readFileBuffer)(e,i)]:[2,""];case 1:return l=a.sent(),p=l?n("md5").update(l).digest("hex"):"",s.set(i,p),[2,p]}})})};t.findDuplicatePLSFiles=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){var r,n,i,o,c,l,u,_,d,v,g,h,b,w,y,O,S,A,I,P,T,E,j,D,C,k,R,L,U,N,M,x,F,q,G,B,V,H,J,Q,Y,z,K,$,Z;return a.__generator(this,function(X){switch(X.label){case 0:return 0===(r=s.uniq(s.compact(t||[]))).length?[2,[]]:(n=e.getObject("cfs_files_filerecord"),i=e.getObject("pepsico_km_pls_file"),[4,n.directFind({filters:[["_id","in",r]],fields:["_id","original"]})]);case 1:return(o=X.sent())&&0!==o.length?[4,i.directFind({fields:["_id","name","pls_file","is_active"],top:1e4})]:[2,[]];case 2:return c=X.sent(),l=s.filter(c||[],function(e){if(!p(e))return!1;var t=s.isArray(e.pls_file)?e.pls_file[0]:e.pls_file;return!!t&&!s.includes(r,t)}),0===l.length?[2,[]]:(u=s.uniq(s.compact(s.map(l,function(e){return s.isArray(e.pls_file)?e.pls_file[0]:e.pls_file}))),[4,n.directFind({filters:[["_id","in",u]],fields:["_id","original"]})]);case 3:_=X.sent(),d=s.keyBy(_||[],"_id"),v=new Map,g=new Map;try{for(h=a.__values(l),b=h.next();!b.done;b=h.next()){w=b.value,y=s.isArray(w.pls_file)?w.pls_file[0]:w.pls_file,O=d[y],S=s.uniq(s.compact([f(w.name),f(O&&O.original&&O.original.name)]));try{for(Q=void 0,A=a.__values(S),I=A.next();!I.done;I=A.next())P=I.value,v.has(P)||v.set(P,w)}catch(e){Q={error:e}}finally{try{I&&!I.done&&(Y=A.return)&&Y.call(A)}finally{if(Q)throw Q.error}}(U=O&&O.original&&O.original.size||0)>0&&((T=g.get(U)||[]).push({record:w,file:O}),g.set(U,T))}}catch(e){H={error:e}}finally{try{b&&!b.done&&(J=h.return)&&J.call(h)}finally{if(H)throw H.error}}E=new Map,j=[],X.label=4;case 4:X.trys.push([4,16,17,18]),D=a.__values(o),C=D.next(),X.label=5;case 5:return C.done?[3,15]:(k=C.value,R=k.original&&k.original.name||"",(L=v.get(f(R)))?(j.push({fileId:k._id,fileName:R,reason:"name",matchedId:L._id,matchedName:L.name}),[3,14]):(U=k.original&&k.original.size||0,0===(N=U>0&&g.get(U)||[]).length||N.length>20?[3,14]:[4,m(e,k,E)]));case 6:if(!(M=X.sent()))return[3,14];X.label=7;case 7:X.trys.push([7,12,13,14]),$=void 0,x=a.__values(N),F=x.next(),X.label=8;case 8:return F.done?[3,11]:(q=F.value,[4,m(e,q.file,E)]);case 9:if((G=X.sent())&&G===M)return j.push({fileId:k._id,fileName:R,reason:"content",matchedId:q.record._id,matchedName:q.record.name}),[3,11];X.label=10;case 10:return F=x.next(),[3,8];case 11:return[3,14];case 12:return B=X.sent(),$={error:B},[3,14];case 13:try{F&&!F.done&&(Z=x.return)&&Z.call(x)}finally{if($)throw $.error}return[7];case 14:return C=D.next(),[3,5];case 15:return[3,18];case 16:return V=X.sent(),z={error:V},[3,18];case 17:try{C&&!C.done&&(K=D.return)&&K.call(D)}finally{if(z)throw z.error}return[7];case 18:return[2,j]}})})},t.findDuplicatePLSFilesSafely=function(e,r){return a.__awaiter(void 0,void 0,void 0,function(){var n;return a.__generator(this,function(a){switch(a.label){case 0:return a.trys.push([0,2,,5]),[4,(0,t.findDuplicatePLSFiles)(e,r)];case 1:return[2,a.sent()];case 2:return n=a.sent(),console.error("[pls duplicate] 查重失败, 本次放行",n&&n.message),e&&e.logger&&s.isFunction(e.logger.warn)?[4,e.logger.warn("[PLS查重失败, 本次放行]: ".concat(n&&n.message),{objectName:"pepsico_km_pls_file",file_ids:r})]:[3,4];case 3:a.sent(),a.label=4;case 4:return[2,[]];case 5:return[2]}})})},t.isVersionedForm=function(e){return!!s.trim(e&&e.form_version)},t.buildDuplicatePLSMessage=function(e){var r=s.uniq(s.compact(s.map(e||[],"fileName")));return"".concat(r.map(function(e){return"「".concat(e,"」")}).join("")).concat(t.DUPLICATE_PLS_MESSAGE)},t.batchCreatePLSFiles=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){var r,n,i,o,c,l,p,u,_,d,v,g,f,m,h,b,w,y,O,S,A,I;return a.__generator(this,function(P){switch(P.label){case 0:if(r=e.meta.user,!(n=null==r?void 0:r.spaceId))throw new Error("无法获取当前工作区");return 0===(i=s.uniq(s.compact(t||[]))).length?[2,{created:0,reused:0,skipped:0,records:[]}]:(o=e.getObject("cfs_files_filerecord"),[4,(c=e.getObject("pepsico_km_pls_file")).directFind({filters:[["pls_file","in",i]],fields:["_id","name","pls_file"]})]);case 1:l=P.sent(),p=s.keyBy(l||[],"pls_file"),u=[],_=[],P.label=2;case 2:P.trys.push([2,8,9,10]),d=a.__values(i),v=d.next(),P.label=3;case 3:return v.done?[3,7]:(g=v.value,(f=p[g])?(u.push({id:f._id,name:f.name,fileId:g,isNew:!1}),[3,6]):[4,o.directFind({filters:[["_id","=",g]]})]);case 4:return m=P.sent(),h=m&&m[0],b=h&&h.original&&h.original.name||"","application/pdf"===(h&&h.original&&h.original.type||"")||/\.pdf$/i.test(b)?(w=new Date,[4,c.directInsert({name:b.replace(/\.pdf$/i,""),ai_extract:!1,pls_file:g,space:n,owner:r.userId,created:w,created_by:r.userId,modified:w,modified_by:r.userId})]):(_.push(g),[3,6]);case 5:y=P.sent(),u.push({id:y._id,name:y.name||b.replace(/\.pdf$/i,""),fileId:g,isNew:!0}),P.label=6;case 6:return v=d.next(),[3,3];case 7:return[3,10];case 8:return O=P.sent(),A={error:O},[3,10];case 9:try{v&&!v.done&&(I=d.return)&&I.call(d)}finally{if(A)throw A.error}return[7];case 10:return S=u.filter(function(e){return e.isNew}).length,[2,{created:S,reused:u.length-S,skipped:_.length,records:u}]}})})},t.createApplicationPLSFiles=function(e,r,n,i,o){return void 0===o&&(o={}),a.__awaiter(void 0,void 0,void 0,function(){var c,l,p,u,_,d,v,g,f,m;return a.__generator(this,function(h){switch(h.label){case 0:return void 0!==(c=o.checkDuplicate)&&!c||n&&!(0,t.isVersionedForm)(n)?[3,2]:[4,(0,t.findDuplicatePLSFilesSafely)(e,r)];case 1:if((l=h.sent()).length>0)throw new Error((0,t.buildDuplicatePLSMessage)(l));h.label=2;case 2:return[4,(0,t.batchCreatePLSFiles)(e,r)];case 3:p=h.sent(),h.label=4;case 4:h.trys.push([4,10,11,12]),u=a.__values(p.records),_=u.next(),h.label=5;case 5:return _.done?[3,9]:(d=_.value,v={},n&&(v.pepsico_material_approval=n._id),i&&(v.pepsico_material=i),s.isEmpty(v)?[3,7]:(v.modified=new Date,[4,e.getObject("pepsico_km_pls_file").directUpdate(d.id,v)]));case 6:h.sent(),h.label=7;case 7:if(!1===d.isNew)return[3,8];(0,t.callExtractPLSRulesPriority)(e,d.id).catch(function(){}),h.label=8;case 8:return _=u.next(),[3,5];case 9:return[3,12];case 10:return g=h.sent(),f={error:g},[3,12];case 11:try{_&&!_.done&&(m=u.return)&&m.call(u)}finally{if(f)throw f.error}return[7];case 12:return[2,p]}})})},t.setPLSFileActive=function(e,t,r){return a.__awaiter(void 0,void 0,void 0,function(){var s,n,i,o;return a.__generator(this,function(a){switch(a.label){case 0:if(!t)throw new Error("缺少记录ID");return s=new Date,n=e.getObject("pepsico_km_pls_file"),i=e.getObject("pepsico_km_pls"),[4,n.directUpdate(t,{is_active:r,modified:s})];case 1:return a.sent(),[4,i.directFind({filters:[["pls_file","=",t]],fields:["_id"]})];case 2:return(o=a.sent()).length>0?[4,i.directUpdateMany(["pls_file","=",t],{enable:r,modified:s})]:[3,4];case 3:a.sent(),a.label=4;case 4:return[2,{id:t,is_active:r,synced:o.length}]}})})},t.logPLSChange=function(e,t){var r=t.approval,n=t.scene,i=t.materialId,o=void 0===i?null:i,c=t.beforeIds,l=void 0===c?[]:c,p=t.afterIds,u=void 0===p?[]:p,_=t.source,d=void 0===_?null:_;return a.__awaiter(void 0,void 0,void 0,function(){var t,i,c,p,_,v,g;return a.__generator(this,function(a){switch(a.label){case 0:return a.trys.push([0,3,,6]),t=s.uniq(s.compact(l)),i=s.uniq(s.compact(u)),0===t.length&&0===i.length?[2]:(c=s.uniq(t.concat(i)),[4,e.getObject("pepsico_km_pls_file").directFind({filters:[["_id","in",c]],fields:["_id","name"]})]);case 1:return p=a.sent(),_=s.keyBy(p,"_id"),v=function(e){return e.map(function(e){return _[e]&&_[e].name||e}).join("、")},[4,e.getObject("pepsico_pls_change_log").directInsert({approval:r._id,approval_name:r.name,material:o,scene:n,source:d,before_pls_files:t,before_pls_names:v(t),after_pls_files:i,after_pls_names:v(i),operator:e.meta&&e.meta.user&&e.meta.user.userId,space:r.space,created:new Date,modified:new Date})];case 2:return a.sent(),[3,6];case 3:return g=a.sent(),console.error("[写PLS变更日志失败]",g&&g.message),e.logger?[4,e.logger.error("[写PLS变更日志失败]",g&&g.message)]:[3,5];case 4:a.sent(),a.label=5;case 5:return[3,6];case 6:return[2]}})})};var h=new Map,b=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){var r,s,n;return a.__generator(this,function(a){switch(a.label){case 0:return t&&t.spaceId?[2,t.spaceId]:(r=t&&t.userId)?h.has(r)?[2,h.get(r)]:[4,e.getObject("space_users").directFind({filters:[["user","=",r]],fields:["space"],top:1})]:[2,void 0];case 1:return s=a.sent(),(n=s&&s[0]&&s[0].space)&&h.set(r,n),[2,n]}})})};t.writeSystemLog=function(e,t,r,s,n){return void 0===s&&(s="PLS规则提取"),a.__awaiter(void 0,void 0,void 0,function(){var i,o,c,l,p;return a.__generator(this,function(a){switch(a.label){case 0:return a.trys.push([0,4,,5]),o=(i=e.getObject("logs")).directInsert,p={name:s,level:t,data:JSON.stringify(r)},(c=n)?[3,2]:[4,b(e,e.meta&&e.meta.user)];case 1:c=a.sent(),a.label=2;case 2:return[4,o.apply(i,[(p.space=c,p.created=new Date,p)])];case 3:return a.sent(),[3,5];case 4:return l=a.sent(),console.error("[写系统日志失败]",l&&l.message),[3,5];case 5:return[2]}})})},t.callExtractPLSRules=function(e,r){return a.__awaiter(void 0,void 0,void 0,function(){var s,n,l,p,u,_,d;return a.__generator(this,function(a){switch(a.label){case 0:if(!r)throw new Error("缺少记录ID");s=e.meta&&e.meta.user&&e.meta.user.userId,n=(new Date).getTime(),console.log("[调用 execute-pls API] 开始:","".concat(o,"/execute-pls"),{id:r},new Date),a.label=1;case 1:return a.trys.push([1,9,,12]),[4,i.post("".concat(o,"/execute-pls"),{id:r},{headers:{"X-API-Key":c}})];case 2:return l=a.sent(),p=l.data,d=(new Date).getTime()-n,console.log("[调用 execute-pls API]-".concat(r),p,"耗时:",d),[4,e.logger.info("[调用 execute-pls API]-".concat(r),p)];case 3:a.sent(),a.label=4;case 4:return a.trys.push([4,6,,7]),[4,e.getObject("pepsico_km_pls_file").directUpdate(r,{extracting:!0,modified:new Date})];case 5:return a.sent(),[3,7];case 6:return u=a.sent(),console.error("[调用 execute-pls API] 标记 extracting 失败-".concat(r),u&&u.message),[3,7];case 7:return[4,(0,t.writeSystemLog)(e,"info",{action:"execute-pls",id:r,operator:s,url:"".concat(o,"/execute-pls"),status:"success",cost:d,response:p})];case 8:return a.sent(),[2,p];case 9:return _=a.sent(),d=(new Date).getTime()-n,console.error("[调用 execute-pls API]-".concat(r),_&&_.message,new Date),[4,e.logger.error("[调用 execute-pls API]-".concat(r),_&&_.message)];case 10:return a.sent(),[4,(0,t.writeSystemLog)(e,"error",{action:"execute-pls",id:r,operator:s,url:"".concat(o,"/execute-pls"),status:"fail",cost:d,error:_&&_.message})];case 11:throw a.sent(),_;case 12:return[2]}})})},t.callExtractPLSRulesPriority=function(e,r){return a.__awaiter(void 0,void 0,void 0,function(){var s,n,l,p,u,_,d;return a.__generator(this,function(a){switch(a.label){case 0:if(!r)throw new Error("缺少记录ID");s=e.meta&&e.meta.user&&e.meta.user.userId,n=(new Date).getTime(),l="".concat(o,"/execute-pls-priority"),a.label=1;case 1:return a.trys.push([1,5,,8]),[4,i.post(l,{id:r},{headers:{"Content-Type":"application/json","X-API-Key":c}})];case 2:return p=a.sent(),u=p.data,d=(new Date).getTime()-n,[4,e.logger.info("[调用 PLS优先提取规则 API]-".concat(r),u)];case 3:return a.sent(),[4,(0,t.writeSystemLog)(e,"info",{action:"extract-pls-priority",id:r,operator:s,url:l,status:"success",cost:d,response:u})];case 4:return a.sent(),[2,u];case 5:return _=a.sent(),d=(new Date).getTime()-n,[4,e.logger.error("[调用 PLS优先提取规则 API]-".concat(r),_&&_.message)];case 6:return a.sent(),[4,(0,t.writeSystemLog)(e,"error",{action:"extract-pls-priority",id:r,operator:s,url:l,status:"fail",cost:d,error:_&&_.message})];case 7:throw a.sent(),_;case 8:return[2]}})})},t.isApprovalReviewer=function(e,t){return!!t&&s.includes(function(e){return e?s.compact(s.flatten([e.reviewer,e.ns_reviewer,e.legal_reviewer,e.sra_reviewer,e.ca_reviewer,e.qc_reviewer,e.kids_reviewer,e.pre_reviewer,e.pre_ns_reviewer,e.pre_legal_reviewer,e.pre_sra_reviewer,e.pre_ca_reviewer,e.pre_qc_reviewer])):[]}(e),t)},t.canAdoptReview=function(e,t,r){if(void 0===r&&(r=[]),!e||!t)return!1;var a=s.includes(_,e.current_step)&&s.includes(e.person_pending_approve||[],t),n=s.includes(d,e.current_step)&&s.includes(r||[],"pepsico_spot_check");return a||n},t.getMaterialReviewPermissions=function(e,r){return a.__awaiter(void 0,void 0,void 0,function(){var n,i,o,c;return a.__generator(this,function(a){switch(a.label){case 0:return[4,e.getObject("pepsico_material").findOne(r)];case 1:if(!(n=a.sent()))throw new Error("素材不存在");return n.pepsico_material_approval?[4,e.getObject("pepsico_material_approval").findOne(n.pepsico_material_approval)]:[3,3];case 2:return o=a.sent(),[3,4];case 3:o=null,a.label=4;case 4:return i=o,c=e.meta&&e.meta.user,[2,{canAdopt:(0,t.canAdoptReview)(i,c&&c.userId,c&&c.roles),hasPLSFile:s.compact(i&&i.pls_km_files||[]).length>0}]}})})};var w=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){var r,s;return a.__generator(this,function(a){switch(a.label){case 0:return[4,e.getObject(l).directFind({filters:t,fields:["_id","is_active"]})];case 1:return r=a.sent(),(s=r.filter(p)).length>0?[4,e.getObject(l).directUpdateMany(["_id","in",s.map(function(e){return e._id})],{is_active:!1,modified:new Date})]:[3,3];case 2:a.sent(),a.label=3;case 3:return[2,s.length]}})})},y=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){var r,n;return a.__generator(this,function(a){switch(a.label){case 0:return[4,e.getObject("pepsico_material").directFind({filters:[["pepsico_material_approval","=",t]],fields:["_id"]})];case 1:return r=a.sent(),0===(n=s.compact(s.map(r,"_id"))).length?[2,["pepsico_material_approval","=",t]]:[2,[["pepsico_material_approval","=",t],"or",["pepsico_material","in",n]]]}})})};t.invalidatePLSReviews=function(e,t,r,s){return a.__awaiter(void 0,void 0,void 0,function(){var n,i;return a.__generator(this,function(a){switch(a.label){case 0:return s?(i=[["pepsico_material","=",s]],[3,3]):[3,1];case 1:return[4,y(e,t)];case 2:i=[a.sent()],a.label=3;case 3:return(n=i).push(["review_type","=","pls"]),r&&n.push(["pls_file","=",r]),[2,w(e,n)]}})})},t.invalidateApprovalAIReviews=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){var r,s;return a.__generator(this,function(a){switch(a.label){case 0:return r=w,s=[e],[4,y(e,t)];case 1:return[2,r.apply(void 0,s.concat([[a.sent()]]))]}})})},t.replaceApprovalPLSSource=function(e,r,n,i,o,c){return a.__awaiter(void 0,void 0,void 0,function(){var l,p,u,_,d,v,g;return a.__generator(this,function(a){switch(a.label){case 0:if(l=e.meta&&e.meta.user&&e.meta.user.userId,0===(p=s.uniq(s.compact(s.isArray(i)?i:[i]))).length)throw new Error("请选择或上传PLS文件");if(p.length>t.MAX_PLS_SOURCE_TOTAL)throw new Error("一次最多应用".concat(t.MAX_PLS_SOURCE_TOTAL,"个PLS文件"));return[4,e.getObject("pepsico_material_approval").findOne(r)];case 1:if(!(u=a.sent()))throw new Error("审批单不存在");if(!(0,t.isApprovalReviewer)(u,l))throw new Error("只有审核人可以应用新的PLS规则");return[4,e.getObject("pepsico_km_pls_file").directFind({filters:[["_id","in",p]],fields:["_id"]})];case 2:if(_=a.sent(),s.uniq(s.map(_,"_id")).length!==p.length)throw new Error("新的PLS文件不存在");return d=s.uniq(s.compact(u.pls_km_files||[])),v=s.uniq(d.concat(p)),[4,e.getObject("pepsico_material_approval").directUpdate(r,{pls_km_files:v,modified:new Date,modified_by:l})];case 3:return a.sent(),[4,(0,t.invalidatePLSReviews)(e,r,n,o)];case 4:return g=a.sent(),[4,(0,t.logPLSChange)(e,{approval:u,scene:"reviewer_change",materialId:o,beforeIds:[n],afterIds:p,source:c})];case 5:return a.sent(),[2,{approvalId:r,materialId:o,oldPlsFileId:n,newPlsFileIds:p,pls_km_files:v,invalidated:g}]}})})},t.getActivePLSOptions=function(e){return a.__awaiter(void 0,void 0,void 0,function(){return a.__generator(this,function(t){switch(t.label){case 0:return[4,e.getObject("pepsico_km_pls_file").find({fields:["_id","name","brand","version","is_active"],sort:"modified desc",top:500})];case 1:return[2,t.sent().filter(p).map(function(e){return{label:s.compact([e.name,e.brand,e.version]).map(v).join(" · "),value:e._id}})]}})})},t.getPLSReviewGroups=function(e,r){return a.__awaiter(void 0,void 0,void 0,function(){var n,i,o,c,d,g,f,m,h,b,w;return a.__generator(this,function(a){switch(a.label){case 0:return[4,e.getObject("pepsico_material").findOne(r)];case 1:if(!(n=a.sent()))throw new Error("素材不存在");return[4,e.getObject("pepsico_material_approval").findOne(n.pepsico_material_approval)];case 2:return i=a.sent(),[4,e.getObject(l).find({filters:[["pepsico_material","=",r],["review_type","=","pls"]],fields:["_id","pls_reason","pls_material_content","pls_rule_content","evidence_image","evidence_image_file","is_adoption","pls_file","is_active"],sort:"created desc",top:500})];case 3:return o=a.sent(),c=o.filter(p).map(u),(d=s.uniq(s.compact(c.map(function(e){return e.pls_file})))).length>0?[4,e.getObject("pepsico_km_pls_file").directFind({filters:[["_id","in",d]],fields:["_id","name","brand","version","is_active"]})]:[3,5];case 4:return f=a.sent(),[3,6];case 5:f=[],a.label=6;case 6:return g=f,m=s.keyBy(g,"_id"),h=e.meta&&e.meta.user,b=(0,t.isApprovalReviewer)(i,h&&h.userId)&&s.includes(_,i&&i.current_step),w=(0,t.canAdoptReview)(i,h&&h.userId,h&&h.roles),[2,{groups:s.map(s.groupBy(c,"pls_file"),function(e,t){return{plsFileId:t,plsName:v(m[t]&&m[t].name)||"PLS文件",plsActive:p(m[t]),approvalId:i&&i._id||n.pepsico_material_approval,materialId:r,canManage:b,canAdopt:w,reviews:e}}),canManage:b,canAdopt:w}]}})})}},4932:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.hasDuplicateMaterials=void 0;var a=r(5584);t.hasDuplicateMaterials={rest:{method:"GET",fullPath:"/api/pepsico-content/approve/material/has-duplicate/:approvalId"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t;return a.__generator(this,function(r){switch(r.label){case 0:return e.getObject=this.getObject,[4,this.getLogger()];case 1:return t=r.sent(),e.logger=t,[4,this.hasDuplicateMaterials.call(this,e,e.params.approvalId)];case 2:return[2,{hasDuplicate:r.sent()}]}})})}}},5176:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.setApprovalCc=void 0;var a=r(5584);t.setApprovalCc={rest:{method:"POST",fullPath:"/api/pepsico-content/approve/cc/:recordId"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r;return a.__generator(this,function(a){switch(a.label){case 0:return e.getObject=this.getObject,[4,this.getLogger()];case 1:return t=a.sent(),e.logger=t,"string"==typeof(r=e.params.cc_users||e.params.ccUsers||[])?r=r.split(",").map(function(e){return e.trim()}).filter(Boolean):Array.isArray(r)||(r=[r]),[4,this.setApprovalCcUsers(e,e.params.recordId,r)];case 2:return[2,a.sent()]}})})}}},5256:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.approveMaterial=void 0;var a=r(5584);t.approveMaterial={rest:{method:"POST",fullPath:"/api/pepsico-content/approve/material/submit/:recordId"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t;return a.__generator(this,function(r){switch(r.label){case 0:return e.getObject=this.getObject,[4,this.getLogger()];case 1:return t=r.sent(),e.logger=t,[4,this.submitMaterial.call(this,e,e.params.recordId,e.params.approvalStatus)];case 2:return r.sent(),[2,{}]}})})}}},5264:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.postponeDeployment=void 0;var a=r(5584);t.postponeDeployment={rest:{method:"POST",fullPath:"/api/pepsico-content/approve/postpone-deployment/:recordId"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t;return a.__generator(this,function(r){switch(r.label){case 0:return e.getObject=this.getObject,[4,this.getLogger()];case 1:return t=r.sent(),e.logger=t,[4,this.postponeDeployment.call(this,e,e.params.recordId,e.params)];case 2:return r.sent(),[2,{}]}})})}}},5383:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.initCollaborator=void 0;var a=r(5584);t.initCollaborator={rest:{method:"GET",fullPath:"/api/pepsico-content/space-users/init-collaborator"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n,i,o,c,l,p,u,_,d,v;return a.__generator(this,function(g){switch(g.label){case 0:if(e.getObject=this.getObject,t=e.meta.user,r=null==t?void 0:t.spaceId,!t||!t.is_space_admin)throw new Error("无权限!");if(!r)throw new Error("无法获取当前工作区");return[4,e.getObject("space_users").directFind({filters:[["space","=",r]],fields:["_id","email","is_collaborator"]})];case 1:s=g.sent(),n=0,i=0,o=0,g.label=2;case 2:g.trys.push([2,7,8,9]),c=a.__values(s),l=c.next(),g.label=3;case 3:return l.done?[3,6]:(f=(p=l.value).email,(u=!("string"==typeof f&&f.toLowerCase().endsWith("@pepsico.com")))?i++:o++,p.is_collaborator===u?[3,5]:[4,e.getObject("space_users").directUpdate(p._id,{is_collaborator:u})]);case 4:g.sent(),n++,g.label=5;case 5:return l=c.next(),[3,3];case 6:return[3,9];case 7:return _=g.sent(),d={error:_},[3,9];case 8:try{l&&!l.done&&(v=c.return)&&v.call(c)}finally{if(d)throw d.error}return[7];case 9:return[2,{message:"初始化完成:更新 ".concat(n," 个用户"),total:s.length,updated:n,collaborators:i,internalUsers:o}]}var f})})}}},5510:(e,t,r)=>{var a,s,n;Object.defineProperty(t,"__esModule",{value:!0}),t.postponeReview=t.getPostponeReviewDepartmentType=t.hasReviewed=t.submitContent=t.submitPreReviewContent=t.submitKidsContent=t.rejectContent=t.approvalContent=t.postponeDeployment=t.confirmDeployment=t.terminate=t.advanceApproval=t.getDepartmentEffectiveStatuses=t.areDepartmentReviewsComplete=t.hasNonPreReviewDepartments=t.getPreReviewStatuses=t.addFormalReviewerAfterPreApproval=t.needsPLSReReview=t.needsQcReview=t.getDeptEffectiveStatus=t.isDeptReviewComplete=t.hasAnyPreReviewer=t.getApproverStepRule=t.getDefApproverStepRule=void 0;var i=r(5584),o=r(8398),c=r(4425),l=r(7825),p=r(2143),u=r(1057),_=r(2972),d=r(3833),v=r(6658),g=r(1401),f=r(8862),m=r(4809),h=r(7825);t.getDefApproverStepRule=function(e){return i.__awaiter(void 0,void 0,void 0,function(){var t,r;return i.__generator(this,function(a){switch(a.label){case 0:return[4,e.getObject("pepsico_flow_rule").find({filters:["fu5nvp","=",!0],fields:["_id","name","skip_approve"]})];case 1:if(t=a.sent(),!(r=t.length>0?t[0]:null))throw new Error("未找到审批流规则");return[2,r]}})})},t.getApproverStepRule=function(e,t){return i.__awaiter(void 0,void 0,void 0,function(){var r,a,s;return i.__generator(this,function(n){switch(n.label){case 0:return t?[4,e.getObject("pepsico_flow_rule").findOne(t)]:[3,2];case 1:if(!(r=n.sent()))throw new Error("未找到审批流规则");return[2,r];case 2:return[4,e.getObject("pepsico_flow_rule").find({fields:["_id","name","skip_approve"],sort:"created asc",top:1})];case 3:if(a=n.sent(),!(s=a.length>0?a[0]:null))throw new Error("未找到审批流规则");return[2,s]}})})};var b=function(e,r){return i.__awaiter(void 0,void 0,void 0,function(){var a;return i.__generator(this,function(s){switch(s.label){case 0:return[4,(0,t.getApproverStepRule)(e,r.pepsico_flow_rule)];case 1:return(a=s.sent()).skip_approve?[2,(0,c.evaluate)(a.skip_approve,r)]:[2,!1]}})})};t.hasAnyPreReviewer=function(e,r){return r===o.Step.personnel_review?!!e.pre_reviewer:!!(e.pre_ns_reviewer||e.pre_legal_reviewer||e.pre_sra_reviewer||e.pre_ca_reviewer||(0,t.needsQcReview)(e)&&e.pre_qc_reviewer)},t.isDeptReviewComplete=function(e,r){var a="approval"===r?"pre_reviewer":"pre_".concat(r,"_reviewer"),s="approval"===r?"pre_approval_status":"pre_".concat(r,"_approval_status"),n="approval"===r?"approval_status":"".concat(r,"_approval_status"),i=!!e[a];return console.log("isDeptReviewComplete1",i),i?!!(0,t.hasReviewed)(e[s])&&(!1===e[s]||(0,t.hasReviewed)(e[n])):(console.log("isDeptReviewComplete2",e[n],(0,t.hasReviewed)(e[n])),(0,t.hasReviewed)(e[n]))},t.getDeptEffectiveStatus=function(e,t){var r="approval"===t?"pre_reviewer":"pre_".concat(t,"_reviewer"),a="approval"===t?"pre_approval_status":"pre_".concat(t,"_approval_status"),s="approval"===t?"approval_status":"".concat(t,"_approval_status");return(!e[r]||!1!==e[a])&&e[s]};var w=function(e,r){return i.__awaiter(void 0,void 0,void 0,function(){var a,s;return i.__generator(this,function(n){switch(n.label){case 0:return[4,(0,t.getApproverStepRule)(e,r.pepsico_flow_rule)];case 1:return a=n.sent(),[4,b(e,r)];case 2:return n.sent()?[2,o.Step.conclusion]:(s=(0,c.evaluate)(a.name,r),console.log("getApproverStep-".concat(r._id),s,typeof s,a.name,JSON.stringify(r)),[2,s?o.Step.personnel_review:o.Step.departmental_review])}})})},y=function(e,r){return i.__awaiter(void 0,void 0,void 0,function(){var a;return i.__generator(this,function(s){switch(s.label){case 0:return[4,(0,t.getApproverStepRule)(e,r.pepsico_flow_rule)];case 1:return a=s.sent(),(0,c.evaluate)(a.name,r)?[2,o.Step.personnel_review]:[2,o.Step.departmental_review]}})})};t.needsQcReview=function(e){return"yes"===e.ec_has_detail_page},t.needsPLSReReview=function(e){return!h.isEmpty(e.pls_km_files)&&(!1===(0,t.getDeptEffectiveStatus)(e,"sra")||(0,t.needsQcReview)(e)&&!1===(0,t.getDeptEffectiveStatus)(e,"qc"))};var O=function(e,r,a){return i.__awaiter(void 0,void 0,void 0,function(){var s,n,c;return i.__generator(this,function(i){switch(i.label){case 0:switch(s=o.Step.draft,r.current_step){case o.Step.draft:return[3,1];case o.Step.ai_review:return[3,2];case o.Step.departmental_review:case o.Step.personnel_review:return[3,6];case o.Step.submitter_revisions:return[3,7];case o.Step.awaiting_deployment:return[3,11]}return[3,12];case 1:return s=h.includes(f.DCO_TYPES,r.classification)?o.Step.conclusion:o.Step.ai_review,[3,13];case 2:return a!=o.ApprovalStatus.approved?[3,4]:[4,w(e,r)];case 3:return n=i.sent(),[3,5];case 4:n=o.Step.draft,i.label=5;case 5:return s=n,[3,13];case 6:return s=a==o.ApprovalStatus.approved||a==o.ApprovalStatus.pass?o.Step.awaiting_deployment:o.Step.submitter_revisions,[3,13];case 7:return(0,t.needsPLSReReview)(r)?(c=o.Step.ai_review,[3,10]):[3,8];case 8:return[4,w(e,r)];case 9:c=i.sent(),i.label=10;case 10:return s=c,[3,13];case 11:return s=o.Step.conclusion,[3,13];case 12:return[3,13];case 13:return console.log("[getNextStep]",JSON.stringify({action:a,nextStep:s})),[2,s]}})})},S=function(e,r,a){return i.__awaiter(void 0,void 0,void 0,function(){var s,n,c,p,u,_,d,v,f,m,b,w,y,O;return i.__generator(this,function(S){switch(S.label){case 0:switch(s=[],a){case o.Step.draft:return[3,1];case o.Step.ai_review:return[3,2];case o.Step.departmental_review:return[3,3];case o.Step.personnel_review:return[3,26];case o.Step.submitter_revisions:return[3,33];case o.Step.awaiting_deployment:return[3,34]}return[3,35];case 1:return s=(0,l.concat)(s,{userIds:[r.owner],type:o.ProcessApprovalType.Others}),[3,36];case 2:return s=(0,l.concat)(s,{userIds:[process.env.PEPSICO_CONTENT_APPROVAL_AI_USERID],type:o.ProcessApprovalType.AI}),[3,36];case 3:return console.log("[getNextApprovers] departmental_review 串行判断:",JSON.stringify({pre_ns_reviewer:r.pre_ns_reviewer,pre_ns_approval_status:r.pre_ns_approval_status,pre_legal_reviewer:r.pre_legal_reviewer,pre_legal_approval_status:r.pre_legal_approval_status,pre_sra_reviewer:r.pre_sra_reviewer,pre_sra_approval_status:r.pre_sra_approval_status,pre_ca_reviewer:r.pre_ca_reviewer,pre_ca_approval_status:r.pre_ca_approval_status,pre_qc_reviewer:r.pre_qc_reviewer,pre_qc_approval_status:r.pre_qc_approval_status})),r.pre_ns_reviewer&&1!=r.pre_ns_approval_status&&r.pre_ns_approval_status!==o.ApprovalStatus.pass?[4,(0,g.getReviewerAgentsInfo)(e,r.space,[r.pre_ns_reviewer])]:[3,5];case 4:return n=S.sent(),s=(0,l.concat)(s,i.__assign(i.__assign({},n),{type:o.ProcessApprovalType.PreNS})),[3,7];case 5:return 1==r.ns_approval_status||r.ns_approval_status===o.ApprovalStatus.pass?[3,7]:[4,(0,g.getReviewerAgentsInfo)(e,r.space,r.ns_reviewer)];case 6:c=S.sent(),s=(0,l.concat)(s,i.__assign(i.__assign({},c),{type:o.ProcessApprovalType.NS})),S.label=7;case 7:return r.pre_legal_reviewer&&1!=r.pre_legal_approval_status&&r.pre_legal_approval_status!==o.ApprovalStatus.pass?[4,(0,g.getReviewerAgentsInfo)(e,r.space,[r.pre_legal_reviewer])]:[3,9];case 8:return p=S.sent(),s=(0,l.concat)(s,i.__assign(i.__assign({},p),{type:o.ProcessApprovalType.PreLegal})),[3,11];case 9:return 1==r.legal_approval_status||r.legal_approval_status===o.ApprovalStatus.pass?[3,11]:[4,(0,g.getReviewerAgentsInfo)(e,r.space,r.legal_reviewer)];case 10:u=S.sent(),s=(0,l.concat)(s,i.__assign(i.__assign({},u),{type:o.ProcessApprovalType.Legal})),S.label=11;case 11:return r.pre_sra_reviewer&&1!=r.pre_sra_approval_status&&r.pre_sra_approval_status!==o.ApprovalStatus.pass?[4,(0,g.getReviewerAgentsInfo)(e,r.space,[r.pre_sra_reviewer])]:[3,13];case 12:return _=S.sent(),s=(0,l.concat)(s,i.__assign(i.__assign({},_),{type:o.ProcessApprovalType.PreSRA})),[3,15];case 13:return 1==r.sra_approval_status||r.sra_approval_status===o.ApprovalStatus.pass?[3,15]:[4,(0,g.getReviewerAgentsInfo)(e,r.space,r.sra_reviewer)];case 14:d=S.sent(),s=(0,l.concat)(s,i.__assign(i.__assign({},d),{type:o.ProcessApprovalType.SRA})),S.label=15;case 15:return r.pre_ca_reviewer&&1!=r.pre_ca_approval_status&&r.pre_ca_approval_status!==o.ApprovalStatus.pass?[4,(0,g.getReviewerAgentsInfo)(e,r.space,[r.pre_ca_reviewer])]:[3,17];case 16:return v=S.sent(),s=(0,l.concat)(s,i.__assign(i.__assign({},v),{type:o.ProcessApprovalType.PreCA})),[3,19];case 17:return 1==r.ca_approval_status||r.ca_approval_status===o.ApprovalStatus.pass?[3,19]:[4,(0,g.getReviewerAgentsInfo)(e,r.space,r.ca_reviewer)];case 18:f=S.sent(),s=(0,l.concat)(s,i.__assign(i.__assign({},f),{type:o.ProcessApprovalType.CA})),S.label=19;case 19:if(!(0,t.needsQcReview)(r))return[3,23];if(h.isEmpty(r.qc_reviewer))throw new Error("QC审核人缺失, 请确认审批单对应审核人员信息");return r.pre_qc_reviewer&&1!=r.pre_qc_approval_status&&r.pre_qc_approval_status!==o.ApprovalStatus.pass?[4,(0,g.getReviewerAgentsInfo)(e,r.space,[r.pre_qc_reviewer])]:[3,21];case 20:return m=S.sent(),s=(0,l.concat)(s,i.__assign(i.__assign({},m),{type:o.ProcessApprovalType.PreQC})),[3,23];case 21:return 1==r.qc_approval_status||r.qc_approval_status===o.ApprovalStatus.pass?[3,23]:[4,(0,g.getReviewerAgentsInfo)(e,r.space,r.qc_reviewer)];case 22:b=S.sent(),s=(0,l.concat)(s,i.__assign(i.__assign({},b),{type:o.ProcessApprovalType.QC})),S.label=23;case 23:return"yes"!=r.child_files||1==r.kids_approval_status||r.kids_approval_status===o.ApprovalStatus.pass?[3,25]:[4,(0,g.getReviewerAgentsInfo)(e,r.space,[r.kids_reviewer])];case 24:O=S.sent(),s=(0,l.concat)(s,i.__assign(i.__assign({},O),{type:o.ProcessApprovalType.Kids})),S.label=25;case 25:return[3,36];case 26:return r.pre_reviewer&&1!=r.pre_approval_status&&r.pre_approval_status!==o.ApprovalStatus.pass?[4,(0,g.getReviewerAgentsInfo)(e,r.space,[r.pre_reviewer])]:[3,28];case 27:return w=S.sent(),s=(0,l.concat)(s,i.__assign(i.__assign({},w),{type:o.ProcessApprovalType.Preguding})),[3,30];case 28:return r.approval_status===o.ApprovalStatus.pass?[3,30]:[4,(0,g.getReviewerAgentsInfo)(e,r.space,r.reviewer)];case 29:y=S.sent(),s=(0,l.concat)(s,i.__assign(i.__assign({},y),{type:o.ProcessApprovalType.guding})),S.label=30;case 30:return"yes"!=r.child_files||1==r.kids_approval_status||r.kids_approval_status===o.ApprovalStatus.pass?[3,32]:[4,(0,g.getReviewerAgentsInfo)(e,r.space,[r.kids_reviewer])];case 31:O=S.sent(),s=(0,l.concat)(s,i.__assign(i.__assign({},O),{type:o.ProcessApprovalType.Kids})),S.label=32;case 32:return[3,36];case 33:return s=(0,l.concat)(s,{userIds:[r.owner],type:o.ProcessApprovalType.Others}),[3,36];case 34:return s=(0,l.concat)(s,{userIds:[r.material_owner_id],type:o.ProcessApprovalType.Others}),[3,36];case 35:return[3,36];case 36:return[2,(0,l.uniq)(s)]}})})},A=function(e){return e===o.Step.draft?o.ReviewStatus.draft:e===o.Step.conclusion?o.ReviewStatus.approved:o.ReviewStatus.under_review},I=function(e,t,r){var a=r.approvalStatus,s=r.approveField;return i.__awaiter(void 0,void 0,void 0,function(){var r,n,o,c,l,p,u,_,d,v,g,f,m,h,b,w;return i.__generator(this,function(y){switch(y.label){case 0:return r=e.meta.user,n=[["owner","=",r.userId],["pepsico_material_approval","=",t._id],["current_step","=",t.current_step],["space","=",t.space],["approved","=","progess"]],s&&"kids_approval_status"===s?n.push(["type","=","Kids"]):"ca_approval_status"===s?n.push(["type","=","CA"]):"qc_approval_status"===s?n.push(["type","=","QC"]):"sra_approval_status"===s?n.push(["type","=","SRA"]):"ns_approval_status"===s?n.push(["type","=","NS"]):"legal_approval_status"===s?n.push(["type","=","Legal"]):"approval_status"===s?n.push(["type","=","guding"]):"pre_ns_approval_status"===s?n.push(["type","=","PreNS"]):"pre_legal_approval_status"===s?n.push(["type","=","PreLegal"]):"pre_sra_approval_status"===s?n.push(["type","=","PreSRA"]):"pre_ca_approval_status"===s?n.push(["type","=","PreCA"]):"pre_qc_approval_status"===s?n.push(["type","=","PreQC"]):"pre_approval_status"===s&&n.push(["type","=","Preguding"]),[4,e.getObject("pepsico_approval_process").find({filters:n,top:1,sort:"modified asc"})];case 1:o=y.sent(),y.label=2;case 2:y.trys.push([2,15,16,17]),c=i.__values(o),l=c.next(),y.label=3;case 3:return l.done?[3,14]:(p=l.value,[4,e.getObject("pepsico_approval_process").update(p._id,{submitted:new Date,modified:new Date,modified_by:r.userId,approved:a||"submit"})]);case 4:return y.sent(),[4,e.getObject("pepsico_approval_process").find({filters:[["owner","!=",r.userId],["pepsico_material_approval","=",t._id],["current_step","=",t.current_step],["space","=",t.space],["approved","=","progess"],["type","=",p.type]],sort:"modified desc"})];case 5:u=y.sent(),y.label=6;case 6:y.trys.push([6,11,12,13]),b=void 0,_=i.__values(u),d=_.next(),y.label=7;case 7:return d.done?[3,10]:(v=d.value,[4,e.getObject("pepsico_approval_process").update(v._id,{modified:new Date,modified_by:r.userId,approved:""})]);case 8:y.sent(),y.label=9;case 9:return d=_.next(),[3,7];case 10:return[3,13];case 11:return g=y.sent(),b={error:g},[3,13];case 12:try{d&&!d.done&&(w=_.return)&&w.call(_)}finally{if(b)throw b.error}return[7];case 13:return l=c.next(),[3,3];case 14:return[3,17];case 15:return f=y.sent(),m={error:f},[3,17];case 16:try{l&&!l.done&&(h=c.return)&&h.call(c)}finally{if(m)throw m.error}return[7];case 17:return[2]}})})},P=function(e,t,r,a){return i.__awaiter(void 0,void 0,void 0,function(){var s,n,o,c,p,u,_,d,v,g,f,m,h,b;return i.__generator(this,function(w){switch(w.label){case 0:return s=e.meta.user.userId,r?((m={})[r]=a,n=m,s?[4,e.getObject("pepsico_material_approval").findOne(t)]:[3,11]):[3,13];case 1:return o=w.sent(),c=o.person_pending_approve||[],-1!==(p=(0,l.findIndex)(c,function(e){return e===s}))&&(0,l.pullAt)(c,p),n.person_pending_approve=c,n.$push={person_approved:s},(u=o.review_postponed_users||[]).includes(s)?(n.review_postponed_users=u.filter(function(e){return e!==s}),[4,e.getObject("pepsico_review_postpone").directFind({filters:[["pepsico_material_approval","=",t],["notification_sent","=",!1],["is_marker","!=",!0]]})]):[3,11];case 2:_=w.sent(),w.label=3;case 3:w.trys.push([3,8,9,10]),d=i.__values(_),v=d.next(),w.label=4;case 4:return v.done?[3,7]:((g=v.value).postponed_user_ids?g.postponed_user_ids.split(",").filter(Boolean):[]).includes(s)?[4,e.getObject("pepsico_review_postpone").directUpdate(g._id,{notification_sent:!0})]:[3,6];case 5:w.sent(),w.label=6;case 6:return v=d.next(),[3,4];case 7:return[3,10];case 8:return f=w.sent(),h={error:f},[3,10];case 9:try{v&&!v.done&&(b=d.return)&&b.call(d)}finally{if(h)throw h.error}return[7];case 10:console.log("[updateApproveFieldStatus] 延后审核人提前审核,已清理 review_postponed_users: ".concat(s)),w.label=11;case 11:return console.log("[updateApproveFieldStatus]",JSON.stringify({recordId:t,set:n})),[4,e.getObject("pepsico_material_approval").update(t,n)];case 12:w.sent(),w.label=13;case 13:return[2]}})})},T=function(e,t,r){var a=r.nextStep,s=r.nextApprovers,n=r.description;return i.__awaiter(void 0,void 0,void 0,function(){var r,c,p,u,_,d,v,g,f,m,h,b,w,y,O,S;return i.__generator(this,function(A){switch(A.label){case 0:return console.log("[changeApprovalProcess]",a,s,n),r=e.meta.user,t.current_step&&t.current_step!=o.Step.draft?[3,3]:[4,e.getObject("pepsico_approval_process").count({filters:[["pepsico_material_approval","=",t._id],["space","=",t.space]]})];case 1:return 0!=A.sent()?[3,3]:(c=new Date,[4,e.getObject("pepsico_approval_process").insert({pepsico_material_approval:t._id,owner:r.userId,review_department:r.organization._id,current_step:o.Step.draft,space:t.space,created:c,created_by:r.userId,modified:c,modified_by:r.userId,name:n,submitted:c,approved:"submit"})]);case 2:A.sent(),A.label=3;case 3:switch(a){case o.Step.draft:case o.Step.ai_review:case o.Step.departmental_review:case o.Step.personnel_review:case o.Step.submitter_revisions:case o.Step.awaiting_deployment:return[3,4];case o.Step.conclusion:return[3,21]}return[3,23];case 4:A.trys.push([4,18,19,20]),p=i.__values(s),u=p.next(),A.label=5;case 5:if(u.done)return[3,17];_=u.value,A.label=6;case 6:A.trys.push([6,12,13,14]),y=void 0,d=i.__values(_.userIds),v=d.next(),A.label=7;case 7:return v.done?[3,11]:(g=v.value,[4,e.getObject("space_users").directFind({filters:[["user","=",g],["space","=",t.space]]})]);case 8:return f=A.sent(),[4,e.getObject("pepsico_approval_process").insert({pepsico_material_approval:t._id,owner:g,type:_.type,review_department:f.length>0?f[0].organization:null,current_step:a,approved:"progess",space:t.space,created:new Date,created_by:r.userId,modified:new Date,modified_by:r.userId,name:n})];case 9:A.sent(),A.label=10;case 10:return v=d.next(),[3,7];case 11:return[3,14];case 12:return m=A.sent(),y={error:m},[3,14];case 13:try{v&&!v.done&&(O=d.return)&&O.call(d)}finally{if(y)throw y.error}return[7];case 14:return _.type?[4,e.getObject("pepsico_material_approval").directUpdate(t._id,(S={},S["handler_".concat((0,l.toLower)(_.type))]=_.userIds,S))]:[3,16];case 15:A.sent(),A.label=16;case 16:return u=p.next(),[3,5];case 17:return[3,20];case 18:return h=A.sent(),b={error:h},[3,20];case 19:try{u&&!u.done&&(w=p.return)&&w.call(p)}finally{if(b)throw b.error}return[7];case 20:return[3,24];case 21:return[4,e.getObject("pepsico_approval_process").insert({pepsico_material_approval:t._id,current_step:o.Step.conclusion,space:t.space,created:new Date,created_by:r.userId,modified:new Date,modified_by:r.userId,name:n})];case 22:return A.sent(),[3,24];case 23:return[3,24];case 24:return[2]}})})},E=function(e,r){return i.__awaiter(void 0,void 0,void 0,function(){var a,s;return i.__generator(this,function(n){switch(n.label){case 0:return[4,y(e,r)];case 1:return a=n.sent(),s=[],a===o.Step.personnel_review?(s=(0,l.concat)(r.reviewer,r.assistance),r.pre_reviewer&&(s=(0,l.concat)(s,r.pre_reviewer))):(s=(0,l.concat)(r.sra_reviewer,r.ns_reviewer,r.ca_reviewer,r.legal_reviewer,r.sra_assistance,r.ns_assistance,r.ca_assistance,r.legal_assistance),(0,t.needsQcReview)(r)&&(s=(0,l.concat)(s,r.qc_reviewer,r.qc_assistance)),r.pre_ns_reviewer&&(s=(0,l.concat)(s,r.pre_ns_reviewer)),r.pre_legal_reviewer&&(s=(0,l.concat)(s,r.pre_legal_reviewer)),r.pre_sra_reviewer&&(s=(0,l.concat)(s,r.pre_sra_reviewer)),r.pre_ca_reviewer&&(s=(0,l.concat)(s,r.pre_ca_reviewer)),(0,t.needsQcReview)(r)&&r.pre_qc_reviewer&&(s=(0,l.concat)(s,r.pre_qc_reviewer))),"yes"==r.child_files&&(s=(0,l.concat)(s,r.kids_reviewer)),[4,e.getObject("pepsico_material_approval").directUpdate(r._id,{$push:{person_view:{$each:(0,l.compact)((0,l.uniq)(s))}},approval_type:a})];case 2:return n.sent(),[2]}})})},j={pre_ns_approval_status:{reviewerField:"ns_reviewer",type:o.ProcessApprovalType.NS,statusField:"ns_approval_status"},pre_legal_approval_status:{reviewerField:"legal_reviewer",type:o.ProcessApprovalType.Legal,statusField:"legal_approval_status"},pre_sra_approval_status:{reviewerField:"sra_reviewer",type:o.ProcessApprovalType.SRA,statusField:"sra_approval_status"},pre_ca_approval_status:{reviewerField:"ca_reviewer",type:o.ProcessApprovalType.CA,statusField:"ca_approval_status"},pre_qc_approval_status:{reviewerField:"qc_reviewer",type:o.ProcessApprovalType.QC,statusField:"qc_approval_status"},pre_approval_status:{reviewerField:"reviewer",type:o.ProcessApprovalType.guding,statusField:"approval_status"}};t.addFormalReviewerAfterPreApproval=function(e,t,r,a){return i.__awaiter(void 0,void 0,void 0,function(){var s,n,c,p,u,_,v,f,m,h,b,w,y,O,S,A,I,P,T;return i.__generator(this,function(E){switch(E.label){case 0:return(s=j[r])?!0===(n=a[s.statusField])||n===o.ApprovalStatus.pass||!(c=a[s.reviewerField])||Array.isArray(c)&&0===c.length?[2]:(p=Array.isArray(c)?c:[c],[4,(0,g.getReviewerAgentsInfo)(e,a.space,p)]):[2];case 1:(u=E.sent()).userIds=(0,l.uniq)(u.userIds),_=e.meta.user,E.label=2;case 2:E.trys.push([2,8,9,10]),v=i.__values(u.userIds),f=v.next(),E.label=3;case 3:return f.done?[3,7]:(m=f.value,[4,e.getObject("space_users").directFind({filters:[["user","=",m],["space","=",a.space]]})]);case 4:return h=E.sent(),[4,e.getObject("pepsico_approval_process").insert({pepsico_material_approval:a._id,owner:m,type:s.type,review_department:h.length>0?h[0].organization:null,current_step:a.current_step,approved:"progess",space:a.space,created:new Date,created_by:_.userId,modified:new Date,modified_by:_.userId,name:""})];case 5:E.sent(),E.label=6;case 6:return f=v.next(),[3,3];case 7:return[3,10];case 8:return b=E.sent(),S={error:b},[3,10];case 9:try{f&&!f.done&&(A=v.return)&&A.call(v)}finally{if(S)throw S.error}return[7];case 10:return[4,e.getObject("pepsico_material_approval").directUpdate(a._id,(I={},I["handler_".concat((0,l.toLower)(s.type))]=u.userIds,I))];case 11:return E.sent(),[4,e.getObject("pepsico_material_approval").findOne(t)];case 12:return w=E.sent(),y=w.person_pending_approve||[],O=(0,l.compact)((0,l.concat)(y,u.userIds)),[4,e.getObject("pepsico_material_approval").directUpdate(a._id,(P={person_pending_approve:O},P[s.statusField]="",P))];case 13:return E.sent(),[4,e.getObject("pepsico_material").directUpdateMany([["pepsico_material_approval","=",t],[s.statusField,"=",!1]],(T={},T[s.statusField]="",T))];case 14:return E.sent(),console.log("[addFormalReviewerAfterPreApproval] 预审字段 ".concat(r," 通过, 追加正式审核人:"),u.userIds),[4,(0,d.sendNotifications)(e,a,u.userIds,"请审批")];case 15:return E.sent(),[2]}})})},t.getPreReviewStatuses=function(e){var r=[];return e.pre_ns_reviewer&&r.push({dept:"NS",status:e.pre_ns_approval_status,preField:"pre_ns_approval_status",deptApprovalField:"ns_approval_status"}),e.pre_legal_reviewer&&r.push({dept:"Legal",status:e.pre_legal_approval_status,preField:"pre_legal_approval_status",deptApprovalField:"legal_approval_status"}),e.pre_sra_reviewer&&r.push({dept:"SRA",status:e.pre_sra_approval_status,preField:"pre_sra_approval_status",deptApprovalField:"sra_approval_status"}),e.pre_ca_reviewer&&r.push({dept:"CA",status:e.pre_ca_approval_status,preField:"pre_ca_approval_status",deptApprovalField:"ca_approval_status"}),(0,t.needsQcReview)(e)&&e.pre_qc_reviewer&&r.push({dept:"QC",status:e.pre_qc_approval_status,preField:"pre_qc_approval_status",deptApprovalField:"qc_approval_status"}),r},t.hasNonPreReviewDepartments=function(e){var r=function(e){return!0===e||e===o.ApprovalStatus.approved||e===o.ApprovalStatus.pass};return!e.pre_ns_reviewer&&!r(e.ns_approval_status)||!e.pre_legal_reviewer&&!r(e.legal_approval_status)||!e.pre_sra_reviewer&&!r(e.sra_approval_status)||!e.pre_ca_reviewer&&!r(e.ca_approval_status)||!(!(0,t.needsQcReview)(e)||e.pre_qc_reviewer||r(e.qc_approval_status))},t.areDepartmentReviewsComplete=function(e){return(0,t.isDeptReviewComplete)(e,"ns")&&(0,t.isDeptReviewComplete)(e,"legal")&&(0,t.isDeptReviewComplete)(e,"sra")&&(0,t.isDeptReviewComplete)(e,"ca")&&(!(0,t.needsQcReview)(e)||(0,t.isDeptReviewComplete)(e,"qc"))},t.getDepartmentEffectiveStatuses=function(e){var r=[(0,t.getDeptEffectiveStatus)(e,"ns"),(0,t.getDeptEffectiveStatus)(e,"legal"),(0,t.getDeptEffectiveStatus)(e,"sra"),(0,t.getDeptEffectiveStatus)(e,"ca")];return(0,t.needsQcReview)(e)&&r.push((0,t.getDeptEffectiveStatus)(e,"qc")),r},t.advanceApproval=function(e,t,r){return i.__awaiter(void 0,void 0,void 0,function(){var a,s,n,c,u,f,h,w,y,I,P,C,k,R,L,U,N,M,x,F,q,G,B,V,H,J,Q,Y,z,K,$,Z,X,W,ee,te,re,ae,se,ne,ie,oe,ce,le,pe,ue,_e,de,ve,ge,fe,me,he;return i.__generator(this,function(be){switch(be.label){case 0:return be.trys.push([0,110,,111]),a="请查看",s=e.meta.user,[4,e.getObject("pepsico_material_approval").findOne(t)];case 1:return n=be.sent(),console.log("[advanceApproval]",n.current_step,n.person_pending_approve,s.userId),[4,(we=n,i.__awaiter(void 0,void 0,void 0,function(){return i.__generator(this,function(e){if(we.review_status===o.ReviewStatus.terminated)throw new Error("已中止审核.");if(we.current_step===o.Step.conclusion)throw new Error("已审核完成.");return[2,!0]})}))];case 2:return be.sent(),[4,O(e,n,r)];case 3:return c=be.sent(),[4,b(e,n)];case 4:return u=be.sent(),c===o.Step.conclusion&&u?[4,e.getObject("pepsico_material_approval").directUpdate(n._id,{is_skip_approver:!0})]:[3,8];case 5:return be.sent(),[4,e.getObject("pepsico_material").directUpdateMany(["pepsico_material_approval","=",n._id],{is_skip_approver:!0})];case 6:return be.sent(),[4,E(e,n)];case 7:be.sent(),be.label=8;case 8:return[4,S(e,n,c)];case 9:if(f=be.sent(),n.current_step!==o.Step.submitter_revisions&&n.current_step!==o.Step.ai_review||c!==o.Step.departmental_review&&c!==o.Step.personnel_review)return[3,26];h=[],w={},be.label=10;case 10:be.trys.push([10,19,20,21]),y=i.__values(f),I=y.next(),be.label=11;case 11:return I.done?[3,18]:(te=I.value,P=(0,p.getApproverFieldByType)(te.type),console.log("getApproverFieldByType",te.type,P),P?[4,(0,p.getUserReviewedAllMaterialsStatus)(e,n._id,P)]:[3,17]);case 12:if(C=be.sent(),console.log("getUserReviewedAllMaterialsStatus",n._id,P,C),C!==o.ApprovalStatus.approved)return[3,15];if(R=(k=j[P])?n[k.statusField]:void 0,!k||!0===R||R===o.ApprovalStatus.pass)return[3,14];if(L=n[k.reviewerField],0===(U=L?Array.isArray(L)?L:[L]:[]).length)throw new Error("".concat(k.type,"正式审核人缺失, 预审自动通过后无法分派正式审核, 请联系管理员在审核人员配置中补充后重新提交"));return[4,(0,g.getReviewerAgentsInfo)(e,n.space,U)];case 13:(N=be.sent()).userIds=(0,l.uniq)(N.userIds),h.push(i.__assign(i.__assign({},N),{type:k.type})),console.log("[advanceApproval] 预审自动通过, 转入正式审核",t,P,k.type,N.userIds),be.label=14;case 14:return console.log("[advanceApproval] 自动更新审批单上的状态字段",t,((ve={})[P]=o.ApprovalStatus.approved,ve)),w[P]=!0,[3,16];case 15:C===o.ApprovalStatus.pass?console.log("[advanceApproval] 部门已跳过,保持bypass状态",t,P):h.push(te),be.label=16;case 16:be.label=17;case 17:return I=y.next(),[3,11];case 18:return[3,21];case 19:return M=be.sent(),_e={error:M},[3,21];case 20:try{I&&!I.done&&(de=y.return)&&de.call(y)}finally{if(_e)throw _e.error}return[7];case 21:return Object.keys(w).length>0?[4,e.getObject("pepsico_material_approval").directUpdate(t,w)]:[3,23];case 22:be.sent(),be.label=23;case 23:return h.length>0?(f=h,[3,26]):[3,24];case 24:return c=o.Step.awaiting_deployment,[4,S(e,n,c)];case 25:f=be.sent(),be.label=26;case 26:return console.log("[advanceApproval] currentStepApprovalStatus:",r," nextStep:",c," nextApprovers:",f),x=[],F=[],(0,l.map)(f,function(e){x=(0,l.concat)(x,e.userIds),F=(0,l.concat)(F,e.clientUserIds)}),q={current_step:c,review_status:A(c),person_pending_approve:x,$push:{person_view:{$each:(0,l.compact)((0,l.uniq)((0,l.difference)(F,x)))},person_approved:{$each:n.person_pending_approve}}},n.current_step!==o.Step.draft?[3,28]:(q.draft_submitted=new Date,[4,e.getObject("pepsico_material").directUpdateMany(["pepsico_material_approval","=",n._id],{draft_submitted:q.draft_submitted})]);case 27:be.sent(),be.label=28;case 28:return n.current_step===o.Step.ai_review&&(q.ai_reviewed_date=new Date),n.current_step!==o.Step.departmental_review&&n.current_step!==o.Step.personnel_review||(q.re_reviewed_date=new Date),c!==o.Step.awaiting_deployment?[3,30]:(q.review_completed_date=new Date,[4,e.getObject("pepsico_material").directUpdateMany(["pepsico_material_approval","=",n._id],{review_completed_date:q.review_completed_date})]);case 29:be.sent(),be.label=30;case 30:return n.current_step===o.Step.awaiting_deployment&&(q.awaiting_deployment_date=new Date),n.current_step!==o.Step.conclusion?[3,32]:(q.conclusion_date=new Date,n.review_completed_date?[3,32]:(q.review_completed_date=q.conclusion_date,[4,e.getObject("pepsico_material").directUpdateMany(["pepsico_material_approval","=",n._id],{review_completed_date:q.review_completed_date})]));case 31:be.sent(),be.label=32;case 32:return n.current_step===o.Step.submitter_revisions&&(q.submitter_revision_date=new Date,console.log("[advanceApproval] 检测到修改后提交场景, 标记图片对比任务: ".concat(t)),q.image_comparison_status="pending",q.image_comparison_at=new Date,q.image_comparison_failed_count=0),[4,e.getObject("pepsico_material_approval").update(t,q)];case 33:return be.sent(),[4,T(e,n,{nextStep:c,nextApprovers:f,description:""})];case 34:return be.sent(),c!==o.Step.ai_review?[3,38]:n.current_step!==o.Step.submitter_revisions?[3,37]:[4,(0,m.invalidateApprovalAIReviews)(e,t)];case 35:return G=be.sent(),console.log("[advanceApproval] 修改后重新AI审核, 失效历史AI意见 ".concat(G," 条: ").concat(t)),[4,(0,m.writeSystemLog)(e,"info",{action:"invalidate-ai-review",id:t,approval_name:n.name,operator:s&&s.userId,from_step:n.current_step,to_step:c,count:G},"AI意见失效")];case 36:be.sent(),be.label=37;case 37:(0,_.callAIReview)(e,t).catch(function(){}),be.label=38;case 38:be.trys.push([38,80,81,82]),B=i.__values(f),V=B.next(),be.label=39;case 39:return V.done?[3,79]:(H=V.value).type!==o.ProcessApprovalType.CA?[3,42]:[4,e.getObject("pepsico_material_approval").directUpdate(t,{ca_approval_status:""})];case 40:return be.sent(),[4,e.getObject("pepsico_material").directUpdateMany([["pepsico_material_approval","=",t],["ca_approval_status","=",!1]],{ca_approval_status:""})];case 41:be.sent(),be.label=42;case 42:return H.type!==o.ProcessApprovalType.QC?[3,45]:[4,e.getObject("pepsico_material_approval").directUpdate(t,{qc_approval_status:""})];case 43:return be.sent(),[4,e.getObject("pepsico_material").directUpdateMany([["pepsico_material_approval","=",t],["qc_approval_status","=",!1]],{qc_approval_status:""})];case 44:be.sent(),be.label=45;case 45:return H.type!==o.ProcessApprovalType.Legal?[3,48]:[4,e.getObject("pepsico_material_approval").directUpdate(t,{legal_approval_status:""})];case 46:return be.sent(),[4,e.getObject("pepsico_material").directUpdateMany([["pepsico_material_approval","=",t],["legal_approval_status","=",!1]],{legal_approval_status:""})];case 47:be.sent(),be.label=48;case 48:return H.type!==o.ProcessApprovalType.NS?[3,51]:[4,e.getObject("pepsico_material_approval").directUpdate(t,{ns_approval_status:""})];case 49:return be.sent(),[4,e.getObject("pepsico_material").directUpdateMany([["pepsico_material_approval","=",t],["ns_approval_status","=",!1]],{ns_approval_status:""})];case 50:be.sent(),be.label=51;case 51:return H.type!==o.ProcessApprovalType.SRA?[3,54]:[4,e.getObject("pepsico_material_approval").directUpdate(t,{sra_approval_status:""})];case 52:return be.sent(),[4,e.getObject("pepsico_material").directUpdateMany([["pepsico_material_approval","=",t],["sra_approval_status","=",!1]],{sra_approval_status:""})];case 53:be.sent(),be.label=54;case 54:return H.type!==o.ProcessApprovalType.guding?[3,57]:[4,e.getObject("pepsico_material_approval").directUpdate(t,{approval_status:""})];case 55:return be.sent(),[4,e.getObject("pepsico_material").directUpdateMany([["pepsico_material_approval","=",t],["approval_status","=",!1]],{approval_status:""})];case 56:be.sent(),be.label=57;case 57:return H.type!==o.ProcessApprovalType.Kids?[3,60]:[4,e.getObject("pepsico_material_approval").directUpdate(t,{kids_approval_status:""})];case 58:return be.sent(),[4,e.getObject("pepsico_material").directUpdateMany([["pepsico_material_approval","=",t],["kids_approval_status","=",!1]],{kids_approval_status:""})];case 59:be.sent(),be.label=60;case 60:return H.type!==o.ProcessApprovalType.PreNS?[3,63]:[4,e.getObject("pepsico_material_approval").directUpdate(t,{pre_ns_approval_status:""})];case 61:return be.sent(),[4,e.getObject("pepsico_material").directUpdateMany([["pepsico_material_approval","=",t],["pre_ns_approval_status","=",!1]],{pre_ns_approval_status:""})];case 62:be.sent(),be.label=63;case 63:return H.type!==o.ProcessApprovalType.PreLegal?[3,66]:[4,e.getObject("pepsico_material_approval").directUpdate(t,{pre_legal_approval_status:""})];case 64:return be.sent(),[4,e.getObject("pepsico_material").directUpdateMany([["pepsico_material_approval","=",t],["pre_legal_approval_status","=",!1]],{pre_legal_approval_status:""})];case 65:be.sent(),be.label=66;case 66:return H.type!==o.ProcessApprovalType.PreSRA?[3,69]:[4,e.getObject("pepsico_material_approval").directUpdate(t,{pre_sra_approval_status:""})];case 67:return be.sent(),[4,e.getObject("pepsico_material").directUpdateMany([["pepsico_material_approval","=",t],["pre_sra_approval_status","=",!1]],{pre_sra_approval_status:""})];case 68:be.sent(),be.label=69;case 69:return H.type!==o.ProcessApprovalType.PreCA?[3,72]:[4,e.getObject("pepsico_material_approval").directUpdate(t,{pre_ca_approval_status:""})];case 70:return be.sent(),[4,e.getObject("pepsico_material").directUpdateMany([["pepsico_material_approval","=",t],["pre_ca_approval_status","=",!1]],{pre_ca_approval_status:""})];case 71:be.sent(),be.label=72;case 72:return H.type!==o.ProcessApprovalType.PreQC?[3,75]:[4,e.getObject("pepsico_material_approval").directUpdate(t,{pre_qc_approval_status:""})];case 73:return be.sent(),[4,e.getObject("pepsico_material").directUpdateMany([["pepsico_material_approval","=",t],["pre_qc_approval_status","=",!1]],{pre_qc_approval_status:""})];case 74:be.sent(),be.label=75;case 75:return H.type!==o.ProcessApprovalType.Preguding?[3,78]:[4,e.getObject("pepsico_material_approval").directUpdate(t,{pre_approval_status:""})];case 76:return be.sent(),[4,e.getObject("pepsico_material").directUpdateMany([["pepsico_material_approval","=",t],["pre_approval_status","=",!1]],{pre_approval_status:""})];case 77:be.sent(),be.label=78;case 78:return V=B.next(),[3,39];case 79:return[3,82];case 80:return J=be.sent(),ge={error:J},[3,82];case 81:try{V&&!V.done&&(fe=B.return)&&fe.call(B)}finally{if(ge)throw ge.error}return[7];case 82:return c!==o.Step.departmental_review&&c!==o.Step.personnel_review?[3,84]:[4,E(e,n)];case 83:be.sent(),be.label=84;case 84:return n.current_step!==o.Step.departmental_review&&n.current_step!==o.Step.personnel_review?[3,86]:[4,e.getObject("pepsico_material_approval").directUpdate(t,{materials_remove_share_link_from_onedrive_status:"pending"})];case 85:be.sent(),be.label=86;case 86:return c!==o.Step.awaiting_deployment?[3,88]:[4,D(e,t)];case 87:be.sent(),be.label=88;case 88:return c===o.Step.awaiting_deployment||c===o.Step.conclusion&&n.current_step===o.Step.ai_review?(Q={materials_download_from_onedrive_status:"pending"},[4,e.getObject("pepsico_material_approval").directUpdate(t,Q)]):[3,90];case 89:be.sent(),be.label=90;case 90:return r===o.ApprovalStatus.rejected&&(a="内容审批被驳回"),r!==o.ApprovalStatus.approved||c!==o.Step.departmental_review&&c!==o.Step.personnel_review||(a="请审批"),c===o.Step.awaiting_deployment&&(a="内容审批已通过待上线"),Y=[],c!==o.Step.departmental_review&&c!==o.Step.personnel_review?[3,102]:(z=new Date,K=new Date(z.getTime()+2592e5),[4,e.getObject("pepsico_review_postpone").directFind({filters:[["pepsico_material_approval","=",t],["is_marker","=",!0]]})]);case 91:if(!(($=be.sent())&&$.length>0))return[3,102];Z=new Set($.map(function(e){return e.department_type})),X=function(t){var r,a,n,o,c,p,u,_;return i.__generator(this,function(d){switch(d.label){case 0:if(!Z.has(t.type))return[2,"continue"];r=t.userIds||[],a=$.filter(function(e){return e.department_type===t.type}),d.label=1;case 1:d.trys.push([1,6,7,8]),u=void 0,n=i.__values(a),o=n.next(),d.label=2;case 2:return o.done?[3,5]:(c=o.value,[4,e.getObject("pepsico_review_postpone").directUpdate(c._id,{is_marker:!1,visible_after:K,notification_sent:!1,postponed_user_ids:r.join(","),modified:z,modified_by:s.userId})]);case 3:d.sent(),d.label=4;case 4:return o=n.next(),[3,2];case 5:return[3,8];case 6:return p=d.sent(),u={error:p},[3,8];case 7:try{o&&!o.done&&(_=n.return)&&_.call(n)}finally{if(u)throw u.error}return[7];case 8:return Y=(0,l.compact)((0,l.uniq)((0,l.concat)(Y,r))),[2]}})},be.label=92;case 92:be.trys.push([92,97,98,99]),W=i.__values(f),ee=W.next(),be.label=93;case 93:return ee.done?[3,96]:(te=ee.value,[5,X(te)]);case 94:be.sent(),be.label=95;case 95:return ee=W.next(),[3,93];case 96:return[3,99];case 97:return re=be.sent(),me={error:re},[3,99];case 98:try{ee&&!ee.done&&(he=W.return)&&he.call(W)}finally{if(me)throw me.error}return[7];case 99:return Y.length>0?[4,e.getObject("pepsico_material_approval").findOne(t)]:[3,102];case 100:return ae=be.sent(),se=ae.review_postponed_users||[],ne=(0,l.compact)((0,l.uniq)((0,l.concat)(se,Y))),ie=ae.postpone_marker_users||[],oe=ie.filter(function(e){return!Y.includes(e)}),[4,e.getObject("pepsico_material_approval").directUpdate(t,{review_postponed_users:ne,postpone_marker_users:oe})];case 101:be.sent(),console.log("[advanceApproval] 自动延后审核人: ".concat(Y,", visibleAfter: ").concat(K)),be.label=102;case 102:return ce=Y.length>0?x.filter(function(e){return!Y.includes(e)}):x,[4,(0,d.sendNotifications)(e,n,ce,a)];case 103:return be.sent(),"内容审批被驳回"!==a&&"内容审批已通过待上线"!==a?[3,105]:[4,(0,v.notifyApprovalCcUsers)(e,n,a,d.sendCcNotifications,ce)];case 104:be.sent(),be.label=105;case 105:return c!==o.Step.awaiting_deployment?[3,107]:(le=n.owner,pe=n.material_owner_id,le&&pe&&le!==pe?(console.log("[advanceApproval] 通知发起人审核完成: initiator=".concat(le,", material_owner=").concat(pe)),[4,(0,d.sendNotifications)(e,n,[le],"审核完成")]):[3,107]);case 106:be.sent(),be.label=107;case 107:return c!==o.Step.conclusion?[3,109]:[4,(0,v.notifyApprovalCcUsers)(e,n,"内容审批已完成",d.sendCcNotifications,ce)];case 108:be.sent(),be.label=109;case 109:return[2,{}];case 110:throw ue=be.sent(),console.error("[advanceApproval] Error:",ue.message,ue.stack),ue;case 111:return[2]}var we})})},t.terminate=function(e,t,r){return i.__awaiter(void 0,void 0,void 0,function(){var a,s,n,c,p,u,_,d,v;return i.__generator(this,function(g){switch(g.label){case 0:return a=e.meta.user,[4,e.getObject("pepsico_material_approval").findOne(t)];case 1:return(s=g.sent()).owner===a.userId||a.is_space_admin||(0,l.includes)(s.person_pending_approve,a.userId)?[4,e.getObject("pepsico_approval_process").insert({pepsico_material_approval:s._id,current_step:o.Step.conclusion,owner:a.userId,space:s.space,created:new Date,created_by:a.userId,modified:new Date,modified_by:a.userId,approvalStatus:"terminate",name:r})]:[3,13];case 2:return g.sent(),[4,e.getObject("pepsico_approval_process").directFind({filters:[["pepsico_material_approval","=",s._id],["approved","=","progess"]]})];case 3:n=g.sent(),g.label=4;case 4:g.trys.push([4,9,10,11]),c=i.__values(n),p=c.next(),g.label=5;case 5:return p.done?[3,8]:(u=p.value,[4,e.getObject("pepsico_approval_process").directUpdate(u._id,{approved:"",modified:new Date,modified_by:a.userId})]);case 6:g.sent(),g.label=7;case 7:return p=c.next(),[3,5];case 8:return[3,11];case 9:return _=g.sent(),d={error:_},[3,11];case 10:try{p&&!p.done&&(v=c.return)&&v.call(c)}finally{if(d)throw d.error}return[7];case 11:return[4,e.getObject("pepsico_material_approval").update(t,{current_step:o.Step.conclusion,review_status:o.ReviewStatus.terminated,termination_date:new Date,person_pending_approve:[],termination_type:s.owner===a.userId?"发起人中止":"审批人中止"})];case 12:return g.sent(),[2,{}];case 13:throw new Error("Sorry, you don’t have permission to terminate the review.")}})})};var D=function(e,t){return i.__awaiter(this,void 0,void 0,function(){return i.__generator(this,function(r){switch(r.label){case 0:return[4,e.getObject("pepsico_material_approval").update(t,{launch:"pending"})];case 1:return r.sent(),[2]}})})};t.confirmDeployment=function(e,r,a){return void 0===a&&(a={content_rule:null}),i.__awaiter(this,void 0,void 0,function(){var s,n,c;return i.__generator(this,function(i){switch(i.label){case 0:return s=e.meta.user,[4,e.getObject("pepsico_material_approval").findOne(r)];case 1:if(n=i.sent(),s.userId!==n.material_owner_id)throw new Error("只有材料拥有者才能执行此操作.");return n.current_step!==o.Step.awaiting_deployment?[2,{}]:(0,l.includes)(n.person_pending_approve,s.userId)?[3,3]:[4,e.getObject("pepsico_material_approval").directUpdate(r,{person_pending_approve:[s.userId]})];case 2:i.sent(),n.person_pending_approve=[s.userId],i.label=3;case 3:return[4,I(e,n,{approvalStatus:o.ApprovalStatus.submit,approveField:""})];case 4:return i.sent(),c={launch:"launched",aunch_time:new Date},a&&void 0!==a.content_rule&&(c.content_rule=a.content_rule),[4,e.getObject("pepsico_material_approval").update(r,c)];case 5:return i.sent(),[4,(0,t.advanceApproval)(e,r,o.ApprovalStatus.submit)];case 6:return i.sent(),[4,(0,u.inventoryApprovalMaterial)(e,r)];case 7:return i.sent(),[2,{}]}})})},t.postponeDeployment=function(e,t,r){return i.__awaiter(this,void 0,void 0,function(){var a,s;return i.__generator(this,function(n){switch(n.label){case 0:return a=e.meta.user,[4,e.getObject("pepsico_material_approval").findOne(t)];case 1:if(s=n.sent(),a.userId!==s.material_owner_id)throw new Error("只有材料拥有者才能执行此操作.");return s.current_step!==o.Step.awaiting_deployment?[3,5]:(0,l.includes)(s.person_pending_approve,a.userId)?[3,3]:[4,e.getObject("pepsico_material_approval").directUpdate(t,{person_pending_approve:[a.userId]})];case 2:n.sent(),n.label=3;case 3:return[4,e.getObject("pepsico_material_approval").update(t,{launch:"postpone",postpone_launch_date:r.postpone_launch_date})];case 4:n.sent(),n.label=5;case 5:return[2,{}]}})})},t.approvalContent=function(e,r,a){var s=a.approveField,n=a.materialStatus,c=void 0===n?o.ApprovalStatus.approved:n;return i.__awaiter(this,void 0,void 0,function(){var a,n,p,u,_,d,v,g,f,h;return i.__generator(this,function(i){switch(i.label){case 0:return a=e.meta.user,[4,e.getObject("pepsico_material_approval").findOne(r)];case 1:return(n=i.sent()).current_step==o.Step.draft||(0,l.includes)(n.person_pending_approve,a.userId)?[3,3]:[4,(0,m.writeSystemLog)(e,"warn",{action:"approve-denied-not-pending",id:r,approval_name:n.name,operator:a&&a.userId,approve_field:s,current_step:n.current_step,person_pending_approve:n.person_pending_approve},"核准被拒绝: 用户不在待办名单")];case 2:return i.sent(),[2,{}];case 3:return p=c!==o.ApprovalStatus.pass||o.ApprovalStatus.pass,[4,P(e,r,s,p)];case 4:return i.sent(),[4,e.getObject("pepsico_material_approval").findOne(r)];case 5:return u=i.sent(),_=!0===p?o.ApprovalStatus.approved:p,[4,I(e,u,{approvalStatus:_,approveField:s})];case 6:return i.sent(),!j[s]||!0!==p&&p!==o.ApprovalStatus.pass?[3,8]:[4,(0,t.addFormalReviewerAfterPreApproval)(e,r,s,u)];case 7:i.sent(),i.label=8;case 8:if(d=function(e){return!0===e||e===o.ApprovalStatus.approved||e===o.ApprovalStatus.pass},v=function(e){return e===o.ApprovalStatus.pass},u.current_step===o.Step.departmental_review){if(!(0,t.areDepartmentReviewsComplete)(u))return console.log("[approvalContent]: 有部门审核周期未完成, 只结束当前用户审批任务,不推进审批进度."),[2,{}];(g=(0,t.getDepartmentEffectiveStatuses)(u)).every(d)?(f=g.every(v),_=f?o.ApprovalStatus.pass:o.ApprovalStatus.approved):_=o.ApprovalStatus.rejected,console.log("[approvalContent]: 部门复审完成, 结果为:",_)}else if(u.current_step===o.Step.personnel_review){if(!(0,t.isDeptReviewComplete)(u,"approval"))return console.log("[approvalContent]: 固定人员审核周期未完成, 只结束当前用户审批任务,不推进审批进度."),[2,{}];h=(0,t.getDeptEffectiveStatus)(u,"approval"),_=d(h)?v(h)?o.ApprovalStatus.pass:o.ApprovalStatus.approved:o.ApprovalStatus.rejected,console.log("[approvalContent]: 固定人员复审完成, 结果为:",_)}if("yes"==u.child_files){if(!(0,t.hasReviewed)(u.kids_approval_status))return console.log("[approvalContent]: kids审核人未审批, 只结束当前用户审批任务,不推进审批进度."),[2,{}];0==u.kids_approval_status&&(_=o.ApprovalStatus.rejected),console.log("[approvalContent]: kids审核完成, 结果为:",_)}return console.log("[approvalContent] 推进审批进度,参数为 审批单: ".concat(r," 当前步骤: ").concat(u.current_step," 审批结果为: ").concat(_)),[4,(0,t.advanceApproval)(e,r,_)];case 9:return i.sent(),[2,{}]}})})},t.rejectContent=function(e,r,a){var s=a.approveField;return i.__awaiter(this,void 0,void 0,function(){var a,n,c,p;return i.__generator(this,function(i){switch(i.label){case 0:return a=e.meta.user,[4,e.getObject("pepsico_material_approval").findOne(r)];case 1:return(n=i.sent()).current_step==o.Step.draft||(0,l.includes)(n.person_pending_approve,a.userId)?[3,3]:[4,(0,m.writeSystemLog)(e,"warn",{action:"reject-denied-not-pending",id:r,approval_name:n.name,operator:a&&a.userId,approve_field:s,current_step:n.current_step,person_pending_approve:n.person_pending_approve},"驳回被拒绝: 用户不在待办名单")];case 2:case 7:return i.sent(),[2,{}];case 3:return[4,P(e,r,s,!1)];case 4:return i.sent(),[4,e.getObject("pepsico_material_approval").findOne(r)];case 5:return c=i.sent(),p=o.ApprovalStatus.rejected,[4,I(e,c,{approvalStatus:o.ApprovalStatus.rejected,approveField:s})];case 6:if(i.sent(),c.current_step===o.Step.departmental_review){if(!(0,t.areDepartmentReviewsComplete)(c))return console.log("[rejectContent]: 有部门审核周期未完成, 只结束当前用户审批任务,不推进审批进度."),[2,{}];console.log("[rejectContent]: 部门复审完成")}else if(c.current_step===o.Step.personnel_review){if(!(0,t.isDeptReviewComplete)(c,"approval"))return console.log("[rejectContent]: 固定人员审核周期未完成, 只结束当前用户审批任务,不推进审批进度."),[2,{}];console.log("[rejectContent]: 固定人员复审完成")}if("yes"==c.child_files){if(!(0,t.hasReviewed)(c.kids_approval_status))return console.log("[rejectContent]: kids审核人未审批, 只结束当前用户审批任务,不推进审批进度."),[2,{}];console.log("[rejectContent]: kids审核完成")}return console.log("[rejectContent] 推进审批进度,参数为 审批单: ".concat(r," 当前步骤: ").concat(c.current_step," 审批结果为: ").concat(p)),[4,(0,t.advanceApproval)(e,r,p)]}})})},t.submitKidsContent=function(e,r,a){return i.__awaiter(this,void 0,void 0,function(){var s;return i.__generator(this,function(n){switch(n.label){case 0:if(a!=o.ApprovalStatus.approved&&a!=o.ApprovalStatus.rejected)throw new Error("无效的审核状态.");return s="kids_approval_status",a!==o.ApprovalStatus.approved?[3,2]:[4,(0,t.approvalContent)(e,r,{approveField:s})];case 1:return n.sent(),[3,4];case 2:return[4,(0,t.rejectContent)(e,r,{approveField:s})];case 3:n.sent(),n.label=4;case 4:return[2]}})})},t.submitPreReviewContent=function(e,r,a){return i.__awaiter(this,void 0,void 0,function(){var s,n,c,p,u;return i.__generator(this,function(i){switch(i.label){case 0:if(a!=o.ApprovalStatus.approved&&a!=o.ApprovalStatus.rejected)throw new Error("无效的审核状态.");return s=e.meta.user,[4,e.getObject("pepsico_material_approval").findOne(r)];case 1:if((n=i.sent()).current_step!==o.Step.departmental_review&&n.current_step!==o.Step.personnel_review)throw new Error("当前步骤不支持预审操作");if(!(0,l.includes)(n.person_pending_approve,s.userId))throw new Error("您不是当前预审人");return c="",n.pre_reviewer===s.userId?c="pre_approval_status":n.pre_ns_reviewer===s.userId?c="pre_ns_approval_status":n.pre_legal_reviewer===s.userId?c="pre_legal_approval_status":n.pre_sra_reviewer===s.userId?c="pre_sra_approval_status":n.pre_ca_reviewer===s.userId?c="pre_ca_approval_status":(0,t.needsQcReview)(n)&&n.pre_qc_reviewer===s.userId&&(c="pre_qc_approval_status"),c?[3,3]:[4,e.getObject("pepsico_approval_process").find({filters:[["owner","=",s.userId],["pepsico_material_approval","=",r],["current_step","=",n.current_step],["space","=",n.space],["approved","=","progess"]],top:1,sort:"modified desc"})];case 2:(p=i.sent()).length>0&&((u=p[0].type)===o.ProcessApprovalType.PreNS?c="pre_ns_approval_status":u===o.ProcessApprovalType.PreLegal?c="pre_legal_approval_status":u===o.ProcessApprovalType.PreSRA?c="pre_sra_approval_status":u===o.ProcessApprovalType.PreCA?c="pre_ca_approval_status":u===o.ProcessApprovalType.PreQC?c="pre_qc_approval_status":u===o.ProcessApprovalType.Preguding&&(c="pre_approval_status")),i.label=3;case 3:if(!c)throw new Error("无法确定预审字段");return a!==o.ApprovalStatus.approved?[3,5]:[4,(0,t.approvalContent)(e,r,{approveField:c})];case 4:return i.sent(),[3,7];case 5:return[4,(0,t.rejectContent)(e,r,{approveField:c})];case 6:i.sent(),i.label=7;case 7:return[2]}})})},t.submitContent=function(e,r,a,s){return i.__awaiter(this,void 0,void 0,function(){var n,c,u,_,v,g,f,b,w,O,S,A,P,T,E,j,D,C,k,R,L,U,N,M;return i.__generator(this,function(x){switch(x.label){case 0:return[4,e.getObject("pepsico_material_approval").findOne(r)];case 1:return n=x.sent(),c=e.meta.user,u=!1,n.current_step===o.Step.ai_review&&c.is_space_admin&&!0===s?(console.log("".concat(c.name,"(").concat(c.userId,")提交了AI审核步骤:"),r),u=!0,[4,e.getObject("pepsico_approval_process").find({filters:[["owner","=",process.env.PEPSICO_CONTENT_APPROVAL_AI_USERID],["pepsico_material_approval","=",r],["current_step","=",o.Step.ai_review],["space","=",n.space],["approved","=","progess"]],top:1,sort:"modified desc"})]):[3,10];case 2:_=x.sent(),console.log("管理员提交了AI审核步骤, 修改审批历史: process.length:",_.length,JSON.stringify({filters:[["owner","=",process.env.PEPSICO_CONTENT_APPROVAL_AI_USERID],["pepsico_material_approval","=",r],["current_step","=",o.Step.ai_review],["space","=",n.space],["approved","=","progess"]],top:1,sort:"modified desc"})),x.label=3;case 3:x.trys.push([3,8,9,10]),v=i.__values(_),g=v.next(),x.label=4;case 4:return g.done?[3,7]:(f=g.value,console.log("管理员提交了AI审核步骤, 修改审批历史: process Id:",f._id),[4,e.getObject("pepsico_approval_process").directUpdate(f._id,{submitted:new Date,modified:new Date,modified_by:c.userId,approved:"skip"})]);case 5:x.sent(),x.label=6;case 6:return g=v.next(),[3,4];case 7:return[3,10];case 8:return b=x.sent(),N={error:b},[3,10];case 9:try{g&&!g.done&&(M=v.return)&&M.call(v)}finally{if(N)throw N.error}return[7];case 10:if(1!=u&&n.current_step!=o.Step.draft&&!(0,l.includes)(n.person_pending_approve,c.userId))return[2,{}];if(!n.is_external||n.current_step!==o.Step.draft||1==n.external_submitted)return[3,14];if(n.owner!==c.userId)return[3,13];if(!n.internal_collaborator)throw new Error("请先选择内部协作者");return[4,e.getObject("pepsico_material_approval").directUpdate(r,{owner:n.internal_collaborator,external_submitted:!0})];case 11:return x.sent(),[4,(0,d.sendNotifications)(e,n,[n.internal_collaborator],"协助提交材料审批单")];case 12:x.sent(),x.label=13;case 13:return[2];case 14:return n.current_step!==o.Step.draft&&n.current_step!==o.Step.submitter_revisions?[3,20]:(w=n.current_step===o.Step.draft?"submit":"resubmit",O=h.uniq(h.compact(n.pls_km_files||[])),S=h.compact(h.map(n.pls_upload_files||[],function(e){var t=e;return"object"==typeof t&&null!==t?t.value||t._id:t})),S.length>0?[4,(0,m.createApplicationPLSFiles)(e,S,n,void 0,{checkDuplicate:n.current_step===o.Step.draft})]:[3,18]);case 15:return A=x.sent(),P=h.uniq(h.compact(O.concat(A.records.map(function(e){return e.id})))),[4,e.getObject("pepsico_material_approval").directUpdate(n._id,{pls_km_files:P,pls_upload_files:[],modified:new Date,modified_by:c.userId})];case 16:return x.sent(),[4,e.getObject("pepsico_material_approval").findOne(r)];case 17:n=x.sent(),x.label=18;case 18:return T=h.uniq(h.compact(n.pls_km_files||[])),E=O.length>0,j=S.length>0,[4,(0,m.logPLSChange)(e,{approval:n,scene:w,beforeIds:O,afterIds:T,source:E&&j?"mixed":j?"upload":"existing"})];case 19:x.sent(),x.label=20;case 20:return n.current_step!==o.Step.draft?[3,28]:[4,y(e,n)];case 21:if((D=x.sent())===o.Step.departmental_review&&(0,t.needsQcReview)(n)&&h.isEmpty(n.qc_reviewer))throw new Error("QC审核人缺失, 请确认审批单对应审核人员信息");return[4,e.getObject("pepsico_material_approval").directUpdate(n._id,{approval_type:D})];case 22:return x.sent(),[3,25];case 23:return 1!=x.sent()?[2,{status:500,msg:"更新素材失败, 请稍后重试",data:{}}]:[4,(0,p.downloadBulkFromOneDriveDoc)(e,r)];case 24:if(1!=x.sent())return[2,{status:500,msg:"更新素材失败, 请稍后重试",data:{}}];x.label=25;case 25:return n&&n.material_owner?[4,e.getObject("space_users").find({filters:[["email","=",n.material_owner],["space","=",n.space]]})]:[3,28];case 26:return(C=x.sent())&&C.length>0?(k=C[0],[4,e.getObject("pepsico_material_approval").directUpdate(r,{material_owner_id:k.user})]):[3,28];case 27:x.sent(),x.label=28;case 28:return console.log("[submitContent] 步骤提交,参数为 审批单: ".concat(r," 当前步骤: ").concat(n.current_step," 审批结果为: ").concat(a)),n.current_step!==o.Step.ai_review||a!==o.ApprovalStatus.approved?[3,38]:[4,(0,p.getOneDriveMaterials)(e,r)];case 29:return R=x.sent(),"completed"==n.materials_xml_to_word_status?[3,32]:[4,e.getObject("pepsico_material_approval").directUpdate(n._id,{materials_download_from_onedrive_failed_count:0,materials_download_from_onedrive_status:"not_started",materials_remove_share_link_from_onedrive_failed_count:0,materials_remove_share_link_from_onedrive_status:"not_started",materials_uploaded_to_onedrive_failed_count:0,materials_uploaded_to_onedrive_status:"not_started"})];case 30:return x.sent(),[4,e.getObject("pepsico_material_approval").findOne(r)];case 31:n=x.sent(),x.label=32;case 32:return"completed"==n.materials_uploaded_to_onedrive_status?[3,38]:(console.log("materials:",R.length),0!==R.length?[3,34]:[4,e.getObject("pepsico_material_approval").directUpdate(n._id,{materials_uploaded_to_onedrive_status:"no_materials",materials_xml_to_word_status:"no_materials"})]);case 33:return x.sent(),[3,38];case 34:return L=R.filter(function(e){return!0!==e.xml_converted_word}),console.log("pendingXmlToWordMaterials:",L.length),L.length>0&&"no_materials"!=n.materials_xml_to_word_status?[4,e.getObject("pepsico_material_approval").directUpdate(n._id,{materials_xml_to_word_status:"pending"})]:[3,36];case 35:return x.sent(),[2];case 36:return U=R.filter(function(e){return!0!==e.uploaded_to_onedrive}),console.log("pendingUploadMaterials:",U.length),U.length>0?[4,e.getObject("pepsico_material_approval").directUpdate(n._id,{materials_uploaded_to_onedrive_status:"pending"})]:[3,38];case 37:return x.sent(),[2];case 38:return console.time("updateUserStepStatus: "+r),[4,I(e,n,{approvalStatus:a,approveField:""})];case 39:return x.sent(),console.timeEnd("updateUserStepStatus: "+r),console.time("advanceApproval: "+r),[4,(0,t.advanceApproval)(e,r,a)];case 40:return x.sent(),console.timeEnd("advanceApproval: "+r),[2]}})})},t.hasReviewed=function(e){return!0===e||!1===e||e===o.ApprovalStatus.pass||e===o.ApprovalStatus.approved};var C=((a={})[o.ProcessApprovalType.NS]="ns_reviewer",a[o.ProcessApprovalType.Legal]="legal_reviewer",a[o.ProcessApprovalType.SRA]="sra_reviewer",a[o.ProcessApprovalType.CA]="ca_reviewer",a[o.ProcessApprovalType.QC]="qc_reviewer",a[o.ProcessApprovalType.guding]="reviewer",a[o.ProcessApprovalType.Kids]="kids_reviewer",a[o.ProcessApprovalType.PreNS]="pre_ns_reviewer",a[o.ProcessApprovalType.PreLegal]="pre_legal_reviewer",a[o.ProcessApprovalType.PreSRA]="pre_sra_reviewer",a[o.ProcessApprovalType.PreCA]="pre_ca_reviewer",a[o.ProcessApprovalType.PreQC]="pre_qc_reviewer",a[o.ProcessApprovalType.Preguding]="pre_reviewer",a),k=((s={})[o.ProcessApprovalType.NS]="handler_ns",s[o.ProcessApprovalType.Legal]="handler_legal",s[o.ProcessApprovalType.SRA]="handler_sra",s[o.ProcessApprovalType.CA]="handler_ca",s[o.ProcessApprovalType.QC]="handler_qc",s[o.ProcessApprovalType.guding]="handler_guding",s[o.ProcessApprovalType.Kids]="handler_kids",s[o.ProcessApprovalType.PreNS]="handler_prens",s[o.ProcessApprovalType.PreLegal]="handler_prelegal",s[o.ProcessApprovalType.PreSRA]="handler_presra",s[o.ProcessApprovalType.PreCA]="handler_preca",s[o.ProcessApprovalType.PreQC]="handler_preqc",s[o.ProcessApprovalType.Preguding]="handler_preguding",s),R=((n={})[o.ProcessApprovalType.NS]="ns_approval_status",n[o.ProcessApprovalType.Legal]="legal_approval_status",n[o.ProcessApprovalType.SRA]="sra_approval_status",n[o.ProcessApprovalType.CA]="ca_approval_status",n[o.ProcessApprovalType.QC]="qc_approval_status",n[o.ProcessApprovalType.guding]="approval_status",n[o.ProcessApprovalType.Kids]="kids_approval_status",n[o.ProcessApprovalType.PreNS]="pre_ns_approval_status",n[o.ProcessApprovalType.PreLegal]="pre_legal_approval_status",n[o.ProcessApprovalType.PreSRA]="pre_sra_approval_status",n[o.ProcessApprovalType.PreCA]="pre_ca_approval_status",n[o.ProcessApprovalType.PreQC]="pre_qc_approval_status",n[o.ProcessApprovalType.Preguding]="pre_approval_status",n),L=[o.ProcessApprovalType.CA,o.ProcessApprovalType.QC,o.ProcessApprovalType.SRA,o.ProcessApprovalType.NS,o.ProcessApprovalType.Legal,o.ProcessApprovalType.guding,o.ProcessApprovalType.PreCA,o.ProcessApprovalType.PreQC,o.ProcessApprovalType.PreSRA,o.ProcessApprovalType.PreNS,o.ProcessApprovalType.PreLegal,o.ProcessApprovalType.Preguding],U=function(e){return e?Array.isArray(e)?e:[e]:[]},N=function(e,t,r){var a=k[t],s=C[t],n=a?U(e[a]):[],i=s?U(e[s]):[],o=n.length>0?n:i;return(0,l.includes)(o,r)};t.getPostponeReviewDepartmentType=function(e,t,r){var a=(0,l.compact)((0,l.uniq)((0,l.map)(t||[],"type"))),s=a.find(function(t){if(t===o.ProcessApprovalType.Kids)return!1;var r=R[t];return!!r&&!1===e[r]});if(s)return s;if(r){var n=L.find(function(t){var a=R[t];return!!a&&!1===e[a]&&N(e,t,r)});if(n)return n}if(a.includes(o.ProcessApprovalType.Kids)||r&&N(e,o.ProcessApprovalType.Kids,r))throw new Error("Kids审核人不支持延后审核操作");throw new Error("仅驳回审批单后可以延后审核")},t.postponeReview=function(e,r,a){return i.__awaiter(this,void 0,void 0,function(){var s,n,c,p,u,_,d,v,g,f,m,b,w,y,O,S,A,I,P,T;return i.__generator(this,function(E){switch(E.label){case 0:if(s=e.meta.user,!(n=h.trim(a&&a.postpone_reason||"")))throw new Error("请填写延后原因");return[4,e.getObject("pepsico_material_approval").findOne(r)];case 1:if(c=E.sent(),![o.Step.departmental_review,o.Step.personnel_review].includes(c.current_step)&&c.current_step!==o.Step.submitter_revisions)throw new Error("当前步骤不支持延后审核操作");if(c.is_urgent)throw new Error("加急审批单不允许延后审核");if(!(0,l.includes)(c.person_approved,s.userId))throw new Error("您不在当前已审批人列表中");return[4,e.getObject("pepsico_approval_process").directFind({filters:[["pepsico_material_approval","=",r],["owner","=",s.userId],["approved","=","progess"],["space","=",c.space]]})];case 2:if(E.sent().length>0)throw new Error("您还有待处理的审批任务,无法执行延后审核");return[4,e.getObject("pepsico_approval_process").directFind({filters:[["pepsico_material_approval","=",r],["owner","=",s.userId],["space","=",c.space]],sort:"created desc"})];case 3:if(!(p=E.sent())||0===p.length)throw new Error("未找到您的审核记录");if(!(u=(0,t.getPostponeReviewDepartmentType)(c,p,s.userId)))throw new Error("无法确定您所在的审核部门");if(!(_=R[u])||!1!==c[_])throw new Error("仅驳回审批单后可以延后审核");return d=C[u],v=k[u],g=[],v&&c[v]?g=U(c[v]):d&&c[d]&&(g=U(c[d])),0===g.length&&(g=[s.userId]),f=new Date,[4,e.getObject("pepsico_review_postpone").directFind({filters:[["pepsico_material_approval","=",r],["postpone_by","=",s.userId],["space","=",c.space],["is_marker","=",!0]],sort:"created desc"})];case 4:return(m=E.sent())&&m.length>0?(b=m[0],[4,e.getObject("pepsico_review_postpone").directUpdate(b._id,{department_type:u,postpone_reason:n,postpone_date:f,postponed_user_ids:g.join(","),notification_sent:!1,modified:f,modified_by:s.userId,name:"".concat(u," 延后审核标记 ").concat(f.toISOString())})]):[3,14];case 5:E.sent(),E.label=6;case 6:E.trys.push([6,11,12,13]),w=i.__values(m.slice(1)),y=w.next(),E.label=7;case 7:return y.done?[3,10]:(O=y.value,[4,e.getObject("pepsico_review_postpone").directUpdate(O._id,{is_marker:!1,notification_sent:!0,modified:f,modified_by:s.userId})]);case 8:E.sent(),E.label=9;case 9:return y=w.next(),[3,7];case 10:return[3,13];case 11:return S=E.sent(),P={error:S},[3,13];case 12:try{y&&!y.done&&(T=w.return)&&T.call(w)}finally{if(P)throw P.error}return[7];case 13:return[3,16];case 14:return[4,e.getObject("pepsico_review_postpone").insert({pepsico_material_approval:r,department_type:u,postpone_by:s.userId,postpone_reason:n,postpone_date:f,is_marker:!0,notification_sent:!1,postponed_user_ids:g.join(","),space:c.space,created:f,created_by:s.userId,modified:f,modified_by:s.userId,name:"".concat(u," 延后审核标记 ").concat(f.toISOString())})];case 15:E.sent(),E.label=16;case 16:return console.log("[postponeReview] recordId=".concat(r,", departmentType=").concat(u,", deptUserIds=").concat(g,", markedForNextRound=true")),A=c.postpone_marker_users||[],I=(0,l.compact)((0,l.uniq)((0,l.concat)(A,g))),[4,e.getObject("pepsico_material_approval").directUpdate(r,{postpone_marker_users:I})];case 17:return E.sent(),[2,{}]}})})}},5584:e=>{e.exports=require("tslib")},5949:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.backfillTagLabels=t.computeTagLabels=t.loadTagNames=t.formatTagLabel=t.parseTagValuePaths=t.TAG_LABEL_FIELDS=void 0;var a=r(5584),s=r(7825),n=r(7283);t.TAG_LABEL_FIELDS={pepsico_material_approval:[{field:"product",labelField:"product_label",tagId:n.PRODUCT_TAG_ID,picklistCode:n.getProductPicklistCode,extraFields:["form_version"]},{field:"material_type",labelField:"material_type_label",tagId:"223321001114222"},{field:"available_channels",labelField:"available_channels_label",tagId:"223321001114944"},{field:"content_rule",labelField:"content_rule_label",tagId:"223321022150011"}],pepsico_material:[{field:"material_type",labelField:"material_type_label",tagId:"223321001114222"}]};var i=/[,、]/;t.parseTagValuePaths=function(e){var t=s.flatMap(s.castArray(e),function(e){return s.isString(e)?e.split(i):[]});return s.compact(t.map(function(e){var t=s.compact(e.split("-").map(function(e){return e.trim()}));return t.length>0?t:null}))},t.formatTagLabel=function(e,t){return e.map(function(e){return e.map(function(e){return t[e]||e}).join("-")}).join("、")};var o={};t.loadTagNames=function(e,t,r){return a.__awaiter(void 0,void 0,void 0,function(){var n,i;return a.__generator(this,function(a){switch(a.label){case 0:return 0===r.length?[2,{}]:o[t]?[3,2]:[4,e.getObject("picklists").directFind({filters:[["code","=",t]],fields:["_id"],top:1})];case 1:if(0===(n=a.sent()).length)return[2,{}];o[t]=n[0]._id,a.label=2;case 2:return[4,e.getObject("picklist_options").directFind({filters:[["picklist","=",o[t]],["value","in",s.uniq(r)]],fields:["value","name"]})];case 3:return i=a.sent(),[2,s.fromPairs(i.map(function(e){return[e.value,e.name]}))]}})})},t.computeTagLabels=function(e,r,n){return a.__awaiter(void 0,void 0,void 0,function(){var i,o,c,l,p,u,_,d,v;return a.__generator(this,function(g){switch(g.label){case 0:i={},g.label=1;case 1:g.trys.push([1,6,7,8]),o=a.__values(t.TAG_LABEL_FIELDS[r]||[]),c=o.next(),g.label=2;case 2:return c.done?[3,5]:(l=c.value,p=(0,t.parseTagValuePaths)(n[l.field]),[4,(0,t.loadTagNames)(e,l.picklistCode?l.picklistCode(n):l.tagId,s.flatten(p))]);case 3:u=g.sent(),i[l.labelField]=p.length>0?(0,t.formatTagLabel)(p,u):null,g.label=4;case 4:return c=o.next(),[3,2];case 5:return[3,8];case 6:return _=g.sent(),d={error:_},[3,8];case 7:try{c&&!c.done&&(v=o.return)&&v.call(o)}finally{if(d)throw d.error}return[7];case 8:return[2,i]}})})},t.backfillTagLabels=function(e,r,n){return void 0===n&&(n={}),a.__awaiter(void 0,void 0,void 0,function(){var i,o,c,l,p,u,_,d,v,g,f,m;return a.__generator(this,function(h){switch(h.label){case 0:if(!(i=t.TAG_LABEL_FIELDS[r]))throw new Error("不支持的对象: ".concat(r));return o=n.batchSize||500,[4,e.getObject(r).directFind({filters:n.lastId?[["_id",">",n.lastId]]:[],fields:s.uniq(a.__spreadArray(a.__spreadArray(a.__spreadArray(["_id"],a.__read(i.map(function(e){return e.field})),!1),a.__read(i.map(function(e){return e.labelField})),!1),a.__read(s.flatMap(i,function(e){return e.extraFields||[]})),!1)),sort:"_id asc",top:o})];case 1:c=h.sent(),l=0,p=function(n){var o,c;return a.__generator(this,function(a){switch(a.label){case 0:return i.some(function(e){return!n[e.labelField]&&(0,t.parseTagValuePaths)(n[e.field]).length>0})?[4,(0,t.computeTagLabels)(e,r,n)]:[2,"continue"];case 1:return o=a.sent(),c=s.pickBy(o,function(e,t){return!n[t]&&!!e}),s.isEmpty(c)?[3,3]:[4,e.getObject(r).directUpdate(n._id,c)];case 2:a.sent(),l++,a.label=3;case 3:return[2]}})},h.label=2;case 2:h.trys.push([2,7,8,9]),u=a.__values(c),_=u.next(),h.label=3;case 3:return _.done?[3,6]:(d=_.value,[5,p(d)]);case 4:h.sent(),h.label=5;case 5:return _=u.next(),[3,3];case 6:return[3,9];case 7:return v=h.sent(),g={error:v},[3,9];case 8:try{_&&!_.done&&(f=u.return)&&f.call(u)}finally{if(g)throw g.error}return[7];case 9:return[4,null===(m=e.logger)||void 0===m?void 0:m.info("[标签名称快照]回填-".concat(r),{objectName:r,scanned:c.length,updated:l})];case 10:return h.sent(),[2,{scanned:c.length,updated:l,lastId:c.length>0?s.last(c)._id:n.lastId,hasMore:c.length>=o}]}})})}},6074:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.migrateSpotCheckData=void 0;var a=r(5584);t.migrateSpotCheckData={rest:{method:"POST",fullPath:"/api/pepsico-content/material/migrate-spot-check-data"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n,i,o,c,l,p,u,_,d,v,g,f;return a.__generator(this,function(m){switch(m.label){case 0:return t=e.meta.user,e.getObject=this.getObject,[4,this.getLogger()];case 1:if(r=m.sent(),e.logger=r,!t||!t.is_space_admin)return[2,{status:403,msg:"只有管理员可以执行数据迁移",data:{}}];m.label=2;case 2:return m.trys.push([2,18,,19]),[4,e.getObject("pepsico_material").find({filters:[["spot_checked","=",!0],["pepsico_spot_check","!=",null]],fields:["_id","pepsico_spot_check","spot_check_time","pepsico_spot_check_status","spot_description","space"]})];case 3:s=m.sent(),null==r||r.info("Found ".concat(s.length," materials with spot check data to migrate")),n=0,i=0,m.label=4;case 4:m.trys.push([4,15,16,17]),o=a.__values(s),c=o.next(),m.label=5;case 5:return c.done?[3,14]:(l=c.value,[4,e.getObject("pepsico_material_spot_check_record").findOne({filters:[["pepsico_material","=",l._id],["spot_checker","=",l.pepsico_spot_check]]})]);case 6:if(m.sent())return i++,[3,13];if(p="",!l.pepsico_spot_check)return[3,10];m.label=7;case 7:return m.trys.push([7,9,,10]),[4,e.getObject("space_users").findOne({filters:["user","=",l.pepsico_spot_check]})];case 8:return u=m.sent(),p=(null==u?void 0:u.organization)||"",[3,10];case 9:return _=m.sent(),null==r||r.error("Error getting department for user ".concat(l.pepsico_spot_check),_),[3,10];case 10:return[4,e.getObject("pepsico_material_spot_check_record").insert({pepsico_material:l._id,spot_checker:l.pepsico_spot_check,spot_check_department:p,spot_check_time:l.spot_check_time||new Date,spot_check_status:void 0===l.pepsico_spot_check_status||l.pepsico_spot_check_status,spot_check_opinion:l.spot_description||"",space:l.space},t)];case 11:return m.sent(),[4,e.getObject("pepsico_material").directUpdate(l._id,{spot_checkers:[l.pepsico_spot_check],spot_check_departments:p?[p]:[],spot_check_overall_status:"checked"})];case 12:m.sent(),++n%100==0&&(null==r||r.info("Migrated ".concat(n," records..."))),m.label=13;case 13:return c=o.next(),[3,5];case 14:return[3,17];case 15:return d=m.sent(),g={error:d},[3,17];case 16:try{c&&!c.done&&(f=o.return)&&f.call(o)}finally{if(g)throw g.error}return[7];case 17:return null==r||r.info("Migration complete. Migrated: ".concat(n,", Skipped: ").concat(i)),[2,{status:0,msg:"数据迁移完成",data:{migrated:n,skipped:i,total:s.length}}];case 18:return v=m.sent(),null==r||r.error("Migration failed",v),[2,{status:500,msg:"数据迁移失败: ".concat(v.message),data:{}}];case 19:return[2]}})})}}},6118:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.findMaterialGroupPath=t.loadMaterialGroupOptions=t.matchMaterialGroupRule=t.getQueryMode=t.materialGroupRuleMatches=t.QueryMode=t.MATERIAL_GROUP_RULE_OBJECT_NAME=void 0;var a=r(5584),s=r(7825),n=r(8844),i=r(777),o=r(5949),c=r(7283);t.MATERIAL_GROUP_RULE_OBJECT_NAME="pepsico_ch_material_group_rule",t.QueryMode={product:"product",sales:"sales"},t.materialGroupRuleMatches=function(e,t){return!((0,n.isUnset)(e.orgs)&&(0,n.isUnset)(e.classification)||!(0,n.isUnset)(e.orgs)&&0===s.intersection((0,n.toValues)(e.orgs),t.orgIds).length||!(0,n.isUnset)(e.classification)&&!(0,n.pathMatches)(t.classification,e.classification))},t.getQueryMode=function(e){return e?e.query_mode||t.QueryMode.sales:t.QueryMode.product},t.matchMaterialGroupRule=function(e,r){return a.__awaiter(void 0,void 0,void 0,function(){var i,o,c;return a.__generator(this,function(a){switch(a.label){case 0:return[4,e.getObject(t.MATERIAL_GROUP_RULE_OBJECT_NAME).directFind({filters:[["active","=",!0]],fields:["_id","name","priority","orgs","classification","query_mode"],sort:"priority asc"})];case 1:return 0===(i=a.sent()).length?[2,null]:(c={},[4,(0,n.getOrgIds)(e,r.ownerDepartment)]);case 2:return c.orgIds=a.sent(),c.classification=r.classification,o=c,[2,s.find(i,function(e){return(0,t.materialGroupRuleMatches)(e,o)})||null]}})})},t.loadMaterialGroupOptions=function(e,r){return a.__awaiter(void 0,void 0,void 0,function(){var n,l,p,u,_;return a.__generator(this,function(a){switch(a.label){case 0:return n=!!r.sales,l=s.compact(s.castArray(r.path||[])),n||0!==l.length?[3,2]:[4,(0,t.matchMaterialGroupRule)(e,{ownerDepartment:r.ownerDepartment,classification:r.classification})];case 1:p=a.sent(),n=(0,t.getQueryMode)(p)===t.QueryMode.sales,a.label=2;case 2:return n||0!==l.length?[3,4]:0===(u=(0,o.parseTagValuePaths)(r.product)).length?[2,[]]:[4,(0,o.loadTagNames)(e,c.PRODUCT_PICKLIST_CODE,s.flatten(u))];case 3:_=a.sent(),l=u.map(function(e){return(0,i.toMaterialGroupPath)(e.map(function(e){return _[e]||e}))}),a.label=4;case 4:return[4,(0,i.queryMaterialGroupTree)(e,{sales:n,materialGroupPath:l})];case 5:return[2,a.sent()]}})})},t.findMaterialGroupPath=function(e,t){var r=function(e,s){var n,o;try{for(var c=a.__values(e||[]),l=c.next();!l.done;l=c.next()){var p=l.value,u=a.__spreadArray(a.__spreadArray([],a.__read(s),!1),[p.label],!1);if(String(p.value)===String(t))return p.materialGroupPath||(0,i.toMaterialGroupPath)(u);var _=r(p.children,u);if(_)return _}}catch(e){n={error:e}}finally{try{l&&!l.done&&(o=c.return)&&o.call(c)}finally{if(n)throw n.error}}return null};return r(e,[])}},6293:e=>{e.exports=require("dayjs")},6570:(e,t,r)=>{var a;Object.defineProperty(t,"__esModule",{value:!0}),t.syncTagValues=t.orderItemsByParent=t.normalizeRequest=t.isValidTagValId=t.parseChangedAt=t.httpStatusOf=t.isTagSyncError=t.TagSyncError=t.MAX_TAG_DEPTH=t.REQUEST_LOG_RETENTION_DAYS=t.MAX_REQUEST_ID_LENGTH=t.MAX_TAG_VAL_ID_LENGTH=t.MAX_NAME_LENGTH=t.MAX_ITEMS_PER_BATCH=t.TAG_SYNC_ACTIONS=t.TagSyncAction=t.TagSyncCode=t.getTagPicklistCode=t.TAG_PICKLIST_CODES=t.CONTENT_HUB_TAG_WHITELIST=void 0;var s=r(5584),n=r(7825),i=r(7283);t.CONTENT_HUB_TAG_WHITELIST={223321001114213:"品牌/产品",223321001114222:"素材类型",223321001114944:"可使用渠道",223321022150011:"素材授权规则"},t.TAG_PICKLIST_CODES=((a={})[i.PRODUCT_TAG_ID]=i.PRODUCT_PICKLIST_CODE,a),t.getTagPicklistCode=function(e){return t.TAG_PICKLIST_CODES[e]||e},t.TagSyncCode={OK:0,PARTIAL:1001,BAD_REQUEST:40001,TAG_NOT_ALLOWED:40002,INVALID_TAG_VAL_ID:40003,PARENT_NOT_FOUND:40004,PARENT_IMMUTABLE:40005,TOO_MANY_ITEMS:40006,TAG_VAL_NOT_FOUND:40007,UNAUTHORIZED:40101,SERVER_ERROR:5e4},t.TagSyncAction={upsert:"upsert",disable:"disable",enable:"enable"},t.TAG_SYNC_ACTIONS=[t.TagSyncAction.upsert,t.TagSyncAction.disable,t.TagSyncAction.enable],t.MAX_ITEMS_PER_BATCH=100,t.MAX_NAME_LENGTH=100,t.MAX_TAG_VAL_ID_LENGTH=64,t.MAX_REQUEST_ID_LENGTH=128,t.REQUEST_LOG_RETENTION_DAYS=7,t.MAX_TAG_DEPTH=3;var o="ch_changed_at",c=function(e){function t(t,r){var a=e.call(this,r)||this;return a.isTagSyncError=!0,a.code=t,a}return s.__extends(t,e),t}(Error);t.TagSyncError=c,t.isTagSyncError=function(e){return!(!e||!e.isTagSyncError)},t.httpStatusOf=function(e){return e===t.TagSyncCode.OK||e===t.TagSyncCode.PARTIAL?200:e===t.TagSyncCode.UNAUTHORIZED?401:e===t.TagSyncCode.SERVER_ERROR?500:400};var l=/^\d{4}-\d{2}-\d{2}[Tt ]\d{2}:\d{2}(:\d{2}(\.\d+)?)?(Z|z|[+-]\d{2}:?\d{2})$/;t.parseChangedAt=function(e){if(!n.isString(e))return null;var t=e.trim();if(!l.test(t))return null;var r=new Date(t);return isNaN(r.getTime())?null:r};var p=/^[A-Za-z0-9_]+$/;t.isValidTagValId=function(e){if(!n.isString(e))return!1;var r=e.trim();return!!r&&p.test(r)&&r.length<=t.MAX_TAG_VAL_ID_LENGTH},t.normalizeRequest=function(e){if(!n.isPlainObject(e))throw new c(t.TagSyncCode.BAD_REQUEST,"请求体格式错误");if(n.every(["requestId","changedAt","tagId","items"],function(t){return n.isNil(e[t])}))throw new c(t.TagSyncCode.BAD_REQUEST,"请求体为空或未被解析, 请确认已带上 Content-Type: application/json");var r=n.isString(e.requestId)?e.requestId.trim():"";if(!r||r.length>t.MAX_REQUEST_ID_LENGTH)throw new c(t.TagSyncCode.BAD_REQUEST,"requestId 缺失或格式错误");var a=(0,t.parseChangedAt)(e.changedAt);if(!a)throw new c(t.TagSyncCode.BAD_REQUEST,"changedAt 缺失或格式错误, 需为带时区偏移的 ISO 8601 时间");var s=n.isString(e.tagId)?e.tagId.trim():"";if(!s)throw new c(t.TagSyncCode.BAD_REQUEST,"tagId 缺失或格式错误");if(!t.CONTENT_HUB_TAG_WHITELIST[s])throw new c(t.TagSyncCode.TAG_NOT_ALLOWED,"tagId 不在托管白名单: ".concat(s));var i=e.items;if(!n.isArray(i)||i.length<1)throw new c(t.TagSyncCode.BAD_REQUEST,"items 缺失或为空");if(i.length>t.MAX_ITEMS_PER_BATCH)throw new c(t.TagSyncCode.TOO_MANY_ITEMS,"单批条数超过 ".concat(t.MAX_ITEMS_PER_BATCH," 条"));var o={},l=i.map(function(e,r){if(!n.isPlainObject(e))throw new c(t.TagSyncCode.BAD_REQUEST,"items[".concat(r,"] 格式错误"));var s=n.isNil(e.action)||""===e.action?t.TagSyncAction.upsert:e.action;if(!n.includes(t.TAG_SYNC_ACTIONS,s))throw new c(t.TagSyncCode.BAD_REQUEST,"items[".concat(r,"].action 非法: ").concat(e.action));if(!(0,t.isValidTagValId)(e.tagValId))throw new c(t.TagSyncCode.INVALID_TAG_VAL_ID,"items[".concat(r,"].tagValId 非法"));var i=e.tagValId.trim();if(o[i])throw new c(t.TagSyncCode.BAD_REQUEST,"同一批次内 tagValId 重复: ".concat(i));o[i]=!0;var l=null;if(s===t.TagSyncAction.upsert){if(!n.isString(e.name)||!e.name.trim())throw new c(t.TagSyncCode.BAD_REQUEST,"items[".concat(r,"].name 缺失, upsert 必填"));if((l=e.name.trim()).length>t.MAX_NAME_LENGTH)throw new c(t.TagSyncCode.BAD_REQUEST,"items[".concat(r,"].name 超过 ").concat(t.MAX_NAME_LENGTH," 个字符"))}var p=null;if(!n.isNil(e.parentTagValId)&&""!==e.parentTagValId){if(!(0,t.isValidTagValId)(e.parentTagValId))throw new c(t.TagSyncCode.INVALID_TAG_VAL_ID,"items[".concat(r,"].parentTagValId 非法"));if((p=e.parentTagValId.trim())===i)throw new c(t.TagSyncCode.BAD_REQUEST,"items[".concat(r,"].parentTagValId 不能指向自身"))}var u=a;if(!n.isNil(e.changedAt)&&""!==e.changedAt&&!(u=(0,t.parseChangedAt)(e.changedAt)))throw new c(t.TagSyncCode.BAD_REQUEST,"items[".concat(r,"].changedAt 格式错误, 需为带时区偏移的 ISO 8601 时间"));return{index:r,action:s,tagValId:i,name:l,parentTagValId:p,changedAt:u}});return{requestId:r,tagId:s,changedAt:a,items:l}},t.orderItemsByParent=function(e){var r={};e.forEach(function(e){e.action===t.TagSyncAction.upsert&&(r[e.tagValId]=e)});var a=[],s={},n=function(e){if(!s[e.tagValId]){s[e.tagValId]=1;var t=e.parentTagValId&&r[e.parentTagValId];t&&1!==s[t.tagValId]&&n(t),s[e.tagValId]=2,a.push(e)}};return e.forEach(n),a};var u=function(e,r,a,i){return s.__awaiter(void 0,void 0,void 0,function(){var o,c,l,p,u,_,d,v,g,f,m,h,b,w,y,O,S;return s.__generator(this,function(A){switch(A.label){case 0:o={},a.forEach(function(e){e.action===t.TagSyncAction.upsert&&(o[e.tagValId]=e.parentTagValId||null)}),c=n.keyBy(n.values(i),"_id"),l=function(t){return s.__awaiter(void 0,void 0,void 0,function(){var a;return s.__generator(this,function(s){switch(s.label){case 0:return t in c?[3,2]:[4,e.getObject("picklist_options").directFind({filters:[["picklist","=",r],["_id","=",t]],fields:["_id","value","parent"],top:1})];case 1:a=s.sent(),c[t]=a&&a[0]||null,s.label=2;case 2:return[2,c[t]]}})})},p={},u=function(e){return s.__awaiter(void 0,void 0,void 0,function(){var r,a,n;return s.__generator(this,function(s){switch(s.label){case 0:if(!e)return[2,0];if(p[e._id])return[2,p[e._id]];r=1,a=e,n=0,s.label=1;case 1:return n<t.MAX_TAG_DEPTH+5&&a&&a.parent?[4,l(a.parent)]:[3,4];case 2:if(!(a=s.sent()))return[3,4];r+=1,s.label=3;case 3:return n++,[3,1];case 4:return p[e._id]=r,[2,r]}})})},_={},A.label=1;case 1:A.trys.push([1,9,10,11]),d=s.__values(a),v=d.next(),A.label=2;case 2:if(v.done)return[3,8];if((g=v.value).action!==t.TagSyncAction.upsert||i[g.tagValId])return[3,7];f=1,m=g.tagValId,A.label=3;case 3:return f<=t.MAX_TAG_DEPTH+2&&(h=o[m])?(b=i[h])?(w=f,[4,u(b)]):[3,5]:[3,6];case 4:return f=w+A.sent(),[3,6];case 5:return h in o?(m=h,f+=1,[3,3]):[3,6];case 6:_[g.tagValId]=f,A.label=7;case 7:return v=d.next(),[3,2];case 8:return[3,11];case 9:return y=A.sent(),O={error:y},[3,11];case 10:try{v&&!v.done&&(S=d.return)&&S.call(d)}finally{if(O)throw O.error}return[7];case 11:return[2,function(e){return _[e]||1}]}})})},_=["_id","value","name","parent","enable","space",o],d=function(e,r){var a=r.requestId,n=r.tagId,i=r.changedAt,o=r.items,c=r.code,l=r.data,p=r.space,u=r.userId,_=r.sourceIp,d=r.duration;return s.__awaiter(void 0,void 0,void 0,function(){var r,v;return s.__generator(this,function(s){switch(s.label){case 0:return r=new Date,v=new Date(r.getTime()+24*t.REQUEST_LOG_RETENTION_DAYS*60*60*1e3),[4,e.getObject("pepsico_ch_tag_sync_request").directInsert({name:a,request_id:a,tag_id:n,tag_label:t.CONTENT_HUB_TAG_WHITELIST[n],changed_at:i,item_count:o.length,result_code:c,response:JSON.stringify(l),source_ip:_,duration:d,expired_date:v,space:p,owner:u,created:r,created_by:u,modified:r,modified_by:u})];case 1:return s.sent(),[2]}})})},v=function(e,t){var r=t.requestId,a=t.tagId,n=t.items,i=t.results,o=t.space,c=t.userId,l=t.sourceIp,p=t.duration;return s.__awaiter(void 0,void 0,void 0,function(){var t,u,_,d,v,g,f,m,h;return s.__generator(this,function(b){switch(b.label){case 0:t=new Date,u=e.getObject("pepsico_ch_tag_sync_log"),b.label=1;case 1:b.trys.push([1,6,7,8]),_=s.__values(n),d=_.next(),b.label=2;case 2:return d.done?[3,5]:(v=d.value,g=i[v.index]||{},[4,u.directInsert({name:"".concat(r,"-").concat(v.tagValId),request_id:r,changed_at:v.changedAt,tag_id:a,tag_val_id:v.tagValId,tag_val_name:v.name,parent_tag_val_id:v.parentTagValId,action:v.action,result:g.result,error_code:g.code,error_msg:g.msg,source_ip:l,duration:p,space:o,owner:c,created:t,created_by:c,modified:t,modified_by:c})]);case 3:b.sent(),b.label=4;case 4:return d=_.next(),[3,2];case 5:return[3,8];case 6:return f=b.sent(),m={error:f},[3,8];case 7:try{d&&!d.done&&(h=_.return)&&h.call(_)}finally{if(m)throw m.error}return[7];case 8:return[2]}})})},g={};t.syncTagValues=function(e,r){return s.__awaiter(void 0,void 0,void 0,function(){var a;return s.__generator(this,function(s){return[2,(n=(a=(0,t.normalizeRequest)(r)).tagId,i=function(){return f(e,a)},o=(g[n]||Promise.resolve()).then(i,i),g[n]=o.then(function(){},function(){}),o)];var n,i,o})})};var f=function(e,r){return s.__awaiter(void 0,void 0,void 0,function(){var a,i,o,l,p,g,f,h,b,w,y,O,S,A,I,P,T,E,j,D,C,k,R,L,U,N,M,x,F,q,G,B,V,H,J,Q,Y,z,K,$,Z;return s.__generator(this,function(X){switch(X.label){case 0:return a=Date.now(),i=r.requestId,o=r.tagId,l=r.changedAt,p=r.items,g=e.meta&&e.meta.clientIp||null,[4,e.getObject("picklists").directFind({filters:[["code","=",(0,t.getTagPicklistCode)(o)]],fields:["_id","name","space"],top:1})];case 1:if(f=X.sent(),!(h=f&&f[0]))throw new c(t.TagSyncCode.SERVER_ERROR,"标签类目未在 Compliance 侧建档: ".concat(o,"(选项集编码 ").concat((0,t.getTagPicklistCode)(o),")"));return b=n.uniq(n.compact(n.flatten(p.map(function(e){return[e.tagValId,e.parentTagValId]})))),[4,e.getObject("picklist_options").directFind({filters:[["picklist","=",h._id],["value","in",b]],fields:_})];case 2:w=X.sent(),y=n.keyBy(w,"value"),O={},p.forEach(function(e){e.action===t.TagSyncAction.upsert&&(O[e.tagValId]=!0)});try{for(S=s.__values(p),A=S.next();!A.done;A=S.next())if(x=A.value,I=y[x.tagValId],x.parentTagValId){if(!(P=y[x.parentTagValId])&&!O[x.parentTagValId])throw new c(t.TagSyncCode.PARENT_NOT_FOUND,"parentTagValId 不存在: ".concat(x.parentTagValId));if(I&&(!P||I.parent!==P._id))throw new c(t.TagSyncCode.PARENT_IMMUTABLE,"不支持修改已存在记录的 parentTagValId: ".concat(x.tagValId))}}catch(e){J={error:e}}finally{try{A&&!A.done&&(Q=S.return)&&Q.call(S)}finally{if(J)throw J.error}}return[4,u(e,h._id,p,y)];case 3:T=X.sent();try{for(E=s.__values(p),j=E.next();!j.done;j=E.next())if((x=j.value).action===t.TagSyncAction.upsert&&!y[x.tagValId]&&(D=T(x.tagValId))>t.MAX_TAG_DEPTH)throw new c(t.TagSyncCode.BAD_REQUEST,"标签层级超过 ".concat(t.MAX_TAG_DEPTH," 层: ").concat(x.tagValId,"(第 ").concat(D," 层)"))}catch(e){Y={error:e}}finally{try{j&&!j.done&&(z=E.return)&&z.call(E)}finally{if(Y)throw Y.error}}C=e.meta&&e.meta.user||{},k=C.userId,R=h.space||C.spaceId,L=[],U=e.getObject("picklist_options"),X.label=4;case 4:X.trys.push([4,9,10,11]),N=s.__values((0,t.orderItemsByParent)(p)),M=N.next(),X.label=5;case 5:return M.done?[3,8]:(x=M.value,F=L,q=x.index,[4,m(e,{item:x,picklist:h,optionByValue:y,optionsObj:U,space:R,userId:k})]);case 6:F[q]=X.sent(),X.label=7;case 7:return M=N.next(),[3,5];case 8:return[3,11];case 9:return G=X.sent(),K={error:G},[3,11];case 10:try{M&&!M.done&&($=N.return)&&$.call(N)}finally{if(K)throw K.error}return[7];case 11:return B={requestId:i,idempotent:!1,results:L},V=n.some(L,{result:"failed"})?t.TagSyncCode.PARTIAL:t.TagSyncCode.OK,H=Date.now()-a,[4,d(e,{requestId:i,tagId:o,changedAt:l,items:p,code:V,data:B,space:R,userId:k,sourceIp:g,duration:H})];case 12:return X.sent(),[4,v(e,{requestId:i,tagId:o,items:p,results:L,space:R,userId:k,sourceIp:g,duration:H})];case 13:return X.sent(),[4,null===(Z=e.logger)||void 0===Z?void 0:Z.info("[Content Hub 标签同步]-".concat(i),{objectName:"picklist_options",request_id:i,tag_id:o,code:V,results:L})];case 14:return X.sent(),[2,{code:V,msg:"",data:B}]}})})},m=function(e,r){var a=r.item,i=r.picklist,c=r.optionByValue,l=r.optionsObj,p=r.space,u=r.userId;return s.__awaiter(void 0,void 0,void 0,function(){var r,_,d,v,g,f,m,h,b,w,y,O,S,A,I,P,T,E,j;return s.__generator(this,function(s){switch(s.label){case 0:r=a.action,_=a.tagValId,d=a.name,v=a.parentTagValId,g=a.changedAt,s.label=1;case 1:return s.trys.push([1,5,,7]),f=c[_],r===t.TagSyncAction.upsert||f?(m=new Date,f?[3,3]:(h=v?c[v]:null,v&&!h?[2,{tagValId:_,result:"failed",code:t.TagSyncCode.PARENT_NOT_FOUND,msg:"parentTagValId 不存在"}]:[4,l.directInsert((I={picklist:i._id,value:_,name:d,parent:h?h._id:null,enable:!0},I[o]=g,I.space=p,I.owner=u,I.created=m,I.created_by=u,I.modified=m,I.modified_by=u,I))])):[2,{tagValId:_,result:"failed",code:t.TagSyncCode.TAG_VAL_NOT_FOUND,msg:"tagValId 不存在"}];case 2:return b=s.sent(),c[_]=n.assign({},b,((P={_id:b._id,value:_,name:d,parent:h?h._id:null,enable:!0})[o]=g,P)),[2,{tagValId:_,result:"created"}];case 3:return w=null,y="unchanged",r===t.TagSyncAction.upsert?f.name!==d&&(w={name:d},y="updated"):(O=r===t.TagSyncAction.enable,!1!==f.enable!==O?(w={enable:O},y=O?"enabled":"disabled"):f.enable!==O&&(w={enable:O})),S=n.assign({},w,((T={})[o]=g,T.modified=m,T.modified_by=u,T)),[4,l.directUpdate(f._id,S)];case 4:return s.sent(),c[_]=n.assign({},f,w,((E={})[o]=g,E)),[2,{tagValId:_,result:y}];case 5:return A=s.sent(),[4,null===(j=e.logger)||void 0===j?void 0:j.error("[Content Hub 标签同步]单条处理失败-".concat(_),{objectName:"picklist_options",tag_val_id:_,action:r,error:A.message})];case 6:return s.sent(),[2,{tagValId:_,result:"failed",code:t.TagSyncCode.SERVER_ERROR,msg:A.message}];case 7:return[2]}})})}},6586:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.fixStuckPersonnelReview=void 0;var a=r(5584),s=r(8398),n=r(5510);t.fixStuckPersonnelReview={rest:{method:"GET",fullPath:"/api/pepsico-content/fix-stuck-personnel-review/:approvalId"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,i,o,c,l,p,u,_,d,v,g,f,m,h,b,w,y,O,S;return a.__generator(this,function(A){switch(A.label){case 0:return(t=e.meta.user)&&t.is_space_admin?(e.getObject=this.getObject,[4,this.getLogger()]):[2,{status:403,msg:"只有管理员可以执行此操作"}];case 1:return r=A.sent(),e.logger=r,(i=e.params.approvalId)?[4,e.getObject("pepsico_material_approval").findOne(i)]:[2,{status:400,msg:"请传入参数 approvalId"}];case 2:return(o=A.sent())?o.current_step!==s.Step.personnel_review?[2,{status:200,msg:"审批单当前步骤为 ".concat(o.current_step,",不是固定人员审核步骤,无需修复")}]:(0,n.isDeptReviewComplete)(o,"approval")?"yes"!==o.child_files||(0,n.hasReviewed)(o.kids_approval_status)?(c=function(e){return!0===e||e===s.ApprovalStatus.approved||e===s.ApprovalStatus.pass},l=function(e){return e===s.ApprovalStatus.pass},p=(0,n.getDeptEffectiveStatus)(o,"approval"),u=c(p)?l(p)?s.ApprovalStatus.pass:s.ApprovalStatus.approved:s.ApprovalStatus.rejected,"yes"===o.child_files&&!1===o.kids_approval_status&&(u=s.ApprovalStatus.rejected),[4,e.getObject("pepsico_approval_process").find({filters:[["pepsico_material_approval","=",i],["current_step","=",s.Step.personnel_review],["space","=",o.space],["submitted","!=",null]],sort:"submitted desc",top:1})]):[2,{status:200,msg:"kids审核人未审批,暂不能推进"}]:[2,{status:200,msg:"固定人员审核周期确实未完成,无需修复"}]:[2,{status:404,msg:"审批单不存在"}];case 3:return _=A.sent(),d=_.length>0&&_[0].submitted?new Date(_[0].submitted):null,console.log("[fixStuckPersonnelReview] 审批单: ".concat(i,", 修复推进, 审批结果: ").concat(u,", 使用提交时间: ").concat(d)),[4,this.advanceApproval(e,i,u)];case 4:return A.sent(),d?(v={re_reviewed_date:d},[4,e.getObject("pepsico_material_approval").findOne(i)]):[3,18];case 5:return(g=A.sent()).current_step===s.Step.awaiting_deployment&&g.review_completed_date?(v.review_completed_date=d,[4,e.getObject("pepsico_material").directUpdateMany(["pepsico_material_approval","=",i],{review_completed_date:d})]):[3,7];case 6:A.sent(),A.label=7;case 7:return[4,e.getObject("pepsico_material_approval").directUpdate(i,v)];case 8:return A.sent(),f=g.current_step,[4,e.getObject("pepsico_approval_process").directFind({filters:[["pepsico_material_approval","=",i],["current_step","=",f],["space","=",o.space]]})];case 9:m=A.sent(),A.label=10;case 10:A.trys.push([10,15,16,17]),h=a.__values(m),b=h.next(),A.label=11;case 11:return b.done?[3,14]:(w=b.value,[4,e.getObject("pepsico_approval_process").directUpdate(w._id,{created:d})]);case 12:A.sent(),A.label=13;case 13:return b=h.next(),[3,11];case 14:return[3,17];case 15:return y=A.sent(),O={error:y},[3,17];case 16:try{b&&!b.done&&(S=h.return)&&S.call(h)}finally{if(O)throw O.error}return[7];case 17:console.log("[fixStuckPersonnelReview] 已覆盖时间字段:",JSON.stringify(v),", 修正了 ".concat(m.length," 条 approval_process 记录的接收时间")),A.label=18;case 18:return[2,{status:200,msg:"审批单 ".concat(i," 已修复并推进到下一步"),data:{approvalId:i,result:u,submittedDate:d}}]}})})}}},6658:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.notifyApprovalCcUsers=t.setApprovalCcUsers=t.getApprovalCcUsers=void 0;var a=r(5584),s=r(7825),n=r(3833),i={内容审批被驳回:"rejected",内容审批已通过待上线:"awaiting_deployment",内容审批已完成:"completed"},o=function(e){if(e)return"string"==typeof e?e:e.user?e.user:e._id?e._id:void 0};t.getApprovalCcUsers=function(e){return(0,s.compact)((0,s.uniq)((e.cc_users||[]).map(o)))};var c=function(e,t,r,s){return a.__awaiter(void 0,void 0,void 0,function(){return a.__generator(this,function(a){switch(a.label){case 0:return[4,e.getObject("pepsico_approval_cc_log").insert({pepsico_material_approval:t._id,approval_name:t.name,action:r,operator:e.meta.user.userId,cc_user:s,space:t.space,created:new Date,created_by:e.meta.user.userId,modified:new Date,modified_by:e.meta.user.userId,name:"add"===r?"添加抄送人":"移除抄送人"})];case 1:return a.sent(),[2]}})})};t.setApprovalCcUsers=function(e,r,i,l){return void 0===l&&(l=n.sendCcNotifications),a.__awaiter(void 0,void 0,void 0,function(){var n,p,u,_,d,v,g,f,m,h,b,w,y,O,S,A,I,P;return a.__generator(this,function(T){switch(T.label){case 0:return n=e.meta.user,[4,e.getObject("pepsico_material_approval").findOne(r)];case 1:if(!(p=T.sent()))throw new Error("无效的审批单");if(p.owner!==n.userId)throw new Error("只有发起人可以设置抄送人");return u=(0,t.getApprovalCcUsers)(p),_=(0,s.compact)((0,s.uniq)((i||[]).map(o))).filter(function(e){return e!==p.owner}),d=(0,s.difference)(_,u),v=(0,s.difference)(u,_),g=(0,s.compact)((0,s.uniq)((0,s.concat)(function(e){var t=e.person_view||[];return(0,s.compact)((0,s.uniq)((Array.isArray(t)?t:[t]).map(o)))}(p),d))),[4,e.getObject("pepsico_material_approval").directUpdate(r,{cc_users:_,person_view:g})];case 2:T.sent(),T.label=3;case 3:T.trys.push([3,8,9,10]),f=a.__values(d),m=f.next(),T.label=4;case 4:return m.done?[3,7]:(y=m.value,[4,c(e,p,"add",y)]);case 5:T.sent(),T.label=6;case 6:return m=f.next(),[3,4];case 7:return[3,10];case 8:return h=T.sent(),S={error:h},[3,10];case 9:try{m&&!m.done&&(A=f.return)&&A.call(f)}finally{if(S)throw S.error}return[7];case 10:T.trys.push([10,15,16,17]),b=a.__values(v),w=b.next(),T.label=11;case 11:return w.done?[3,14]:(y=w.value,[4,c(e,p,"remove",y)]);case 12:T.sent(),T.label=13;case 13:return w=b.next(),[3,11];case 14:return[3,17];case 15:return O=T.sent(),I={error:O},[3,17];case 16:try{w&&!w.done&&(P=b.return)&&P.call(b)}finally{if(I)throw I.error}return[7];case 17:return d.length>0?[4,l(e,p,d,"cc_added")]:[3,19];case 18:T.sent(),T.label=19;case 19:return[2,{ccUsers:_,addedUsers:d,removedUsers:v}]}})})},t.notifyApprovalCcUsers=function(e,r,o,c,l){return void 0===c&&(c=n.sendCcNotifications),void 0===l&&(l=[]),a.__awaiter(void 0,void 0,void 0,function(){var n;return a.__generator(this,function(a){switch(a.label){case 0:return 0===(n=(0,s.difference)((0,t.getApprovalCcUsers)(r),l)).length?[2]:[4,c(e,r,n,i[o]||"cc_added")];case 1:return a.sent(),[2]}})})}},6903:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.doUrgent=t.canUrgent=t.getUrgentQuota=void 0;var a=r(5584),s=r(8398);t.getUrgentQuota=function(e,t,r){return a.__awaiter(void 0,void 0,void 0,function(){var s,n,i,o,c,l,p,u,_,d;return a.__generator(this,function(a){switch(a.label){case 0:return s=new Date,n=s.getFullYear(),i=s.getMonth()<6?1:2,[4,e.getObject("pepsico_urgent_quota").findOne({filters:[["user","=",t],["space","=",r],["year","=",n]]})];case 1:return(o=a.sent())?(c=(null==o?void 0:o.h1_used)||0,l=(null==o?void 0:o.h2_used)||0,1===i?(u=c,_=6,p=Math.max(0,6-c)):(d=Math.max(0,6-c),_=6+d,u=l,p=Math.max(0,_-l)),[2,{available:p,used:u,total:_,year:n,half:i,configured:!0}]):[2,{available:0,used:0,total:0,year:n,half:i,configured:!1}]}})})},t.canUrgent=function(e,r,n){return a.__awaiter(void 0,void 0,void 0,function(){var i,o,c;return a.__generator(this,function(a){switch(a.label){case 0:return[4,e.getObject("pepsico_material_approval").findOne(r)];case 1:return(i=a.sent())?i.is_urgent?[2,{canUrgent:!1,reason:"该审批单已处于加急状态"}]:i.owner!==n?[2,{canUrgent:!1,reason:"只有发起人可以加急"}]:[4,e.getObject("space_users").findOne({filters:[["user","=",n],["space","=",i.space]],fields:["is_collaborator"]})]:[2,{canUrgent:!1,reason:"审批单不存在"}];case 2:return!0===(null==(o=a.sent())?void 0:o.is_collaborator)?[2,{canUrgent:!1,reason:"只有内部用户可以加急"}]:[s.Step.departmental_review,s.Step.personnel_review].includes(i.current_step)?(i.review_postponed_users||[]).length>0?[2,{canUrgent:!1,reason:"存在延后审核人,无法加急"}]:[4,(0,t.getUrgentQuota)(e,n,i.space)]:[2,{canUrgent:!1,reason:"当前步骤不支持加急"}];case 3:return(c=a.sent()).configured?c.available<=0?[2,{canUrgent:!1,reason:"暂无加急次数",quota:c}]:[2,{canUrgent:!0,quota:c}]:[2,{canUrgent:!1,reason:"未配置加急次数",quota:c}]}})})};var n=function(e,t,r,s,n,i){return a.__awaiter(void 0,void 0,void 0,function(){var o,c,l,p,u,_,d,v,g,f;return a.__generator(this,function(m){switch(m.label){case 0:return m.trys.push([0,2,,3]),[4,e.broker.call("notifications.add",{message:{name:"加急审批: ".concat(s),body:"发起人已标记为加急审核,请优先处理",related_to:{o:"pepsico_material_approval",ids:[r]},related_name:s,from:n,space:t},from:n,to:i})];case 1:return m.sent(),[3,3];case 2:return o=m.sent(),console.log("[urgent] sendUrgentNotification notification error",o),[3,3];case 3:return m.trys.push([3,15,,16]),[4,e.getObject("space_users").find({filters:[["user","=",i],["space","=",t]]})];case 4:c=m.sent(),m.label=5;case 5:m.trys.push([5,12,13,14]),l=a.__values(c),p=l.next(),m.label=6;case 6:if(p.done)return[3,11];if(!(u=p.value).email)return[3,10];m.label=7;case 7:return m.trys.push([7,9,,10]),[4,e.broker.call("@builder6/email.send",{to:u.email,subject:"[加急审核] ".concat(s),html:'\n <p>您有一份审批单被标记为<strong>加急审核</strong>,请优先处理。</p>\n <a href="'.concat(process.env.ROOT_URL,"/app/pepsico_content_review/pepsico_material_approval/view/").concat(r,'?side_object=pepsico_material_approval&side_listview_id=pending">').concat(s,"</a>\n ")})];case 8:return m.sent(),[3,10];case 9:return _=m.sent(),console.log("[urgent] sendUrgentNotification email error",_),[3,10];case 10:return p=l.next(),[3,6];case 11:return[3,14];case 12:return d=m.sent(),g={error:d},[3,14];case 13:try{p&&!p.done&&(f=l.return)&&f.call(l)}finally{if(g)throw g.error}return[7];case 14:return[3,16];case 15:return v=m.sent(),console.log("[urgent] sendUrgentNotification spaceUsers error",v),[3,16];case 16:return[2]}})})};t.doUrgent=function(e,r,s){return a.__awaiter(void 0,void 0,void 0,function(){var i,o,c,l,p,u,_,d,v,g,f,m,h,b,w,y,O,S,A;return a.__generator(this,function(I){switch(I.label){case 0:return[4,(0,t.canUrgent)(e,r,s)];case 1:if(!(i=I.sent()).canUrgent)throw new Error(i.reason);return[4,e.getObject("pepsico_material_approval").findOne(r)];case 2:return o=I.sent(),c=i.quota,l=c.year,p=c.half,u=c.used,_=c.total,[4,e.getObject("pepsico_urgent_quota").findOne({filters:[["user","=",s],["space","=",o.space],["year","=",l]]})];case 3:if(!(d=I.sent()))throw new Error("未配置加急次数");return v=1===p?"h1_used":"h2_used",[4,e.getObject("pepsico_urgent_quota").directUpdate(d._id,(O={},O[v]=(d[v]||0)+1,O))];case 4:return I.sent(),[4,e.getObject("pepsico_material_approval").directUpdate(r,{is_urgent:!0,urgent_times:(o.urgent_times||0)+1,urgent_at:new Date})];case 5:return I.sent(),[4,e.getObject("pepsico_urgent_log").insert({approval:r,approval_name:o.name,operator:s,space:o.space,year:l,half:p})];case 6:I.sent(),g=Array.isArray(o.person_pending_approve)?o.person_pending_approve:[],I.label=7;case 7:I.trys.push([7,12,13,14]),f=a.__values(g),m=f.next(),I.label=8;case 8:return m.done?[3,11]:(h=m.value,[4,n(e,o.space,r,o.name,s,h)]);case 9:I.sent(),I.label=10;case 10:return m=f.next(),[3,8];case 11:return[3,14];case 12:return b=I.sent(),S={error:b},[3,14];case 13:try{m&&!m.done&&(A=f.return)&&A.call(f)}finally{if(S)throw S.error}return[7];case 14:return w=u+1,y=Math.max(0,_-w),[2,{message:"加急成功!已使用 ".concat(w," 次,剩余 ").concat(y," 次"),used:w,available:y,total:_}]}})})}},6928:e=>{e.exports=require("path")},7065:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.submit=void 0;var a=r(5584),s=r(256),n=r(8398);t.submit={rest:{method:"POST",fullPath:"/api/pepsico-content/approve/submit/:recordId"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,i;return a.__generator(this,function(a){switch(a.label){case 0:return e.getObject=this.getObject,[4,this.getLogger()];case 1:return t=a.sent(),e.logger=t,[4,e.getObject("pepsico_material_approval").findOne(e.params.recordId)];case 2:return(r=a.sent()).current_step!==n.Step.draft||"non-top"==r.kol_classification||"top"==r.kol_classification?[3,5]:[4,(0,s.getDefApproverStepRule)(e)];case 3:return i=a.sent(),[4,e.getObject("pepsico_material_approval").directUpdate(e.params.recordId,{pepsico_flow_rule:i._id})];case 4:a.sent(),a.label=5;case 5:return console.time("submitContent: "+e.params.recordId),[4,this.submitContent(e,e.params.recordId,e.params.approvalStatus,e.params.skip)];case 6:return a.sent(),console.timeEnd("submitContent: "+e.params.recordId),[2,{}]}})})}}},7283:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getProductPicklistCode=t.PRODUCT_PICKLIST_CODE=t.LEGACY_PRODUCT_PICKLIST_CODE=t.PRODUCT_TAG_ID=void 0;var a=r(8844);t.PRODUCT_TAG_ID="223321001114213",t.LEGACY_PRODUCT_PICKLIST_CODE="223321001114213",t.PRODUCT_PICKLIST_CODE="223321001114213-v3",t.getProductPicklistCode=function(e){return(0,a.isContentHubForm)(e)?t.PRODUCT_PICKLIST_CODE:t.LEGACY_PRODUCT_PICKLIST_CODE}},7815:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.migrateSpotCheckDepartments=void 0;var a=r(5584),s=r(8160);function n(e){return a.__awaiter(this,void 0,void 0,function(){var t;return a.__generator(this,function(r){switch(r.label){case 0:return[4,(t=s.getDataSource("default").adapter).connect()];case 1:return r.sent(),[2,t.collection(e)]}})})}t.migrateSpotCheckDepartments={rest:{method:"GET",fullPath:"/api/pepsico-content/material/migrate-spot-check-departments"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,i,o,c,l,p,u,_,d,v,g,f,m,h,b,w;return a.__generator(this,function(y){switch(y.label){case 0:return t=e.meta.user,e.getObject=this.getObject,[4,this.getLogger()];case 1:if(r=y.sent(),e.logger=r,!t||!t.is_space_admin)return[2,{status:403,msg:"只有管理员可以执行数据迁移",data:{}}];y.label=2;case 2:return y.trys.push([2,17,,18]),[4,n("pepsico_material")];case 3:return s=y.sent(),[4,n("space_users")];case 4:return i=y.sent(),[4,s.find({pepsico_spot_check:{$ne:null},$or:[{spot_check_departments:{$exists:!1}},{spot_check_departments:null},{spot_check_departments:{$size:0}}]},{projection:{_id:1,pepsico_spot_check:1,space:1}}).toArray()];case 5:o=y.sent(),null==r||r.info("Found ".concat(o.length," materials with missing spot_check_departments")),c=0,l=0,p=[],y.label=6;case 6:y.trys.push([6,14,15,16]),u=a.__values(o),_=u.next(),y.label=7;case 7:if(_.done)return[3,13];d=_.value,y.label=8;case 8:return y.trys.push([8,11,,12]),[4,i.findOne({user:d.pepsico_spot_check,space:d.space})];case 9:return(null==(v=y.sent())?void 0:v.organization)?(g=[v.organization],[4,s.updateOne({_id:d._id},{$set:{spot_check_departments:g}})]):(null==r||r.warn("No organization found for user ".concat(d.pepsico_spot_check,", material ").concat(d._id)),l++,[3,12]);case 10:return y.sent(),++c%100==0&&(null==r||r.info("Updated ".concat(c," records..."))),[3,12];case 11:return f=y.sent(),null==r||r.error("Error processing material ".concat(d._id),f),p.push(d._id),[3,12];case 12:return _=u.next(),[3,7];case 13:return[3,16];case 14:return m=y.sent(),b={error:m},[3,16];case 15:try{_&&!_.done&&(w=u.return)&&w.call(u)}finally{if(b)throw b.error}return[7];case 16:return null==r||r.info("Migration complete. Updated: ".concat(c,", Skipped: ").concat(l,", Errors: ").concat(p.length)),[2,{status:0,msg:"spot_check_departments 数据修正完成",data:{updated:c,skipped:l,errors:p.length,total:o.length}}];case 17:return h=y.sent(),null==r||r.error("Migration failed",h),[2,{status:500,msg:"数据修正失败: ".concat(h.message),data:{}}];case 18:return[2]}})})}}},7825:e=>{e.exports=require("lodash")},8152:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getBriefFlows=void 0;var a=r(5584);t.getBriefFlows={rest:{method:"GET",fullPath:"/api/pepsico-content/brief-flows"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n,i,o,c,l;return a.__generator(this,function(p){switch(p.label){case 0:return t=e.params.filters,r={fields:["_id","name"]},t&&(r.filters=JSON.parse(t)),c=(o=Promise).all,[4,this.getObject("pepsico_material_approval").find(r)];case 1:return l=[p.sent()],[4,this.getObject("pepsico_material_approval").count(r)];case 2:return[4,c.apply(o,[l.concat([p.sent()])])];case 3:return s=a.__read.apply(void 0,[p.sent(),2]),n=s[0],i=s[1],[2,{status:0,msg:"",data:{items:n,total:i}}]}})})}}},8160:e=>{e.exports=require("@steedos/objectql")},8330:e=>{e.exports=JSON.parse('{"name":"@steedos-labs/content-compliance","version":"1.0.3","description":"内容审核系统","main":"package.service.js","scripts":{"build":"tsc && webpack --config webpack.config.js","build:watch":"webpack --config webpack.config.js --watch","test":"jest --config jest.config.js","release":"yarn build && npm publish --registry https://registry.npmjs.org && cnpm sync @steedos-labs/content-compliance"},"dependencies":{"amis-formula":"~6.3.0","mime-types":"2.1.35","lodash":"4.17.21","dayjs":"1.11.13","moleculer-cron":"0.0.7"},"devDependencies":{"webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-node-externals":"^3.0.0","jest":"^29.0.0","ts-jest":"^29.0.3","@types/jest":"^29.5.0","@types/lodash":"^4.17.0","@types/node":"^20.0.0","js-yaml":"^3.14.1"},"publishConfig":{"access":"public"},"gitHead":"24d4f3c614efb07e373e34a97bef04e8a5929a5b"}')},8398:(e,t)=>{var r,a,s,n;Object.defineProperty(t,"__esModule",{value:!0}),t.ProcessApprovalType=t.ReviewStatus=t.ApprovalStatus=t.Step=void 0,(n=t.Step||(t.Step={})).draft="draft",n.conclusion="conclusion",n.ai_review="ai_review",n.departmental_review="departmental_review",n.personnel_review="personnel_review",n.submitter_revisions="submitter_revisions",n.awaiting_deployment="awaiting_deployment",(s=t.ApprovalStatus||(t.ApprovalStatus={})).approved="approved",s.rejected="rejected",s.pending="pending",s.submit="submit",s.pass="pass",(a=t.ReviewStatus||(t.ReviewStatus={})).draft="draft",a.under_review="under_review",a.rejected="rejected",a.approved="approved",a.terminated="terminated",(r=t.ProcessApprovalType||(t.ProcessApprovalType={})).NS="NS",r.Legal="Legal",r.SRA="SRA",r.CA="CA",r.QC="QC",r.Kids="Kids",r.guding="guding",r.AI="AI",r.Others="Others",r.PreNS="PreNS",r.PreLegal="PreLegal",r.PreSRA="PreSRA",r.PreCA="PreCA",r.PreQC="PreQC",r.Preguding="Preguding"},8509:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});var a=r(5584),s=r(2045),n=r(256),i=r(8398),o=r(3833),c=r(4809),l=r(2972),p=r(4665),u=r(2777),_=r(5949),d=r(8160),v=r(7825),g=r(6928),f=r(8330),m=f.name,h=r(9861),b=r(3200),w=r(4716);function y(e){return a.__awaiter(this,void 0,void 0,function(){var t;return a.__generator(this,function(r){switch(r.label){case 0:return[4,(t=d.getDataSource("default").adapter).connect()];case 1:return r.sent(),[2,t.collection(e)]}})})}var O=process.env.STEEDOS_CRON_ENABLED,S=Number(process.env.PEPSICO_CRON_SEND_DELAY_NOTIFICATION_INTERVAL_MINUTES||5),A="true"===process.env.PEPSICO_CRON_PASSWORD_EXPIRY_CHECK_DISABLE,I=[{name:"materialsUploadToOneDriveJob",cronTime:process.env.PEPSICO_CRON_MATERIAL_UPLOAD_ONEDRIVE,timeZone:process.env.STEEDOS_CRON_TIME_ZONE||"Asia/Shanghai",manualStart:!1,onTick:function(){return a.__awaiter(this,void 0,void 0,function(){var e;return a.__generator(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),console.log("materialsUploadToOneDriveJob run",new Date),[4,this.broker.call("".concat(m,".materialsUploadToOneDrive"))];case 1:return t.sent(),[3,3];case 2:return e=t.sent(),console.log("materialsUploadToOneDriveJob error ",e),[3,3];case 3:return[2]}})})},onInitialize:function(){this.startJob("materialsUploadToOneDriveJob")},onComplete:function(){console.log("materialsUploadToOneDriveJob is stopped")}},{name:"materialsDownloadFromOneDriveJob",cronTime:process.env.PEPSICO_CRON_MATERIAL_DOWNLOAD_ONEDRIVE,timeZone:process.env.STEEDOS_CRON_TIME_ZONE||"Asia/Shanghai",manualStart:!1,onTick:function(){return a.__awaiter(this,void 0,void 0,function(){var e;return a.__generator(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),console.log("materialsDownloadFromOneDriveJob run",new Date),[4,this.broker.call("".concat(m,".materialsDownloadFromOneDrive"))];case 1:return t.sent(),[3,3];case 2:return e=t.sent(),console.log("materialsDownloadFromOneDriveJob error ",e),[3,3];case 3:return[2]}})})},onInitialize:function(){this.startJob("materialsDownloadFromOneDriveJob")},onComplete:function(){console.log("materialsDownloadFromOneDriveJob is stopped")}},{name:"materialsRemoveShareLinkToOneDriveJob",cronTime:process.env.PEPSICO_CRON_MATERIAL_DOWNLOAD_ONEDRIVE,timeZone:process.env.STEEDOS_CRON_TIME_ZONE||"Asia/Shanghai",manualStart:!1,onTick:function(){return a.__awaiter(this,void 0,void 0,function(){var e;return a.__generator(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),console.log("materialsRemoveShareLinkToOneDriveJob run",new Date),[4,this.broker.call("".concat(m,".materialsRemoveShareLinkToOneDrive"))];case 1:return t.sent(),[3,3];case 2:return e=t.sent(),console.log("materialsRemoveShareLinkToOneDriveJob error ",e),[3,3];case 3:return[2]}})})},onInitialize:function(){this.startJob("materialsRemoveShareLinkToOneDriveJob")},onComplete:function(){console.log("materialsRemoveShareLinkToOneDriveJob is stopped")}},{name:"sendDelayNotificationsJob",cronTime:"0 */".concat(S," * * * *"),timeZone:process.env.STEEDOS_CRON_TIME_ZONE||"Asia/Shanghai",manualStart:!1,onTick:function(){return a.__awaiter(this,void 0,void 0,function(){var e;return a.__generator(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),console.log("sendDelayNotificationsJob run",new Date),[4,this.broker.call("".concat(m,".sendDelayNotifications"))];case 1:return t.sent(),[3,3];case 2:return e=t.sent(),console.log("sendDelayNotificationsJob error ",e),[3,3];case 3:return[2]}})})},onInitialize:function(){this.startJob("sendDelayNotificationsJob")},onComplete:function(){console.log("sendDelayNotificationsJob is stopped")}},{name:"processPostponeReviewNotificationsJob",cronTime:"0 */".concat(S," * * * *"),timeZone:process.env.STEEDOS_CRON_TIME_ZONE||"Asia/Shanghai",manualStart:!1,onTick:function(){return a.__awaiter(this,void 0,void 0,function(){var e;return a.__generator(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),console.log("processPostponeReviewNotificationsJob run",new Date),[4,this.broker.call("".concat(m,".processPostponeReviewNotifications"))];case 1:return t.sent(),[3,3];case 2:return e=t.sent(),console.log("processPostponeReviewNotificationsJob error ",e),[3,3];case 3:return[2]}})})},onInitialize:function(){this.startJob("processPostponeReviewNotificationsJob")},onComplete:function(){console.log("processPostponeReviewNotificationsJob is stopped")}},{name:"syncDashboard",cronTime:process.env.PEPSICO_CRON_DASHBOARD_SYNC_DATA||"0 3 * * *",timeZone:process.env.STEEDOS_CRON_TIME_ZONE||"Asia/Shanghai",manualStart:!1,onTick:function(){return a.__awaiter(this,void 0,void 0,function(){var e;return a.__generator(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),console.log("syncDashboard run",new Date),[4,this.broker.call("".concat(m,".dashboardSyncData"))];case 1:return t.sent(),[3,3];case 2:return e=t.sent(),console.log("syncDashboard error ",e),[3,3];case 3:return[2]}})})},onInitialize:function(){this.startJob("syncDashboard")},onComplete:function(){console.log("syncDashboard is stopped")}},{name:"scanPLSFiles",cronTime:process.env.PEPSICO_CRON_PLS_SCAN||"0 23 * * *",timeZone:process.env.STEEDOS_CRON_TIME_ZONE||"Asia/Shanghai",manualStart:!1,onTick:function(){return a.__awaiter(this,void 0,void 0,function(){var e;return a.__generator(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),console.log("scanPLSFiles run",new Date),[4,this.broker.call("".concat(m,".scanPLSFiles"))];case 1:return t.sent(),[3,3];case 2:return e=t.sent(),console.log("scanPLSFiles error ",e),[3,3];case 3:return[2]}})})},onInitialize:function(){this.startJob("scanPLSFiles")},onComplete:function(){console.log("scanPLSFiles is stopped")}},{name:"scanInactiveUsers",cronTime:process.env.PEPSICO_CRON_INACTIVE_USERS_SCAN||"0 1 * * *",timeZone:process.env.STEEDOS_CRON_TIME_ZONE||"Asia/Shanghai",manualStart:!1,onTick:function(){return a.__awaiter(this,void 0,void 0,function(){var e;return a.__generator(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),console.log("scanInactiveUsers run",new Date),[4,this.broker.call("".concat(m,".scanInactiveUsers"))];case 1:return t.sent(),[3,3];case 2:return e=t.sent(),console.log("scanInactiveUsers error ",e),[3,3];case 3:return[2]}})})},onInitialize:function(){this.startJob("scanInactiveUsers")},onComplete:function(){console.log("scanInactiveUsers is stopped")}},{name:"sendMonthlySpotCheckReportJob",cronTime:process.env.PEPSICO_CRON_SEND_SPOT_REPORT||"0 10 * * *",timeZone:process.env.STEEDOS_CRON_TIME_ZONE||"Asia/Shanghai",manualStart:!1,onTick:function(){return a.__awaiter(this,void 0,void 0,function(){var e,t;return a.__generator(this,function(r){switch(r.label){case 0:return r.trys.push([0,4,,5]),console.log("sendMonthlySpotCheckReportJob run",new Date),[4,this.broker.call("".concat(m,".getReportId"))];case 1:return(e=r.sent())?[4,this.broker.call("".concat(m,".sendMonthlySpotCheckReport"),{rid:e})]:[3,3];case 2:r.sent(),r.label=3;case 3:return[3,5];case 4:return t=r.sent(),console.log("sendMonthlySpotCheckReportJob error ",t),[3,5];case 5:return[2]}})})},onInitialize:function(){this.startJob("sendMonthlySpotCheckReportJob")},onComplete:function(){console.log("sendMonthlySpotCheckReportJob is stopped")}},{name:"scanApprovalAndDeletedMaterialFromSharepointJob",cronTime:process.env.PEPSICO_CRON_DELETE_MATERIAL_FROM_SHAREPOINT||"0 2 * * *",timeZone:process.env.STEEDOS_CRON_TIME_ZONE||"Asia/Shanghai",manualStart:!1,onTick:function(){return a.__awaiter(this,void 0,void 0,function(){var e;return a.__generator(this,function(t){switch(t.label){case 0:return t.trys.push([0,4,,5]),console.log("scanApprovalAndDeletedMaterialFromSharepointJob run",new Date),"true"!=process.env.PEPSICO_CRON_DELETE_MATERIAL_FROM_SHAREPOINT_DISABLE?[3,1]:(console.log("已停用自动批量删除Sharepoint过期素材"),[3,3]);case 1:return[4,this.broker.call("".concat(m,".scanApprovalAndDeletedMaterialFromSharepoint"))];case 2:t.sent(),t.label=3;case 3:return[3,5];case 4:return e=t.sent(),console.log("scanApprovalAndDeletedMaterialFromSharepointJob error ",e),[3,5];case 5:return[2]}})})},onInitialize:function(){this.startJob("scanApprovalAndDeletedMaterialFromSharepointJob")},onComplete:function(){console.log("scanApprovalAndDeletedMaterialFromSharepointJob is stopped")}},{name:"imageComparisonJob",cronTime:process.env.PEPSICO_CRON_IMAGE_COMPARISON||"*/30 * * * * *",timeZone:process.env.STEEDOS_CRON_TIME_ZONE||"Asia/Shanghai",manualStart:!1,onTick:function(){return a.__awaiter(this,void 0,void 0,function(){var e;return a.__generator(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),console.log("imageComparisonJob run",new Date),[4,this.broker.call("".concat(m,".processImageComparisons"))];case 1:return t.sent(),[3,3];case 2:return e=t.sent(),console.log("imageComparisonJob error ",e),[3,3];case 3:return[2]}})})},onInitialize:function(){this.startJob("imageComparisonJob")},onComplete:function(){console.log("imageComparisonJob is stopped")}},{name:"checkUserPasswordExpirationJob",cronTime:process.env.PEPSICO_CRON_PASSWORD_EXPIRY_CHECK||"0 10 * * *",timeZone:process.env.STEEDOS_CRON_TIME_ZONE||"Asia/Shanghai",manualStart:!1,onTick:function(){return a.__awaiter(this,void 0,void 0,function(){var e;return a.__generator(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),A?(console.log("已停用 checkUserPasswordExpirationJob"),[2]):(console.log("checkUserPasswordExpirationJob run",new Date),[4,this.broker.call("".concat(m,".checkUserPasswordExpiration"))]);case 1:return t.sent(),[3,3];case 2:return e=t.sent(),console.log("checkUserPasswordExpirationJob error ",e),[3,3];case 3:return[2]}})})},onInitialize:function(){this.startJob("checkUserPasswordExpirationJob")},onComplete:function(){console.log("checkUserPasswordExpirationJob is stopped")}}];e.exports={name:m,namespace:"steedos",mixins:[b,h],settings:{cronJobs:1==O||"true"==O?I:null},metadata:{$package:{name:f.name,path:g.join(__dirname,".."),isPackage:!0}},dependencies:["~packages-standard-objects"],actions:a.__assign(a.__assign({},s),{materialsUploadToOneDrive:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n,o,c,l,p,u;return a.__generator(this,function(_){switch(_.label){case 0:return[4,this.getLogger()];case 1:return t=_.sent(),[4,this.getObject("pepsico_material_approval").find({filters:[["current_step","=","ai_review"],["materials_uploaded_to_onedrive_status","in",["pending","failed"]]],top:10,sort:"modified desc"})];case 2:r=_.sent(),console.log("定时任务[素材上传到oneDrive] count: "+r.length,{objectName:"pepsico_material_approval",count:r.length,approvals:v.map(r,function(e){return v.pick(e,["_id","materials_uploaded_to_onedrive_failed_count","current_step","materials_uploaded_to_onedrive_status"])})}),e.meta.user={userId:process.env.PEPSICO_CONTENT_APPROVAL_AI_USERID},e.getObject=this.getObject,e.logger=t,_.label=3;case 3:_.trys.push([3,13,14,15]),s=a.__values(r),n=s.next(),_.label=4;case 4:if(n.done)return[3,12];if((o=n.value).materials_uploaded_to_onedrive_failed_count&&!(o.materials_uploaded_to_onedrive_failed_count<5))return[3,11];_.label=5;case 5:return _.trys.push([5,9,,11]),[4,this.uploadBulkDocToOneDrive(e,o._id)];case 6:return _.sent()?[4,this.submitContent(e,o._id,i.ApprovalStatus.approved)]:[3,8];case 7:_.sent(),_.label=8;case 8:return[3,11];case 9:return c=_.sent(),[4,this.getObject("pepsico_material_approval").directUpdate(o._id,{materials_uploaded_to_onedrive_status:"failed",$inc:{materials_uploaded_to_onedrive_failed_count:1}})];case 10:return _.sent(),t.error("".concat(o._id,"-[素材上传到oneDrive失败]:").concat(c.message),{objectName:"pepsico_material_approval",_id:o._id}),[3,11];case 11:return n=s.next(),[3,4];case 12:return[3,15];case 13:return l=_.sent(),p={error:l},[3,15];case 14:try{n&&!n.done&&(u=s.return)&&u.call(s)}finally{if(p)throw p.error}return[7];case 15:return[2]}})})},materialsDownloadFromOneDrive:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n,i,o,c,l,p;return a.__generator(this,function(u){switch(u.label){case 0:return[4,this.getLogger()];case 1:return t=u.sent(),[4,this.getObject("pepsico_material_approval").find({filters:[["current_step","=",["awaiting_deployment","conclusion"]],["materials_download_from_onedrive_status","in",["pending","failed"]]],top:10,sort:"modified desc"})];case 2:r=u.sent(),console.log("定时任务[从oneDrive下载素材] count: "+r.length,{objectName:"pepsico_material_approval",count:r.length,approvals:v.map(r,function(e){return v.pick(e,["_id","materials_download_from_onedrive_failed_count","current_step","materials_download_from_onedrive_status"])})}),e.meta.user={userId:process.env.PEPSICO_CONTENT_APPROVAL_AI_USERID},e.getObject=this.getObject,e.logger=t,u.label=3;case 3:u.trys.push([3,11,12,13]),s=a.__values(r),n=s.next(),u.label=4;case 4:if(n.done)return[3,10];if((i=n.value).materials_download_from_onedrive_failed_count&&!(i.materials_download_from_onedrive_failed_count<5))return[3,9];u.label=5;case 5:return u.trys.push([5,7,,9]),[4,this.downloadBulkFromOneDriveDoc(e,i._id)];case 6:return u.sent(),[3,9];case 7:return o=u.sent(),[4,this.getObject("pepsico_material_approval").directUpdate(i._id,{materials_download_from_onedrive_status:"failed",$inc:{materials_download_from_onedrive_failed_count:1}})];case 8:return u.sent(),t.error("".concat(i._id,"-[从oneDrive下载素材失败]:").concat(o.message),{objectName:"pepsico_material_approval",_id:i._id}),[3,9];case 9:return n=s.next(),[3,4];case 10:return[3,13];case 11:return c=u.sent(),l={error:c},[3,13];case 12:try{n&&!n.done&&(p=s.return)&&p.call(s)}finally{if(l)throw l.error}return[7];case 13:return[2]}})})},materialsRemoveShareLinkToOneDrive:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n,i,o,c,l,p;return a.__generator(this,function(u){switch(u.label){case 0:return[4,this.getLogger()];case 1:return t=u.sent(),[4,this.getObject("pepsico_material_approval").find({filters:[["current_step","=",["awaiting_deployment","conclusion"]],["materials_remove_share_link_from_onedrive_status","in",["pending","failed"]]],top:10,sort:"modified desc"})];case 2:r=u.sent(),console.log("定时任务[从oneDrive删除共享连接] count: "+r.length,{objectName:"pepsico_material_approval",count:r.length,approvals:v.map(r,function(e){return v.pick(e,["_id","materials_remove_share_link_from_onedrive_failed_count","current_step","materials_remove_share_link_from_onedrive_status"])})}),e.meta.user={userId:process.env.PEPSICO_CONTENT_APPROVAL_AI_USERID},e.getObject=this.getObject,e.logger=t,u.label=3;case 3:u.trys.push([3,11,12,13]),s=a.__values(r),n=s.next(),u.label=4;case 4:if(n.done)return[3,10];if((i=n.value).materials_remove_share_link_from_onedrive_failed_count&&!(i.materials_remove_share_link_from_onedrive_failed_count<5))return[3,9];u.label=5;case 5:return u.trys.push([5,7,,9]),[4,this.deleteBulkDocOneDriveShareLink(e,i._id)];case 6:return u.sent(),[3,9];case 7:return o=u.sent(),[4,this.getObject("pepsico_material_approval").directUpdate(i._id,{materials_remove_share_link_from_onedrive_status:"failed",$inc:{materials_remove_share_link_from_onedrive_failed_count:1}})];case 8:return u.sent(),t.error("".concat(i._id,"-[从oneDrive删除共享连接失败]:").concat(o.message),{objectName:"pepsico_material_approval",_id:i._id}),[3,9];case 9:return n=s.next(),[3,4];case 10:return[3,13];case 11:return c=u.sent(),l={error:c},[3,13];case 12:try{n&&!n.done&&(p=s.return)&&p.call(s)}finally{if(l)throw l.error}return[7];case 13:return[2]}})})},sendDelayNotifications:function(e){return a.__awaiter(this,void 0,void 0,function(){var t;return a.__generator(this,function(r){switch(r.label){case 0:return[4,this.getLogger()];case 1:return t=r.sent(),e.getObject=this.getObject,e.logger=t,[4,(0,o.sendDelayNotifications)(e,S)];case 2:return r.sent(),[2]}})})},processPostponeReviewNotifications:function(e){return a.__awaiter(this,void 0,void 0,function(){var t;return a.__generator(this,function(r){switch(r.label){case 0:return[4,this.getLogger()];case 1:return t=r.sent(),e.getObject=this.getObject,e.logger=t,[4,(0,o.processPostponeReviewNotifications)(e,S)];case 2:return r.sent(),[2]}})})},processImageComparisons:function(e){return a.__awaiter(this,void 0,void 0,function(){var t;return a.__generator(this,function(r){switch(r.label){case 0:return[4,this.getLogger()];case 1:return t=r.sent(),e.meta.user={userId:process.env.PEPSICO_CONTENT_APPROVAL_AI_USERID},e.getObject=this.getObject,e.logger=t,[4,(0,p.processPendingImageComparisons)(e)];case 2:return r.sent(),[2]}})})},backfillTagLabels:{rest:{method:"GET",fullPath:"/api/pepsico-content/tag-labels/backfill"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n,i,o,c,l,p,u,d,v,g,f;return a.__generator(this,function(m){switch(m.label){case 0:return(t=e.meta.user)&&t.is_space_admin?[4,this.getLogger()]:[2,{error:"没有权限"}];case 1:r=m.sent(),e.getObject=this.getObject,e.logger=r,s={},m.label=2;case 2:m.trys.push([2,9,10,11]),n=a.__values(Object.keys(_.TAG_LABEL_FIELDS)),i=n.next(),m.label=3;case 3:if(i.done)return[3,8];o=i.value,c=void 0,l=0,p=0,u=!0,m.label=4;case 4:return u?[4,(0,_.backfillTagLabels)(e,o,{lastId:c})]:[3,6];case 5:return d=m.sent(),c=d.lastId,l+=d.scanned,p+=d.updated,u=d.hasMore,[3,4];case 6:s[o]={扫描数量:l,回填数量:p},m.label=7;case 7:return i=n.next(),[3,3];case 8:return[3,11];case 9:return v=m.sent(),g={error:v},[3,11];case 10:try{i&&!i.done&&(f=n.return)&&f.call(n)}finally{if(g)throw g.error}return[7];case 11:return[2,s]}})})}},checkUserPasswordExpiration:function(e){return a.__awaiter(this,void 0,void 0,function(){var t;return a.__generator(this,function(r){switch(r.label){case 0:return[4,this.getLogger()];case 1:return t=r.sent(),e.getObject=this.getObject,e.logger=t,[4,(0,u.checkUserPasswordExpiration)(e)];case 2:return r.sent(),[2]}})})},scanPLSFiles:{rest:{method:"GET",fullPath:"/api/pepsico-content/scan/pls"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r;return a.__generator(this,function(a){switch(a.label){case 0:return(t=e.meta.user)&&!t.is_space_admin?[2,{error:"没有权限"}]:[4,this.getLogger()];case 1:return r=a.sent(),e.getObject=this.getObject,e.logger=r,[4,(0,c.scanPLSFiles)(e)];case 2:return[2,{新增PLS记录数量:a.sent()}]}})})}},backfillPLSFileTitles:{rest:{method:"GET",fullPath:"/api/pepsico-content/pls-file/backfill-title"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s;return a.__generator(this,function(a){switch(a.label){case 0:return(t=e.meta.user)&&!t.is_space_admin?[2,{error:"没有权限"}]:[4,this.getLogger()];case 1:return r=a.sent(),e.getObject=this.getObject,e.logger=r,[4,(0,c.backfillPLSFileTitles)(e)];case 2:return[2,{历史记录总数:(s=a.sent()).total,更新标题数量:s.updated,跳过数量:s.skipped}]}})})}},resetPLSFileAIExtract:{rest:{method:"GET",fullPath:"/api/pepsico-content/pls-file/reset-ai-extract"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s;return a.__generator(this,function(a){switch(a.label){case 0:return(t=e.meta.user)&&!t.is_space_admin?[2,{error:"没有权限"}]:[4,this.getLogger()];case 1:return r=a.sent(),e.getObject=this.getObject,e.logger=r,[4,(0,c.resetPLSFileAIExtract)(e)];case 2:return[2,{记录总数:(s=a.sent()).total,重置数量:s.updated}]}})})}},batchCreatePLSFiles:{rest:{method:"POST",fullPath:"/api/pepsico-content/pls-file/batch-upload"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n;return a.__generator(this,function(a){switch(a.label){case 0:return(t=e.meta.user)&&t.userId?(e.getObject=this.getObject,r=e,[4,this.getLogger()]):[2,{error:"请先登录"}];case 1:return r.logger=a.sent(),s=e.params.fileIds||e.params.files,n=v.isString(s)?s.split(","):s||[],[4,(0,c.batchCreatePLSFiles)(e,n)];case 2:return[2,a.sent()]}})})}},checkDuplicatePLSFiles:{rest:{method:"POST",fullPath:"/api/pepsico-content/pls-file/check-duplicate"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n,i;return a.__generator(this,function(a){switch(a.label){case 0:return(t=e.meta.user)&&t.userId?(e.getObject=this.getObject,r=e,[4,this.getLogger()]):[2,{status:1,msg:"请先登录"}];case 1:return r.logger=a.sent(),s=e.params.fileIds||e.params.files,n=v.isString(s)?s.split(","):s||[],[4,(0,c.findDuplicatePLSFilesSafely)(e,n)];case 2:return[2,{status:0,msg:"",data:{duplicated:(i=a.sent()).length>0,message:i.length>0?(0,c.buildDuplicatePLSMessage)(i):"",duplicateFileIds:v.map(i,"fileId")}}]}})})}},setPLSFileActive:{rest:{method:"POST",fullPath:"/api/pepsico-content/pls-file/set-active"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n,i;return a.__generator(this,function(a){switch(a.label){case 0:return(t=e.meta.user)&&t.userId?(e.getObject=this.getObject,r=e,[4,this.getLogger()]):[2,{error:"请先登录"}];case 1:return r.logger=a.sent(),s=e.params,n=s.id,i=s.active,n?[4,(0,c.setPLSFileActive)(e,n,!0===i||"true"===i)]:[2,{error:"缺少记录ID"}];case 2:return[2,a.sent()]}})})}},extractPLSRules:{rest:{method:"POST",fullPath:"/api/pepsico-content/pls-file/extract-rules"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s;return a.__generator(this,function(a){switch(a.label){case 0:return(t=e.meta.user)&&t.userId?(e.getObject=this.getObject,r=e,[4,this.getLogger()]):[2,{status:1,msg:"请先登录"}];case 1:return r.logger=a.sent(),(s=e.params.id)?[4,(0,c.callExtractPLSRules)(e,s)]:[2,{status:1,msg:"缺少记录ID"}];case 2:return[2,{status:0,msg:"",data:a.sent()}]}})})}},uploadApplicationPLSFiles:{rest:{method:"POST",fullPath:"/api/pepsico-content/pls-file/upload"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n,i,o,l,p,u,_,d;return a.__generator(this,function(a){switch(a.label){case 0:return(t=e.meta.user)&&t.userId?(e.getObject=this.getObject,r=e,[4,this.getLogger()]):[2,{error:"请先登录"}];case 1:return r.logger=a.sent(),s=e.params.fileIds||e.params.files,n=v.isString(s)?s.split(","):s||[],v.uniq(v.compact(n)).length>c.MAX_PLS_SOURCE_PER_MODE?[2,{error:"一次最多上传".concat(c.MAX_PLS_SOURCE_PER_MODE,"个PLS文件")}]:(i=e.params,o=i.approvalId,l=i.materialId,p=null,o?[4,this.getObject("pepsico_material_approval").findOne(o)]:[3,3]);case 2:if(!(p=a.sent()))return[2,{error:"审批单不存在"}];if(p.owner!==t.userId&&!(0,c.isApprovalReviewer)(p,t.userId))return[2,{error:"没有权限关联该审批单的PLS文件"}];a.label=3;case 3:return u=null,l?[4,this.getObject("pepsico_material").findOne(l)]:[3,5];case 4:if(!(_=a.sent()))return[2,{error:"素材不存在"}];if(o&&_.pepsico_material_approval!==o)return[2,{error:"素材不属于该审批单"}];u=l,a.label=5;case 5:return p&&!(0,c.isVersionedForm)(p)?[3,7]:[4,(0,c.findDuplicatePLSFilesSafely)(e,n)];case 6:if((d=a.sent()).length>0)return[2,{error:(0,c.buildDuplicatePLSMessage)(d)}];a.label=7;case 7:return[4,(0,c.createApplicationPLSFiles)(e,n,p,u)];case 8:return[2,a.sent()]}})})}},applyPLSSource:{rest:{method:"POST",fullPath:"/api/pepsico-content/pls-review/apply-source"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n,i,o,p,u,_,d,g;return a.__generator(this,function(a){switch(a.label){case 0:return(t=e.meta.user)&&t.userId?(e.getObject=this.getObject,r=e,[4,this.getLogger()]):[2,{error:"请先登录"}];case 1:return r.logger=a.sent(),s=e.params,n=s.approvalId,i=s.materialId,o=s.oldPlsFileId,p=s.sourceMode,u=e.params.newPlsFileIds||e.params.newPlsFileId,_=v.uniq(v.compact(v.isString(u)?u.split(","):u||[])),n&&i&&o&&0!==_.length?(d=v.includes(["upload","mixed"],p)?p:"existing",[4,(0,c.replaceApprovalPLSSource)(e,n,o,_,i,d)]):[2,{error:"缺少审批单、素材或PLS来源参数"}];case 2:return g=a.sent(),[4,(0,l.callChangePLSReview)(e,{approvalId:n,materialId:i,plsFileId:o,newPlsFileIds:g.newPlsFileIds})];case 3:return a.sent(),[2,g]}})})}},getActivePLSOptions:{rest:{method:"GET",fullPath:"/api/pepsico-content/pls-file/active-options"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r;return a.__generator(this,function(a){switch(a.label){case 0:return e.meta.user&&e.meta.user.userId?(e.getObject=this.getObject,t={status:0},r={},[4,(0,c.getActivePLSOptions)(e)]):[2,{error:"请先登录"}];case 1:return[2,(t.data=(r.options=a.sent(),r),t)]}})})}},getPLSReviewGroups:{rest:{method:"GET",fullPath:"/api/pepsico-content/pls-review/material/:materialId"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t;return a.__generator(this,function(r){switch(r.label){case 0:return e.meta.user&&e.meta.user.userId?(e.getObject=this.getObject,t={status:0},[4,(0,c.getPLSReviewGroups)(e,e.params.materialId)]):[2,{error:"请先登录"}];case 1:return[2,(t.data=r.sent(),t)]}})})}},getMaterialReviewPermissions:{rest:{method:"GET",fullPath:"/api/pepsico-content/review-permissions/material/:materialId"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t;return a.__generator(this,function(r){switch(r.label){case 0:return e.meta.user&&e.meta.user.userId?(e.getObject=this.getObject,t={status:0},[4,(0,c.getMaterialReviewPermissions)(e,e.params.materialId)]):[2,{error:"请先登录"}];case 1:return[2,(t.data=r.sent(),t)]}})})}},scanInactiveUsers:{rest:{method:"GET",fullPath:"/api/pepsico-content/scan/inactive-users"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n,i,o,c,l,p,u,_,d,v;return a.__generator(this,function(g){switch(g.label){case 0:return(t=e.meta.user)&&!t.is_space_admin?[2,{error:"没有权限"}]:[4,this.getLogger()];case 1:return r=g.sent(),e.getObject=this.getObject,e.logger=r,s=new Date,(n=new Date).setDate(s.getDate()-90),[4,y("users")];case 2:return i=g.sent(),[4,y("space_users")];case 3:return o=g.sent(),[4,i.updateMany({},{$set:{login_expired:!1}})];case 4:return g.sent(),[4,o.updateMany({},{$set:{login_expired:!1}})];case 5:return g.sent(),[4,i.find({$or:[{$and:[{last_logon:{$ne:null}},{last_logon:{$lt:n}}]},{$and:[{last_logon:null},{created:{$lt:n}}]}]}).toArray()];case 6:c=g.sent(),g.label=7;case 7:g.trys.push([7,13,14,15]),l=a.__values(c),p=l.next(),g.label=8;case 8:return p.done?[3,12]:(u=p.value,[4,this.getObject("users").directUpdate(u._id,{login_expired:!0})]);case 9:return g.sent(),[4,this.getObject("space_users").directUpdateMany(["user","=",u._id],{login_expired:!0})];case 10:g.sent(),g.label=11;case 11:return p=l.next(),[3,8];case 12:return[3,15];case 13:return _=g.sent(),d={error:_},[3,15];case 14:try{p&&!p.done&&(v=l.return)&&v.call(l)}finally{if(d)throw d.error}return[7];case 15:return[2,{新增90天未登录用户数量:c.length}]}})})}},getReportId:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n,i;return a.__generator(this,function(a){switch(a.label){case 0:return[4,this.getLogger()];case 1:return t=a.sent(),e.getObject=this.getObject,e.logger=t,r=w().subtract(1,"month").format("YYYY-MM"),[4,e.getObject("pepsico_spot_check_report").directFind({filters:["year_month","=",r]})];case 2:return a.sent().length>0?[2]:(s=w().get("date"),n=w().day(),[4,e.getObject("spaces").find({filters:[]})]);case 3:return i=a.sent(),s>=10&&0!=n&&6!=n?[4,e.getObject("pepsico_spot_check_report").directInsert({name:"Report-".concat(r),year_month:r,owner:i[0].owner,space:i[0]._id,created:new Date,modified:new Date,created_by:i[0].owner,modified_by:i[0].owner})]:[3,5];case 4:return[2,a.sent()._id];case 5:return[2]}})})},permanentDeleteMaterialFromSharePoint:{rest:{method:"POST",fullPath:"/api/pepsico-content/material/permanent-delete"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n;return a.__generator(this,function(a){switch(a.label){case 0:return(t=e.meta.user)&&!t.is_space_admin?[2,{error:"没有权限"}]:(e.getObject=this.getObject,r=e.params.id,[4,e.getObject("pepsico_material").findOne(r)]);case 1:if(!(s=a.sent()))return[2,{error:"无效的ID"}];a.label=2;case 2:return a.trys.push([2,6,,8]),[4,e.broker.call("content-version-bridge.material_permanentDeleteFromOneDrive",{material:s})];case 3:return a.sent(),[4,e.getObject("pepsico_material").directUpdate(s._id,{permanent_deleted:!0,permanent_deleted_date:new Date})];case 4:return a.sent(),[4,e.logger.info("[永久删除sharepoint素材]-".concat(s.pepsico_material_approval,"-").concat(s._id),{pepsico_material_approval:s.pepsico_material_approval,material:s._id})];case 5:return a.sent(),[3,8];case 6:return n=a.sent(),console.log("error",n),[4,e.logger.error("[永久删除sharepoint素材]-".concat(s.pepsico_material_approval,"-").concat(s._id),{pepsico_material_approval:s.pepsico_material_approval,material:s._id,error:n.message})];case 7:return a.sent(),[3,8];case 8:return[2,{}]}})})}},scanApprovalAndDeletedMaterialFromSharepoint:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n,i,o,c,l,p;return a.__generator(this,function(u){switch(u.label){case 0:return[4,this.getLogger()];case 1:return t=u.sent(),e.getObject=this.getObject,e.logger=t,r=w().subtract(3,"month").toDate(),[4,e.getObject("pepsico_material_approval").find({filters:[["permanent_deleted","!=",!0],["review_status","=","approved"],["current_step","=","conclusion"],["modified","<=",r]]})];case 2:s=u.sent(),u.label=3;case 3:u.trys.push([3,8,9,10]),n=a.__values(s),i=n.next(),u.label=4;case 4:return i.done?[3,7]:(o=i.value,[4,this.permanentlyDeleteApprovalAllMaterialFromSharePoint(e,o)]);case 5:u.sent(),u.label=6;case 6:return i=n.next(),[3,4];case 7:return[3,10];case 8:return c=u.sent(),l={error:c},[3,10];case 9:try{i&&!i.done&&(p=n.return)&&p.call(n)}finally{if(l)throw l.error}return[7];case 10:return[2]}})})},permanentlyDeleteApprovalAllMaterialFromSharePoint:{rest:{method:"POST",fullPath:"/api/pepsico-content/approval/permanent-delete"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n;return a.__generator(this,function(a){switch(a.label){case 0:return(t=e.meta.user)&&!t.is_space_admin?[2,{error:"没有权限"}]:[4,this.getLogger()];case 1:return r=a.sent(),e.getObject=this.getObject,e.logger=r,s=e.params.id,[4,e.getObject("pepsico_material_approval").findOne(s)];case 2:return(n=a.sent())?[4,this.permanentlyDeleteApprovalAllMaterialFromSharePoint(e,n)]:[2,{error:"无效的ID"}];case 3:return a.sent(),[2,{}]}})})}}}),events:{"pepsico_material_approval.mentioned":function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s;return a.__generator(this,function(a){switch(a.label){case 0:return t=e.params,r=t.recordId,s=t.userId,console.log("EVENT[pepsico_material_approval.mentioned]",r,s),r&&s?[4,this.getObject("pepsico_material_approval").directUpdate(r,{$addToSet:{person_view:s}})]:[3,2];case 1:a.sent(),a.label=2;case 2:return[2]}})})}},methods:a.__assign(a.__assign({},v.pickBy(n,v.isFunction)),{permanentlyDeleteApprovalAllMaterialFromSharePoint:function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){var r,s,i,o,c,l,p,u,_,d,v,g,f;return a.__generator(this,function(m){switch(m.label){case 0:return m.trys.push([0,24,,26]),[4,e.getObject("pepsico_material").find({filters:[["pepsico_material_approval","=",t._id],["permanent_deleted","!=",!0],["extension_type","in",["doc","docx","ppt","pptx"]]]})];case 1:r=m.sent(),s=!0,m.label=2;case 2:m.trys.push([2,18,19,20]),i=a.__values(r),o=i.next(),m.label=3;case 3:if(o.done)return[3,17];if(!0===(c=o.value).download_from_onedrive)return[3,10];l=!1,p=5,u=1,m.label=4;case 4:return u<=p?[4,e.logger.info("[永久删除sharepoint素材]-".concat(t._id,"-").concat(c._id,"-尝试下载素材(第").concat(u,"次)"),{pepsico_material_approval:t._id,material:c._id,attempt:u})]:[3,8];case 5:return m.sent(),[4,n.downloadDocFromOneDriveDoc(e,c)];case 6:if(!0===m.sent())return l=!0,[3,8];m.label=7;case 7:return u++,[3,4];case 8:return l?[3,10]:(s=!1,[4,e.logger.error("[永久删除sharepoint素材]-".concat(t._id,"-").concat(c._id),{pepsico_material_approval:t._id,material:c._id,error:"尝试下载素材".concat(p,"次后仍然失败, 跳过删除.")})]);case 9:return m.sent(),[3,16];case 10:return m.trys.push([10,14,,16]),[4,e.broker.call("content-version-bridge.material_permanentDeleteFromOneDrive",{material:c})];case 11:return m.sent(),[4,e.getObject("pepsico_material").directUpdate(c._id,{permanent_deleted:!0,permanent_deleted_date:new Date})];case 12:return m.sent(),[4,e.logger.info("[永久删除sharepoint素材]-".concat(t._id,"-").concat(c._id),{pepsico_material_approval:t._id,material:c._id})];case 13:return m.sent(),[3,16];case 14:return _=m.sent(),s=!1,console.log("error",_),[4,e.logger.error("[永久删除sharepoint素材]-".concat(t._id,"-").concat(c._id),{pepsico_material_approval:t._id,material:c._id,error:_.message})];case 15:return m.sent(),[3,16];case 16:return o=i.next(),[3,3];case 17:return[3,20];case 18:return d=m.sent(),g={error:d},[3,20];case 19:try{o&&!o.done&&(f=i.return)&&f.call(i)}finally{if(g)throw g.error}return[7];case 20:return s?[4,e.getObject("pepsico_material_approval").directUpdate(t._id,{permanent_deleted:!0,permanent_deleted_date:new Date})]:[3,23];case 21:return m.sent(),[4,e.logger.info("[永久删除sharepoint素材]-".concat(t._id),{pepsico_material_approval:t._id})];case 22:m.sent(),m.label=23;case 23:return[3,26];case 24:return v=m.sent(),[4,e.logger.info("[永久删除sharepoint素材]-".concat(t._id),{pepsico_material_approval:t._id,error:v.message})];case 25:return m.sent(),[3,26];case 26:return[2]}})})}}),created:function(){return a.__awaiter(this,void 0,void 0,function(){return a.__generator(this,function(e){return[2]})})},started:function(){return a.__awaiter(this,void 0,void 0,function(){return a.__generator(this,function(e){return[2]})})},stopped:function(){return a.__awaiter(this,void 0,void 0,function(){return a.__generator(this,function(e){return[2]})})}}},8559:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.prepareCopyrightZip=t.copyrightZipName=t.buildZip=t.uniqueEntryNames=t.getCopyrightFileIds=t.COPYRIGHT_FILE_FIELDS=void 0;var a=r(5584),s=r(8938),n=r(7825),i=r(3106),o=r(4809);t.COPYRIGHT_FILE_FIELDS=["copyright_music","copyright_front","copyright_other"],t.getCopyrightFileIds=function(e){return e?n.uniq(n.compact(n.flatMap(t.COPYRIGHT_FILE_FIELDS,function(t){return n.castArray(e[t]||[])}))).map(String):[]};var c=function(){for(var e=new Uint32Array(256),t=0;t<256;t++){for(var r=t,a=0;a<8;a++)r=1&r?3988292384^r>>>1:r>>>1;e[t]=r>>>0}return e}();t.uniqueEntryNames=function(e){var t=new Set;return e.map(function(e){var r=(e||"file").replace(/[\\/]/g,"_");if(!t.has(r))return t.add(r),r;for(var a=r.lastIndexOf("."),s=a>0?r.slice(0,a):r,n=a>0?r.slice(a):"",i=1;t.has("".concat(s,"(").concat(i,")").concat(n));)i++;var o="".concat(s,"(").concat(i,")").concat(n);return t.add(o),o})},t.buildZip=function(e,r){void 0===r&&(r=new Date);var s=function(e){return{time:e.getHours()<<11|e.getMinutes()<<5|Math.floor(e.getSeconds()/2),date:e.getFullYear()-1980<<9|e.getMonth()+1<<5|e.getDate()}}(r),o=s.time,l=s.date,p=(0,t.uniqueEntryNames)(e.map(function(e){return e.name})),u=[],_=[],d=0;e.forEach(function(e,t){var r=Buffer.from(p[t],"utf8"),a=(0,i.deflateRawSync)(e.data),s=function(e){for(var t=4294967295,r=0;r<e.length;r++)t=c[255&(t^e[r])]^t>>>8;return(4294967295^t)>>>0}(e.data),n=Buffer.alloc(30);n.writeUInt32LE(67324752,0),n.writeUInt16LE(20,4),n.writeUInt16LE(2048,6),n.writeUInt16LE(8,8),n.writeUInt16LE(o,10),n.writeUInt16LE(l,12),n.writeUInt32LE(s,14),n.writeUInt32LE(a.length,18),n.writeUInt32LE(e.data.length,22),n.writeUInt16LE(r.length,26),n.writeUInt16LE(0,28),u.push(n,r,a);var v=Buffer.alloc(46);v.writeUInt32LE(33639248,0),v.writeUInt16LE(20,4),v.writeUInt16LE(20,6),v.writeUInt16LE(2048,8),v.writeUInt16LE(8,10),v.writeUInt16LE(o,12),v.writeUInt16LE(l,14),v.writeUInt32LE(s,16),v.writeUInt32LE(a.length,20),v.writeUInt32LE(e.data.length,24),v.writeUInt16LE(r.length,28),v.writeUInt32LE(d,42),_.push(v,r),d+=n.length+r.length+a.length});var v=n.sumBy(_,"length"),g=Buffer.alloc(22);return g.writeUInt32LE(101010256,0),g.writeUInt16LE(e.length,8),g.writeUInt16LE(e.length,10),g.writeUInt32LE(v,12),g.writeUInt32LE(d,16),Buffer.concat(a.__spreadArray(a.__spreadArray(a.__spreadArray([],a.__read(u),!1),a.__read(_),!1),[g],!1))};var l=function(e,t,r,n){return a.__awaiter(void 0,void 0,void 0,function(){var i,o,c,l,p,u;return a.__generator(this,function(a){switch(a.label){case 0:return i="----pepsico".concat(Date.now().toString(16)).concat(Math.random().toString(16).slice(2)),c=function(e,t){o.push(Buffer.from("--".concat(i,'\r\nContent-Disposition: form-data; name="').concat(e,'"\r\n\r\n').concat(t,"\r\n"),"utf8"))},(o=[]).push(Buffer.from("--".concat(i,'\r\nContent-Disposition: form-data; name="file"; filename="').concat(t.replace(/"/g,"_"),'"\r\n')+"Content-Type: application/zip\r\n\r\n","utf8")),o.push(e,Buffer.from("\r\n")),r&&c("space",r),n&&c("owner",n),o.push(Buffer.from("--".concat(i,"--\r\n"))),l=Buffer.concat(o),[4,s.default.post("".concat(process.env.LOCAL_ROOT_URL||process.env.ROOT_URL,"/api/v6/files/cfs.files.filerecord"),l,{headers:{"Content-Type":"multipart/form-data; boundary=".concat(i),"Content-Length":l.length,Authorization:"Bearer apikey,".concat(process.env.STEEDOS_API_KEY)},maxBodyLength:1/0,maxContentLength:1/0})];case 1:if(p=a.sent(),!(u=p.data&&p.data._id))throw new Error("版权文件压缩包上传失败: ".concat(JSON.stringify(p.data)));return[2,u]}})})};t.copyrightZipName=function(e){var t=String(e.name||e._id||"").replace(/[\\/:*?"<>|\r\n]/g,"_").trim().slice(0,100);return"".concat(t||"审批单","_版权文件.zip")},t.prepareCopyrightZip=function(e,r){return a.__awaiter(void 0,void 0,void 0,function(){var s,i,c,p,u,_,d,v,g,f,m,h,b,w;return a.__generator(this,function(y){switch(y.label){case 0:return 0===(s=(0,t.getCopyrightFileIds)(r)).length?[2,null]:[4,e.getObject("cfs_files_filerecord").directFind({filters:[["_id","in",s]],fields:["_id","original"]})];case 1:i=y.sent(),c=n.keyBy(i||[],"_id"),p=[],y.label=2;case 2:y.trys.push([2,9,10,11]),u=a.__values(s),_=u.next(),y.label=3;case 3:return _.done?[3,8]:(d=_.value,(v=c[d])?[4,(0,o.readFileBuffer)(e,d,6e4)]:[3,5]);case 4:return f=y.sent(),[3,6];case 5:f=null,y.label=6;case 6:if(!(g=f))throw new Error("读取版权文件失败: ".concat(v&&v.original&&v.original.name||d));p.push({name:v.original&&v.original.name||d,data:g}),y.label=7;case 7:return _=u.next(),[3,3];case 8:return[3,11];case 9:return m=y.sent(),b={error:m},[3,11];case 10:try{_&&!_.done&&(w=u.return)&&w.call(u)}finally{if(b)throw b.error}return[7];case 11:return h=(0,t.copyrightZipName)(r),[4,l((0,t.buildZip)(p),h,r.space,r.owner)];case 12:return[2,{fileId:y.sent(),name:h,count:p.length}]}})})}},8666:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.grantUploaderAndNotify=t.buildUploaderEmail=t.requestUploaderPermission=t.parseW1Response=t.buildW1Body=t.getUploaderRecipients=t.CONTENT_HUB_UPLOADER_LOG_NAME=void 0;var a=r(5584),s=r(8938),n=r(7825),i=r(4809);t.CONTENT_HUB_UPLOADER_LOG_NAME="Content Hub上传授权";var o=function(e){return n.isString(e)?e.trim().toLowerCase():""};t.getUploaderRecipients=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){var r,s,i,c,l,p,u,_;return a.__generator(this,function(d){switch(d.label){case 0:return r=e.getObject("space_users"),s=t.created_by||t.owner,i=[],c=function(e){return a.__awaiter(void 0,void 0,void 0,function(){var s;return a.__generator(this,function(a){switch(a.label){case 0:return e?[4,r.directFind({filters:[["user","=",e],["space","=",t.space]],fields:["user","email"],top:1})]:[2,null];case 1:return[2,(s=a.sent())&&s[0]]}})})},!0!==t.is_external?[3,4]:(l=n.isPlainObject(t.internal_collaborator)?t.internal_collaborator._id:t.internal_collaborator)?[4,r.directFind({filters:[["_id","=",l]],fields:["user","email"],top:1})]:[3,2];case 1:p=d.sent(),(_=p&&p[0])&&_.email&&i.push({email:_.email,role:"发起人",userId:_.user}),d.label=2;case 2:return[4,c(s)];case 3:return(u=d.sent())&&u.email&&i.push({email:u.email,role:"Agency",userId:u.user}),[3,6];case 4:return[4,c(t.owner||s)];case 5:(_=d.sent())&&_.email&&i.push({email:_.email,role:"发起人",userId:_.user}),d.label=6;case 6:return[2,n.uniqBy(n.filter(i,function(e){return!!o(e.email)}),function(e){return o(e.email)})]}})})},t.buildW1Body=function(e,t){var r=n.uniq(n.map(t,String));if(n.some(r,function(e){return!/^\d+$/.test(e)}))throw new Error("素材组 ID 不合法: ".concat(r.join(",")));return'{"email":'.concat(JSON.stringify(n.uniq(n.compact(n.map(e,o)))),',"materialGroupIdList":[').concat(r.join(","),"]}")},t.parseW1Response=function(e){return n.isString(e)?JSON.parse(e.replace(/("materialGroupId"\s*:\s*)(\d+)/g,'$1"$2"')):e},t.requestUploaderPermission=function(e,n,i,o){return void 0===o&&(o={}),a.__awaiter(void 0,void 0,void 0,function(){var c,l,p,u;return a.__generator(this,function(a){switch(a.label){case 0:c=(0,t.buildW1Body)(n,i),_=r(8749),l=_.randomUUID?_.randomUUID():"".concat(Date.now(),"-").concat(Math.random().toString(16).slice(2)),o.request={url:"/creativeSaas/pepsico/compliance/v1/editable-material/uploader-permission",request_id:l,body:c},a.label=1;case 1:return a.trys.push([1,3,,4]),[4,s.default.post("".concat(process.env.PEPSICO_CONTENT_HUB_BASE_URL).concat(o.request.url),c,{headers:{"tenant-access-token":e,"X-Request-Id":l,"Content-Type":"application/json; charset=UTF-8"},timeout:3e4,transformResponse:[function(e){return e}]})];case 2:return p=a.sent(),o.response=(0,t.parseW1Response)(p.data),[2,o.response];case 3:if((u=a.sent())&&u.response){o.http_status=u.response.status;try{o.response=(0,t.parseW1Response)(u.response.data)}catch(e){o.response=u.response.data}}throw u;case 4:return[2]}var _})})};var c=function(e){return String(null==e?"":e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")};t.buildUploaderEmail=function(e,t,r){var a=process.env.PEPSICO_CONTENT_HUB_WEB_URL;t=String(t||"").split("|").map(function(e){return e.trim()}).join(" > ");var s=r&&"SSO_PENDING"===r.accountStatus;return{subject:"【Content Hub】请上传可编辑素材: ".concat(e.name),html:"\n <p>您好,</p>\n <p>审批单「".concat(c(e.name),"」的素材已同步到 Content Hub,存放位置:</p>\n <p><b>").concat(c(t),"</b></p>\n <p>请登录 Content Hub,在上述目录上传该批素材的可编辑版本(如 PSD / PSB 等源文件)。您已被授予该目录的上传权限。</p>\n ").concat(s?"<p>您是首次使用 Content Hub,请先通过公司 SSO 登录一次以完成账号开通。</p>":"","\n ").concat(a?'<p><a href="'.concat(c(a),'">打开 Content Hub</a></p>'):"",'\n <p>审批单:<a href="').concat(process.env.ROOT_URL,"/app/pepsico_content_review/pepsico_material_approval/view/").concat(e._id,'">').concat(c(e.name),"</a></p>\n <p>有任何疑问,请联系系统管理员。</p>\n ")}},t.grantUploaderAndNotify=function(e,r,s,c){return a.__awaiter(void 0,void 0,void 0,function(){var l,p,u,_,d,v,g,f,m,h,b,w,y,O,S,A;return a.__generator(this,function(I){switch(I.label){case 0:l=n.sortBy(n.map(s,String)).join(","),p={action:"content-hub-uploader-permission",approval_id:r._id,approval_name:r.name,material_group_ids:s},I.label=1;case 1:return I.trys.push([1,19,,24]),l?r.ch_uploader_notified_group===l?[2]:[4,(0,t.getUploaderRecipients)(e,r)]:[2];case 2:return u=I.sent(),p.recipients=u.map(function(e){return{email:e.email,role:e.role}}),0!==u.length?[3,4]:(p.status="skipped",p.reason="取不到发起人 / Agency 的邮箱",[4,(0,i.writeSystemLog)(e,"info",p,t.CONTENT_HUB_UPLOADER_LOG_NAME,r.space)]);case 3:return I.sent(),[2];case 4:return d=t.requestUploaderPermission,[4,c()];case 5:return[4,d.apply(void 0,[I.sent(),n.map(u,"email"),s,p])];case 6:return(_=I.sent())&&!0===_.success&&200===_.code?[3,8]:(p.status="failed",p.error=_&&(_.msg||_.message)||"W1 调用失败",[4,(0,i.writeSystemLog)(e,"error",p,t.CONTENT_HUB_UPLOADER_LOG_NAME,r.space)]);case 7:return I.sent(),[2];case 8:v=_.data||[],g=[],f=[],m=function(s){var i,c,l,p,u,_,d,m;return a.__generator(this,function(a){switch(a.label){case 0:if(i=n.filter(v,function(e){return o(e.email)===o(s.email)}),c=n.filter(i,function(e){return"FAILED"!==e.accountStatus&&"FAILED"!==e.permissionStatus}),i.length>0&&0===c.length)return f.push({email:s.email,reason:"账号或授权失败",rows:i}),[2,"continue"];l=c[0],p=n.uniq(n.compact(n.map(c,"materialGroupPath"))).join(";")||r.ch_material_group_path||"",u=(0,t.buildUploaderEmail)(r,p,l),_=u.subject,d=u.html,a.label=1;case 1:return a.trys.push([1,3,,4]),[4,e.broker.call("@builder6/email.send",{to:s.email,subject:_,html:d})];case 2:return a.sent(),g.push(s.email),[3,4];case 3:return m=a.sent(),f.push({email:s.email,reason:"发送邮件失败: ".concat(m.message)}),[3,4];case 4:return[2]}})},I.label=9;case 9:I.trys.push([9,14,15,16]),h=a.__values(u),b=h.next(),I.label=10;case 10:return b.done?[3,13]:(w=b.value,[5,m(w)]);case 11:I.sent(),I.label=12;case 12:return b=h.next(),[3,10];case 13:return[3,16];case 14:return y=I.sent(),S={error:y},[3,16];case 15:try{b&&!b.done&&(A=h.return)&&A.call(h)}finally{if(S)throw S.error}return[7];case 16:return p.emailed=g,p.not_emailed=f,p.status=f.length>0?"partial":"done",[4,e.getObject("pepsico_material_approval").directUpdate(r._id,{ch_uploader_notified_group:l})];case 17:return I.sent(),[4,(0,i.writeSystemLog)(e,f.length>0?"error":"info",p,t.CONTENT_HUB_UPLOADER_LOG_NAME,r.space)];case 18:return I.sent(),[3,24];case 19:O=I.sent(),p.status="failed",p.error=O.message,I.label=20;case 20:return I.trys.push([20,22,,23]),[4,(0,i.writeSystemLog)(e,"error",p,t.CONTENT_HUB_UPLOADER_LOG_NAME,r.space)];case 21:case 22:return I.sent(),[3,23];case 23:return[3,24];case 24:return[2]}})})}},8749:e=>{e.exports=require("crypto")},8844:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.previewSyncForForm=t.getOrgIds=t.resolveOwnerDepartment=t.previewSyncRule=t.pickSyncRule=t.ruleMatches=t.ruleMismatchReason=t.isUnset=t.pathMatches=t.toValues=t.isContentHubForm=t.CONTENT_HUB_FORM_VERSIONS=t.SpotCheckCondition=t.NeedSync=t.SYNC_RULE_OBJECT_NAME=void 0;var a=r(5584),s=r(7825);t.SYNC_RULE_OBJECT_NAME="pepsico_ch_sync_rule",t.NeedSync={sync:"sync",notSync:"not_sync"},t.SpotCheckCondition={approved:"approved",none:"none"},t.CONTENT_HUB_FORM_VERSIONS=["v3"],t.isContentHubForm=function(e){return!!e&&s.includes(t.CONTENT_HUB_FORM_VERSIONS,e.form_version)},t.toValues=function(e){return s.compact(s.castArray(e).map(function(e){return s.isString(e)?e.trim():e&&s.isString(e.value)?e.value.trim():null}))},t.pathMatches=function(e,r){var a=(0,t.toValues)(e),n=(0,t.toValues)(r);return a.some(function(e){return n.some(function(t){return e===t||s.startsWith(e,"".concat(t,"-"))})})},t.isUnset=function(e){return 0===(0,t.toValues)(e).length},t.ruleMismatchReason=function(e,r,a){return void 0===a&&(a=!1),(0,t.isUnset)(e.orgs)||0!==s.intersection((0,t.toValues)(e.orgs),r.orgIds).length?(0,t.isUnset)(e.classification)||(0,t.pathMatches)(r.classification,e.classification)?(0,t.isUnset)(e.product)||(0,t.pathMatches)(r.product,e.product)?(0,t.isUnset)(e.kol_classification)||(0,t.isUnset)(r.kolClassification)||(n=r.kolClassification,i=e.kol_classification,s.intersection((0,t.toValues)(n),(0,t.toValues)(i)).length>0)?a||e.spot_check!==t.SpotCheckCondition.approved||r.spotCheck?!a&&e.spot_check===t.SpotCheckCondition.none&&r.spotCheck?"规则只适用于非抽查":null:"规则只适用于抽查核准":"KOL 分类不在规则所选范围内":(0,t.isUnset)(r.product)?"审批单还没选品牌/产品":"品牌/产品不在规则所选范围内":(0,t.isUnset)(r.classification)?"审批单还没选分类":"分类不在规则所选范围内":0===r.orgIds.length?"审批单还没有发起人部门":"发起人部门不在规则所选部门内";var n,i},t.ruleMatches=function(e,r){return null===(0,t.ruleMismatchReason)(e,r)},t.pickSyncRule=function(e,r){var a=s.find(e,function(e){return(0,t.ruleMatches)(e,r)})||null;return{needSync:!!a&&a.need_sync===t.NeedSync.sync,rule:a}},t.previewSyncRule=function(e,r){var n=(0,t.pickSyncRule)(e,a.__assign(a.__assign({},r),{spotCheck:!1})),i=(0,t.pickSyncRule)(e,a.__assign(a.__assign({},r),{spotCheck:!0})),o=n.needSync?n:i.needSync?i:n,c=s.compact(e.map(function(e){var s=(0,t.ruleMismatchReason)(e,a.__assign(a.__assign({},r),{spotCheck:!1}),!0);return s?{rule:e.name||e._id,reason:s}:null}));return{needSync:n.needSync||i.needSync,rule:o.rule,mismatches:c}},t.resolveOwnerDepartment=function(e,r,n){return a.__awaiter(void 0,void 0,void 0,function(){var i,o,c,l,p,u,_;return a.__generator(this,function(a){switch(a.label){case 0:return(i=(0,t.toValues)(s.isPlainObject(r)&&r._id?r._id:r)).length>0?[2,i[0]]:(o=e.meta&&e.meta.user,c=n&&n.userId||o&&o.userId,l=n&&n.spaceId||o&&o.spaceId,c?(p=[["user","=",c]],l&&p.push(["space","=",l]),[4,e.getObject("space_users").directFind({filters:p,fields:["organization","organizations"],top:1})]):[2,null]);case 1:return u=a.sent(),[2,(_=u&&u[0])&&(_.organization||s.first(_.organizations))||null]}})})},t.getOrgIds=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){var r;return a.__generator(this,function(n){switch(n.label){case 0:return t?[4,e.getObject("organizations").directFind({filters:[["_id","=",t]],fields:["_id","parents"],top:1})]:[2,[]];case 1:return 0===(r=n.sent()).length?[2,[t]]:[2,s.uniq(s.compact(a.__spreadArray([t],a.__read(r[0].parents||[]),!1)))]}})})},t.previewSyncForForm=function(e,r){return a.__awaiter(void 0,void 0,void 0,function(){var s,n,i,o;return a.__generator(this,function(a){switch(a.label){case 0:return[4,e.getObject(t.SYNC_RULE_OBJECT_NAME).directFind({filters:[["active","=",!0]],sort:"priority asc"})];case 1:return s=a.sent(),n=t.previewSyncRule,i=[s],o={},[4,(0,t.getOrgIds)(e,r.ownerDepartment)];case 2:return[2,n.apply(void 0,i.concat([(o.orgIds=a.sent(),o.classification=r.classification,o.product=r.product,o.kolClassification=r.kolClassification,o)]))]}})})}},8862:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DCO_TYPES=void 0;var a=r(7825);t.DCO_TYPES=a.split(process.env.CONTENT_DCO_TYPES||"MD-PO1-PO18")},8864:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.clickReportSpotEmail=t.sendMonthlySpotCheckReport=t.clickSpotEmail=t.spotCheckMaterial=void 0;var a=r(5584),s=r(7825),n=r(8862),i=r(7825),o=r(1057),c=r(8844),l=r(8938),p=r(4716),u=function(e,t,r,s,n,i){return a.__awaiter(void 0,void 0,void 0,function(){var o;return a.__generator(this,function(a){switch(a.label){case 0:return[4,l.default.post("".concat(process.env.LOCAL_ROOT_URL||process.env.ROOT_URL,"/api/v6/email/send"),{from:e,to:t,cc:i,subject:r,text:s,html:n},{headers:{Authorization:"Bearer apikey,".concat(process.env.STEEDOS_API_KEY)}})];case 1:return o=a.sent(),console.log("sendEmail===>","".concat(process.env.LOCAL_ROOT_URL||process.env.ROOT_URL,"/api/v6/email/send"),{from:e,to:t.email,subject:r,text:s,html:n},{headers:{Authorization:"Bearer apikey,".concat(process.env.STEEDOS_API_KEY)}},o),[2,JSON.stringify(o.data)]}})})};t.spotCheckMaterial={rest:{method:"POST",fullPath:"/api/pepsico-content/material/spot-check/:mid"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,l,p,_,d,v,g,f,m,h,b,w,y,O,S,A,I,P,T,E,j,D,C,k,R,L,U,N,M,x,F,q;return a.__generator(this,function(G){switch(G.label){case 0:return t=e.meta.user,r=e.params,l=r.mid,p=r.description,_=r.pepsico_spot_check_status,e.getObject=this.getObject,[4,this.getLogger()];case 1:return d=G.sent(),e.logger=d,l?[4,e.getObject("pepsico_material").findOne(l)]:[2,{status:500,msg:"无效的素材标识",data:{}}];case 2:return(v=G.sent())?[4,e.getObject("pepsico_material_spot_check_record").findOne({filters:[["pepsico_material","=",l],["spot_checker","=",t.userId]]})]:[2,{status:500,msg:"无效的素材标识",data:{}}];case 3:return G.sent()?[2,{status:500,msg:"您已经抽查过此素材, 请勿重复操作!",data:{}}]:[4,e.getObject("space_users").findOne({filters:["user","=",t.userId]})];case 4:return g=G.sent(),f=(null==g?void 0:g.organization)||"",[4,e.getObject("pepsico_material_spot_check_record").insert({pepsico_material:l,spot_checker:t.userId,spot_check_department:f,spot_check_time:new Date,spot_check_status:_,spot_check_opinion:p,space:v.space},t)];case 5:return G.sent(),[4,e.getObject("pepsico_material_spot_check_record").find({filters:["pepsico_material","=",l]})];case 6:return m=G.sent(),h=(0,s.uniq)(m.map(function(e){return e.spot_checker})),b=(0,s.uniq)((0,s.compact)(m.map(function(e){return e.spot_check_department}))),[4,e.getObject("pepsico_material").directUpdate(l,{spot_checked:!0,spot_check_time:new Date,pepsico_spot_check:t.userId,spot_description:p,pepsico_spot_check_status:_,spot_checkers:h,spot_check_departments:b,spot_check_overall_status:"checked"})];case 7:return G.sent(),[4,e.getObject("pepsico_material_approval").findOne(v.pepsico_material_approval)];case 8:return(w=G.sent())?!0!==_||!(0,c.isContentHubForm)(w)&&!i.includes(n.DCO_TYPES,w.classification)?[3,10]:[4,(0,o.sendByMaterial)(e,l)]:[2,{status:500,msg:"无效的素材审批标识",data:{}}];case 9:G.sent(),G.label=10;case 10:y=(0,s.uniq)((0,s.compact)([w.owner,w.created_by])),console.log("通知用户:",JSON.stringify(y)),G.label=11;case 11:G.trys.push([11,20,,21]),G.label=12;case 12:G.trys.push([12,17,18,19]),O=a.__values(y),S=O.next(),G.label=13;case 13:return S.done?[3,16]:(A=S.value,console.log("站内通知用户:",A),[4,e.broker.call("notifications.add",{message:{name:"素材抽检结果通知: ".concat(v.name),body:"请点击素材进行查看",related_to:{o:"pepsico_material_approval",ids:[w._id]},related_name:w.name,from:t.userId,space:w.space},from:t.userId,to:A})]);case 14:G.sent(),G.label=15;case 15:return S=O.next(),[3,13];case 16:return[3,19];case 17:return I=G.sent(),M={error:I},[3,19];case 18:try{S&&!S.done&&(x=O.return)&&x.call(O)}finally{if(M)throw M.error}return[7];case 19:return[3,21];case 20:return P=G.sent(),console.log(P),[3,21];case 21:return G.trys.push([21,33,,34]),[4,e.getObject("space_users").find({filters:["user","in",y]})];case 22:T=G.sent(),E="【系统通知】素材抽检结果通知",G.label=23;case 23:G.trys.push([23,30,31,32]),j=a.__values(T),D=j.next(),G.label=24;case 24:return D.done?[3,29]:(C=D.value,[4,e.getObject("pepsico_mail_send_log")._makeNewID()]);case 25:return k=G.sent(),R='\n <p>您提交的素材已经被抽查。请点击下面的链接登录系统查看抽查意见:</p>\n <a href="'.concat(process.env.ROOT_URL,"/api/pepsico-content/material/click/spot-check/").concat(l,"/").concat(k,'">').concat(w.name,":").concat(v.name,"</a>\n "),[4,u(process.env.B6_EMAIL_FROM,C.email,E,"",R,"")];case 26:return L=G.sent(),[4,e.getObject("pepsico_mail_send_log").insert({_id:k,name:E,created:new Date,content:R,type:"素材抽查",to:[C.user],pepsico_material:v._id,result:L,space:v.space},t)];case 27:G.sent(),G.label=28;case 28:return D=j.next(),[3,24];case 29:return[3,32];case 30:return U=G.sent(),F={error:U},[3,32];case 31:try{D&&!D.done&&(q=j.return)&&q.call(j)}finally{if(F)throw F.error}return[7];case 32:return[3,34];case 33:return N=G.sent(),console.log(N),null==d||d.error("[素材抽查]-".concat(l),{error:N.message}),[3,34];case 34:return[2,{status:0,data:{}}]}})})}},t.clickSpotEmail={rest:{method:"GET",authorization:!1,fullPath:"/api/pepsico-content/material/click/spot-check/:mid/:lid"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n,i,o,c;return a.__generator(this,function(a){switch(a.label){case 0:return t=e.meta.user,r=e.params,s=r.mid,n=r.lid,t?(e.getObject=this.getObject,[4,this.getLogger()]):(e.meta.$statusCode=302,e.meta.$location="/accounts/a/#/login?redirect_uri="+encodeURIComponent("/api/pepsico-content/material/click/spot-check/".concat(s,"/").concat(n)),[2]);case 1:return i=a.sent(),e.logger=i,s?[4,e.getObject("pepsico_material").findOne(s)]:[2,{status:500,msg:"无效的素材标识",data:{}}];case 2:return(o=a.sent())?[4,e.getObject("pepsico_material_approval").findOne(o.pepsico_material_approval)]:[2,{status:500,msg:"无效的素材标识",data:{}}];case 3:return(c=a.sent())?[4,e.getObject("pepsico_mail_visit_log").insert({owner:t.userId,created:new Date,type:"素材抽查",pepsico_material_approval:o.pepsico_material_approval,pepsico_material:o._id,pepsico_mail_send_log:n,space:o.space},t)]:[2,{status:500,msg:"无效的素材审批标识",data:{}}];case 4:return a.sent(),e.meta.$statusCode=302,e.meta.$location="/app/pepsico_content_review/pepsico_material_approval/view/".concat(c._id,"?side_object=pepsico_material_approval"),[2]}})})}},t.sendMonthlySpotCheckReport={rest:{method:"GET",fullPath:"/api/pepsico-content/material/send-report/spot-check/:rid"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n,o,c,l,_,d,v,g,f,m,h,b,w,y,O;return a.__generator(this,function(S){switch(S.label){case 0:return t=e.meta.user,r=e.params.rid,e.getObject=this.getObject,[4,this.getLogger()];case 1:return s=S.sent(),e.logger=s,[4,e.getObject("pepsico_spot_check_report").findOne(r)];case 2:if(!(n=S.sent()))throw new Error("无效的id");return o=n.year_month,c=o.split("-"),l=function(e,t){if("number"!=typeof e||"number"!=typeof t)throw new Error("年份和月份必须是数字");if(t<1||t>12)throw new Error("月份必须在1-12之间");var r=p([e,t-1]);if(!r.isValid())throw new Error("无效的年份或月份");return{monthStart:r.startOf("month").toDate(),monthEnd:r.endOf("month").toDate()}}(Number(c[0]),Number(c[1])),_=l.monthStart,d=l.monthEnd,v=[{label:"乐事",value:"16541517620111040"},{label:"奇多",value:"1654151762046893"},{label:"Doritos/多力多滋",value:"16541517620141606"},{label:"Popcorners",value:"166686519900"},{label:"一口阳光",value:"1654151762018542"},{label:"妙脆角",value:"165788230400"},{label:"零食大礼包",value:"1649752"},{label:"桂格",value:"16541517620103133"},{label:"百事食品",value:"1654151762014792"}],[4,e.getObject("pepsico_brand_leader").directFind({filters:[]})];case 3:g=S.sent(),f=function(s){var c,l,p,g,f,m,h,b,w;return a.__generator(this,function(a){switch(a.label){case 0:return[4,e.getObject("pepsico_material").directFind({filters:[["spot_checked","=",!0],["product","=",s.name],["classification","=",s.classification],["spot_check_time",">=",_],["spot_check_time","<=",d]]})];case 1:return a.sent().length>0?(c="【系统通知】".concat(s.remark,"月度抽查报告[").concat(o,"]"),l=i.find(v,function(e){return e.value===s.name}),s?[4,e.getObject("pepsico_mail_send_log")._makeNewID()]:[3,13]):[3,13];case 2:if(p=a.sent(),g="\n <p>亲爱的用户,</p>\n <p>本月".concat(l.label,"抽查素材报告已生成。 请点击下面链接查看").concat(l.label,'月度抽查报告,建议分享给团队成员进行学习。</p>\n <a href="').concat(process.env.ROOT_URL,"/api/pepsico-content/material/click/spot-report/").concat(r,"/").concat(p,'">').concat(s.remark,":").concat(o,"</a>\n <p>有任何疑问,请联系系统管理员。</p>\n <p>谢谢!</p>\n "),f=[],!s.to)return[3,6];a.label=3;case 3:return a.trys.push([3,5,,6]),[4,e.getObject("space_users").find({filters:["user","in",s.to]})];case 4:return f=a.sent(),[3,6];case 5:return m=a.sent(),console.log(m),[3,6];case 6:if(h=[],!s.cc)return[3,10];a.label=7;case 7:return a.trys.push([7,9,,10]),[4,e.getObject("space_users").find({filters:["user","in",s.cc]})];case 8:return h=a.sent(),[3,10];case 9:return b=a.sent(),console.log(b),[3,10];case 10:return[4,u(process.env.B6_EMAIL_FROM,i.join(i.map(f,"email"),";"),c,"",g,i.join(i.map(h,"email"),";"))];case 11:return w=a.sent(),[4,e.getObject("pepsico_mail_send_log").insert({_id:p,name:c,created:new Date,content:g,type:"月度抽查报告",to:s.to,cc:s.cc,product:l.value,classification:s.classification,pepsico_spot_check_report:r,result:w,space:n.space},t)];case 12:a.sent(),a.label=13;case 13:return[2]}})},S.label=4;case 4:S.trys.push([4,9,10,11]),m=a.__values(g),h=m.next(),S.label=5;case 5:return h.done?[3,8]:(b=h.value,[5,f(b)]);case 6:S.sent(),S.label=7;case 7:return h=m.next(),[3,5];case 8:return[3,11];case 9:return w=S.sent(),y={error:w},[3,11];case 10:try{h&&!h.done&&(O=m.return)&&O.call(m)}finally{if(y)throw y.error}return[7];case 11:return[4,e.getObject("pepsico_spot_check_report").directUpdate(r,{mail_send:!0,mail_send_date:new Date})];case 12:return S.sent(),[2]}})})}},t.clickReportSpotEmail={rest:{method:"GET",authorization:!1,fullPath:"/api/pepsico-content/material/click/spot-report/:rid/:lid"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n,i,o;return a.__generator(this,function(a){switch(a.label){case 0:return t=e.meta.user,r=e.params,s=r.rid,n=r.lid,t?(e.getObject=this.getObject,[4,this.getLogger()]):(e.meta.$statusCode=302,e.meta.$location="/accounts/a/#/login?redirect_uri="+encodeURIComponent("/api/pepsico-content/material/click/spot-report/".concat(s,"/").concat(n)),[2]);case 1:return i=a.sent(),e.logger=i,s?[4,e.getObject("pepsico_spot_check_report").findOne(s)]:[2,{status:500,msg:"无效的标识",data:{}}];case 2:return(o=a.sent())?[4,e.getObject("pepsico_mail_visit_log").insert({owner:t.userId,created:new Date,type:"月度抽查报告",pepsico_mail_send_log:n,space:o.space},t)]:[2,{status:500,msg:"无效的标识",data:{}}];case 3:return a.sent(),e.meta.$statusCode=302,e.meta.$location="/app/pepsico_content_review/page/pepsico_spot_check_report?rid=".concat(s,"&lid=").concat(n),[2]}})})}}},8938:e=>{e.exports=require("axios")},9082:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.dashboardSyncData=void 0;var a=r(5584);t.dashboardSyncData={rest:{method:"GET",fullPath:"/api/pepsico-content/dashboard/sync-data"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r;return a.__generator(this,function(a){switch(a.label){case 0:return[4,this.getLogger()];case 1:return t=a.sent(),e.logger=t,e.getObject=this.getObject,[4,this.dashboardSyncData(e)];case 2:return r=a.sent(),console.log("dashboardSyncData",r),[2,r]}})})}}},9227:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.contentHubTagValues=void 0;var a=r(5584),s=r(7825),n=r(6570),i=s.compact(s.split(process.env.PEPSICO_CONTENT_HUB_TAG_SYNC_USERIDS||"",",").map(function(e){return e.trim()})),o=s.compact(s.split(process.env.PEPSICO_CONTENT_HUB_TAG_SYNC_ALLOWED_IPS||"",",").map(function(e){return e.trim()}));t.contentHubTagValues={rest:{method:"POST",authorization:!1,fullPath:"/api/pepsico-content/content-hub/tag-values"},handler:function(e){var t,r;return a.__awaiter(this,void 0,void 0,function(){var c,l,p,u,_,d,v,g;return a.__generator(this,function(a){switch(a.label){case 0:return c=function(t,r,a){return e.meta.$statusCode=(0,n.httpStatusOf)(t),{code:t,msg:r,data:a}},l=s.isString(null===(t=e.params)||void 0===t?void 0:t.requestId)?e.params.requestId.trim():"",p={requestId:l,idempotent:!1,results:[]},(u=e.meta.user)&&u.userId?i.length>0&&!s.includes(i,u.userId)||o.length>0&&!s.includes(o,(f=e.meta.clientIp,s.isString(f)?f.replace(/^::ffff:/i,"").trim():""))?[2,c(n.TagSyncCode.UNAUTHORIZED,"鉴权失败",p)]:[4,this.getLogger()]:[2,c(n.TagSyncCode.UNAUTHORIZED,"鉴权失败",p)];case 1:_=a.sent(),e.logger=_,e.getObject=this.getObject,a.label=2;case 2:return a.trys.push([2,4,,6]),[4,(0,n.syncTagValues)(e,e.params)];case 3:return d=a.sent(),[2,c(d.code,d.msg,d.data)];case 4:return v=a.sent(),g=(0,n.isTagSyncError)(v)?v.code:n.TagSyncCode.SERVER_ERROR,[4,_.warn("[Content Hub 标签同步]整批拒绝-".concat(l),{objectName:"picklist_options",request_id:l,tag_id:null===(r=e.params)||void 0===r?void 0:r.tagId,code:g,error:v.message})];case 5:return a.sent(),[2,c(g,v.message,p)];case 6:return[2]}var f})})}}},9435:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.migrateReviewCompletedDate=void 0;var a=r(5584),s=r(8160);function n(e){return a.__awaiter(this,void 0,void 0,function(){var t;return a.__generator(this,function(r){switch(r.label){case 0:return[4,(t=s.getDataSource("default").adapter).connect()];case 1:return r.sent(),[2,t.collection(e)]}})})}t.migrateReviewCompletedDate={rest:{method:"GET",fullPath:"/api/pepsico-content/migrate-review-completed-date"},handler:function(e){var t;return a.__awaiter(this,void 0,void 0,function(){var r,s,i,o,c,l,p,u,_,d,v,g,f,m,h,b,w,y,O;return a.__generator(this,function(S){switch(S.label){case 0:return r=e.meta.user,e.getObject=this.getObject,[4,this.getLogger()];case 1:if(s=S.sent(),e.logger=s,!r||!r.is_space_admin)return[2,{status:403,msg:"只有管理员可以执行数据迁移",data:{}}];S.label=2;case 2:return S.trys.push([2,20,,21]),[4,n("pepsico_material_approval")];case 3:return i=S.sent(),[4,n("pepsico_approval_process")];case 4:return o=S.sent(),[4,n("pepsico_material")];case 5:return c=S.sent(),[4,i.find({current_step:{$in:["awaiting_deployment","conclusion"]},$or:[{review_completed_date:{$exists:!1}},{review_completed_date:null}]},{projection:{_id:1}}).toArray()];case 6:l=S.sent(),null==s||s.info("[migrateReviewCompletedDate] 待更新审批单数: ".concat(l.length)),p=0,u=0,_=[],S.label=7;case 7:S.trys.push([7,17,18,19]),d=a.__values(l),v=d.next(),S.label=8;case 8:return v.done?[3,16]:(g=v.value,[4,o.findOne({pepsico_material_approval:g._id,current_step:"awaiting_deployment"},{projection:{created:1}})]);case 9:return(f=S.sent())&&f.created?[3,11]:[4,o.findOne({pepsico_material_approval:g._id,current_step:"conclusion"},{projection:{created:1}})];case 10:f=S.sent(),S.label=11;case 11:return f&&f.created?[4,i.updateOne({_id:g._id},{$set:{review_completed_date:f.created}})]:[3,14];case 12:return S.sent(),[4,c.updateMany({pepsico_material_approval:g._id},{$set:{review_completed_date:f.created}})];case 13:return m=S.sent(),u+=m.matchedCount||(null===(t=m.result)||void 0===t?void 0:t.n)||0,p++,[3,15];case 14:_.push(g._id),S.label=15;case 15:return v=d.next(),[3,8];case 16:return[3,19];case 17:return h=S.sent(),y={error:h},[3,19];case 18:try{v&&!v.done&&(O=d.return)&&O.call(d)}finally{if(y)throw y.error}return[7];case 19:return b={approvalTotal:l.length,approvalUpdated:p,approvalSkipped:_.length,skippedIds:_,materialUpdated:u},null==s||s.info("[migrateReviewCompletedDate] 迁移完成",b),[2,{status:0,msg:"迁移完成",data:b}];case 20:return w=S.sent(),null==s||s.error("[migrateReviewCompletedDate] 迁移失败",w),[2,{status:500,msg:"迁移失败: ".concat(w.message),data:{}}];case 21:return[2]}})})}}},9536:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.submitKids=void 0;var a=r(5584);t.submitKids={rest:{method:"POST",fullPath:"/api/pepsico-content/approve/kids/submit/:recordId"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t;return a.__generator(this,function(r){switch(r.label){case 0:return e.getObject=this.getObject,[4,this.getLogger()];case 1:return t=r.sent(),e.logger=t,[4,this.submitKidsContent(e,e.params.recordId,e.params.approvalStatus)];case 2:return r.sent(),[2,{}]}})})}}},9600:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.contentHubFillOnSave=void 0;var a=r(5584),s=r(9676);t.contentHubFillOnSave={handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,n,i,o,c,l,p;return a.__generator(this,function(a){switch(a.label){case 0:return[4,this.getLogger()];case 1:t=a.sent(),e.logger=t,e.getObject=this.getObject,r=e.params||{},n=r.doc,i=r.id,a.label=2;case 2:return a.trys.push([2,6,,8]),o=null,i?[4,e.getObject("pepsico_material_approval").directFind({filters:[["_id","=",i]],fields:s.CONTENT_HUB_INPUT_FIELDS,top:1})]:[3,4];case 3:c=a.sent(),o=c&&c.length>0?c[0]:null,a.label=4;case 4:return p={},[4,(0,s.fillContentHubFields)(e,n||{},o)];case 5:return[2,(p.patch=a.sent(),p)];case 6:return l=a.sent(),[4,t.error("[Content Hub]保存时补算同步开关 / 素材组路径失败, 不影响保存",{id:i,error:l.message})];case 7:return a.sent(),[2,{patch:{}}];case 8:return[2]}})})}}},9676:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.fillContentHubFields=t.CONTENT_HUB_INPUT_FIELDS=void 0;var a=r(5584),s=r(7825),n=r(8844),i=r(6118),o=r(777),c=["owner_department","classification","product","kol_classification"];t.CONTENT_HUB_INPUT_FIELDS=["form_version","space","owner","created_by","owner_department","classification","product","kol_classification","ch_sync_enabled","ch_sync_manual","ch_material_group","ch_material_group_path"],t.fillContentHubFields=function(e,t,r){return void 0===r&&(r=null),a.__awaiter(void 0,void 0,void 0,function(){var l,p,u,_,d,v,g,f,m,h;return a.__generator(this,function(b){switch(b.label){case 0:return l=a.__assign(a.__assign({},r||{}),t),(0,n.isContentHubForm)(l)?(p={},[4,(0,n.resolveOwnerDepartment)(e,l.owner_department,{userId:l.owner||l.created_by,spaceId:l.space})]):[2,{}];case 1:return u=b.sent(),_=!r||s.some(c,function(e){return s.has(t,e)&&!s.isEqual(t[e],r[e])}),!0===l.ch_sync_manual||!_&&!s.has(t,"ch_sync_enabled")?[3,3]:[4,(0,n.previewSyncForForm)(e,{ownerDepartment:u,classification:l.classification,product:l.product,kolClassification:l.kol_classification})];case 2:d=b.sent().needSync,l.ch_sync_enabled!==d&&(p.ch_sync_enabled=d),b.label=3;case 3:return v=(0,o.toMaterialGroupId)(l.ch_material_group),s.has(t,"ch_material_group")&&null!=t.ch_material_group&&t.ch_material_group!==v&&(p.ch_material_group=v),g=!!r&&(0,o.toMaterialGroupId)(r.ch_material_group)!==v&&l.ch_material_group_path===r.ch_material_group_path,f=l.ch_material_group,v&&(!l.ch_material_group_path||g)&&s.isPlainObject(f)&&f.materialGroupPath?(p.ch_material_group_path=f.materialGroupPath,[3,6]):[3,4];case 4:return!v||l.ch_material_group_path&&!g?[3,6]:[4,(0,i.loadMaterialGroupOptions)(e,{product:l.product,ownerDepartment:u,classification:l.classification})];case 5:m=b.sent(),(h=(0,i.findMaterialGroupPath)(m,v))&&(p.ch_material_group_path=h),b.label=6;case 6:return[2,p]}})})}},9861:e=>{e.exports=require("moleculer-cron")}},t={},r=function r(a){var s=t[a];if(void 0!==s)return s.exports;var n=t[a]={exports:{}};return e[a](n,n.exports,r),n.exports}(8509);module.exports=r})();
1
+ (()=>{"use strict";var e={164:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.initUrgentQuota=void 0;var a=r(5584);t.initUrgentQuota={rest:{method:"POST",fullPath:"/api/pepsico-content/urgent-quota/init"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n,i,o,c,l,p,u,_,d,v,g,f,m,h,b,w;return a.__generator(this,function(y){switch(y.label){case 0:if(e.getObject=this.getObject,t=e.meta.user,!(r=null==t?void 0:t.spaceId))throw new Error("无法获取当前工作区");if(s=e.params,n=s.year,i=s.h1_used,o=s.h2_used,!n||"number"!=typeof n)throw new Error("请指定有效的年份");return c="number"==typeof i?i:0,l="number"==typeof o?o:0,[4,e.getObject("space_users").directFind({filters:[["space","=",r],["user_accepted","=",!0],["is_collaborator","!=",!0]],fields:["user"]})];case 1:if(p=y.sent(),0===(u=a.__spreadArray([],a.__read(new Set(p.map(function(e){return e.user}).filter(Boolean))),!1)).length)return[2,{message:"未找到任何内部用户",created:0,updated:0}];_=0,d=0,y.label=2;case 2:y.trys.push([2,10,11,12]),v=a.__values(u),g=v.next(),y.label=3;case 3:return g.done?[3,9]:(f=g.value,[4,e.getObject("pepsico_urgent_quota").findOne({filters:[["user","=",f],["space","=",r],["year","=",n]]})]);case 4:return(m=y.sent())?[4,e.getObject("pepsico_urgent_quota").directUpdate(m._id,{h1_used:c,h2_used:l})]:[3,6];case 5:return y.sent(),d++,[3,8];case 6:return[4,e.getObject("pepsico_urgent_quota").insert({user:f,space:r,year:n,h1_used:c,h2_used:l})];case 7:y.sent(),_++,y.label=8;case 8:return g=v.next(),[3,3];case 9:return[3,12];case 10:return h=y.sent(),b={error:h},[3,12];case 11:try{g&&!g.done&&(w=v.return)&&w.call(v)}finally{if(b)throw b.error}return[7];case 12:return[2,{message:"初始化完成:".concat(_," 条新建,").concat(d," 条更新"),created:_,updated:d,total:u.length}]}})})}}},256:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});var a=r(5584);a.__exportStar(r(5510),t),a.__exportStar(r(2143),t),a.__exportStar(r(751),t),a.__exportStar(r(4809),t),a.__exportStar(r(4665),t),a.__exportStar(r(2777),t),a.__exportStar(r(6903),t),a.__exportStar(r(6658),t)},298:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.addBulkMaterials=void 0;var a=r(5584),s=r(7825),n=r(2143);t.addBulkMaterials={rest:{method:"POST",fullPath:"/api/pepsico-content/approve/material/add"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,i,o,c,l,p,u,_,d,v=this;return a.__generator(this,function(g){switch(g.label){case 0:return e.getObject=this.getObject,[4,this.getLogger()];case 1:return t=g.sent(),e.logger=t,[4,e.getObject("cfs_files_filerecord").find({filters:["_id","=",e.params.files]})];case 2:r=g.sent(),i=function(r,s){return a.__awaiter(v,void 0,void 0,function(){var n,i;return a.__generator(this,function(a){switch(a.label){case 0:return[4,t.warn("".concat(e.params.approvalId,"-[添加素材被拒]:").concat(r),{objectName:"pepsico_material_approval",pepsico_material_approval:e.params.approvalId,file_name:s.original.name,file_size:s.original.size,uploaded_file:s._id,uploaded_by:null===(i=null===(n=e.meta)||void 0===n?void 0:n.user)||void 0===i?void 0:i.userId,reason:r})];case 1:return a.sent(),[2,{status:"500",msg:r,data:{}}]}})})},g.label=3;case 3:g.trys.push([3,10,11,12]),o=a.__values(r),c=o.next(),g.label=4;case 4:return c.done?[3,9]:(l=c.value,s.includes(l.original.name,"版权")?[4,i("上传素材中包含“版权”文件,请删除版权文件后再次提交。",l)]:[3,6]);case 5:return[2,g.sent()];case 6:return(p=(0,n.officeFileSizeProblem)(l.original.name,l.original.size))?[4,i("素材「".concat(l.original.name,"」:").concat(p),l)]:[3,8];case 7:return[2,g.sent()];case 8:return c=o.next(),[3,4];case 9:return[3,12];case 10:return u=g.sent(),_={error:u},[3,12];case 11:try{c&&!c.done&&(d=o.return)&&d.call(o)}finally{if(_)throw _.error}return[7];case 12:return[4,this.addBulkMaterials(e,e.params.approvalId,e.params.files)];case 13:return g.sent(),[3,15];case 14:if(!g.sent())return[2,{status:"500",msg:"素材上传失败, 请稍后重试",data:{}}];g.label=15;case 15:return[2,{}]}})})}}},751:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.dashboardSyncData=void 0;var a=r(5584),s=r(7825),n=r(4716),i=r(7283),o=function(e,t,r){return void 0===r&&(r=i.LEGACY_PRODUCT_PICKLIST_CODE),a.__awaiter(void 0,void 0,void 0,function(){var n,i,o,c;return a.__generator(this,function(a){switch(a.label){case 0:return n=s.split(t,"-"),[4,e.getObject("picklists").find({filters:["code","=",r]})];case 1:return i=a.sent(),n.length>0&&i.length>0?[4,e.getObject("picklist_options").find({filters:[["picklist","=",i[0]._id],["value","=",s.first(n)]]})]:[3,3];case 2:return o=a.sent(),c=[],s.each(n,function(e){var t=s.find(o,{value:e});t&&c.push(t.name)}),[2,s.join(c,"-")];case 3:return[2,""]}})})},c=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){return a.__generator(this,function(r){switch(r.label){case 0:return[4,e.getObject("pepsico_approval_process").directFind({filters:[["pepsico_material_approval","=",t],["approved","!=","progess"],["current_step","=","submitter_revisions"]]})];case 1:return[2,r.sent().length>0]}})})},l=function(e){return 0==e?null:1===e?"v1":e>1?"v3":void 0},p=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){var r;return a.__generator(this,function(a){switch(a.label){case 0:return[4,e.getObject("pepsico_approval_process").directFind({filters:[["pepsico_material_approval","=",t],["approved","in",["approved","rejected","submit"]],["type","in",["NS","Legal","SRA","CA","Kids","guding"]]]})];case 1:return r=a.sent(),[2,{NS:l(s.size(s.filter(r,{type:"NS"}))),Legal:l(s.size(s.filter(r,{type:"Legal"}))),SRA:l(s.size(s.filter(r,{type:"SRA"}))),CA:l(s.size(s.filter(r,{type:"CA"}))),Kids:l(s.size(s.filter(r,{type:"Kids"}))),guding:l(s.size(s.filter(r,{type:"guding"})))}]}})})},u=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){var r,n,i;return a.__generator(this,function(a){switch(a.label){case 0:return[4,e.getObject("picklists").find({filters:["code","=","classification"]})];case 1:return r=a.sent(),n=s.split(t,"-"),t&&r.length>0?[4,e.getObject("picklist_options").find({filters:[["picklist","=",r[0]._id],["value","=",s.last(n)]]})]:[3,3];case 2:return[2,(i=a.sent()).length>0?i[0].name:""];case 3:return[2]}})})},_=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){var r;return a.__generator(this,function(a){switch(a.label){case 0:return[4,e.getObject("pepsico_approval_process").directFind({filters:[["pepsico_material_approval","=",t],["current_step","=","awaiting_deployment"]]})];case 1:return[2,(r=a.sent()).length>0?r[0].created:null]}})})},d=!1;t.dashboardSyncData=function(e){return a.__awaiter(void 0,void 0,void 0,function(){var t,r,l,v,g,f,m,h,b,w,y,O,S,A,I,P,T,E,j,D,C,k,R,L,U,N,M;return a.__generator(this,function(x){switch(x.label){case 0:if(!0===d)throw new Error("同步中, 请勿重复调用...");d=!0,t={success:0,fail:0},x.label=1;case 1:return x.trys.push([1,30,,32]),r=[["current_step","in",["conclusion","awaiting_deployment"]],["synced","!=",!0],["is_skip_approver","!=",!0]],[4,e.getObject("pepsico_material_approval").directFind({filters:r})];case 2:if(!((l=x.sent()).length>0))return[3,29];x.label=3;case 3:x.trys.push([3,27,28,29]),v=a.__values(l),g=v.next(),x.label=4;case 4:if(g.done)return[3,26];f=g.value,x.label=5;case 5:return x.trys.push([5,23,,25]),[4,o(e,f.product,(0,i.getProductPicklistCode)(f))];case 6:return m=x.sent(),[4,u(e,f.classification)];case 7:return h=x.sent(),[4,e.getObject("organizations").findOne(f.owner_department)];case 8:return b=x.sent(),[4,c(e,f._id)];case 9:return w=x.sent(),[4,p(e,f._id)];case 10:return y=x.sent(),[4,_(e,f._id)];case 11:return O=x.sent(),S="","发起人中止"===f.termination_type?S="v1":"审批人中止"===f.termination_type&&(S="v2"),A=w?"v2":"v1",S&&(A=""),[4,e.getObject("pepsico_material_approval_data").directInsert({name:f.name,pepsico_material_approval:f._id,approve_users:f.person_approved,current_step:f.current_step,material_approve_org:"personnel_review"==f.approval_type?"guding":"four",peoduct:m,classify:h,flow_pass_times:A,approve_status:"terminated"===f.review_status?"v3":"v2",termination:S||null,type:f.internal_collaborator?"外部":"内部",submit_org:(null==b?void 0:b.name)||null,submit_time:f.draft_submitted||null,approve_finish_time:O||null,end_time:f.termination_date||null,review_time:O&&f.draft_submitted?parseFloat(n.duration(n(O).diff(f.draft_submitted)).asHours().toFixed(2)):null,ca_pass:f.ca_approval_status||null,ca_approve_times:y.CA||null,legal_pass:f.legal_approval_status||null,approve_org:y.Legal||null,sra_pass:f.sra_approval_status||null,sra_approve_times:y.SRA||null,ns_pass:f.ns_approval_status||null,ns_approve_times:y.NS||null,guding_pass:"approved"==f.approval_status||f.approval_status||null,guding_approve_times:y.guding||null,kids:f.kids_approval_status||null,kids_approve_times:y.Kids||null,owner:f.owner,space:f.space,created:new Date,modified:new Date})];case 12:return I=x.sent(),S?[3,21]:[4,e.getObject("pepsico_material").directFind({filters:[["pepsico_material_approval","=",f._id]]})];case 13:if(!((P=x.sent()).length>0))return[3,21];x.label=14;case 14:x.trys.push([14,19,20,21]),N=void 0,T=a.__values(P),E=T.next(),x.label=15;case 15:return E.done?[3,18]:(j=E.value,[4,e.getObject("pepsico_material_data").directInsert({pepsico_material_approval:f._id,approve_users:f.person_approved,classify:h,material_void:j.void_material||!1,material_type:(F=j.extension_type,s.includes(["jpg","jpeg","png","gif","bmp","tiff","tif","svg","webp","ico","heif","heic"],F)?"v1":s.includes(["mp4","avi","mov","wmv","flv","mkv","webm","mpeg","mpg","3gp","m4v","qt"],F)?"v2":s.includes(["ppt","pptx"],F)?"v3":s.includes(["doc","docx"],F)?"v4":F),brand:m,submit_org:null==b?void 0:b.name,submit_time:f.draft_submitted,name:j.name,material_approve_org:"personnel_review"==f.approval_type?"v2":"v1",ns_pass:j.ns_approval_status||null,legal_pass:j.legal_approval_status||null,ca_pass:j.ca_approval_status||null,sra_pass:j.sra_approval_status||null,guding_pass:j.approval_status||null,kids_pass:j.kids_approval_status||null,pepsico_material_approval_data:I._id,pepsico_material:j._id,owner:f.owner,space:f.space,created:new Date,modified:new Date})]);case 16:x.sent(),x.label=17;case 17:return E=T.next(),[3,15];case 18:return[3,21];case 19:return D=x.sent(),N={error:D},[3,21];case 20:try{E&&!E.done&&(M=T.return)&&M.call(T)}finally{if(N)throw N.error}return[7];case 21:return[4,e.getObject("pepsico_material_approval").directUpdate(f._id,{synced:!0})];case 22:return x.sent(),t.success++,[3,25];case 23:return C=x.sent(),[4,e.logger.error("[Dashboard同步Data]",{pepsico_material_approval:f._id,error:C.message})];case 24:return x.sent(),t.fail++,[3,25];case 25:return g=v.next(),[3,4];case 26:return[3,29];case 27:return k=x.sent(),L={error:k},[3,29];case 28:try{g&&!g.done&&(U=v.return)&&U.call(v)}finally{if(L)throw L.error}return[7];case 29:return d=!1,[2,t];case 30:return R=x.sent(),d=!1,console.log("[Dashboard同步Data]",{error:R.message}),[4,e.logger.error("[Dashboard同步Data]",{error:R.message})];case 31:return x.sent(),[3,32];case 32:return[2]}var F})})}},777:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.mockMaterialGroups=t.toMaterialGroupPath=t.queryMaterialGroupTree=t.buildMaterialGroupTree=t.getTenantAccessToken=t.isMaterialGroupMock=t.toMaterialGroupId=void 0;var a=r(5584),s=r(8938),n=r(7825),i="|";t.toMaterialGroupId=function(e){return null==e||""===e?null:n.isArray(e)?(0,t.toMaterialGroupId)(e[0]):n.isPlainObject(e)?(0,t.toMaterialGroupId)(null!=e.value?e.value:null!=e.materialGroupId?e.materialGroupId:e._id):String(e)},t.isMaterialGroupMock=function(){return"true"===process.env.PEPSICO_CONTENT_HUB_MATERIAL_GROUP_MOCK};var o=null;t.getTenantAccessToken=function(){return a.__awaiter(void 0,void 0,void 0,function(){var e,t,r,n,i,c;return a.__generator(this,function(a){switch(a.label){case 0:return o&&o.expireAt>Date.now()?[2,o.token]:[4,s.default.post("".concat(process.env.PEPSICO_CONTENT_HUB_BASE_URL,"/creativeSaas/auth/v1/tenantAccessToken/internal"),{appId:process.env.PEPSICO_CONTENT_HUB_APP_ID,appSecret:process.env.PEPSICO_CONTENT_HUB_APP_SECRET})];case 1:if(e=a.sent(),!(t=(null===(n=e.data)||void 0===n?void 0:n.data)||{}).tenantAccessToken)throw new Error("获取 Content Hub token 失败: ".concat((null===(i=e.data)||void 0===i?void 0:i.msg)||(null===(c=e.data)||void 0===c?void 0:c.message)||"无返回"));return r=Number(t.expire)||7200,[2,(o={token:t.tenantAccessToken,expireAt:Date.now()+1e3*Math.max(r-300,60)}).token]}})})};var c=function(e){return a.__awaiter(void 0,void 0,void 0,function(){var n,i,o,c;return a.__generator(this,function(a){switch(a.label){case 0:return[4,(0,t.getTenantAccessToken)()];case 1:return n=a.sent(),i={tenantId:process.env.PEPSICO_CONTENT_HUB_TENANT_ID,workspaceId:process.env.PEPSICO_CONTENT_HUB_WORKSPACE_ID,sales:!!e.sales},e.sales||(i.materialGroupPath=e.materialGroupPath),[4,s.default.post("".concat(process.env.PEPSICO_CONTENT_HUB_BASE_URL,"/creativeSaas/pepsico/compliance/v1/material-groups/list"),i,{headers:{"tenant-access-token":n,"X-Request-Id":(l=r(8749),l.randomUUID?l.randomUUID():"".concat(Date.now(),"-").concat(Math.random().toString(16).slice(2))),"Content-Type":"application/json; charset=UTF-8"},timeout:15e3})];case 2:if(o=a.sent(),!0!==(c=o.data||{}).success||200!==c.code)throw new Error(c.msg||c.message||"Content Hub 素材组查询失败");return[2,c.data||[]]}var l})})};t.buildMaterialGroupTree=function(e){var t,r,s,i,o={},c=n.uniqBy(n.filter(e,function(e){return e&&null!=e.materialGroupId}),function(e){return String(e.materialGroupId)});try{for(var l=a.__values(c),p=l.next();!p.done;p=l.next()){var u=p.value;o[String(u.materialGroupId)]=a.__assign({label:u.materialGroupName,value:String(u.materialGroupId),materialGroupPath:u.materialGroupPath,level:u.level},!1===u.selectable?{disabled:!0}:{})}}catch(e){t={error:e}}finally{try{p&&!p.done&&(r=l.return)&&r.call(l)}finally{if(t)throw t.error}}var _=[];try{for(var d=a.__values(c),v=d.next();!v.done;v=d.next()){u=v.value;var g=o[String(u.materialGroupId)],f=null!=u.parentMaterialGroupId?o[String(u.parentMaterialGroupId)]:null;f?(f.children=f.children||[]).push(g):_.push(g)}}catch(e){s={error:e}}finally{try{v&&!v.done&&(i=d.return)&&i.call(d)}finally{if(s)throw s.error}}return _},t.queryMaterialGroupTree=function(e,r){return a.__awaiter(void 0,void 0,void 0,function(){var s,i,o,l,p;return a.__generator(this,function(a){switch(a.label){case 0:if(s=n.compact(n.map(r.materialGroupPath,function(e){return n.isString(e)?e.trim():null})),!r.sales&&0===s.length)throw new Error("素材组路径为空,请联系管理员");return i={sales:!!r.sales,materialGroupPath:s},(0,t.isMaterialGroupMock)()?(l=(0,t.mockMaterialGroups)(i),[3,3]):[3,1];case 1:return[4,c(i)];case 2:l=a.sent(),a.label=3;case 3:return o=l,[4,null===(p=e.logger)||void 0===p?void 0:p.info("[Content Hub 素材组查询]".concat((0,t.isMaterialGroupMock)()?"(模拟数据)":""),{sales:i.sales,materialGroupPath:s,count:o.length})];case 4:return a.sent(),[2,(0,t.buildMaterialGroupTree)(o)]}})})},t.toMaterialGroupPath=function(e){return n.compact(e).join(i)};var l=function(e){var t,r,s=0;try{for(var n=a.__values(e),i=n.next();!i.done;i=n.next())s=(31*s+i.value.charCodeAt(0))%1000000007}catch(e){t={error:e}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(t)throw t.error}}return String(22e13+s)},p=[{name:"Campaign Design Content"},{name:"Social Material"},{name:"KOL Material"}],u=function(){return[{name:"2026 春节 Campaign",children:p},{name:"2026 夏日 Campaign - 抖音达人种草与线下 POSM 联动项目(全国重点城市 KA 门店同步执行)",children:p},{name:"Always On 日常内容",children:p}]},_=function(){return[{name:"2026 年度",children:u()},{name:"2025 年度",children:u()}]},d=[{name:"主图与详情页"},{name:"短视频"},{name:"直播间物料"}],v=function(){return[{name:"2026 Q1 渠道大促",children:d},{name:"2026 618 年中大促 - 全渠道联合营销素材(含站内外投放与直播间物料)",children:d},{name:"日常上新",children:d}]},g=function(e){return{name:e,children:[{name:"2026 年度",children:v()},{name:"2025 年度",children:v()}]}},f=[{name:"线上衍生素材",children:a.__spreadArray(a.__spreadArray([],a.__read(["抖音","O2O","天猫","京东","拼多多","猫超"].map(g)),!1),[{name:"EKA-Vertical",children:["小象超市","叮咚买菜","朴朴"].map(g)}],!1)},{name:"线下衍生素材",children:["永辉","华润万家/多点","盒马","山姆/沃尔玛","大润发","团购","其他渠道"].map(g)},{name:"非渠道衍生素材-EKA",children:["Gifting","EC Page","POSM"].map(g)},{name:"非渠道衍生素材-DCO",children:["Gifting","EC Page","POSM"].map(g)}],m=function(e,t,r){var s,n;try{for(var o=a.__values(e),c=o.next();!c.done;c=o.next()){var p=c.value,u=t?"".concat(t.path).concat(i).concat(p.name):p.name,_=l(u),d=a.__spreadArray(a.__spreadArray([],a.__read(t?t.idPath:[]),!1),[_],!1),v=t?t.level+1:1;r.push({materialGroupId:_,materialGroupName:p.name,parentMaterialGroupId:t?t.id:null,level:v,materialGroupIdPath:d,materialGroupPath:u,leaf:!p.children||0===p.children.length,selectable:!0,updatedAt:"2026-09-28T10:30:00+08:00"}),p.children&&m(p.children,{id:_,idPath:d,path:u,level:v},r)}}catch(e){s={error:e}}finally{try{c&&!c.done&&(n=o.return)&&n.call(o)}finally{if(s)throw s.error}}return r};t.mockMaterialGroups=function(e){return e.sales?m(f,null,[]):n.flatMap(e.materialGroupPath,function(e){var t=e.split(i),r=t.slice(0,-1),a=r.length>0?{id:l(r.join(i)),idPath:r.map(function(e,t){return l(r.slice(0,t+1).join(i))}),path:r.join(i),level:r.length}:null;return m([{name:n.last(t),children:[{name:"原味",children:_()},{name:"青柠味",children:_()},{name:"番茄味(限定装 · 2026 春节特别版 · 含品牌联名礼盒与电商专供规格)",children:_()}]}],a,[])})}},904:e=>{e.exports=require("mime-types")},1057:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.sendByMaterial=t.PUSH_RECORD_OBJECT_NAME=t.inventoryApprovalMaterial=t.CONTENT_HUB_PUSH_LOG_NAME=void 0;var a=r(5584),s=r(8938),n=r(7825),i=r(904),o=r(8862),c=r(8844),l=r(4809),p=r(8559),u=r(777),_=r(8666),d=r(7283),v=r(7825),g=r(6293),f=process.env.PEPSICO_CONTENT_HUB_WORKSPACE_ID,m=process.env.PEPSICO_CONTENT_HUB_BASE_URL,h=process.env.PEPSICO_CONTENT_HUB_APP_ID,b=process.env.PEPSICO_CONTENT_HUB_APP_SECRET,w=function(){return a.__awaiter(void 0,void 0,void 0,function(){return a.__generator(this,function(e){switch(e.label){case 0:return[4,s.default.post("".concat(m,"/creativeSaas/auth/v1/tenantAccessToken/internal"),{appId:h,appSecret:b})];case 1:return[2,e.sent().data.data.tenantAccessToken]}})})},y=function(e){var t=e.map(function(e){var t=e.split("-");return(0,n.last)(t)}).filter(function(e){return null!==e});return(0,n.compact)(t)},O=function(){return process.env.PEPSICO_CONTENT_HUB_TAG_ID_EFFECTIVE_DATE||"22334050712759158"},S="223321022150011",A=["jpg","jpeg","png","gif","bmp","tiff","tif","svg","webp","ico","heif","heic","psd"],I=["mp4","avi","mov","wmv","flv","mkv","webm","mpeg","mpg","3gp","m4v","qt"];t.CONTENT_HUB_PUSH_LOG_NAME="Content Hub推送",t.inventoryApprovalMaterial=function(e,t,r,s){return void 0===s&&(s={}),a.__awaiter(void 0,void 0,void 0,function(){var n,i,o,l;return a.__generator(this,function(a){switch(a.label){case 0:return n={materialList:[],files:[]},i=Date.now(),[4,D(e,t,r,s,n)];case 1:return o=a.sent(),[4,j(e,{approvalId:t,materialId:r,options:s,trace:n,result:o,cost:Date.now()-i})];case 2:return a.sent(),[4,E(e,t,n,o)];case 3:return a.sent(),l=n.approval,!n.requested||n.error||o&&!1===o.success||!(0,c.isContentHubForm)(l)||v.isEmpty(n.materialGroupIdList)?[3,5]:[4,(0,_.grantUploaderAndNotify)(e,l,n.materialGroupIdList,w)];case 4:a.sent(),a.label=5;case 5:return[2,o]}})})},t.PUSH_RECORD_OBJECT_NAME="pepesio_ch__c";var P=function(e,t,r){return a.__awaiter(void 0,void 0,void 0,function(){var s,i,o;return a.__generator(this,function(a){switch(a.label){case 0:return 0===(s=v.uniq(v.compact(v.flatMap(r,function(e){return y((0,n.concat)([],e||[]))})))).length?[2,{}]:[4,e.getObject("picklists").directFind({filters:[["code","=",t]],fields:["_id"],top:1})];case 1:return(i=a.sent())&&0!==i.length?[4,e.getObject("picklist_options").directFind({filters:[["picklist","=",i[0]._id],["value","in",s]],fields:["_id","value"]})]:[2,{}];case 2:return o=a.sent(),[2,v.mapValues(v.keyBy(o||[],"value"),"_id")]}})})},T=function(e,t){var r=v.last(y((0,n.concat)([],t||[])));return r?e[r]:void 0},E=function(e,r,s,n){return a.__awaiter(void 0,void 0,void 0,function(){var i,o,c,l,p,u,_,g,f,m,h,b,w,y;return a.__generator(this,function(O){switch(O.label){case 0:if(!s.requested||0===s.files.length)return[2];O.label=1;case 1:return O.trys.push([1,12,,14]),i=s.approval||{},o=!(s.error||n&&!1===n.success),[4,P(e,(0,d.getProductPicklistCode)(i),[i.product])];case 2:return c=O.sent(),[4,P(e,"223321001114222",v.map(s.files,"materialType"))];case 3:l=O.sent(),p=new Date,u=e.getObject(t.PUSH_RECORD_OBJECT_NAME),O.label=4;case 4:O.trys.push([4,9,10,11]),_=a.__values(s.files),g=_.next(),O.label=5;case 5:return g.done?[3,8]:(f=g.value,[4,u.directInsert({name:i.name||r,pepsico_material_approval:r,file_name:f.fileName,type:f.ext,media_type:(S=f.ext,v.includes(A,S)?"图片":v.includes(I,S)?"视频":"zip"===S?"压缩包":null),product:T(c,i.product),material_type:T(l,f.materialType),push_status:o?"success":"failed",time:p,space:i.space,owner:i.owner})]);case 6:O.sent(),O.label=7;case 7:return g=_.next(),[3,5];case 8:return[3,11];case 9:return m=O.sent(),b={error:m},[3,11];case 10:try{g&&!g.done&&(w=_.return)&&w.call(_)}finally{if(b)throw b.error}return[7];case 11:return[3,14];case 12:return h=O.sent(),[4,null===(y=e.logger)||void 0===y?void 0:y.error("[Content Hub 推送明细]写入失败-".concat(r),{error:h.message})];case 13:return O.sent(),[3,14];case 14:return[2]}var S})})},j=function(e,r){var s=r.approvalId,n=r.materialId,i=r.options,o=r.trace,c=r.result,p=r.cost;return a.__awaiter(void 0,void 0,void 0,function(){var r,u,_;return a.__generator(this,function(a){switch(a.label){case 0:return r=o.approval,u=o.error?"failed":o.requested?c&&!1===c.success?"failed":"pushed":"skipped",_={action:"content-hub-push",trigger:i.force?"manual":i.spotCheck?"spot_check":"launch",status:u,reason:"skipped"===u?c&&c.msg:void 0,approval_id:s,approval_name:r&&r.name,form_version:r&&r.form_version,material_id:n,material_count:o.materialList.length,materials:v.map(o.materialList,"name"),copyright_zip:o.copyrightZip,request:o.requested?{url:"/creativeSaas/v1/material/inbound_url",body:{requestId:s,materialList:o.materialList}}:void 0,material_group_ids:o.materialGroupIdList,response:o.requested&&!o.error?c:void 0,error:o.error,operator:e.meta&&e.meta.user&&e.meta.user.userId,cost:p},[4,(0,l.writeSystemLog)(e,"failed"===u?"error":"info",_,t.CONTENT_HUB_PUSH_LOG_NAME,r&&r.space)];case 1:return a.sent(),[2]}})})},D=function(e,t,r,l,_){return a.__awaiter(void 0,void 0,void 0,function(){var h,b,A,I,P,T,E,j,D,C,k,R,L,U,N,M,x,F,q,G,B,V,H,J,Q,Y,z,K,$,Z,X,W,ee,te;return a.__generator(this,function(re){switch(re.label){case 0:h=_.materialList,re.label=1;case 1:return re.trys.push([1,17,,19]),[4,e.getObject("pepsico_material_approval").findOne(t)];case 2:if(b=re.sent(),_.approval=b,!b)throw new Error("无效的approvalId:"+t);if(A=(0,c.isContentHubForm)(b),I=A&&l.spotCheck,b.is_skip_approver&&!v.includes(o.DCO_TYPES,b.classification)&&!I)return[2,{msg:"不需要推送到Content Hub"}];if(A&&!l.force){if(l.spotCheck&&!b.is_skip_approver)return[2,{msg:"已在确认上线时按申请单处理, 抽查核准不再推送"}];if(!0!==b.ch_sync_enabled)return[2,{msg:"申请单未选择同步到Content Hub, 不推送"}]}return P=process.env.PEPSICO_CONTENT_HUB_TEST_OWNER||b.material_owner,T=function(e){if((0,c.isContentHubForm)(e))return function(e){return[{tagId:d.PRODUCT_TAG_ID,tagValIdList:y((0,n.concat)([],e.product||[]))},{tagId:"223321018147010",value:e.expiry_date?g(e.expiry_date).format("YYYY-MM-DD"):""},{tagId:O(),value:e.effective_date?g(e.effective_date).format("YYYY-MM-DD"):""},{tagId:S,tagValIdList:y((0,n.concat)([],e.material_editable||[]))}]}(e);var t=[];return t.push({tagId:"223321001114213",tagValIdList:y((0,n.concat)([],e.product||[]))}),t.push({tagId:"223321001114944",tagValIdList:y((0,n.concat)([],e.available_channels||[]))}),t.push({tagId:"223321001114222",tagValIdList:y((0,n.concat)([],e.material_type||[]))}),t.push({tagId:"223321022150011",tagValIdList:y((0,n.concat)([],e.content_rule||[]))}),t.push({tagId:"223321018147010",value:e.expiry_date?g(e.expiry_date).format("YYYY-MM-DD"):""}),t.push({tagId:O(),value:e.effective_date?g(e.effective_date).format("YYYY-MM-DD"):""}),t}(b),E=A?(0,n.compact)([(0,u.toMaterialGroupId)(b.ch_material_group)]):[],_.materialGroupIdList=E,j=[["pepsico_material_approval","=",t],["void_material","!=",!0]],r&&j.push(["_id","=",r]),[4,e.getObject("pepsico_material").find({filters:j})];case 3:D=re.sent(),re.label=4;case 4:re.trys.push([4,9,10,11]),C=a.__values(D),k=C.next(),re.label=5;case 5:return k.done?[3,8]:(R=k.value,L=null===(X=R.extension_type)||void 0===X?void 0:X.toLowerCase(),U=!1,"jpg"!==L&&"jpeg"!==L&&"png"!==L&&"gif"!==L&&"bmp"!==L&&"tiff"!==L&&"tif"!==L&&"svg"!==L&&"webp"!==L&&"ico"!==L&&"heif"!==L&&"heic"!==L&&"psd"!==L||(U=!0),"mp4"!==L&&"avi"!==L&&"mov"!==L&&"wmv"!==L&&"flv"!==L&&"mkv"!==L&&"webm"!==L&&"mpeg"!==L&&"mpg"!==L&&"3gp"!==L&&"m4v"!==L&&"qt"!==L||(U=!0),U&&(_.files.push({fileName:R.name,ext:L,materialType:R.material_type}),h.push({workspaceId:+f,name:R.name,owner:P,url:"".concat(process.env.ROOT_URL,"/api/files/files/").concat(R.material,"?download=true"),materialGroupIdList:E,tagList:T})),R.supplement_materials&&!1===(0,n.isEmpty)(R.supplement_materials)&&(0,n.isArray)(R.supplement_materials)?[4,e.getObject("cfs_files_filerecord").find({filters:["_id","in",R.supplement_materials]})]:[3,7]);case 6:N=re.sent();try{for($=void 0,M=a.__values(N),x=M.next();!x.done;x=M.next()){F=x.value;try{q=null===(W=(0,i.extension)(F.original.type))||void 0===W?void 0:W.toLowerCase(),G=!1,"jpg"!==q&&"jpeg"!==q&&"png"!==q&&"gif"!==q&&"bmp"!==q&&"tiff"!==q&&"tif"!==q&&"svg"!==q&&"webp"!==q&&"ico"!==q&&"heif"!==q&&"heic"!==q&&"psd"!==q||(G=!0),"mp4"!==q&&"avi"!==q&&"mov"!==q&&"wmv"!==q&&"flv"!==q&&"mkv"!==q&&"webm"!==q&&"mpeg"!==q&&"mpg"!==q&&"3gp"!==q&&"m4v"!==q&&"qt"!==q||(G=!0),G&&(_.files.push({fileName:F.original.name,ext:q,materialType:R.material_type}),h.push({workspaceId:+f,name:F.original.name,owner:P,url:"".concat(process.env.ROOT_URL,"/api/files/files/").concat(F._id,"?download=true"),materialGroupIdList:E,tagList:T}))}catch(e){console.log(e)}}}catch(e){$={error:e}}finally{try{x&&!x.done&&(Z=M.return)&&Z.call(M)}finally{if($)throw $.error}}re.label=7;case 7:return k=C.next(),[3,5];case 8:return[3,11];case 9:return B=re.sent(),z={error:B},[3,11];case 10:try{k&&!k.done&&(K=C.return)&&K.call(C)}finally{if(z)throw z.error}return[7];case 11:return A&&h.length>0?[4,(0,p.prepareCopyrightZip)(e,b)]:[3,13];case 12:(V=re.sent())&&(_.copyrightZip=V,_.files.push({fileName:V.name,ext:"zip"}),h.push({workspaceId:+f,name:V.name,owner:P,url:"".concat(process.env.ROOT_URL,"/api/files/files/").concat(V.fileId,"?download=true"),materialGroupIdList:E,tagList:T})),re.label=13;case 13:return[4,w()];case 14:return H=re.sent(),_.requested=!0,[4,s.default.post("".concat(m,"/creativeSaas/v1/material/inbound_url"),{requestId:t,materialList:h},{headers:{"tenant-access-token":H}})];case 15:return J=re.sent(),Q=J.data,[4,null===(ee=e.logger)||void 0===ee?void 0:ee.info("[调用 content hub API]-".concat(t),{result:Q,materialList:h})];case 16:return re.sent(),[2,Q];case 17:return Y=re.sent(),_.error=Y.message,[4,null===(te=e.logger)||void 0===te?void 0:te.error("[调用 content hub API]-".concat(t),{error:Y.message,materialList:h})];case 18:return re.sent(),[2,Y.message];case 19:return[2]}})})};t.sendByMaterial=function(e,r){return a.__awaiter(void 0,void 0,void 0,function(){var s;return a.__generator(this,function(a){switch(a.label){case 0:return[4,e.getObject("pepsico_material").findOne(r)];case 1:return s=a.sent(),[4,(0,t.inventoryApprovalMaterial)(e,s.pepsico_material_approval,r,{spotCheck:!0})];case 2:return[2,a.sent()]}})})}},1072:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.contentHubMaterialGroups=void 0;var a=r(5584),s=r(6118),n=r(8844);t.contentHubMaterialGroups={rest:{method:"GET",fullPath:"/api/pepsico-content/content-hub/material-groups"},handler:function(e){var t,r;return a.__awaiter(this,void 0,void 0,function(){var i,o,c,l,p,u,_,d,v,g,f,m;return a.__generator(this,function(a){switch(a.label){case 0:return(i=e.meta.user)&&i.userId?[4,this.getLogger()]:[2,{status:401,msg:"未登录",data:{options:[]}}];case 1:o=a.sent(),e.logger=o,e.getObject=this.getObject,c=e.params||{},l=c.product,p=c.path,u=c.owner_department,_=c.classification,d=!0===(null===(t=e.params)||void 0===t?void 0:t.sales)||"true"===(null===(r=e.params)||void 0===r?void 0:r.sales),a.label=2;case 2:return a.trys.push([2,5,,7]),v=s.loadMaterialGroupOptions,g=[e],m={product:l,path:p},[4,(0,n.resolveOwnerDepartment)(e,u)];case 3:return[4,v.apply(void 0,g.concat([(m.ownerDepartment=a.sent(),m.classification=_,m.sales=d,m)]))];case 4:return[2,{status:0,msg:"",data:{options:a.sent()}}];case 5:return f=a.sent(),[4,o.error("[Content Hub 素材组查询]失败",{product:l,path:p,owner_department:u,classification:_,sales:d,error:f.message})];case 6:return a.sent(),[2,{status:500,msg:f.message,data:{options:[]}}];case 7:return[2]}})})}}},1401:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getReviewerAgentsInfo=void 0;var a=r(5584),s=function(e,t,r){return a.__awaiter(void 0,void 0,void 0,function(){var s,n,i,o;return a.__generator(this,function(a){switch(a.label){case 0:return s=new Date,[4,e.getObject("process_delegation_rules").find({filters:[["space","=",t],["from","=",r],["enabled","=",!0],["start_time","<=",s],["end_time",">=",s]],top:1,sort:"modified desc"})];case 1:return n=a.sent(),i=n.length>0?null===(o=n[0])||void 0===o?void 0:o.to:null,console.log("getAgent",i,JSON.stringify({filters:[["space","=",t],["from","=",r],["enabled","=",!0],["start_time","<=",s],["end_time",">=",s]],top:1,sort:"modified desc"})),[2,i]}})})};t.getReviewerAgentsInfo=function(e,t,r){return a.__awaiter(void 0,void 0,void 0,function(){var n,i,o,c,l,p,u,_;return a.__generator(this,function(d){switch(d.label){case 0:n={userIds:[],clientUserIds:[]},d.label=1;case 1:d.trys.push([1,6,7,8]),i=a.__values(r),o=i.next(),d.label=2;case 2:return o.done?[3,5]:(c=o.value,[4,s(e,t,c)]);case 3:l=d.sent(),n.userIds.push(l||c),n.clientUserIds.push(c),d.label=4;case 4:return o=i.next(),[3,2];case 5:return[3,8];case 6:return p=d.sent(),u={error:p},[3,8];case 7:try{o&&!o.done&&(_=i.return)&&_.call(i)}finally{if(u)throw u.error}return[7];case 8:return console.log("getReviewerAgentsInfo:",r,n),[2,n]}})})}},1826:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.sendToContentHub=void 0;var a=r(5584),s=r(1057);t.sendToContentHub={rest:{method:"GET",fullPath:"/api/pepsico-content/send/content-hub/:approverId"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r;return a.__generator(this,function(a){switch(a.label){case 0:if(!e.meta.user.is_space_admin)throw new Error("无权限!");if(!(t=e.params.approverId))throw new Error("请传入参数approverId");return[4,this.getLogger()];case 1:return r=a.sent(),e.logger=r,e.getObject=this.getObject,[4,(0,s.inventoryApprovalMaterial)(e,t,void 0,{force:!0})];case 2:return[2,a.sent()]}})})}}},1959:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.postponeReview=void 0;var a=r(5584);t.postponeReview={rest:{method:"POST",fullPath:"/api/pepsico-content/approve/postpone-review/:recordId"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t;return a.__generator(this,function(r){switch(r.label){case 0:return e.getObject=this.getObject,[4,this.getLogger()];case 1:return t=r.sent(),e.logger=t,[4,this.postponeReview.call(this,e,e.params.recordId,e.params)];case 2:return r.sent(),[2,{}]}})})}}},1972:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.contentHubSyncPreview=void 0;var a=r(5584),s=r(8844);t.contentHubSyncPreview={rest:{method:"GET",fullPath:"/api/pepsico-content/content-hub/sync-preview"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,n,i,o,c,l,p,u,_,d,v,g,f,m;return a.__generator(this,function(a){switch(a.label){case 0:return(t=e.meta.user)&&t.userId?[4,this.getLogger()]:[2,{status:401,msg:"未登录",data:{}}];case 1:r=a.sent(),e.logger=r,e.getObject=this.getObject,n=e.params||{},i=n.owner_department,o=n.classification,c=n.product,l=n.kol_classification,a.label=2;case 2:return a.trys.push([2,5,,7]),v=s.previewSyncForForm,g=[e],m={},[4,(0,s.resolveOwnerDepartment)(e,i)];case 3:return[4,v.apply(void 0,g.concat([(m.ownerDepartment=a.sent(),m.classification=o,m.product=c,m.kolClassification=l,m)]))];case 4:return p=a.sent(),u=p.needSync,_=p.rule,d=p.mismatches,[2,{status:0,msg:"",data:{ch_sync_preview:{needSync:u,ruleName:_?_.name:null,mismatches:d}}}];case 5:return f=a.sent(),[4,r.error("[Content Hub 同步规则]填单预判失败",{owner_department:i,classification:o,product:c,kol_classification:l,error:f.message})];case 6:return a.sent(),[2,{status:500,msg:f.message,data:{}}];case 7:return[2]}})})}}},2045:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});var a=r(5584);a.__exportStar(r(7065),t),a.__exportStar(r(4754),t),a.__exportStar(r(298),t),a.__exportStar(r(5256),t),a.__exportStar(r(3222),t),a.__exportStar(r(5264),t),a.__exportStar(r(9536),t),a.__exportStar(r(3180),t),a.__exportStar(r(3334),t),a.__exportStar(r(4727),t),a.__exportStar(r(4932),t),a.__exportStar(r(2458),t),a.__exportStar(r(8152),t),a.__exportStar(r(9082),t),a.__exportStar(r(1826),t),a.__exportStar(r(9227),t),a.__exportStar(r(8864),t),a.__exportStar(r(6074),t),a.__exportStar(r(2418),t),a.__exportStar(r(4676),t),a.__exportStar(r(2189),t),a.__exportStar(r(9435),t),a.__exportStar(r(7815),t),a.__exportStar(r(6586),t),a.__exportStar(r(1959),t),a.__exportStar(r(2563),t),a.__exportStar(r(164),t),a.__exportStar(r(5383),t),a.__exportStar(r(5176),t),a.__exportStar(r(1072),t),a.__exportStar(r(1972),t),a.__exportStar(r(9600),t)},2143:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.downloadDocFromOneDriveDoc=t.downloadBulkFromOneDriveDoc=t.deleteDocOneDriveShareLink=t.deleteBulkDocOneDriveShareLink=t.uploadBulkDocToOneDrive=t.getOneDriveMaterials=t.getPendingUploadsToOneDriveMaterials=t.uploadDocToOneDrive=t.getUserReviewedAllMaterialsStatus=t.getApproverFieldByType=t.getApproverField=t.submitMaterial=t.addBulkMaterials=t.hasDuplicateMaterials=t.officeFileSizeProblem=void 0;var a=r(5584),s=r(8398),n=r(7825),i=r(904),o=r(6928),c=r(8862),l=["doc","docx","ppt","pptx","xls","xlsx"];t.officeFileSizeProblem=function(e,t){return l.includes(function(e){return o.extname(e||"").slice(1).toLowerCase()}(e))&&t>262144e3?"文档类素材最大支持 250MB(SharePoint 接口限制),当前文件约 ".concat(Math.round(t/1024/1024),"MB。请精简文件后重新上传。"):""},t.hasDuplicateMaterials=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){var r,s,i;return a.__generator(this,function(a){switch(a.label){case 0:return[4,e.getObject("pepsico_material").directFind({filters:[["pepsico_material_approval","=",t],["void_material","!=",!0],["is_bypassed","!=",!0]],fields:["_id","material","md5"]})];case 1:return r=a.sent(),(s=n.compact(n.map(r,"md5"))).length!==n.uniq(s).length?[2,!0]:[4,e.getObject("pepsico_material").directFind({filters:["md5","=",s],fields:["_id"]})];case 2:return i=a.sent(),[2,s.length<i.length]}})})},t.addBulkMaterials=function(e,t,r){return a.__awaiter(void 0,void 0,void 0,function(){var o,l,p,u,_,d,v,g,f,m,h,b,w,y,O,S;return a.__generator(this,function(A){switch(A.label){case 0:return o=e.meta.user,[4,e.getObject("pepsico_material_approval").findOne(t)];case 1:if(l=A.sent(),o.userId!=l.owner)throw new Error("只有创建者才能添加素材");if(p=l.materials_quantity||0,u=n.includes(c.DCO_TYPES,l.classification)?300:50,p>=u)throw new Error("素材数量:最多".concat(u,"个"));if(p+r.length>u)throw new Error("素材数量:最多".concat(u,"个. 您本次添加了").concat(r.length,"个素材"));return _=n.includes(c.DCO_TYPES,l.classification)?10737418240:1073741824,[4,e.getObject("pepsico_material").find({filters:["pepsico_material_approval","=",l._id],fields:["material"]})];case 2:return d=A.sent(),v=n.concat(r,n.map(d,"material")),[4,e.getObject("cfs_files_filerecord").aggregate({},[{$match:{_id:{$in:v}}},{$group:{_id:null,totalSize:{$sum:"$copies.files.size"}}}])];case 3:if(g=A.sent(),((null===(S=g[0])||void 0===S?void 0:S.totalSize)||0)>_)throw new Error("附件总大小超过 10GB,禁止添加素材");return[4,e.getObject("cfs_files_filerecord").find({filters:["_id","=",r]})];case 4:if(f=A.sent(),l.current_step!=s.Step.draft&&l.current_step!=s.Step.submitter_revisions)return[3,12];A.label=5;case 5:A.trys.push([5,10,11,12]),m=a.__values(f),h=m.next(),A.label=6;case 6:return h.done?[3,9]:(b=h.value,[4,e.getObject("pepsico_material").insert({pepsico_material_approval:l._id,product:n.first(n.split(l.product,"-")),shop_tag:l.shop_tag,material:b._id,material_original:b._id,md5:b.original.md5,name:n.trim(b.original.name),classification:l.classification,extension_type:(0,i.extension)(b.original.type),material_type:l.material_type,social_media:l.social_media,followers:l.followers,kol_classification:l.kol_classification,owner_department:l.owner_department,brief_flow:l.brief_flow,owner:l.owner,space:l.space,created:new Date,created_by:o.userId,modified:new Date,modified_by:o.userId})]);case 7:A.sent(),A.label=8;case 8:return h=m.next(),[3,6];case 9:return[3,12];case 10:return w=A.sent(),y={error:w},[3,12];case 11:try{h&&!h.done&&(O=m.return)&&O.call(m)}finally{if(y)throw y.error}return[7];case 12:return[2,{}]}})})},t.submitMaterial=function(e,t,r){return a.__awaiter(this,void 0,void 0,function(){return a.__generator(this,function(a){switch(a.label){case 0:switch(r){case s.ApprovalStatus.approved:return[3,1];case s.ApprovalStatus.pass:return[3,3];case s.ApprovalStatus.rejected:return[3,5]}return[3,7];case 1:return[4,p.call(this,e,t)];case 2:case 4:case 6:return[2,a.sent()];case 3:return[4,p.call(this,e,t,s.ApprovalStatus.pass)];case 5:return[4,u.call(this,e,t)];case 7:return[2,{}]}})})},t.getApproverField=function(e,r,i,o){return a.__awaiter(void 0,void 0,void 0,function(){var c,l,p;return a.__generator(this,function(a){switch(a.label){case 0:return c="",console.log("[getApproverField]",JSON.stringify({userId:o,ca_reviewer:r.ca_reviewer,qc_reviewer:r.qc_reviewer,sra_reviewer:r.sra_reviewer,ns_reviewer:r.ns_reviewer,legal_reviewer:r.legal_reviewer,reviewer:r.reviewer,current_step:r.current_step})),[4,e.getObject("pepsico_approval_process").find({filters:[["owner","=",o],["pepsico_material_approval","=",r._id],["current_step","=",r.current_step],["space","=",r.space],["approved","=","progess"]],top:1,sort:"modified asc"})];case 1:return(l=a.sent()).length>0&&(p=l[0].type,c="Kids"===p?"kids_approval_status":(0,t.getApproverFieldByType)(p)),c||(r.current_step==s.Step.departmental_review&&(r.pre_ns_reviewer===o?c="pre_ns_approval_status":r.pre_legal_reviewer===o?c="pre_legal_approval_status":r.pre_sra_reviewer===o?c="pre_sra_approval_status":r.pre_ca_reviewer===o?c="pre_ca_approval_status":"yes"===r.ec_has_detail_page&&r.pre_qc_reviewer===o?c="pre_qc_approval_status":n.includes(r.ca_reviewer,o)?c="ca_approval_status":n.includes(r.sra_reviewer,o)?c="sra_approval_status":n.includes(r.ns_reviewer,o)?c="ns_approval_status":n.includes(r.legal_reviewer,o)?c="legal_approval_status":"yes"===r.ec_has_detail_page&&n.includes(r.qc_reviewer,o)&&(c="qc_approval_status")),r.current_step==s.Step.personnel_review&&(r.pre_reviewer===o?c="pre_approval_status":n.includes(r.reviewer,o)&&1!=i.approval_status&&(c="approval_status"))),n.includes([r.kids_reviewer],o)&&(c="kids_approval_status"),console.log("[getApproverField] fieldName:",c),[2,c]}})})},t.getApproverFieldByType=function(e){var t="";switch(e){case s.ProcessApprovalType.CA:t="ca_approval_status";break;case s.ProcessApprovalType.QC:t="qc_approval_status";break;case s.ProcessApprovalType.Legal:t="legal_approval_status";break;case s.ProcessApprovalType.NS:t="ns_approval_status";break;case s.ProcessApprovalType.SRA:t="sra_approval_status";break;case s.ProcessApprovalType.Kids:t="kids_approval_status";break;case s.ProcessApprovalType.guding:t="approval_status";break;case s.ProcessApprovalType.PreNS:t="pre_ns_approval_status";break;case s.ProcessApprovalType.PreLegal:t="pre_legal_approval_status";break;case s.ProcessApprovalType.PreSRA:t="pre_sra_approval_status";break;case s.ProcessApprovalType.PreCA:t="pre_ca_approval_status";break;case s.ProcessApprovalType.PreQC:t="pre_qc_approval_status";break;case s.ProcessApprovalType.Preguding:t="pre_approval_status"}return t};var p=function(e,r,n){return void 0===n&&(n=s.ApprovalStatus.approved),a.__awaiter(this,void 0,void 0,function(){var i,o,c,l,p,u;return a.__generator(this,function(a){switch(a.label){case 0:return i=e.meta.user,[4,e.getObject("pepsico_material").findOne(r)];case 1:return o=a.sent(),[4,e.getObject("pepsico_material_approval").findOne(o.pepsico_material_approval)];case 2:return c=a.sent(),[4,(0,t.getApproverField)(e,c,o,i.userId)];case 3:return(l=a.sent())?[4,e.getObject("pepsico_material").update(r,(u={},u[l]=n===s.ApprovalStatus.approved||"pass",u))]:[2];case 4:return a.sent(),l&&"kids_approval_status"===l&&"pass"!=n?[2,{}]:(console.log("[approveMaterial] approveField",l),[4,(0,t.getUserReviewedAllMaterialsStatus)(e,c._id,l)]);case 5:return p=a.sent(),console.log("[approveMaterial] materialStatus",p),p==s.ApprovalStatus.pending?[3,9]:p!=s.ApprovalStatus.approved&&p!==s.ApprovalStatus.pass?[3,7]:[4,this.approvalContent(e,c._id,{approveField:l,materialStatus:p})];case 6:return a.sent(),[3,9];case 7:return p!=s.ApprovalStatus.rejected?[3,9]:[4,this.rejectContent(e,c._id,{approveField:l,materialStatus:p})];case 8:a.sent(),a.label=9;case 9:return[2]}})})},u=function(e,r){return a.__awaiter(this,void 0,void 0,function(){var n,i,o,c,l,p;return a.__generator(this,function(a){switch(a.label){case 0:return n=e.meta.user,[4,e.getObject("pepsico_material").findOne(r)];case 1:return i=a.sent(),[4,e.getObject("pepsico_material_approval").findOne(i.pepsico_material_approval)];case 2:return o=a.sent(),[4,(0,t.getApproverField)(e,o,i,n.userId)];case 3:return(c=a.sent())?[4,e.getObject("pepsico_material").update(r,(p={},p[c]=!1,p))]:[2];case 4:return a.sent(),[4,(0,t.getUserReviewedAllMaterialsStatus)(e,o._id,c)];case 5:return(l=a.sent())==s.ApprovalStatus.pending?[3,7]:[4,this.rejectContent(e,o._id,{approveField:c,materialStatus:l})];case 6:a.sent(),a.label=7;case 7:return[2]}})})};t.getUserReviewedAllMaterialsStatus=function(e,t,r){return a.__awaiter(void 0,void 0,void 0,function(){var i,o;return a.__generator(this,function(a){switch(a.label){case 0:return[4,e.getObject("pepsico_material").find({filters:[["pepsico_material_approval","=",t],["void_material","!=",!0],["is_bypassed","!=",!0]]})];case 1:return i=a.sent(),o=n.filter(i,function(e){return null===e[r]||!n.has(e,r)||""===e[r]||void 0===e[r]}).length>0,console.log("getUserReviewedAllMaterialsStatus:",t,"未作废/跳过的素材数量为:",i.length,"hasPending:",o,r),o?[2,s.ApprovalStatus.pending]:n.filter(i,function(e){return!1===e[r]}).length>0?[2,s.ApprovalStatus.rejected]:n.filter(i,function(e){return"pass"===e[r]}).length===i.length?[2,s.ApprovalStatus.pass]:[2,s.ApprovalStatus.approved]}})})},t.uploadDocToOneDrive=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){var r,s,n,i,o;return a.__generator(this,function(a){switch(a.label){case 0:return a.trys.push([0,4,,7]),[4,e.broker.call("content-version-bridge.material_uploadDocToOneDrive",{material:t})];case 1:return r=a.sent(),s=r.item,n=r.viewSharedLink,i=r.editSharedLink,[4,e.getObject("pepsico_material").directUpdate(t._id,{uploaded_to_onedrive:!0,onedrive_item:s,onedrive_shared_link_view:n,onedrive_shared_link_edit:i})];case 2:return a.sent(),[4,e.logger.info("".concat(t.pepsico_material_approval,"-").concat(t._id,"-[素材上传到oneDrive成功]"),{objectName:"pepsico_material",_id:t._id,pepsico_material_approval:t.pepsico_material_approval,fileInfo:s,viewSharedLink:n,editSharedLink:i})];case 3:return a.sent(),[2,!0];case 4:return o=a.sent(),[4,e.getObject("pepsico_material").directUpdate(t._id,{uploaded_to_onedrive:!1})];case 5:return a.sent(),[4,e.logger.error("".concat(t.pepsico_material_approval,"-").concat(t._id,"-[素材上传到oneDrive失败]:").concat(o.message),{objectName:"pepsico_material",_id:t._id,pepsico_material_approval:t.pepsico_material_approval,file_name:t.name,extension_type:t.extension_type,uploaded_file:t.material,error:o.message})];case 6:return a.sent(),console.log("uploadDocToOneDrive error:",o),[2,!1];case 7:return[2]}})})},t.getPendingUploadsToOneDriveMaterials=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){return a.__generator(this,function(r){switch(r.label){case 0:return[4,e.getObject("pepsico_material").find({filters:[["pepsico_material_approval","=",t],["extension_type","in",["doc","docx","ppt","pptx"]],["void_material","!=",!0],["uploaded_to_onedrive","!=",!0]]})];case 1:return[2,r.sent()]}})})},t.getOneDriveMaterials=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){return a.__generator(this,function(r){switch(r.label){case 0:return[4,e.getObject("pepsico_material").find({filters:[["pepsico_material_approval","=",t],["extension_type","in",["doc","docx","ppt","pptx"]],["void_material","!=",!0]]})];case 1:return[2,r.sent()]}})})},t.uploadBulkDocToOneDrive=function(e,r){return a.__awaiter(void 0,void 0,void 0,function(){var s,n,i,o,c,l,p,u;return a.__generator(this,function(_){switch(_.label){case 0:return[4,(0,t.getPendingUploadsToOneDriveMaterials)(e,r)];case 1:s=_.sent(),n=!0,_.label=2;case 2:_.trys.push([2,7,8,9]),i=a.__values(s),o=i.next(),_.label=3;case 3:return o.done?[3,6]:(c=o.value,[4,(0,t.uploadDocToOneDrive)(e,c)]);case 4:!1===_.sent()&&(n=!1),_.label=5;case 5:return o=i.next(),[3,3];case 6:return[3,9];case 7:return l=_.sent(),p={error:l},[3,9];case 8:try{o&&!o.done&&(u=i.return)&&u.call(i)}finally{if(p)throw p.error}return[7];case 9:return 1!=n?[3,11]:[4,e.getObject("pepsico_material_approval").directUpdate(r,{materials_uploaded_to_onedrive_status:"completed"})];case 10:return _.sent(),[3,13];case 11:return[4,e.getObject("pepsico_material_approval").directUpdate(r,{materials_uploaded_to_onedrive_status:"failed",$inc:{materials_uploaded_to_onedrive_failed_count:1}})];case 12:_.sent(),_.label=13;case 13:return[2,n]}})})},t.deleteBulkDocOneDriveShareLink=function(e,r){return a.__awaiter(void 0,void 0,void 0,function(){var s,n,i,o,c,l,p,u;return a.__generator(this,function(_){switch(_.label){case 0:return s=!0,[4,e.getObject("pepsico_material").find({filters:[["pepsico_material_approval","=",r],["extension_type","in",["doc","docx","ppt","pptx"]]]})];case 1:n=_.sent(),_.label=2;case 2:_.trys.push([2,7,8,9]),i=a.__values(n),o=i.next(),_.label=3;case 3:return o.done?[3,6]:(c=o.value,[4,(0,t.deleteDocOneDriveShareLink)(e,c)]);case 4:!1===_.sent()&&(s=!1),_.label=5;case 5:return o=i.next(),[3,3];case 6:return[3,9];case 7:return l=_.sent(),p={error:l},[3,9];case 8:try{o&&!o.done&&(u=i.return)&&u.call(i)}finally{if(p)throw p.error}return[7];case 9:return 1!=s?[3,11]:[4,e.getObject("pepsico_material_approval").directUpdate(r,{materials_remove_share_link_from_onedrive_status:"completed"})];case 10:return _.sent(),[3,13];case 11:return[4,e.getObject("pepsico_material_approval").directUpdate(r,{materials_remove_share_link_from_onedrive_status:"failed",$inc:{materials_remove_share_link_from_onedrive_failed_count:1}})];case 12:_.sent(),_.label=13;case 13:return[2,s]}})})},t.deleteDocOneDriveShareLink=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){var r;return a.__generator(this,function(a){switch(a.label){case 0:return a.trys.push([0,4,7,9]),console.log("deleteDocOneDriveShareLink",t.onedrive_item.id,t._id),[4,e.broker.call("content-version-bridge.material_deleteDocOneDriveShareLink",{material:t})];case 1:return a.sent(),[4,e.getObject("pepsico_material").directUpdate(t._id,{remove_share_link_from_onedrive:!0})];case 2:return a.sent(),[4,e.logger.info("".concat(t.pepsico_material_approval,"-").concat(t._id,"-[从oneDrive删除共享连接成功]"),{objectName:"pepsico_material",_id:t._id,pepsico_material_approval:t.pepsico_material_approval})];case 3:return a.sent(),[2,!0];case 4:return r=a.sent(),[4,e.getObject("pepsico_material").directUpdate(t._id,{remove_share_link_from_onedrive:!1})];case 5:return a.sent(),[4,e.logger.error("".concat(t.pepsico_material_approval,"-").concat(t._id,"-[从oneDrive删除共享连接失败]:").concat(r.message),{objectName:"pepsico_material",_id:t._id,pepsico_material_approval:t.pepsico_material_approval})];case 6:return a.sent(),console.log("deleteDocOneDriveShareLink error:",r),[2,!1];case 7:return[4,e.getObject("pepsico_material").directUpdate(t._id,{onedrive_shared_link_edit:null})];case 8:return a.sent(),[7];case 9:return[2]}})})},t.downloadBulkFromOneDriveDoc=function(e,r){return a.__awaiter(void 0,void 0,void 0,function(){var s,n,i,o,c,l,p,u;return a.__generator(this,function(_){switch(_.label){case 0:return[4,e.getObject("pepsico_material").find({filters:[["pepsico_material_approval","=",r],["extension_type","in",["doc","docx","ppt","pptx"]],["void_material","!=",!0],["download_from_onedrive","!=",!0]]})];case 1:s=_.sent(),n=!0,_.label=2;case 2:_.trys.push([2,7,8,9]),i=a.__values(s),o=i.next(),_.label=3;case 3:return o.done?[3,6]:(c=o.value,[4,(0,t.downloadDocFromOneDriveDoc)(e,c)]);case 4:!1===_.sent()&&(n=!1),_.label=5;case 5:return o=i.next(),[3,3];case 6:return[3,9];case 7:return l=_.sent(),p={error:l},[3,9];case 8:try{o&&!o.done&&(u=i.return)&&u.call(i)}finally{if(p)throw p.error}return[7];case 9:return 1!=n?[3,11]:[4,e.getObject("pepsico_material_approval").directUpdate(r,{materials_download_from_onedrive_status:"completed"})];case 10:return _.sent(),[3,13];case 11:return[4,e.getObject("pepsico_material_approval").directUpdate(r,{materials_download_from_onedrive_status:"failed",$inc:{materials_download_from_onedrive_failed_count:1}})];case 12:_.sent(),_.label=13;case 13:return[2,n]}})})},t.downloadDocFromOneDriveDoc=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){var r,s,n;return a.__generator(this,function(a){switch(a.label){case 0:r=(new Date).getTime(),a.label=1;case 1:return a.trys.push([1,5,,8]),[4,e.broker.call("content-version-bridge.material_downloadDocFromOneDriveDoc",{material:t})];case 2:return s=a.sent(),console.log("downloadDocFromOneDriveDoc-".concat(t._id),s._id,s),[4,e.getObject("pepsico_material").directUpdate(t._id,{material:s._id,$push:{material_one_drive_history:s._id},download_from_onedrive:!0})];case 3:return a.sent(),[4,e.logger.info("".concat(t.pepsico_material_approval,"-").concat(t._id,"-[从oneDrive下载素材成功]"),{objectName:"pepsico_material",_id:t._id,pepsico_material_approval:t.pepsico_material_approval,time:(new Date).getTime()-r})];case 4:return a.sent(),[2,!0];case 5:return n=a.sent(),[4,e.getObject("pepsico_material").directUpdate(t._id,{download_from_onedrive:!1})];case 6:return a.sent(),[4,e.logger.error("".concat(t.pepsico_material_approval,"-").concat(t._id,"-[从oneDrive下载素材失败]:").concat(n.message),{objectName:"pepsico_material",_id:t._id,pepsico_material_approval:t.pepsico_material_approval,time:(new Date).getTime()-r})];case 7:return a.sent(),console.log("downloadDocFromOneDriveDoc error:",n),[2,!1];case 8:return[2]}})})}},2189:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getImageComparisonStatus=t.triggerImageComparison=void 0;var a=r(5584);t.triggerImageComparison={rest:{method:"POST",fullPath:"/api/pepsico-content/image-comparison/trigger/:recordId"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,s,n,i;return a.__generator(this,function(a){switch(a.label){case 0:return e.getObject=this.getObject,[4,this.getLogger()];case 1:t=a.sent(),e.logger=t,s=e.params.recordId,a.label=2;case 2:return a.trys.push([2,5,,6]),[4,Promise.resolve().then(function(){return r(4665)})];case 3:return n=a.sent().triggerImageComparisonAsync,console.log("[API] 手动触发图片对比: ".concat(s)),[4,n(e,s)];case 4:return a.sent(),[2,{success:!0,message:"图片对比任务已触发"}];case 5:return i=a.sent(),console.error("[API] 触发图片对比失败: ".concat(s),i.message),[2,{success:!1,error:i.message}];case 6:return[2]}})})}},t.getImageComparisonStatus={rest:{method:"GET",fullPath:"/api/pepsico-content/image-comparison/status/:recordId"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s;return a.__generator(this,function(a){switch(a.label){case 0:e.getObject=this.getObject,t=e.params.recordId,a.label=1;case 1:return a.trys.push([1,3,,4]),[4,e.getObject("pepsico_material_approval").findOne(t)];case 2:return(r=a.sent())?[2,{success:!0,data:{status:r.image_comparison_status,stats:r.image_comparison_stats,comparedAt:r.image_comparison_at}}]:[2,{success:!1,error:"审批单不存在"}];case 3:return s=a.sent(),console.error("[API] 获取图片对比状态失败: ".concat(t),s.message),[2,{success:!1,error:s.message}];case 4:return[2]}})})}}},2418:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.bypassApproval=void 0;var a=r(5584),s=r(8398),n=r(2967),i=r(7825);t.bypassApproval={rest:{method:"POST",fullPath:"/api/pepsico-content/approve/bypass-approval/:recordId"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,o,c,l,p,u,_,d,v,g,f,m,h,b,w,y,O,S,A,I,P,T,E,j,D,C,k,R,L,U;return a.__generator(this,function(N){switch(N.label){case 0:return e.getObject=this.getObject,[4,this.getLogger()];case 1:if(t=N.sent(),e.logger=t,r=e.params.recordId,o=e.params,c=o.reason,l=o.attachments,p=e.meta.user.userId,!c)throw new Error("请提供跳过原因");return[4,e.getObject("pepsico_material_approval").findOne(r)];case 2:if(!(u=N.sent()))throw new Error("未找到审批单");if(u.current_step===s.Step.conclusion||u.current_step===s.Step.draft)throw new Error("当前步骤不支持跳过操作");if(_="",d="",v="",g="",f="",m="",u.current_step===s.Step.departmental_review&&(i.includes(u.handler_preca||(u.pre_ca_reviewer?[u.pre_ca_reviewer]:[]),p)&&"pass"!==u.pre_ca_approval_status&&!0!==u.pre_ca_approval_status?(_="pre_ca_approval_status",m="CA预审"):i.includes(u.handler_presra||(u.pre_sra_reviewer?[u.pre_sra_reviewer]:[]),p)&&"pass"!==u.pre_sra_approval_status&&!0!==u.pre_sra_approval_status?(_="pre_sra_approval_status",m="SRA预审"):i.includes(u.handler_prens||(u.pre_ns_reviewer?[u.pre_ns_reviewer]:[]),p)&&"pass"!==u.pre_ns_approval_status&&!0!==u.pre_ns_approval_status?(_="pre_ns_approval_status",m="NS预审"):i.includes(u.handler_prelegal||(u.pre_legal_reviewer?[u.pre_legal_reviewer]:[]),p)&&"pass"!==u.pre_legal_approval_status&&!0!==u.pre_legal_approval_status?(_="pre_legal_approval_status",m="Legal预审"):"yes"===u.ec_has_detail_page&&i.includes(u.handler_preqc||(u.pre_qc_reviewer?[u.pre_qc_reviewer]:[]),p)&&"pass"!==u.pre_qc_approval_status&&!0!==u.pre_qc_approval_status?(_="pre_qc_approval_status",m="QC预审"):i.includes(u.handler_ca||u.ca_reviewer,p)&&!0!==u.ca_bypassed?(_="ca_approval_status",d="ca_bypassed",v="ca_bypassed_by",g="ca_bypass_reason",f="ca_bypassed_at",m="CA"):i.includes(u.handler_sra||u.sra_reviewer,p)&&!0!==u.sra_bypassed?(_="sra_approval_status",d="sra_bypassed",v="sra_bypassed_by",g="sra_bypass_reason",f="sra_bypassed_at",m="SRA"):i.includes(u.handler_ns||u.ns_reviewer,p)&&!0!==u.ns_bypassed?(_="ns_approval_status",d="ns_bypassed",v="ns_bypassed_by",g="ns_bypass_reason",f="ns_bypassed_at",m="NS"):i.includes(u.handler_legal||u.legal_reviewer,p)&&!0!==u.legal_bypassed?(_="legal_approval_status",d="legal_bypassed",v="legal_bypassed_by",g="legal_bypass_reason",f="legal_bypassed_at",m="Legal"):"yes"===u.ec_has_detail_page&&i.includes(u.handler_qc||u.qc_reviewer,p)&&!0!==u.qc_bypassed&&(_="qc_approval_status",d="qc_bypassed",v="qc_bypassed_by",g="qc_bypass_reason",f="qc_bypassed_at",m="QC")),u.current_step===s.Step.personnel_review&&(i.includes(u.handler_preguding||(u.pre_reviewer?[u.pre_reviewer]:[]),p)&&"pass"!==u.pre_approval_status&&!0!==u.pre_approval_status?(_="pre_approval_status",m="固定人员预审"):i.includes(u.handler_personnel||u.reviewer,p)&&(_="approval_status",d="approval_bypassed",v="approval_bypassed_by",g="approval_bypass_reason",f="approval_bypassed_at",m="固定人员")),""===_&&i.includes(u.handler_kids||u.kids_reviewer,p)&&(_="kids_approval_status",d="kids_bypassed",v="kids_bypassed_by",g="kids_bypass_reason",f="kids_bypassed_at",m="Kids"),console.log("approveField===>",_),!_)throw new Error("您不是当前步骤的审核人,无权限跳过");return d?[4,e.getObject("pepsico_material_approval").directUpdate(r,(D={},D[d]=!0,D[v]=p,D[g]=c,D[f]=new Date,D))]:[3,4];case 3:N.sent(),N.label=4;case 4:return[4,e.getObject("pepsico_material").find({filters:[["pepsico_material_approval","=",r],["void_material","!=",!0]]})];case 5:h=N.sent(),N.label=6;case 6:N.trys.push([6,11,12,13]),b=a.__values(h),w=b.next(),N.label=7;case 7:return w.done?[3,10]:!0===(y=w.value)[_]||"pass"===y[_]?[3,9]:((R={})[_]="pass",O=R,d&&(O[d]=!0,O[v]=p,O[g]=c,O[f]=new Date),[4,e.getObject("pepsico_material").directUpdate(y._id,O)]);case 8:N.sent(),t.info("User ".concat(p," (").concat(m,") bypassed material ").concat(y._id," via approval bypass")),N.label=9;case 9:return w=b.next(),[3,7];case 10:return[3,13];case 11:return S=N.sent(),C={error:S},[3,13];case 12:try{w&&!w.done&&(k=b.return)&&k.call(b)}finally{if(C)throw C.error}return[7];case 13:return A=[["owner","=",p],["pepsico_material_approval","=",r],["current_step","=",u.current_step],["space","=",u.space],["approved","=","progess"]],_&&("kids_approval_status"===_?A.push(["type","=","Kids"]):"ca_approval_status"===_?A.push(["type","=","CA"]):"qc_approval_status"===_?A.push(["type","=","QC"]):"sra_approval_status"===_?A.push(["type","=","SRA"]):"ns_approval_status"===_?A.push(["type","=","NS"]):"legal_approval_status"===_?A.push(["type","=","Legal"]):"approval_status"===_?A.push(["type","=","guding"]):"pre_ns_approval_status"===_?A.push(["type","=","PreNS"]):"pre_legal_approval_status"===_?A.push(["type","=","PreLegal"]):"pre_sra_approval_status"===_?A.push(["type","=","PreSRA"]):"pre_ca_approval_status"===_?A.push(["type","=","PreCA"]):"pre_qc_approval_status"===_?A.push(["type","=","PreQC"]):"pre_approval_status"===_&&A.push(["type","=","Preguding"])),[4,e.getObject("pepsico_approval_process").find({filters:A,sort:"modified asc"})];case 14:I=N.sent(),N.label=15;case 15:N.trys.push([15,20,21,22]),P=a.__values(I),T=P.next(),N.label=16;case 16:return T.done?[3,19]:(E=T.value,[4,e.getObject("pepsico_approval_process").update(E._id,{submitted:new Date,modified:new Date,modified_by:p,approved:"pass",name:c,attachments:(0,n.mergeFileIds)(E.attachments,l)})]);case 17:N.sent(),N.label=18;case 18:return T=P.next(),[3,16];case 19:return[3,22];case 20:return j=N.sent(),L={error:j},[3,22];case 21:try{T&&!T.done&&(U=P.return)&&U.call(P)}finally{if(L)throw L.error}return[7];case 22:return[4,this.approvalContent.call(this,e,r,{approveField:_,materialStatus:s.ApprovalStatus.pass})];case 23:return N.sent(),[2,{success:!0,message:"已跳过该审批单的".concat(m,"审核")}]}})})}}},2458:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getDownloadMaterialsProgress=t.getUploadMaterialsProgress=void 0;var a=r(5584);t.getUploadMaterialsProgress={rest:{method:"GET",fullPath:"/api/pepsico-content/approve/:approveId/material/upload/progress"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s;return a.__generator(this,function(a){switch(a.label){case 0:return e.getObject=this.getObject,[4,this.getLogger()];case 1:return t=a.sent(),e.logger=t,[4,this.getOneDriveMaterials(e,e.params.approveId)];case 2:return(r=a.sent()).length<1?[2,{progress:100}]:(s=r.filter(function(e){return!0!==e.uploaded_to_onedrive}),[2,{progress:Math.round(100*(1-s.length/r.length))}])}})})}},t.getDownloadMaterialsProgress={rest:{method:"GET",fullPath:"/api/pepsico-content/approve/:approveId/material/download/progress"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s;return a.__generator(this,function(a){switch(a.label){case 0:return e.getObject=this.getObject,[4,this.getLogger()];case 1:return t=a.sent(),e.logger=t,[4,this.getOneDriveMaterials(e,e.params.approveId)];case 2:return(r=a.sent()).length<1?[2,{progress:100}]:(s=r.filter(function(e){return!0!==e.download_from_onedrive}),[2,{progress:Math.round(100*(1-s.length/r.length))}])}})})}}},2563:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getUrgentQuotaAction=t.urgentApproval=void 0;var a=r(5584);t.urgentApproval={rest:{method:"POST",fullPath:"/api/pepsico-content/approve/urgent/:recordId"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r;return a.__generator(this,function(a){switch(a.label){case 0:return e.getObject=this.getObject,t=e.meta.user,r=null==t?void 0:t.userId,[4,this.doUrgent(e,e.params.recordId,r)];case 1:return[2,a.sent()]}})})}},t.getUrgentQuotaAction={rest:{method:"GET",fullPath:"/api/pepsico-content/approve/urgent-quota/:recordId"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r;return a.__generator(this,function(a){switch(a.label){case 0:return e.getObject=this.getObject,t=e.meta.user,r=null==t?void 0:t.userId,[4,this.canUrgent(e,e.params.recordId,r)];case 1:return[2,a.sent()]}})})}}},2777:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.checkUserPasswordExpiration=void 0;var a=r(5584),s=r(4716);t.checkUserPasswordExpiration=function(e){return a.__awaiter(void 0,void 0,void 0,function(){var t,r,n,i,o,c,l,p,u,_,d,v,g,f,m,h,b,w,y,O,S,A,I,P,T,E,j,D,C,k;return a.__generator(this,function(R){switch(R.label){case 0:return R.trys.push([0,25,,26]),new Date,t=parseInt(process.env.PEPSICO_PASSWORD_EXPIRY_ADVANCE_DAYS||"5"),r=new Set,[4,e.getObject("spaces").find({filters:[["password_expiration_days",">",0]],fields:["_id","name","password_expiration_days"]})];case 1:n=R.sent(),R.label=2;case 2:R.trys.push([2,22,23,24]),i=a.__values(n),o=i.next(),R.label=3;case 3:if(o.done)return[3,21];c=o.value,l=c.password_expiration_days,p=[{type:"expired",daysOffset:l}],t>0&&t<l&&p.push({type:"warning",daysOffset:l-t}),R.label=4;case 4:R.trys.push([4,18,19,20]),j=void 0,u=a.__values(p),_=u.next(),R.label=5;case 5:return _.done?[3,17]:(d=_.value,v=s().subtract(d.daysOffset,"days").startOf("day").toDate(),g=s().subtract(d.daysOffset,"days").endOf("day").toDate(),console.log("[PasswordExpiry] Checking space '".concat(c.name,"' (expiration: ").concat(l," days, type: ").concat(d.type,"). Looking for passwords modified between ").concat(v," and ").concat(g)),[4,e.getObject("users").find({filters:[["password_modified_date",">=",v],["password_modified_date","<=",g],["is_valid","=",!0],["email","!=",null]],fields:["_id","name","email","password_modified_date"]})]);case 6:f=R.sent(),console.log("[PasswordExpiry] Found ".concat(f.length," users to notify in space ").concat(c.name," for ").concat(d.type)),R.label=7;case 7:R.trys.push([7,14,15,16]),C=void 0,m=a.__values(f),h=m.next(),R.label=8;case 8:if(h.done)return[3,13];if(b=h.value,r.has(b._id))return[3,12];R.label=9;case 9:return R.trys.push([9,11,,12]),w="",y="","expired"===d.type?(w="您的密码已过期 - ".concat(c.name),y="\n <p>尊敬的 ".concat(b.name,":</p>\n <p>根据 ").concat(c.name," 的安全策略,用户的密码有效期为 ").concat(l," 天。</p>\n <p>您的密码最后修改于 ").concat(s(b.password_modified_date).format("YYYY-MM-DD"),",目前已经过期。</p>\n <p>请尽快登录系统并修改您的密码。</p>\n <br/>\n <p>系统自动发送,请勿回复。</p>\n ")):(w="您的密码即将过期 - ".concat(c.name),y="\n <p>尊敬的 ".concat(b.name,":</p>\n <p>根据 ").concat(c.name," 的安全策略,用户的密码有效期为 ").concat(l," 天。</p>\n <p>您的密码最后修改于 ").concat(s(b.password_modified_date).format("YYYY-MM-DD"),",将于 ").concat(t," 天后过期。</p>\n <p>请尽快登录系统并修改您的密码。</p>\n <br/>\n <p>系统自动发送,请勿回复。</p>\n ")),[4,e.broker.call("@builder6/email.send",{to:b.email,subject:w,html:y})];case 10:return R.sent(),console.log("[PasswordExpiry] Email sent to ".concat(b.email," (").concat(b._id,") - ").concat(d.type)),r.add(b._id),[3,12];case 11:return O=R.sent(),console.error("[PasswordExpiry] Failed to send email to ".concat(b.email,":"),O),r.add(b._id),[3,12];case 12:return h=m.next(),[3,8];case 13:return[3,16];case 14:return S=R.sent(),C={error:S},[3,16];case 15:try{h&&!h.done&&(k=m.return)&&k.call(m)}finally{if(C)throw C.error}return[7];case 16:return _=u.next(),[3,5];case 17:return[3,20];case 18:return A=R.sent(),j={error:A},[3,20];case 19:try{_&&!_.done&&(D=u.return)&&D.call(u)}finally{if(j)throw j.error}return[7];case 20:return o=i.next(),[3,3];case 21:return[3,24];case 22:return I=R.sent(),T={error:I},[3,24];case 23:try{o&&!o.done&&(E=i.return)&&E.call(i)}finally{if(T)throw T.error}return[7];case 24:return[3,26];case 25:return P=R.sent(),console.error("[PasswordExpiry] Error:",P),[3,26];case 26:return[2]}})})}},2967:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.mergeFileIds=t.normalizeFileIds=void 0;var a=r(5584),s=r(7825);t.normalizeFileIds=function(e){if(!e)return[];var t=(0,s.isString)(e)?e.split(","):(0,s.isArray)(e)?e:[e];return(0,s.uniq)((0,s.compact)((0,s.map)(t,function(e){var t=(0,s.isString)(e)?e:e&&(e.value||e.id||e._id);return(0,s.isString)(t)?t.trim():t})))},t.mergeFileIds=function(e,r){return(0,s.uniq)(a.__spreadArray(a.__spreadArray([],a.__read((0,t.normalizeFileIds)(e)),!1),a.__read((0,t.normalizeFileIds)(r)),!1))}},2972:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.callChangePLSReview=t.callAIReview=void 0;var a=r(5584),s=r(8938),n=r(4809),i=process.env.PEPSICO_AI_HOST,o=process.env.PEPSICO_AI_API_KEY;t.callAIReview=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){var r,c,l,p,u,_,d;return a.__generator(this,function(a){switch(a.label){case 0:r="".concat(i,"/api/v1/review"),c=e.meta&&e.meta.user&&e.meta.user.userId,l=(new Date).getTime(),a.label=1;case 1:return a.trys.push([1,5,,8]),console.log("[调用 AI review API] 开始:",r,{approval_id:t},new Date),[4,s.default.post(r,{approval_id:t},{headers:{"X-API-Key":o}})];case 2:return p=a.sent(),u=p.data,d=(new Date).getTime()-l,console.log("[调用 AI review API]-".concat(t),u,"耗时:",d),[4,e.logger.info("[调用 AI review API]-".concat(t),u)];case 3:return a.sent(),[4,(0,n.writeSystemLog)(e,"info",{action:"ai-review",id:t,operator:c,url:r,status:"success",cost:d,response:u},"AI审核调用")];case 4:return a.sent(),[2,u];case 5:return _=a.sent(),d=(new Date).getTime()-l,console.error("[调用 AI review API]-".concat(t),_&&_.message,new Date),[4,e.logger.error("[调用 AI review API]-".concat(t),_&&_.message)];case 6:return a.sent(),[4,(0,n.writeSystemLog)(e,"error",{action:"ai-review",id:t,operator:c,url:r,status:"fail",cost:d,error:_&&_.message},"AI审核调用")];case 7:return a.sent(),[3,8];case 8:return[2]}})})},t.callChangePLSReview=function(e,t){var r=t.approvalId,c=t.materialId,l=t.plsFileId,p=t.newPlsFileIds;return a.__awaiter(void 0,void 0,void 0,function(){var t,u,_,d,v,g,f,m,h;return a.__generator(this,function(a){switch(a.label){case 0:t="".concat(i,"/api/v1/change_pls_review"),u=e.meta&&e.meta.user&&e.meta.user.userId,_=(new Date).getTime(),d=(Array.isArray(p)?p:[p]).filter(Boolean),v={approval_id:r,material_id:c,pls_file_id:l,new_pls_file_id:d.filter(function(e,t){return d.indexOf(e)===t})},a.label=1;case 1:return a.trys.push([1,5,,8]),console.log("[调用 AI change_pls_review API] 开始:",t,v,new Date),[4,s.default.post(t,v,{headers:{"X-API-Key":o}})];case 2:return g=a.sent(),f=g.data,h=(new Date).getTime()-_,console.log("[调用 AI change_pls_review API]-".concat(r),f,"耗时:",h),[4,e.logger.info("[调用 AI change_pls_review API]-".concat(r),f)];case 3:return a.sent(),[4,(0,n.writeSystemLog)(e,"info",{action:"change-pls-review",id:r,operator:u,url:t,request:v,status:"success",cost:h,response:f},"AI审核调用")];case 4:return a.sent(),[2,f];case 5:return m=a.sent(),h=(new Date).getTime()-_,console.error("[调用 AI change_pls_review API]-".concat(r),m&&m.message,new Date),[4,e.logger.error("[调用 AI change_pls_review API]-".concat(r),m&&m.message)];case 6:return a.sent(),[4,(0,n.writeSystemLog)(e,"error",{action:"change-pls-review",id:r,operator:u,url:t,request:v,status:"fail",cost:h,error:m&&m.message},"AI审核调用")];case 7:return a.sent(),[3,8];case 8:return[2]}})})}},3106:e=>{e.exports=require("zlib")},3180:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.submitPreReview=void 0;var a=r(5584);t.submitPreReview={rest:{method:"POST",fullPath:"/api/pepsico-content/approve/pre-review/submit/:recordId"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r;return a.__generator(this,function(a){switch(a.label){case 0:return e.getObject=this.getObject,[4,this.getLogger()];case 1:if(t=a.sent(),e.logger=t,"approved"!==(r=e.params.approvalStatus)&&"rejected"!==r)throw new Error("无效的审核状态, 必须是 approved 或 rejected");return[4,this.submitPreReviewContent(e,e.params.recordId,r)];case 2:return a.sent(),[2,{}]}})})}}},3200:e=>{e.exports=require("@steedos/service-package-loader")},3222:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.confirmDeployment=void 0;var a=r(5584);t.confirmDeployment={rest:{method:"POST",fullPath:"/api/pepsico-content/approve/confirm-deployment/:recordId"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r;return a.__generator(this,function(a){switch(a.label){case 0:return e.getObject=this.getObject,t=e.params.content_rule,[4,this.getLogger()];case 1:return r=a.sent(),e.logger=r,[4,this.confirmDeployment.call(this,e,e.params.recordId,{content_rule:t})];case 2:return a.sent(),[2,{}]}})})}}},3334:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.calculateSpotCheckRates=void 0;var a=r(5584);r(7825),t.calculateSpotCheckRates={rest:{method:"POST",fullPath:"/api/pepsico-content/calculateSpotCheckRates"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n,i,o,c,l,p,u,_,d,v,g,f,m,h,b,w,y,O;return a.__generator(this,function(S){switch(S.label){case 0:if(t=this.getObject("pepsico_material"),r=[],e.params.filters)try{r="string"==typeof e.params.filters?JSON.parse(e.params.filters):e.params.filters,Array.isArray(r)||(r=[])}catch(e){r=[]}return s=r.length>0,n=function(e,t){return 0===t.length?e:0===e.length?t:a.__spreadArray(a.__spreadArray(a.__spreadArray([],a.__read(e),!1),["and"],!1),a.__read(t),!1)},[4,this.getObject("organizations").find({filters:[["name","in",["NS","Legal","SRA","CA"]]],fields:["_id","name"]})];case 1:i=S.sent(),o={},i.forEach(function(e){return o[e.name]=e._id}),c=[["approval_status","=",!0],["kol_classification","=","Mid-tier"],["void_material","!=",!0]],l=[t.count({filters:s?r:c})],console.log("orgMap",o),p=["NS","Legal","SRA","CA"];try{for(u=a.__values(p),_=u.next();!_.done;_=u.next())d=_.value,o[d]?(v=[["spot_check_departments","=",o[d]],["kol_classification","=","Mid-tier"]],l.push(t.count({filters:s?n(r,[["spot_check_departments","=",o[d]]]):v}))):l.push(Promise.resolve(0))}catch(e){y={error:e}}finally{try{_&&!_.done&&(O=u.return)&&O.call(u)}finally{if(y)throw y.error}}return[4,Promise.all(l)];case 2:return g=a.__read.apply(void 0,[S.sent(),5]),f=g[0],m=g[1],h=g[2],b=g[3],w=g[4],[2,{pending_spot_count:f,ns_materials_quantity:m,legal_materials_quantity:h,sra_materials_quantity:b,ca_materials_quantity:w}]}})})}}},3833:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.sendDelayNotifications=t.processPostponeReviewNotifications=t.sendCcNotifications=t.sendNotifications=void 0;var a=r(5584),s=r(4716);t.sendNotifications=function(e,t,r,s){return a.__awaiter(void 0,void 0,void 0,function(){var n,i,o,c,l,p,u,_,d,v,g,f,m,h,b;return a.__generator(this,function(w){switch(w.label){case 0:console.log("sendNotifications",t._id,t.name,r,s),w.label=1;case 1:w.trys.push([1,21,,22]),w.label=2;case 2:w.trys.push([2,7,8,9]),n=a.__values(r),i=n.next(),w.label=3;case 3:return i.done?[3,6]:(o=i.value,[4,e.broker.call("notifications.add",{message:{name:"".concat(s,": ").concat(t.name),body:"",related_to:{o:"pepsico_material_approval",ids:[t._id]},related_name:t.name,from:t.owner,space:t.space},from:t.owner,to:o})]);case 4:w.sent(),w.label=5;case 5:return i=n.next(),[3,3];case 6:return[3,9];case 7:return c=w.sent(),f={error:c},[3,9];case 8:try{i&&!i.done&&(m=n.return)&&m.call(n)}finally{if(f)throw f.error}return[7];case 9:return[4,e.getObject("space_users").find({filters:[["user","=",r],["space","=",t.space]]})];case 10:l=w.sent(),w.label=11;case 11:w.trys.push([11,18,19,20]),p=a.__values(l),u=p.next(),w.label=12;case 12:if(u.done)return[3,17];if(!(_=u.value).email||!_.email_notification)return[3,16];w.label=13;case 13:return w.trys.push([13,15,,16]),[4,e.broker.call("@builder6/email.send",{to:_.email,subject:"".concat(s,": ").concat(t.name),html:'\n <p>您有一份文件需要查看和处理。请点击下面的链接来访问该文件:</p>\n <a href="'.concat(process.env.ROOT_URL,"/app/pepsico_content_review/pepsico_material_approval/view/").concat(t._id,'?side_object=pepsico_material_approval&side_listview_id=pending">').concat(t.name,"</a>\n ")})];case 14:return w.sent(),[3,16];case 15:return d=w.sent(),console.log(d),[3,16];case 16:return u=p.next(),[3,12];case 17:return[3,20];case 18:return v=w.sent(),h={error:v},[3,20];case 19:try{u&&!u.done&&(b=p.return)&&b.call(p)}finally{if(h)throw h.error}return[7];case 20:return console.timeEnd("sendNotifications-email: "+r.length),[3,22];case 21:return g=w.sent(),console.log(g),[3,22];case 22:return[2]}})})};var n={cc_added:{title:"审批单已抄送给您",intro:"您已被设为该内容审批单的抄送人,可随时查看审批进展。"},rejected:{title:"审批单已被驳回",intro:"抄送给您的审批单已被审核驳回,已退回发起人修订。"},awaiting_deployment:{title:"审批单已通过、待上线",intro:"抄送给您的审批单已全部审核通过,进入待上线阶段。"},completed:{title:"审批单审核已完成",intro:"抄送给您的审批单审核已完成。"}};t.sendCcNotifications=function(e,t,r,s){return a.__awaiter(void 0,void 0,void 0,function(){var i,o,c,l,p,u,_,d,v,g,f,m,h,b,w,y,O,S,A,I,P;return a.__generator(this,function(T){switch(T.label){case 0:o=(i=n[s]||n.cc_added).intro,"cc_added"===s&&(c=null===(P=null===(I=e.meta)||void 0===I?void 0:I.user)||void 0===P?void 0:P.name,o=c?"您已被".concat(c,"设置为该内容审批单的抄送人,可随时查看审批进展。"):i.intro),l="【抄送通知】".concat(i.title,":").concat(t.name),console.log("sendCcNotifications",t._id,t.name,r,s),T.label=1;case 1:T.trys.push([1,21,,22]),T.label=2;case 2:T.trys.push([2,7,8,9]),p=a.__values(r),u=p.next(),T.label=3;case 3:return u.done?[3,6]:(_=u.value,[4,e.broker.call("notifications.add",{message:{name:l,body:o,related_to:{o:"pepsico_material_approval",ids:[t._id]},related_name:t.name,from:t.owner,space:t.space},from:t.owner,to:_})]);case 4:T.sent(),T.label=5;case 5:return u=p.next(),[3,3];case 6:return[3,9];case 7:return d=T.sent(),y={error:d},[3,9];case 8:try{u&&!u.done&&(O=p.return)&&O.call(p)}finally{if(y)throw y.error}return[7];case 9:return[4,e.getObject("space_users").find({filters:[["user","=",r],["space","=",t.space]]})];case 10:v=T.sent(),T.label=11;case 11:T.trys.push([11,18,19,20]),g=a.__values(v),f=g.next(),T.label=12;case 12:if(f.done)return[3,17];if(!(m=f.value).email||!m.email_notification)return[3,16];T.label=13;case 13:return T.trys.push([13,15,,16]),[4,e.broker.call("@builder6/email.send",{to:m.email,subject:l,html:"\n <p>".concat(o,'</p>\n <p>如需查看审批单详情信息,请点击链接:<a href="').concat(process.env.ROOT_URL,"/app/pepsico_content_review/pepsico_material_approval/view/").concat(t._id,'?side_object=pepsico_material_approval&side_listview_id=all">').concat(t.name,"</a></p>\n ")})];case 14:return T.sent(),[3,16];case 15:return h=T.sent(),console.log(h),[3,16];case 16:return f=g.next(),[3,12];case 17:return[3,20];case 18:return b=T.sent(),S={error:b},[3,20];case 19:try{f&&!f.done&&(A=g.return)&&A.call(g)}finally{if(S)throw S.error}return[7];case 20:return[3,22];case 21:return w=T.sent(),console.log(w),[3,22];case 22:return[2]}})})},t.processPostponeReviewNotifications=function(e,r){return a.__awaiter(void 0,void 0,void 0,function(){var n,i,o,c,l,p,u,_,d,v;return a.__generator(this,function(g){switch(g.label){case 0:return console.time("processPostponeReviewNotifications"),n=s(),i=s(n).add(r,"minute").toDate(),[4,e.getObject("pepsico_review_postpone").directFind({filters:[["notification_sent","=",!1],["is_marker","!=",!0],["visible_after","<=",i]]})];case 1:o=g.sent(),console.log("processPostponeReviewNotifications count:",o.length),c=function(r){var s,n,i,o,c,l,p;return a.__generator(this,function(a){switch(a.label){case 0:return a.trys.push([0,8,,9]),s=r.pepsico_material_approval,n=r.postponed_user_ids?r.postponed_user_ids.split(",").filter(Boolean):[],s&&0!==n.length?[3,2]:[4,e.getObject("pepsico_review_postpone").directUpdate(r._id,{notification_sent:!0})];case 1:return a.sent(),[2,"continue"];case 2:return[4,e.getObject("pepsico_material_approval").findOne(s)];case 3:return(i=a.sent())?(o=i.review_postponed_users||[],c=o.filter(function(e){return!n.includes(e)}),[4,e.getObject("pepsico_material_approval").directUpdate(s,{review_postponed_users:c})]):[3,6];case 4:return a.sent(),"departmental_review"!==i.current_step&&"personnel_review"!==i.current_step?[3,6]:(l=n.filter(function(e){return Array.isArray(i.person_pending_approve)&&i.person_pending_approve.includes(e)})).length>0?[4,(0,t.sendNotifications)(e,i,l,"请审批")]:[3,6];case 5:a.sent(),a.label=6;case 6:return[4,e.getObject("pepsico_review_postpone").directUpdate(r._id,{notification_sent:!0})];case 7:return a.sent(),[3,9];case 8:return p=a.sent(),console.error("processPostponeReviewNotifications error for record",r._id,p),[3,9];case 9:return[2]}})},g.label=2;case 2:g.trys.push([2,7,8,9]),l=a.__values(o),p=l.next(),g.label=3;case 3:return p.done?[3,6]:(u=p.value,[5,c(u)]);case 4:g.sent(),g.label=5;case 5:return p=l.next(),[3,3];case 6:return[3,9];case 7:return _=g.sent(),d={error:_},[3,9];case 8:try{p&&!p.done&&(v=l.return)&&v.call(l)}finally{if(d)throw d.error}return[7];case 9:return console.timeEnd("processPostponeReviewNotifications"),[2]}})})},t.sendDelayNotifications=function(e,r){return a.__awaiter(void 0,void 0,void 0,function(){var n,i,o,c,l,p,u,_;return a.__generator(this,function(d){switch(d.label){case 0:return console.time("sendDelayNotifications"),n=s(),[4,e.getObject("pepsico_material_approval").find({filters:[["launch","=","postpone"],["postpone_launch_date",">=",n.toDate()],["postpone_launch_date","<=",s(n).add(r,"minute").toDate()]]})];case 1:i=d.sent(),console.log("sendDelayNotifications count:",i.length,{filters:[["launch","=","postpone"],["postpone_launch_date",">=",n.toDate()],["postpone_launch_date","<=",s(n).add(r,"minute").toDate()]]}),d.label=2;case 2:d.trys.push([2,7,8,9]),o=a.__values(i),c=o.next(),d.label=3;case 3:return c.done?[3,6]:(l=c.value).material_owner_id?[4,(0,t.sendNotifications)(e,l,[l.material_owner_id],"请确认上线")]:[3,5];case 4:d.sent(),d.label=5;case 5:return c=o.next(),[3,3];case 6:return[3,9];case 7:return p=d.sent(),u={error:p},[3,9];case 8:try{c&&!c.done&&(_=o.return)&&_.call(o)}finally{if(u)throw u.error}return[7];case 9:return console.timeEnd("sendDelayNotifications"),[2]}})})}},4425:e=>{e.exports=require("amis-formula")},4665:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.processPendingImageComparisons=t.triggerImageComparisonAsync=t.processBulkImageComparison=t.processImageComparison=t.storeComparisonResult=t.callImageComparisonAPI=t.prepareImageComparisonData=t.getMaterialVersions=t.getImageMaterials=t.isModifiedSubmission=void 0;var a=r(5584),s=r(8938),n=r(8398),i=process.env.PEPSICO_AI_HOST,o=process.env.PEPSICO_AI_API_KEY,c=["jpg","jpeg","png","gif","bmp","tiff","tif","svg","webp","ico","heif","heic"];t.isModifiedSubmission=function(e){return e.current_step===n.Step.submitter_revisions},t.getImageMaterials=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){return a.__generator(this,function(r){switch(r.label){case 0:return[4,e.getObject("pepsico_material").find({filters:[["pepsico_material_approval","=",t],["extension_type","in",c],["void_material","!=",!0],["is_bypassed","!=",!0]]})];case 1:return[2,r.sent()]}})})},t.getMaterialVersions=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){var e,r;return a.__generator(this,function(a){return e={current:t.material,previous:null,currentUrl:"",previousUrl:null},r=process.env.ROOT_URL||"",e.currentUrl="".concat(r,"/api/v6/files/cfs.files.filerecord/").concat(t.material),!e.previous&&t.material_original&&t.material_original!==t.material&&(e.previous=t.material_original,e.previousUrl="".concat(r,"/api/v6/files/cfs.files.filerecord/").concat(e.previous)),[2,e]})})},t.prepareImageComparisonData=function(e,t,r,s){return a.__awaiter(void 0,void 0,void 0,function(){var e,n;return a.__generator(this,function(a){return[2,{request:{image_url_a:r.previousUrl,image_url_b:r.currentUrl,threshold:null!==(e=null==s?void 0:s.threshold)&&void 0!==e?e:30,min_area:null!==(n=null==s?void 0:s.min_area)&&void 0!==n?n:50},metadata:{material_id:t._id,approval_id:t.pepsico_material_approval,name:t.name,current_file_id:r.current,previous_file_id:r.previous,extension_type:t.extension_type}}]})})},t.callImageComparisonAPI=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){var r,n,c,l,p,u,_,d,v,g,f,m,h,b;return a.__generator(this,function(a){switch(a.label){case 0:r=t.request,n=t.metadata,c="".concat(i,"/api/v1/compare_historical_images"),a.label=1;case 1:return a.trys.push([1,5,,8]),l=(new Date).getTime(),console.log("[调用 AI 图片对比 API] 开始:",c,{material_id:n.material_id,approval_id:n.approval_id,threshold:r.threshold,min_area:r.min_area},new Date),[4,s.default.post(c,r,{headers:{"X-API-Key":o,"Content-Type":"application/json"},timeout:12e4})];case 2:return p=a.sent(),u=p.data,console.log("[调用 AI 图片对比 API]-".concat(n.material_id),u,"耗时:",(new Date).getTime()-l),e.logger?[4,e.logger.info("[调用 AI 图片对比 API]-".concat(n.material_id),{data:u,duration:(new Date).getTime()-l})]:[3,4];case 3:a.sent(),a.label=4;case 4:return[2,u];case 5:return _=a.sent(),d=(null===(f=null===(g=_.response)||void 0===g?void 0:g.data)||void 0===f?void 0:f.detail)||(null===(h=null===(m=_.response)||void 0===m?void 0:m.data)||void 0===h?void 0:h.message)||_.message,v=null===(b=_.response)||void 0===b?void 0:b.status,console.error("[调用 AI 图片对比 API 失败]-".concat(n.material_id),"HTTP ".concat(v,":"),d,new Date),e.logger?[4,e.logger.error("[调用 AI 图片对比 API 失败]-".concat(n.material_id),{endpoint:c,body:r,error:d,statusCode:v,stack:_.stack})]:[3,7];case 6:a.sent(),a.label=7;case 7:throw _;case 8:return[2]}})})},t.storeComparisonResult=function(e,t,r){return a.__awaiter(void 0,void 0,void 0,function(){var s,n;return a.__generator(this,function(a){switch(a.label){case 0:return a.trys.push([0,4,,8]),s="too_many_differences"===r.status,[4,e.getObject("pepsico_material").directUpdate(t,{result_image:r.result_image,image_comparison_result:JSON.stringify({status:r.status,result_image:r.result_image,diff_regions:r.diff_regions||[],ssim_score:r.ssim_score,diff_count:r.diff_count,message:r.message||void 0}),image_comparison_status:s?"too_many_differences":"completed",image_comparison_at:new Date})];case 1:return a.sent(),console.log("[存储图片对比结果成功]-".concat(t),{status:r.status,diff_count:r.diff_count,ssim_score:r.ssim_score}),e.logger?[4,e.logger.info("[存储图片对比结果成功]-".concat(t),{status:r.status,diff_count:r.diff_count,ssim_score:r.ssim_score,has_result_image:!!r.result_image})]:[3,3];case 2:a.sent(),a.label=3;case 3:return[3,8];case 4:return n=a.sent(),console.error("[存储图片对比结果失败]-".concat(t),n.message),e.logger?[4,e.logger.error("[存储图片对比结果失败]-".concat(t),{error:n.message})]:[3,6];case 5:a.sent(),a.label=6;case 6:return[4,e.getObject("pepsico_material").directUpdate(t,{image_comparison_status:"failed",image_comparison_error:n.message,image_comparison_at:new Date})];case 7:throw a.sent(),n;case 8:return[2]}})})},t.processImageComparison=function(e,r){return a.__awaiter(void 0,void 0,void 0,function(){var s,n,i,o;return a.__generator(this,function(a){switch(a.label){case 0:return a.trys.push([0,7,,8]),[4,(0,t.getMaterialVersions)(e,r)];case 1:return(s=a.sent()).previous?[3,3]:(console.log("[跳过图片对比]-".concat(r._id,": 没有历史版本")),[4,e.getObject("pepsico_material").directUpdate(r._id,{image_comparison_status:"skipped",image_comparison_reason:"No previous version found"})]);case 2:return a.sent(),[2];case 3:return[4,(0,t.prepareImageComparisonData)(e,r,s)];case 4:return n=a.sent(),[4,(0,t.callImageComparisonAPI)(e,n)];case 5:return i=a.sent(),[4,(0,t.storeComparisonResult)(e,r._id,i)];case 6:return a.sent(),[2,i];case 7:throw o=a.sent(),console.error("[处理图片对比失败]-".concat(r._id),o.message),o;case 8:return[2]}})})},t.processBulkImageComparison=function(e,r){return a.__awaiter(void 0,void 0,void 0,function(){var s,n,i,o,c,l,p,u,_,d,v,g,f;return a.__generator(this,function(m){switch(m.label){case 0:return m.trys.push([0,16,,19]),[4,(0,t.getImageMaterials)(e,r)];case 1:if(s=m.sent(),console.log("[批量图片对比]-".concat(r,": 发现 ").concat(s.length," 个图片素材")),0===s.length)return[2,{total:0,processed:0,skipped:0,failed:0}];n=0,i=0,o=0,m.label=2;case 2:m.trys.push([2,12,13,14]),c=a.__values(s),l=c.next(),m.label=3;case 3:if(l.done)return[3,11];p=l.value,m.label=4;case 4:return m.trys.push([4,9,,10]),[4,(0,t.getMaterialVersions)(e,p)];case 5:return m.sent().previous?[3,7]:(i++,console.log("[跳过图片对比]-".concat(p._id,": 没有历史版本")),[4,e.getObject("pepsico_material").directUpdate(p._id,{image_comparison_status:"skipped",image_comparison_reason:"No previous version found"})]);case 6:return m.sent(),[3,10];case 7:return[4,(0,t.processImageComparison)(e,p)];case 8:return m.sent(),n++,[3,10];case 9:return u=m.sent(),o++,console.error("[图片对比失败]-".concat(p._id),u.message),[3,10];case 10:return l=c.next(),[3,3];case 11:return[3,14];case 12:return _=m.sent(),g={error:_},[3,14];case 13:try{l&&!l.done&&(f=c.return)&&f.call(c)}finally{if(g)throw g.error}return[7];case 14:return d={total:s.length,processed:n,skipped:i,failed:o},console.log("[批量图片对比完成]-".concat(r),d),[4,e.getObject("pepsico_material_approval").directUpdate(r,{image_comparison_status:o>0?"partial":"completed",image_comparison_stats:JSON.stringify(d),image_comparison_at:new Date})];case 15:return m.sent(),[2,d];case 16:return v=m.sent(),console.error("[批量图片对比失败]-".concat(r),v.message),e.logger?[4,e.logger.error("[批量图片对比失败]-".concat(r),{error:v.message})]:[3,18];case 17:m.sent(),m.label=18;case 18:throw v;case 19:return[2]}})})},t.triggerImageComparisonAsync=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){var r;return a.__generator(this,function(a){switch(a.label){case 0:return a.trys.push([0,2,,3]),[4,e.getObject("pepsico_material_approval").directUpdate(t,{image_comparison_status:"pending",image_comparison_at:new Date})];case 1:return a.sent(),console.log("[图片对比任务已标记为pending]-".concat(t)),[3,3];case 2:return r=a.sent(),console.error("[标记图片对比任务失败]-".concat(t),r.message),[3,3];case 3:return[2]}})})},t.processPendingImageComparisons=function(e,r){return void 0===r&&(r=3),a.__awaiter(void 0,void 0,void 0,function(){var s,n,i,o,c,l,p,u,_,d;return a.__generator(this,function(v){switch(v.label){case 0:return v.trys.push([0,16,,19]),[4,e.getObject("pepsico_material_approval").find({filters:[["image_comparison_status","in",["pending","failed"]]],top:10,sort:"modified desc"})];case 1:s=v.sent(),console.log("定时任务[图片对比] count: ".concat(s.length),{approvals:s.map(function(e){return{_id:e._id,status:e.image_comparison_status,failedCount:e.image_comparison_failed_count}})}),v.label=2;case 2:v.trys.push([2,13,14,15]),n=a.__values(s),i=n.next(),v.label=3;case 3:if(i.done)return[3,12];if(o=i.value,(c=o.image_comparison_failed_count||0)>=r)return console.log("[图片对比跳过]-".concat(o._id,": 已达最大重试次数 ").concat(r)),[3,11];v.label=4;case 4:return v.trys.push([4,7,,11]),[4,e.getObject("pepsico_material_approval").directUpdate(o._id,{image_comparison_status:"processing"})];case 5:return v.sent(),[4,(0,t.processBulkImageComparison)(e,o._id)];case 6:return v.sent(),[3,11];case 7:return l=v.sent(),console.error("[图片对比任务失败]-".concat(o._id),l.message),[4,e.getObject("pepsico_material_approval").directUpdate(o._id,{image_comparison_status:"failed",$inc:{image_comparison_failed_count:1}})];case 8:return v.sent(),e.logger?[4,e.logger.error("[图片对比任务失败]-".concat(o._id),{error:l.message,failedCount:c+1})]:[3,10];case 9:v.sent(),v.label=10;case 10:return[3,11];case 11:return i=n.next(),[3,3];case 12:return[3,15];case 13:return p=v.sent(),_={error:p},[3,15];case 14:try{i&&!i.done&&(d=n.return)&&d.call(n)}finally{if(_)throw _.error}return[7];case 15:return[3,19];case 16:return u=v.sent(),console.error("[定时任务-图片对比] 执行异常:",u.message),e.logger?[4,e.logger.error("[定时任务-图片对比] 执行异常",{error:u.message})]:[3,18];case 17:v.sent(),v.label=18;case 18:return[3,19];case 19:return[2]}})})}},4676:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.bypassMaterial=void 0;var a=r(5584),s=r(8398),n=r(7825);t.bypassMaterial={rest:{method:"POST",fullPath:"/api/pepsico-content/approve/material/bypass/:recordId"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,i,o,c,l,p,u,_,d,v,g,f,m,h,b,w,y,O,S,A,I;return a.__generator(this,function(P){switch(P.label){case 0:return e.getObject=this.getObject,[4,this.getLogger()];case 1:return t=P.sent(),e.logger=t,r=e.params.recordId,i=e.params.reason,o=e.meta.user.userId,[4,e.getObject("pepsico_material").findOne(r)];case 2:if(!(c=P.sent()))throw new Error("未找到素材");if(c.void_material)throw new Error("已作废的素材无需跳过");return[4,e.getObject("pepsico_material_approval").findOne(c.pepsico_material_approval)];case 3:if(!(l=P.sent()))throw new Error("未找到关联的审批单");if(l.current_step===s.Step.conclusion||l.current_step===s.Step.draft)throw new Error("当前步骤不支持跳过操作");if(p="",u="",_="",d="",v="",g="",l.current_step===s.Step.departmental_review&&(n.includes(l.handler_preca||(l.pre_ca_reviewer?[l.pre_ca_reviewer]:[]),o)&&"pass"!==l.pre_ca_approval_status&&!0!==l.pre_ca_approval_status?(p="pre_ca_approval_status",g="CA预审"):n.includes(l.handler_presra||(l.pre_sra_reviewer?[l.pre_sra_reviewer]:[]),o)&&"pass"!==l.pre_sra_approval_status&&!0!==l.pre_sra_approval_status?(p="pre_sra_approval_status",g="SRA预审"):n.includes(l.handler_prens||(l.pre_ns_reviewer?[l.pre_ns_reviewer]:[]),o)&&"pass"!==l.pre_ns_approval_status&&!0!==l.pre_ns_approval_status?(p="pre_ns_approval_status",g="NS预审"):n.includes(l.handler_prelegal||(l.pre_legal_reviewer?[l.pre_legal_reviewer]:[]),o)&&"pass"!==l.pre_legal_approval_status&&!0!==l.pre_legal_approval_status?(p="pre_legal_approval_status",g="Legal预审"):"yes"===l.ec_has_detail_page&&n.includes(l.handler_preqc||(l.pre_qc_reviewer?[l.pre_qc_reviewer]:[]),o)&&"pass"!==l.pre_qc_approval_status&&!0!==l.pre_qc_approval_status?(p="pre_qc_approval_status",g="QC预审"):n.includes(l.handler_ca||l.ca_reviewer,o)&&!0!==l.ca_bypassed&&"pass"!==l.ca_approval_status&&!0!==l.ca_approval_status&&!1!==l.ca_approval_status?(p="ca_approval_status",u="ca_bypassed",_="ca_bypassed_by",d="ca_bypass_reason",v="ca_bypassed_at",g="CA"):n.includes(l.handler_sra||l.sra_reviewer,o)&&!0!==l.sra_bypassed&&"pass"!==l.sra_approval_status&&!0!==l.sra_approval_status&&!1!==l.sra_approval_status?(p="sra_approval_status",u="sra_bypassed",_="sra_bypassed_by",d="sra_bypass_reason",v="sra_bypassed_at",g="SRA"):n.includes(l.handler_ns||l.ns_reviewer,o)&&!0!==l.ns_bypassed&&"pass"!==l.ns_approval_status&&!0!==l.ns_approval_status&&!1!==l.ns_approval_status?(p="ns_approval_status",u="ns_bypassed",_="ns_bypassed_by",d="ns_bypass_reason",v="ns_bypassed_at",g="NS"):n.includes(l.handler_legal||l.legal_reviewer,o)&&!0!==l.legal_bypassed&&"pass"!==l.legal_approval_status&&!0!==l.legal_approval_status&&!1!==l.legal_approval_status?(p="legal_approval_status",u="legal_bypassed",_="legal_bypassed_by",d="legal_bypass_reason",v="legal_bypassed_at",g="Legal"):"yes"===l.ec_has_detail_page&&n.includes(l.handler_qc||l.qc_reviewer,o)&&!0!==l.qc_bypassed&&"pass"!==l.qc_approval_status&&!0!==l.qc_approval_status&&!1!==l.qc_approval_status&&(p="qc_approval_status",u="qc_bypassed",_="qc_bypassed_by",d="qc_bypass_reason",v="qc_bypassed_at",g="QC")),l.current_step===s.Step.personnel_review&&(n.includes(l.handler_preguding||(l.pre_reviewer?[l.pre_reviewer]:[]),o)&&"pass"!==l.pre_approval_status&&!0!==l.pre_approval_status?(p="pre_approval_status",g="固定人员预审"):n.includes(l.handler_personnel||l.reviewer,o)&&(p="approval_status",u="approval_bypassed",_="approval_bypassed_by",d="approval_bypass_reason",v="approval_bypassed_at",g="固定人员")),""===p&&n.includes(l.handler_kids||l.kids_reviewer,o)&&(p="kids_approval_status",u="kids_bypassed",_="kids_bypassed_by",d="kids_bypass_reason",v="kids_bypassed_at",g="Kids"),!p)throw new Error("您不是当前步骤的审核人,无权限跳过");if(!0===c[p]||"pass"===c[p])throw new Error("该素材的".concat(g,"审核已完成"));return(O={})[p]="pass",f=O,u&&(f[u]=!0,f[_]=o,f[d]=i,f[v]=new Date),[4,e.getObject("pepsico_material").directUpdate(r,f)];case 4:return P.sent(),t.info("User ".concat(o," (").concat(g,") bypassed material ").concat(r)),[4,e.getObject("pepsico_material").find({filters:[["pepsico_material_approval","=",c.pepsico_material_approval],["void_material","!=",!0]]})];case 5:m=P.sent(),h=!1;try{for(b=a.__values(m),w=b.next();!w.done;w=b.next())if(!0!==(y=w.value)[p]&&"pass"!==y[p]){h=!0;break}}catch(e){S={error:e}}finally{try{w&&!w.done&&(A=b.return)&&A.call(b)}finally{if(S)throw S.error}}return h||!u?[3,7]:[4,e.getObject("pepsico_material_approval").directUpdate(l._id,(I={},I[u]=!0,I[_]=o,I[d]=i,I[v]=new Date,I))];case 6:P.sent(),t.info("User ".concat(o," (").concat(g,") also marked approval ").concat(l._id," as bypassed (no pending materials)")),P.label=7;case 7:return[4,this.submitMaterial.call(this,e,r,"pass")];case 8:return P.sent(),[2,{success:!0,message:"已跳过该素材的".concat(g,"审核")}]}})})}}},4716:e=>{e.exports=require("moment")},4727:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.rule=void 0;var a=r(5584);t.rule={rest:{method:"GET",fullPath:"/api/pepsico-content/approve/rule"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t;return a.__generator(this,function(r){switch(r.label){case 0:return e.getObject=this.getObject,[4,this.getLogger()];case 1:return t=r.sent(),e.logger=t,[2,this.getDefApproverStepRule.call(this,e)]}})})}}},4754:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.terminate=void 0;var a=r(5584);t.terminate={rest:{method:"POST",fullPath:"/api/pepsico-content/approve/terminate/:recordId"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t;return a.__generator(this,function(r){switch(r.label){case 0:return e.getObject=this.getObject,[4,this.getLogger()];case 1:return t=r.sent(),e.logger=t,[4,this.terminate(e,e.params.recordId,e.params.description,e.params.attachments)];case 2:return r.sent(),[2,{}]}})})}}},4809:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getPLSReviewGroups=t.getActivePLSOptions=t.replaceApprovalPLSSource=t.invalidateApprovalAIReviews=t.invalidatePLSReviews=t.getMaterialReviewPermissions=t.canAdoptReview=t.isApprovalReviewer=t.callExtractPLSRulesPriority=t.callExtractPLSRules=t.writeSystemLog=t.logPLSChange=t.setPLSFileActive=t.createApplicationPLSFiles=t.batchCreatePLSFiles=t.buildDuplicatePLSMessage=t.isVersionedForm=t.findDuplicatePLSFilesSafely=t.findDuplicatePLSFiles=t.readFileBuffer=t.DUPLICATE_PLS_MESSAGE=t.resetPLSFileAIExtract=t.backfillPLSFileTitles=t.scanPLSFiles=t.MAX_PLS_SOURCE_TOTAL=t.MAX_PLS_SOURCE_PER_MODE=void 0;var a=r(5584),s=r(7825),n=r(8749).createHash,i=r(8938),o=process.env.PEPSICO_AI_HOST,c=process.env.PEPSICO_AI_API_KEY,l="pepsico_ai_review",p=function(e){return!!e&&!1!==e.is_active},u=function(e){var t=e&&e.evidence_image;return!t||s.includes(String(t),"/")?e:Object.assign({},e,{evidence_image:"/api/files/images/".concat(t)})},_=["departmental_review","personnel_review"];t.MAX_PLS_SOURCE_PER_MODE=10,t.MAX_PLS_SOURCE_TOTAL=2*t.MAX_PLS_SOURCE_PER_MODE;var d=["awaiting_deployment","conclusion"],v=function(e){for(var t=String(e||""),r=0;r<5;r++){var a=s.unescape(t);if(a===t)break;t=a}return t},g=function(e){return(e&&e.original&&e.original.name||"").replace(/\.pdf$/i,"")};t.scanPLSFiles=function(e){return a.__awaiter(void 0,void 0,void 0,function(){var t,r,s,n,i,o,c,l,p,u,_,d,v,f,m,h,b,w,y,O,S,A,I,P,T,E,j,D,C,k,R,L;return a.__generator(this,function(U){switch(U.label){case 0:return t="",console.error("[scan pls files]: start ",new Date),[4,e.getObject("pepsico_material_approval").directFind({filters:[["current_step","in",["awaiting_deployment","conclusion"]],["scanned_pls","!=",!0]]})];case 1:r=U.sent(),console.error("[scan pls files]: approvals.length",r.length),s=0,U.label=2;case 2:U.trys.push([2,35,36,37]),n=a.__values(r),i=n.next(),U.label=3;case 3:if(i.done)return[3,34];o=i.value,U.label=4;case 4:return U.trys.push([4,31,,33]),t=o._id,[4,e.getObject("pepsico_material").directFind({filters:[["pepsico_material_approval","=",t]]})];case 5:c=U.sent(),console.error("[scan pls files]: approvalId",t),U.label=6;case 6:U.trys.push([6,18,19,20]),j=void 0,l=a.__values(c),p=l.next(),U.label=7;case 7:return p.done?[3,17]:(u=p.value,_=[["metadata/record_id","=","objects:pepsico_material:".concat(u._id)],["metadata/object_name","=","b6_rooms"],["original/type","=","application/pdf"],["original/name","contains","PLS"]],console.error("[scan pls files]: approvalId",t,"material-".concat(u._id),"filters: ",JSON.stringify(_)),[4,e.getObject("cfs_files_filerecord").directFind({filters:_})]);case 8:d=U.sent(),console.error("[scan pls files]: approvalId",t,"material-".concat(u._id),"files.length: ",d.length),U.label=9;case 9:U.trys.push([9,14,15,16]),C=void 0,v=a.__values(d),f=v.next(),U.label=10;case 10:return f.done?[3,13]:(m=f.value,[4,e.getObject("pepsico_km_pls_file").directInsert({name:g(m),ai_extract:!1,pls_file:m._id,pepsico_material:u._id,pepsico_material_approval:t,space:o.space,created:new Date,modified:new Date})]);case 11:U.sent(),s++,U.label=12;case 12:return f=v.next(),[3,10];case 13:return[3,16];case 14:return h=U.sent(),C={error:h},[3,16];case 15:try{f&&!f.done&&(k=v.return)&&k.call(v)}finally{if(C)throw C.error}return[7];case 16:return p=l.next(),[3,7];case 17:return[3,20];case 18:return b=U.sent(),j={error:b},[3,20];case 19:try{p&&!p.done&&(D=l.return)&&D.call(l)}finally{if(j)throw j.error}return[7];case 20:if(!(o.pls_file&&o.pls_file.length>0))return[3,29];U.label=21;case 21:U.trys.push([21,27,28,29]),R=void 0,w=a.__values(o.pls_file),y=w.next(),U.label=22;case 22:return y.done?[3,26]:(O=y.value,[4,e.getObject("cfs_files_filerecord").directFind({filters:[["_id","=",O]],fields:["original"]})]);case 23:return S=U.sent(),[4,e.getObject("pepsico_km_pls_file").directInsert({name:g(S&&S[0]),ai_extract:!1,pls_file:O,pepsico_material_approval:t,space:o.space,created_by:o.created_by,created:new Date,modified:new Date})];case 24:U.sent(),U.label=25;case 25:return y=w.next(),[3,22];case 26:return[3,29];case 27:return A=U.sent(),R={error:A},[3,29];case 28:try{y&&!y.done&&(L=w.return)&&L.call(w)}finally{if(R)throw R.error}return[7];case 29:return[4,e.getObject("pepsico_material_approval").directUpdate(t,{scanned_pls:!0,scanned_pls_date:new Date})];case 30:return U.sent(),[3,33];case 31:return I=U.sent(),console.error("[scan pls files]-".concat(t),I,new Date),[4,e.logger.error("[scan pls files]-".concat(t),I.message)];case 32:return U.sent(),[3,33];case 33:return i=n.next(),[3,3];case 34:return[3,37];case 35:return P=U.sent(),T={error:P},[3,37];case 36:try{i&&!i.done&&(E=n.return)&&E.call(n)}finally{if(T)throw T.error}return[7];case 37:return[2,s]}})})},t.backfillPLSFileTitles=function(e){return a.__awaiter(void 0,void 0,void 0,function(){var t,r,n,i,o,c,l,p,u,_,d,v,f,m,h;return a.__generator(this,function(b){switch(b.label){case 0:return t=e.getObject("pepsico_km_pls_file"),r=e.getObject("cfs_files_filerecord"),[4,t.directFind({fields:["_id","name","pls_file"]})];case 1:n=b.sent(),console.error("[backfill pls title]: records.length",n.length,new Date),i=0,o=0,b.label=2;case 2:b.trys.push([2,11,12,13]),c=a.__values(n),l=c.next(),b.label=3;case 3:if(l.done)return[3,10];p=l.value,b.label=4;case 4:return b.trys.push([4,7,,9]),(u=s.isArray(p.pls_file)?p.pls_file[0]:p.pls_file)?[4,r.directFind({filters:[["_id","=",u]],fields:["original"]})]:(o++,[3,9]);case 5:return _=b.sent(),(d=g(_&&_[0]))&&d!==p.name?[4,t.directUpdate(p._id,{name:d,modified:new Date})]:(o++,[3,9]);case 6:return b.sent(),i++,[3,9];case 7:return v=b.sent(),o++,console.error("[backfill pls title]-".concat(p._id),v&&v.message,new Date),[4,e.logger.error("[backfill pls title]-".concat(p._id),v&&v.message)];case 8:return b.sent(),[3,9];case 9:return l=c.next(),[3,3];case 10:return[3,13];case 11:return f=b.sent(),m={error:f},[3,13];case 12:try{l&&!l.done&&(h=c.return)&&h.call(c)}finally{if(m)throw m.error}return[7];case 13:return console.error("[backfill pls title]: done updated=".concat(i," skipped=").concat(o),new Date),[2,{total:n.length,updated:i,skipped:o}]}})})},t.resetPLSFileAIExtract=function(e){return a.__awaiter(void 0,void 0,void 0,function(){var t,r,s;return a.__generator(this,function(a){switch(a.label){case 0:return[4,(t=e.getObject("pepsico_km_pls_file")).directFind({filters:[["ai_extract","!=",!1]],fields:["_id"]})];case 1:return r=a.sent(),console.error("[reset pls ai_extract]: records.length",r.length,new Date),0===r.length?[2,{total:0,updated:0}]:(s=r.map(function(e){return e._id}),[4,t.directUpdateMany(["_id","in",s],{ai_extract:!1,modified:new Date})]);case 2:return a.sent(),console.error("[reset pls ai_extract]: done updated=".concat(r.length),new Date),[2,{total:r.length,updated:r.length}]}})})},t.DUPLICATE_PLS_MESSAGE="PLS文档已存在,请选择对应PLS知识库中对应pls文件";var f=function(e){return String(e||"").replace(/\.pdf$/i,"").replace(/\s+/g," ").trim().toLowerCase()};t.readFileBuffer=function(e,t,r){return void 0===r&&(r=1e4),a.__awaiter(void 0,void 0,void 0,function(){var n,i,o,c;return a.__generator(this,function(a){switch(a.label){case 0:if(!(n=e&&e.broker)||!s.isFunction(n.call))return[2,null];i=null,a.label=1;case 1:return a.trys.push([1,3,4,5]),[4,Promise.race([n.call("~packages-@steedos/service-files.getFileById",{fileId:t,collectionName:"files"}),new Promise(function(e){i=setTimeout(function(){return e(null)},r)})])];case 2:return[2,(o=a.sent())?Buffer.from(o):null];case 3:return c=a.sent(),console.error("[pls duplicate] 读取文件失败",t,c&&c.message),[2,null];case 4:return i&&clearTimeout(i),[7];case 5:return[2]}})})};var m=function(e,r,s){return a.__awaiter(void 0,void 0,void 0,function(){var i,o,c,l,p;return a.__generator(this,function(a){switch(a.label){case 0:return(i=r&&r._id)?s.has(i)?[2,s.get(i)]:(o=r.original&&r.original.md5)?(c=String(o).toLowerCase(),s.set(i,c),[2,c]):(r.original&&r.original.size||0)>52428800?(s.set(i,""),[2,""]):[4,(0,t.readFileBuffer)(e,i)]:[2,""];case 1:return l=a.sent(),p=l?n("md5").update(l).digest("hex"):"",s.set(i,p),[2,p]}})})};t.findDuplicatePLSFiles=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){var r,n,i,o,c,l,u,_,d,v,g,h,b,w,y,O,S,A,I,P,T,E,j,D,C,k,R,L,U,N,M,x,F,q,G,B,V,H,J,Q,Y,z,K,$,Z;return a.__generator(this,function(X){switch(X.label){case 0:return 0===(r=s.uniq(s.compact(t||[]))).length?[2,[]]:(n=e.getObject("cfs_files_filerecord"),i=e.getObject("pepsico_km_pls_file"),[4,n.directFind({filters:[["_id","in",r]],fields:["_id","original"]})]);case 1:return(o=X.sent())&&0!==o.length?[4,i.directFind({fields:["_id","name","pls_file","is_active"],top:1e4})]:[2,[]];case 2:return c=X.sent(),l=s.filter(c||[],function(e){if(!p(e))return!1;var t=s.isArray(e.pls_file)?e.pls_file[0]:e.pls_file;return!!t&&!s.includes(r,t)}),0===l.length?[2,[]]:(u=s.uniq(s.compact(s.map(l,function(e){return s.isArray(e.pls_file)?e.pls_file[0]:e.pls_file}))),[4,n.directFind({filters:[["_id","in",u]],fields:["_id","original"]})]);case 3:_=X.sent(),d=s.keyBy(_||[],"_id"),v=new Map,g=new Map;try{for(h=a.__values(l),b=h.next();!b.done;b=h.next()){w=b.value,y=s.isArray(w.pls_file)?w.pls_file[0]:w.pls_file,O=d[y],S=s.uniq(s.compact([f(w.name),f(O&&O.original&&O.original.name)]));try{for(Q=void 0,A=a.__values(S),I=A.next();!I.done;I=A.next())P=I.value,v.has(P)||v.set(P,w)}catch(e){Q={error:e}}finally{try{I&&!I.done&&(Y=A.return)&&Y.call(A)}finally{if(Q)throw Q.error}}(U=O&&O.original&&O.original.size||0)>0&&((T=g.get(U)||[]).push({record:w,file:O}),g.set(U,T))}}catch(e){H={error:e}}finally{try{b&&!b.done&&(J=h.return)&&J.call(h)}finally{if(H)throw H.error}}E=new Map,j=[],X.label=4;case 4:X.trys.push([4,16,17,18]),D=a.__values(o),C=D.next(),X.label=5;case 5:return C.done?[3,15]:(k=C.value,R=k.original&&k.original.name||"",(L=v.get(f(R)))?(j.push({fileId:k._id,fileName:R,reason:"name",matchedId:L._id,matchedName:L.name}),[3,14]):(U=k.original&&k.original.size||0,0===(N=U>0&&g.get(U)||[]).length||N.length>20?[3,14]:[4,m(e,k,E)]));case 6:if(!(M=X.sent()))return[3,14];X.label=7;case 7:X.trys.push([7,12,13,14]),$=void 0,x=a.__values(N),F=x.next(),X.label=8;case 8:return F.done?[3,11]:(q=F.value,[4,m(e,q.file,E)]);case 9:if((G=X.sent())&&G===M)return j.push({fileId:k._id,fileName:R,reason:"content",matchedId:q.record._id,matchedName:q.record.name}),[3,11];X.label=10;case 10:return F=x.next(),[3,8];case 11:return[3,14];case 12:return B=X.sent(),$={error:B},[3,14];case 13:try{F&&!F.done&&(Z=x.return)&&Z.call(x)}finally{if($)throw $.error}return[7];case 14:return C=D.next(),[3,5];case 15:return[3,18];case 16:return V=X.sent(),z={error:V},[3,18];case 17:try{C&&!C.done&&(K=D.return)&&K.call(D)}finally{if(z)throw z.error}return[7];case 18:return[2,j]}})})},t.findDuplicatePLSFilesSafely=function(e,r){return a.__awaiter(void 0,void 0,void 0,function(){var n;return a.__generator(this,function(a){switch(a.label){case 0:return a.trys.push([0,2,,5]),[4,(0,t.findDuplicatePLSFiles)(e,r)];case 1:return[2,a.sent()];case 2:return n=a.sent(),console.error("[pls duplicate] 查重失败, 本次放行",n&&n.message),e&&e.logger&&s.isFunction(e.logger.warn)?[4,e.logger.warn("[PLS查重失败, 本次放行]: ".concat(n&&n.message),{objectName:"pepsico_km_pls_file",file_ids:r})]:[3,4];case 3:a.sent(),a.label=4;case 4:return[2,[]];case 5:return[2]}})})},t.isVersionedForm=function(e){return!!s.trim(e&&e.form_version)},t.buildDuplicatePLSMessage=function(e){var r=s.uniq(s.compact(s.map(e||[],"fileName")));return"".concat(r.map(function(e){return"「".concat(e,"」")}).join("")).concat(t.DUPLICATE_PLS_MESSAGE)},t.batchCreatePLSFiles=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){var r,n,i,o,c,l,p,u,_,d,v,g,f,m,h,b,w,y,O,S,A,I;return a.__generator(this,function(P){switch(P.label){case 0:if(r=e.meta.user,!(n=null==r?void 0:r.spaceId))throw new Error("无法获取当前工作区");return 0===(i=s.uniq(s.compact(t||[]))).length?[2,{created:0,reused:0,skipped:0,records:[]}]:(o=e.getObject("cfs_files_filerecord"),[4,(c=e.getObject("pepsico_km_pls_file")).directFind({filters:[["pls_file","in",i]],fields:["_id","name","pls_file"]})]);case 1:l=P.sent(),p=s.keyBy(l||[],"pls_file"),u=[],_=[],P.label=2;case 2:P.trys.push([2,8,9,10]),d=a.__values(i),v=d.next(),P.label=3;case 3:return v.done?[3,7]:(g=v.value,(f=p[g])?(u.push({id:f._id,name:f.name,fileId:g,isNew:!1}),[3,6]):[4,o.directFind({filters:[["_id","=",g]]})]);case 4:return m=P.sent(),h=m&&m[0],b=h&&h.original&&h.original.name||"","application/pdf"===(h&&h.original&&h.original.type||"")||/\.pdf$/i.test(b)?(w=new Date,[4,c.directInsert({name:b.replace(/\.pdf$/i,""),ai_extract:!1,pls_file:g,space:n,owner:r.userId,created:w,created_by:r.userId,modified:w,modified_by:r.userId})]):(_.push(g),[3,6]);case 5:y=P.sent(),u.push({id:y._id,name:y.name||b.replace(/\.pdf$/i,""),fileId:g,isNew:!0}),P.label=6;case 6:return v=d.next(),[3,3];case 7:return[3,10];case 8:return O=P.sent(),A={error:O},[3,10];case 9:try{v&&!v.done&&(I=d.return)&&I.call(d)}finally{if(A)throw A.error}return[7];case 10:return S=u.filter(function(e){return e.isNew}).length,[2,{created:S,reused:u.length-S,skipped:_.length,records:u}]}})})},t.createApplicationPLSFiles=function(e,r,n,i,o){return void 0===o&&(o={}),a.__awaiter(void 0,void 0,void 0,function(){var c,l,p,u,_,d,v,g,f,m;return a.__generator(this,function(h){switch(h.label){case 0:return void 0!==(c=o.checkDuplicate)&&!c||n&&!(0,t.isVersionedForm)(n)?[3,2]:[4,(0,t.findDuplicatePLSFilesSafely)(e,r)];case 1:if((l=h.sent()).length>0)throw new Error((0,t.buildDuplicatePLSMessage)(l));h.label=2;case 2:return[4,(0,t.batchCreatePLSFiles)(e,r)];case 3:p=h.sent(),h.label=4;case 4:h.trys.push([4,10,11,12]),u=a.__values(p.records),_=u.next(),h.label=5;case 5:return _.done?[3,9]:(d=_.value,v={},n&&(v.pepsico_material_approval=n._id),i&&(v.pepsico_material=i),s.isEmpty(v)?[3,7]:(v.modified=new Date,[4,e.getObject("pepsico_km_pls_file").directUpdate(d.id,v)]));case 6:h.sent(),h.label=7;case 7:if(!1===d.isNew)return[3,8];(0,t.callExtractPLSRulesPriority)(e,d.id).catch(function(){}),h.label=8;case 8:return _=u.next(),[3,5];case 9:return[3,12];case 10:return g=h.sent(),f={error:g},[3,12];case 11:try{_&&!_.done&&(m=u.return)&&m.call(u)}finally{if(f)throw f.error}return[7];case 12:return[2,p]}})})},t.setPLSFileActive=function(e,t,r){return a.__awaiter(void 0,void 0,void 0,function(){var s,n,i,o;return a.__generator(this,function(a){switch(a.label){case 0:if(!t)throw new Error("缺少记录ID");return s=new Date,n=e.getObject("pepsico_km_pls_file"),i=e.getObject("pepsico_km_pls"),[4,n.directUpdate(t,{is_active:r,modified:s})];case 1:return a.sent(),[4,i.directFind({filters:[["pls_file","=",t]],fields:["_id"]})];case 2:return(o=a.sent()).length>0?[4,i.directUpdateMany(["pls_file","=",t],{enable:r,modified:s})]:[3,4];case 3:a.sent(),a.label=4;case 4:return[2,{id:t,is_active:r,synced:o.length}]}})})},t.logPLSChange=function(e,t){var r=t.approval,n=t.scene,i=t.materialId,o=void 0===i?null:i,c=t.beforeIds,l=void 0===c?[]:c,p=t.afterIds,u=void 0===p?[]:p,_=t.source,d=void 0===_?null:_;return a.__awaiter(void 0,void 0,void 0,function(){var t,i,c,p,_,v,g;return a.__generator(this,function(a){switch(a.label){case 0:return a.trys.push([0,3,,6]),t=s.uniq(s.compact(l)),i=s.uniq(s.compact(u)),0===t.length&&0===i.length?[2]:(c=s.uniq(t.concat(i)),[4,e.getObject("pepsico_km_pls_file").directFind({filters:[["_id","in",c]],fields:["_id","name"]})]);case 1:return p=a.sent(),_=s.keyBy(p,"_id"),v=function(e){return e.map(function(e){return _[e]&&_[e].name||e}).join("、")},[4,e.getObject("pepsico_pls_change_log").directInsert({approval:r._id,approval_name:r.name,material:o,scene:n,source:d,before_pls_files:t,before_pls_names:v(t),after_pls_files:i,after_pls_names:v(i),operator:e.meta&&e.meta.user&&e.meta.user.userId,space:r.space,created:new Date,modified:new Date})];case 2:return a.sent(),[3,6];case 3:return g=a.sent(),console.error("[写PLS变更日志失败]",g&&g.message),e.logger?[4,e.logger.error("[写PLS变更日志失败]",g&&g.message)]:[3,5];case 4:a.sent(),a.label=5;case 5:return[3,6];case 6:return[2]}})})};var h=new Map,b=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){var r,s,n;return a.__generator(this,function(a){switch(a.label){case 0:return t&&t.spaceId?[2,t.spaceId]:(r=t&&t.userId)?h.has(r)?[2,h.get(r)]:[4,e.getObject("space_users").directFind({filters:[["user","=",r]],fields:["space"],top:1})]:[2,void 0];case 1:return s=a.sent(),(n=s&&s[0]&&s[0].space)&&h.set(r,n),[2,n]}})})};t.writeSystemLog=function(e,t,r,s,n){return void 0===s&&(s="PLS规则提取"),a.__awaiter(void 0,void 0,void 0,function(){var i,o,c,l,p;return a.__generator(this,function(a){switch(a.label){case 0:return a.trys.push([0,4,,5]),o=(i=e.getObject("logs")).directInsert,p={name:s,level:t,data:JSON.stringify(r)},(c=n)?[3,2]:[4,b(e,e.meta&&e.meta.user)];case 1:c=a.sent(),a.label=2;case 2:return[4,o.apply(i,[(p.space=c,p.created=new Date,p)])];case 3:return a.sent(),[3,5];case 4:return l=a.sent(),console.error("[写系统日志失败]",l&&l.message),[3,5];case 5:return[2]}})})},t.callExtractPLSRules=function(e,r){return a.__awaiter(void 0,void 0,void 0,function(){var s,n,l,p,u,_,d;return a.__generator(this,function(a){switch(a.label){case 0:if(!r)throw new Error("缺少记录ID");s=e.meta&&e.meta.user&&e.meta.user.userId,n=(new Date).getTime(),console.log("[调用 execute-pls API] 开始:","".concat(o,"/execute-pls"),{id:r},new Date),a.label=1;case 1:return a.trys.push([1,9,,12]),[4,i.post("".concat(o,"/execute-pls"),{id:r},{headers:{"X-API-Key":c}})];case 2:return l=a.sent(),p=l.data,d=(new Date).getTime()-n,console.log("[调用 execute-pls API]-".concat(r),p,"耗时:",d),[4,e.logger.info("[调用 execute-pls API]-".concat(r),p)];case 3:a.sent(),a.label=4;case 4:return a.trys.push([4,6,,7]),[4,e.getObject("pepsico_km_pls_file").directUpdate(r,{extracting:!0,modified:new Date})];case 5:return a.sent(),[3,7];case 6:return u=a.sent(),console.error("[调用 execute-pls API] 标记 extracting 失败-".concat(r),u&&u.message),[3,7];case 7:return[4,(0,t.writeSystemLog)(e,"info",{action:"execute-pls",id:r,operator:s,url:"".concat(o,"/execute-pls"),status:"success",cost:d,response:p})];case 8:return a.sent(),[2,p];case 9:return _=a.sent(),d=(new Date).getTime()-n,console.error("[调用 execute-pls API]-".concat(r),_&&_.message,new Date),[4,e.logger.error("[调用 execute-pls API]-".concat(r),_&&_.message)];case 10:return a.sent(),[4,(0,t.writeSystemLog)(e,"error",{action:"execute-pls",id:r,operator:s,url:"".concat(o,"/execute-pls"),status:"fail",cost:d,error:_&&_.message})];case 11:throw a.sent(),_;case 12:return[2]}})})},t.callExtractPLSRulesPriority=function(e,r){return a.__awaiter(void 0,void 0,void 0,function(){var s,n,l,p,u,_,d;return a.__generator(this,function(a){switch(a.label){case 0:if(!r)throw new Error("缺少记录ID");s=e.meta&&e.meta.user&&e.meta.user.userId,n=(new Date).getTime(),l="".concat(o,"/execute-pls-priority"),a.label=1;case 1:return a.trys.push([1,5,,8]),[4,i.post(l,{id:r},{headers:{"Content-Type":"application/json","X-API-Key":c}})];case 2:return p=a.sent(),u=p.data,d=(new Date).getTime()-n,[4,e.logger.info("[调用 PLS优先提取规则 API]-".concat(r),u)];case 3:return a.sent(),[4,(0,t.writeSystemLog)(e,"info",{action:"extract-pls-priority",id:r,operator:s,url:l,status:"success",cost:d,response:u})];case 4:return a.sent(),[2,u];case 5:return _=a.sent(),d=(new Date).getTime()-n,[4,e.logger.error("[调用 PLS优先提取规则 API]-".concat(r),_&&_.message)];case 6:return a.sent(),[4,(0,t.writeSystemLog)(e,"error",{action:"extract-pls-priority",id:r,operator:s,url:l,status:"fail",cost:d,error:_&&_.message})];case 7:throw a.sent(),_;case 8:return[2]}})})},t.isApprovalReviewer=function(e,t){return!!t&&s.includes(function(e){return e?s.compact(s.flatten([e.reviewer,e.ns_reviewer,e.legal_reviewer,e.sra_reviewer,e.ca_reviewer,e.qc_reviewer,e.kids_reviewer,e.pre_reviewer,e.pre_ns_reviewer,e.pre_legal_reviewer,e.pre_sra_reviewer,e.pre_ca_reviewer,e.pre_qc_reviewer])):[]}(e),t)},t.canAdoptReview=function(e,t,r){if(void 0===r&&(r=[]),!e||!t)return!1;var a=s.includes(_,e.current_step)&&s.includes(e.person_pending_approve||[],t),n=s.includes(d,e.current_step)&&s.includes(r||[],"pepsico_spot_check");return a||n},t.getMaterialReviewPermissions=function(e,r){return a.__awaiter(void 0,void 0,void 0,function(){var n,i,o,c;return a.__generator(this,function(a){switch(a.label){case 0:return[4,e.getObject("pepsico_material").findOne(r)];case 1:if(!(n=a.sent()))throw new Error("素材不存在");return n.pepsico_material_approval?[4,e.getObject("pepsico_material_approval").findOne(n.pepsico_material_approval)]:[3,3];case 2:return o=a.sent(),[3,4];case 3:o=null,a.label=4;case 4:return i=o,c=e.meta&&e.meta.user,[2,{canAdopt:(0,t.canAdoptReview)(i,c&&c.userId,c&&c.roles),hasPLSFile:s.compact(i&&i.pls_km_files||[]).length>0}]}})})};var w=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){var r,s;return a.__generator(this,function(a){switch(a.label){case 0:return[4,e.getObject(l).directFind({filters:t,fields:["_id","is_active"]})];case 1:return r=a.sent(),(s=r.filter(p)).length>0?[4,e.getObject(l).directUpdateMany(["_id","in",s.map(function(e){return e._id})],{is_active:!1,modified:new Date})]:[3,3];case 2:a.sent(),a.label=3;case 3:return[2,s.length]}})})},y=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){var r,n;return a.__generator(this,function(a){switch(a.label){case 0:return[4,e.getObject("pepsico_material").directFind({filters:[["pepsico_material_approval","=",t]],fields:["_id"]})];case 1:return r=a.sent(),0===(n=s.compact(s.map(r,"_id"))).length?[2,["pepsico_material_approval","=",t]]:[2,[["pepsico_material_approval","=",t],"or",["pepsico_material","in",n]]]}})})};t.invalidatePLSReviews=function(e,t,r,s){return a.__awaiter(void 0,void 0,void 0,function(){var n,i;return a.__generator(this,function(a){switch(a.label){case 0:return s?(i=[["pepsico_material","=",s]],[3,3]):[3,1];case 1:return[4,y(e,t)];case 2:i=[a.sent()],a.label=3;case 3:return(n=i).push(["review_type","=","pls"]),r&&n.push(["pls_file","=",r]),[2,w(e,n)]}})})},t.invalidateApprovalAIReviews=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){var r,s;return a.__generator(this,function(a){switch(a.label){case 0:return r=w,s=[e],[4,y(e,t)];case 1:return[2,r.apply(void 0,s.concat([[a.sent()]]))]}})})},t.replaceApprovalPLSSource=function(e,r,n,i,o,c){return a.__awaiter(void 0,void 0,void 0,function(){var l,p,u,_,d,v,g;return a.__generator(this,function(a){switch(a.label){case 0:if(l=e.meta&&e.meta.user&&e.meta.user.userId,0===(p=s.uniq(s.compact(s.isArray(i)?i:[i]))).length)throw new Error("请选择或上传PLS文件");if(p.length>t.MAX_PLS_SOURCE_TOTAL)throw new Error("一次最多应用".concat(t.MAX_PLS_SOURCE_TOTAL,"个PLS文件"));return[4,e.getObject("pepsico_material_approval").findOne(r)];case 1:if(!(u=a.sent()))throw new Error("审批单不存在");if(!(0,t.isApprovalReviewer)(u,l))throw new Error("只有审核人可以应用新的PLS规则");return[4,e.getObject("pepsico_km_pls_file").directFind({filters:[["_id","in",p]],fields:["_id"]})];case 2:if(_=a.sent(),s.uniq(s.map(_,"_id")).length!==p.length)throw new Error("新的PLS文件不存在");return d=s.uniq(s.compact(u.pls_km_files||[])),v=s.uniq(d.concat(p)),[4,e.getObject("pepsico_material_approval").directUpdate(r,{pls_km_files:v,modified:new Date,modified_by:l})];case 3:return a.sent(),[4,(0,t.invalidatePLSReviews)(e,r,n,o)];case 4:return g=a.sent(),[4,(0,t.logPLSChange)(e,{approval:u,scene:"reviewer_change",materialId:o,beforeIds:[n],afterIds:p,source:c})];case 5:return a.sent(),[2,{approvalId:r,materialId:o,oldPlsFileId:n,newPlsFileIds:p,pls_km_files:v,invalidated:g}]}})})},t.getActivePLSOptions=function(e){return a.__awaiter(void 0,void 0,void 0,function(){return a.__generator(this,function(t){switch(t.label){case 0:return[4,e.getObject("pepsico_km_pls_file").find({fields:["_id","name","brand","version","is_active"],sort:"modified desc",top:500})];case 1:return[2,t.sent().filter(p).map(function(e){return{label:s.compact([e.name,e.brand,e.version]).map(v).join(" · "),value:e._id}})]}})})},t.getPLSReviewGroups=function(e,r){return a.__awaiter(void 0,void 0,void 0,function(){var n,i,o,c,d,g,f,m,h,b,w;return a.__generator(this,function(a){switch(a.label){case 0:return[4,e.getObject("pepsico_material").findOne(r)];case 1:if(!(n=a.sent()))throw new Error("素材不存在");return[4,e.getObject("pepsico_material_approval").findOne(n.pepsico_material_approval)];case 2:return i=a.sent(),[4,e.getObject(l).find({filters:[["pepsico_material","=",r],["review_type","=","pls"]],fields:["_id","pls_reason","pls_material_content","pls_rule_content","evidence_image","evidence_image_file","is_adoption","pls_file","is_active"],sort:"created desc",top:500})];case 3:return o=a.sent(),c=o.filter(p).map(u),(d=s.uniq(s.compact(c.map(function(e){return e.pls_file})))).length>0?[4,e.getObject("pepsico_km_pls_file").directFind({filters:[["_id","in",d]],fields:["_id","name","brand","version","is_active"]})]:[3,5];case 4:return f=a.sent(),[3,6];case 5:f=[],a.label=6;case 6:return g=f,m=s.keyBy(g,"_id"),h=e.meta&&e.meta.user,b=(0,t.isApprovalReviewer)(i,h&&h.userId)&&s.includes(_,i&&i.current_step),w=(0,t.canAdoptReview)(i,h&&h.userId,h&&h.roles),[2,{groups:s.map(s.groupBy(c,"pls_file"),function(e,t){return{plsFileId:t,plsName:v(m[t]&&m[t].name)||"PLS文件",plsActive:p(m[t]),approvalId:i&&i._id||n.pepsico_material_approval,materialId:r,canManage:b,canAdopt:w,reviews:e}}),canManage:b,canAdopt:w}]}})})}},4932:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.hasDuplicateMaterials=void 0;var a=r(5584);t.hasDuplicateMaterials={rest:{method:"GET",fullPath:"/api/pepsico-content/approve/material/has-duplicate/:approvalId"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t;return a.__generator(this,function(r){switch(r.label){case 0:return e.getObject=this.getObject,[4,this.getLogger()];case 1:return t=r.sent(),e.logger=t,[4,this.hasDuplicateMaterials.call(this,e,e.params.approvalId)];case 2:return[2,{hasDuplicate:r.sent()}]}})})}}},5176:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.setApprovalCc=void 0;var a=r(5584);t.setApprovalCc={rest:{method:"POST",fullPath:"/api/pepsico-content/approve/cc/:recordId"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r;return a.__generator(this,function(a){switch(a.label){case 0:return e.getObject=this.getObject,[4,this.getLogger()];case 1:return t=a.sent(),e.logger=t,"string"==typeof(r=e.params.cc_users||e.params.ccUsers||[])?r=r.split(",").map(function(e){return e.trim()}).filter(Boolean):Array.isArray(r)||(r=[r]),[4,this.setApprovalCcUsers(e,e.params.recordId,r)];case 2:return[2,a.sent()]}})})}}},5256:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.approveMaterial=void 0;var a=r(5584);t.approveMaterial={rest:{method:"POST",fullPath:"/api/pepsico-content/approve/material/submit/:recordId"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t;return a.__generator(this,function(r){switch(r.label){case 0:return e.getObject=this.getObject,[4,this.getLogger()];case 1:return t=r.sent(),e.logger=t,[4,this.submitMaterial.call(this,e,e.params.recordId,e.params.approvalStatus)];case 2:return r.sent(),[2,{}]}})})}}},5264:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.postponeDeployment=void 0;var a=r(5584);t.postponeDeployment={rest:{method:"POST",fullPath:"/api/pepsico-content/approve/postpone-deployment/:recordId"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t;return a.__generator(this,function(r){switch(r.label){case 0:return e.getObject=this.getObject,[4,this.getLogger()];case 1:return t=r.sent(),e.logger=t,[4,this.postponeDeployment.call(this,e,e.params.recordId,e.params)];case 2:return r.sent(),[2,{}]}})})}}},5383:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.initCollaborator=void 0;var a=r(5584);t.initCollaborator={rest:{method:"GET",fullPath:"/api/pepsico-content/space-users/init-collaborator"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n,i,o,c,l,p,u,_,d,v;return a.__generator(this,function(g){switch(g.label){case 0:if(e.getObject=this.getObject,t=e.meta.user,r=null==t?void 0:t.spaceId,!t||!t.is_space_admin)throw new Error("无权限!");if(!r)throw new Error("无法获取当前工作区");return[4,e.getObject("space_users").directFind({filters:[["space","=",r]],fields:["_id","email","is_collaborator"]})];case 1:s=g.sent(),n=0,i=0,o=0,g.label=2;case 2:g.trys.push([2,7,8,9]),c=a.__values(s),l=c.next(),g.label=3;case 3:return l.done?[3,6]:(f=(p=l.value).email,(u=!("string"==typeof f&&f.toLowerCase().endsWith("@pepsico.com")))?i++:o++,p.is_collaborator===u?[3,5]:[4,e.getObject("space_users").directUpdate(p._id,{is_collaborator:u})]);case 4:g.sent(),n++,g.label=5;case 5:return l=c.next(),[3,3];case 6:return[3,9];case 7:return _=g.sent(),d={error:_},[3,9];case 8:try{l&&!l.done&&(v=c.return)&&v.call(c)}finally{if(d)throw d.error}return[7];case 9:return[2,{message:"初始化完成:更新 ".concat(n," 个用户"),total:s.length,updated:n,collaborators:i,internalUsers:o}]}var f})})}}},5510:(e,t,r)=>{var a,s,n;Object.defineProperty(t,"__esModule",{value:!0}),t.postponeReview=t.getPostponeReviewDepartmentType=t.hasReviewed=t.submitContent=t.submitPreReviewContent=t.submitKidsContent=t.rejectContent=t.approvalContent=t.postponeDeployment=t.confirmDeployment=t.terminate=t.advanceApproval=t.getDepartmentEffectiveStatuses=t.areDepartmentReviewsComplete=t.hasNonPreReviewDepartments=t.getPreReviewStatuses=t.addFormalReviewerAfterPreApproval=t.needsPLSReReview=t.needsQcReview=t.getDeptEffectiveStatus=t.isDeptReviewComplete=t.hasAnyPreReviewer=t.getApproverStepRule=t.getDefApproverStepRule=void 0;var i=r(5584),o=r(8398),c=r(4425),l=r(7825),p=r(2143),u=r(1057),_=r(2972),d=r(3833),v=r(6658),g=r(1401),f=r(8862),m=r(4809),h=r(2967),b=r(7825);t.getDefApproverStepRule=function(e){return i.__awaiter(void 0,void 0,void 0,function(){var t,r;return i.__generator(this,function(a){switch(a.label){case 0:return[4,e.getObject("pepsico_flow_rule").find({filters:["fu5nvp","=",!0],fields:["_id","name","skip_approve"]})];case 1:if(t=a.sent(),!(r=t.length>0?t[0]:null))throw new Error("未找到审批流规则");return[2,r]}})})},t.getApproverStepRule=function(e,t){return i.__awaiter(void 0,void 0,void 0,function(){var r,a,s;return i.__generator(this,function(n){switch(n.label){case 0:return t?[4,e.getObject("pepsico_flow_rule").findOne(t)]:[3,2];case 1:if(!(r=n.sent()))throw new Error("未找到审批流规则");return[2,r];case 2:return[4,e.getObject("pepsico_flow_rule").find({fields:["_id","name","skip_approve"],sort:"created asc",top:1})];case 3:if(a=n.sent(),!(s=a.length>0?a[0]:null))throw new Error("未找到审批流规则");return[2,s]}})})};var w=function(e,r){return i.__awaiter(void 0,void 0,void 0,function(){var a;return i.__generator(this,function(s){switch(s.label){case 0:return[4,(0,t.getApproverStepRule)(e,r.pepsico_flow_rule)];case 1:return(a=s.sent()).skip_approve?[2,(0,c.evaluate)(a.skip_approve,r)]:[2,!1]}})})};t.hasAnyPreReviewer=function(e,r){return r===o.Step.personnel_review?!!e.pre_reviewer:!!(e.pre_ns_reviewer||e.pre_legal_reviewer||e.pre_sra_reviewer||e.pre_ca_reviewer||(0,t.needsQcReview)(e)&&e.pre_qc_reviewer)},t.isDeptReviewComplete=function(e,r){var a="approval"===r?"pre_reviewer":"pre_".concat(r,"_reviewer"),s="approval"===r?"pre_approval_status":"pre_".concat(r,"_approval_status"),n="approval"===r?"approval_status":"".concat(r,"_approval_status"),i=!!e[a];return console.log("isDeptReviewComplete1",i),i?!!(0,t.hasReviewed)(e[s])&&(!1===e[s]||(0,t.hasReviewed)(e[n])):(console.log("isDeptReviewComplete2",e[n],(0,t.hasReviewed)(e[n])),(0,t.hasReviewed)(e[n]))},t.getDeptEffectiveStatus=function(e,t){var r="approval"===t?"pre_reviewer":"pre_".concat(t,"_reviewer"),a="approval"===t?"pre_approval_status":"pre_".concat(t,"_approval_status"),s="approval"===t?"approval_status":"".concat(t,"_approval_status");return(!e[r]||!1!==e[a])&&e[s]};var y=function(e,r){return i.__awaiter(void 0,void 0,void 0,function(){var a,s;return i.__generator(this,function(n){switch(n.label){case 0:return[4,(0,t.getApproverStepRule)(e,r.pepsico_flow_rule)];case 1:return a=n.sent(),[4,w(e,r)];case 2:return n.sent()?[2,o.Step.conclusion]:(s=(0,c.evaluate)(a.name,r),console.log("getApproverStep-".concat(r._id),s,typeof s,a.name,JSON.stringify(r)),[2,s?o.Step.personnel_review:o.Step.departmental_review])}})})},O=function(e,r){return i.__awaiter(void 0,void 0,void 0,function(){var a;return i.__generator(this,function(s){switch(s.label){case 0:return[4,(0,t.getApproverStepRule)(e,r.pepsico_flow_rule)];case 1:return a=s.sent(),(0,c.evaluate)(a.name,r)?[2,o.Step.personnel_review]:[2,o.Step.departmental_review]}})})};t.needsQcReview=function(e){return"yes"===e.ec_has_detail_page},t.needsPLSReReview=function(e){return!b.isEmpty(e.pls_km_files)&&(!1===(0,t.getDeptEffectiveStatus)(e,"sra")||(0,t.needsQcReview)(e)&&!1===(0,t.getDeptEffectiveStatus)(e,"qc"))};var S=function(e,r,a){return i.__awaiter(void 0,void 0,void 0,function(){var s,n,c;return i.__generator(this,function(i){switch(i.label){case 0:switch(s=o.Step.draft,r.current_step){case o.Step.draft:return[3,1];case o.Step.ai_review:return[3,2];case o.Step.departmental_review:case o.Step.personnel_review:return[3,6];case o.Step.submitter_revisions:return[3,7];case o.Step.awaiting_deployment:return[3,11]}return[3,12];case 1:return s=b.includes(f.DCO_TYPES,r.classification)?o.Step.conclusion:o.Step.ai_review,[3,13];case 2:return a!=o.ApprovalStatus.approved?[3,4]:[4,y(e,r)];case 3:return n=i.sent(),[3,5];case 4:n=o.Step.draft,i.label=5;case 5:return s=n,[3,13];case 6:return s=a==o.ApprovalStatus.approved||a==o.ApprovalStatus.pass?o.Step.awaiting_deployment:o.Step.submitter_revisions,[3,13];case 7:return(0,t.needsPLSReReview)(r)?(c=o.Step.ai_review,[3,10]):[3,8];case 8:return[4,y(e,r)];case 9:c=i.sent(),i.label=10;case 10:return s=c,[3,13];case 11:return s=o.Step.conclusion,[3,13];case 12:return[3,13];case 13:return console.log("[getNextStep]",JSON.stringify({action:a,nextStep:s})),[2,s]}})})},A=function(e,r,a){return i.__awaiter(void 0,void 0,void 0,function(){var s,n,c,p,u,_,d,v,f,m,h,w,y,O;return i.__generator(this,function(S){switch(S.label){case 0:switch(s=[],a){case o.Step.draft:return[3,1];case o.Step.ai_review:return[3,2];case o.Step.departmental_review:return[3,3];case o.Step.personnel_review:return[3,26];case o.Step.submitter_revisions:return[3,33];case o.Step.awaiting_deployment:return[3,34]}return[3,35];case 1:return s=(0,l.concat)(s,{userIds:[r.owner],type:o.ProcessApprovalType.Others}),[3,36];case 2:return s=(0,l.concat)(s,{userIds:[process.env.PEPSICO_CONTENT_APPROVAL_AI_USERID],type:o.ProcessApprovalType.AI}),[3,36];case 3:return console.log("[getNextApprovers] departmental_review 串行判断:",JSON.stringify({pre_ns_reviewer:r.pre_ns_reviewer,pre_ns_approval_status:r.pre_ns_approval_status,pre_legal_reviewer:r.pre_legal_reviewer,pre_legal_approval_status:r.pre_legal_approval_status,pre_sra_reviewer:r.pre_sra_reviewer,pre_sra_approval_status:r.pre_sra_approval_status,pre_ca_reviewer:r.pre_ca_reviewer,pre_ca_approval_status:r.pre_ca_approval_status,pre_qc_reviewer:r.pre_qc_reviewer,pre_qc_approval_status:r.pre_qc_approval_status})),r.pre_ns_reviewer&&1!=r.pre_ns_approval_status&&r.pre_ns_approval_status!==o.ApprovalStatus.pass?[4,(0,g.getReviewerAgentsInfo)(e,r.space,[r.pre_ns_reviewer])]:[3,5];case 4:return n=S.sent(),s=(0,l.concat)(s,i.__assign(i.__assign({},n),{type:o.ProcessApprovalType.PreNS})),[3,7];case 5:return 1==r.ns_approval_status||r.ns_approval_status===o.ApprovalStatus.pass?[3,7]:[4,(0,g.getReviewerAgentsInfo)(e,r.space,r.ns_reviewer)];case 6:c=S.sent(),s=(0,l.concat)(s,i.__assign(i.__assign({},c),{type:o.ProcessApprovalType.NS})),S.label=7;case 7:return r.pre_legal_reviewer&&1!=r.pre_legal_approval_status&&r.pre_legal_approval_status!==o.ApprovalStatus.pass?[4,(0,g.getReviewerAgentsInfo)(e,r.space,[r.pre_legal_reviewer])]:[3,9];case 8:return p=S.sent(),s=(0,l.concat)(s,i.__assign(i.__assign({},p),{type:o.ProcessApprovalType.PreLegal})),[3,11];case 9:return 1==r.legal_approval_status||r.legal_approval_status===o.ApprovalStatus.pass?[3,11]:[4,(0,g.getReviewerAgentsInfo)(e,r.space,r.legal_reviewer)];case 10:u=S.sent(),s=(0,l.concat)(s,i.__assign(i.__assign({},u),{type:o.ProcessApprovalType.Legal})),S.label=11;case 11:return r.pre_sra_reviewer&&1!=r.pre_sra_approval_status&&r.pre_sra_approval_status!==o.ApprovalStatus.pass?[4,(0,g.getReviewerAgentsInfo)(e,r.space,[r.pre_sra_reviewer])]:[3,13];case 12:return _=S.sent(),s=(0,l.concat)(s,i.__assign(i.__assign({},_),{type:o.ProcessApprovalType.PreSRA})),[3,15];case 13:return 1==r.sra_approval_status||r.sra_approval_status===o.ApprovalStatus.pass?[3,15]:[4,(0,g.getReviewerAgentsInfo)(e,r.space,r.sra_reviewer)];case 14:d=S.sent(),s=(0,l.concat)(s,i.__assign(i.__assign({},d),{type:o.ProcessApprovalType.SRA})),S.label=15;case 15:return r.pre_ca_reviewer&&1!=r.pre_ca_approval_status&&r.pre_ca_approval_status!==o.ApprovalStatus.pass?[4,(0,g.getReviewerAgentsInfo)(e,r.space,[r.pre_ca_reviewer])]:[3,17];case 16:return v=S.sent(),s=(0,l.concat)(s,i.__assign(i.__assign({},v),{type:o.ProcessApprovalType.PreCA})),[3,19];case 17:return 1==r.ca_approval_status||r.ca_approval_status===o.ApprovalStatus.pass?[3,19]:[4,(0,g.getReviewerAgentsInfo)(e,r.space,r.ca_reviewer)];case 18:f=S.sent(),s=(0,l.concat)(s,i.__assign(i.__assign({},f),{type:o.ProcessApprovalType.CA})),S.label=19;case 19:if(!(0,t.needsQcReview)(r))return[3,23];if(b.isEmpty(r.qc_reviewer))throw new Error("QC审核人缺失, 请确认审批单对应审核人员信息");return r.pre_qc_reviewer&&1!=r.pre_qc_approval_status&&r.pre_qc_approval_status!==o.ApprovalStatus.pass?[4,(0,g.getReviewerAgentsInfo)(e,r.space,[r.pre_qc_reviewer])]:[3,21];case 20:return m=S.sent(),s=(0,l.concat)(s,i.__assign(i.__assign({},m),{type:o.ProcessApprovalType.PreQC})),[3,23];case 21:return 1==r.qc_approval_status||r.qc_approval_status===o.ApprovalStatus.pass?[3,23]:[4,(0,g.getReviewerAgentsInfo)(e,r.space,r.qc_reviewer)];case 22:h=S.sent(),s=(0,l.concat)(s,i.__assign(i.__assign({},h),{type:o.ProcessApprovalType.QC})),S.label=23;case 23:return"yes"!=r.child_files||1==r.kids_approval_status||r.kids_approval_status===o.ApprovalStatus.pass?[3,25]:[4,(0,g.getReviewerAgentsInfo)(e,r.space,[r.kids_reviewer])];case 24:O=S.sent(),s=(0,l.concat)(s,i.__assign(i.__assign({},O),{type:o.ProcessApprovalType.Kids})),S.label=25;case 25:return[3,36];case 26:return r.pre_reviewer&&1!=r.pre_approval_status&&r.pre_approval_status!==o.ApprovalStatus.pass?[4,(0,g.getReviewerAgentsInfo)(e,r.space,[r.pre_reviewer])]:[3,28];case 27:return w=S.sent(),s=(0,l.concat)(s,i.__assign(i.__assign({},w),{type:o.ProcessApprovalType.Preguding})),[3,30];case 28:return r.approval_status===o.ApprovalStatus.pass?[3,30]:[4,(0,g.getReviewerAgentsInfo)(e,r.space,r.reviewer)];case 29:y=S.sent(),s=(0,l.concat)(s,i.__assign(i.__assign({},y),{type:o.ProcessApprovalType.guding})),S.label=30;case 30:return"yes"!=r.child_files||1==r.kids_approval_status||r.kids_approval_status===o.ApprovalStatus.pass?[3,32]:[4,(0,g.getReviewerAgentsInfo)(e,r.space,[r.kids_reviewer])];case 31:O=S.sent(),s=(0,l.concat)(s,i.__assign(i.__assign({},O),{type:o.ProcessApprovalType.Kids})),S.label=32;case 32:return[3,36];case 33:return s=(0,l.concat)(s,{userIds:[r.owner],type:o.ProcessApprovalType.Others}),[3,36];case 34:return s=(0,l.concat)(s,{userIds:[r.material_owner_id],type:o.ProcessApprovalType.Others}),[3,36];case 35:return[3,36];case 36:return[2,(0,l.uniq)(s)]}})})},I=function(e){return e===o.Step.draft?o.ReviewStatus.draft:e===o.Step.conclusion?o.ReviewStatus.approved:o.ReviewStatus.under_review},P=function(e,t,r){var a=r.approvalStatus,s=r.approveField;return i.__awaiter(void 0,void 0,void 0,function(){var r,n,o,c,l,p,u,_,d,v,g,f,m,h,b,w;return i.__generator(this,function(y){switch(y.label){case 0:return r=e.meta.user,n=[["owner","=",r.userId],["pepsico_material_approval","=",t._id],["current_step","=",t.current_step],["space","=",t.space],["approved","=","progess"]],s&&"kids_approval_status"===s?n.push(["type","=","Kids"]):"ca_approval_status"===s?n.push(["type","=","CA"]):"qc_approval_status"===s?n.push(["type","=","QC"]):"sra_approval_status"===s?n.push(["type","=","SRA"]):"ns_approval_status"===s?n.push(["type","=","NS"]):"legal_approval_status"===s?n.push(["type","=","Legal"]):"approval_status"===s?n.push(["type","=","guding"]):"pre_ns_approval_status"===s?n.push(["type","=","PreNS"]):"pre_legal_approval_status"===s?n.push(["type","=","PreLegal"]):"pre_sra_approval_status"===s?n.push(["type","=","PreSRA"]):"pre_ca_approval_status"===s?n.push(["type","=","PreCA"]):"pre_qc_approval_status"===s?n.push(["type","=","PreQC"]):"pre_approval_status"===s&&n.push(["type","=","Preguding"]),[4,e.getObject("pepsico_approval_process").find({filters:n,top:1,sort:"modified asc"})];case 1:o=y.sent(),y.label=2;case 2:y.trys.push([2,15,16,17]),c=i.__values(o),l=c.next(),y.label=3;case 3:return l.done?[3,14]:(p=l.value,[4,e.getObject("pepsico_approval_process").update(p._id,{submitted:new Date,modified:new Date,modified_by:r.userId,approved:a||"submit"})]);case 4:return y.sent(),[4,e.getObject("pepsico_approval_process").find({filters:[["owner","!=",r.userId],["pepsico_material_approval","=",t._id],["current_step","=",t.current_step],["space","=",t.space],["approved","=","progess"],["type","=",p.type]],sort:"modified desc"})];case 5:u=y.sent(),y.label=6;case 6:y.trys.push([6,11,12,13]),b=void 0,_=i.__values(u),d=_.next(),y.label=7;case 7:return d.done?[3,10]:(v=d.value,[4,e.getObject("pepsico_approval_process").update(v._id,{modified:new Date,modified_by:r.userId,approved:""})]);case 8:y.sent(),y.label=9;case 9:return d=_.next(),[3,7];case 10:return[3,13];case 11:return g=y.sent(),b={error:g},[3,13];case 12:try{d&&!d.done&&(w=_.return)&&w.call(_)}finally{if(b)throw b.error}return[7];case 13:return l=c.next(),[3,3];case 14:return[3,17];case 15:return f=y.sent(),m={error:f},[3,17];case 16:try{l&&!l.done&&(h=c.return)&&h.call(c)}finally{if(m)throw m.error}return[7];case 17:return[2]}})})},T=function(e,t,r,a){return i.__awaiter(void 0,void 0,void 0,function(){var s,n,o,c,p,u,_,d,v,g,f,m,h,b;return i.__generator(this,function(w){switch(w.label){case 0:return s=e.meta.user.userId,r?((m={})[r]=a,n=m,s?[4,e.getObject("pepsico_material_approval").findOne(t)]:[3,11]):[3,13];case 1:return o=w.sent(),c=o.person_pending_approve||[],-1!==(p=(0,l.findIndex)(c,function(e){return e===s}))&&(0,l.pullAt)(c,p),n.person_pending_approve=c,n.$push={person_approved:s},(u=o.review_postponed_users||[]).includes(s)?(n.review_postponed_users=u.filter(function(e){return e!==s}),[4,e.getObject("pepsico_review_postpone").directFind({filters:[["pepsico_material_approval","=",t],["notification_sent","=",!1],["is_marker","!=",!0]]})]):[3,11];case 2:_=w.sent(),w.label=3;case 3:w.trys.push([3,8,9,10]),d=i.__values(_),v=d.next(),w.label=4;case 4:return v.done?[3,7]:((g=v.value).postponed_user_ids?g.postponed_user_ids.split(",").filter(Boolean):[]).includes(s)?[4,e.getObject("pepsico_review_postpone").directUpdate(g._id,{notification_sent:!0})]:[3,6];case 5:w.sent(),w.label=6;case 6:return v=d.next(),[3,4];case 7:return[3,10];case 8:return f=w.sent(),h={error:f},[3,10];case 9:try{v&&!v.done&&(b=d.return)&&b.call(d)}finally{if(h)throw h.error}return[7];case 10:console.log("[updateApproveFieldStatus] 延后审核人提前审核,已清理 review_postponed_users: ".concat(s)),w.label=11;case 11:return console.log("[updateApproveFieldStatus]",JSON.stringify({recordId:t,set:n})),[4,e.getObject("pepsico_material_approval").update(t,n)];case 12:w.sent(),w.label=13;case 13:return[2]}})})},E=function(e,t,r){var a=r.nextStep,s=r.nextApprovers,n=r.description;return i.__awaiter(void 0,void 0,void 0,function(){var r,c,p,u,_,d,v,g,f,m,h,b,w,y,O,S;return i.__generator(this,function(A){switch(A.label){case 0:return console.log("[changeApprovalProcess]",a,s,n),r=e.meta.user,t.current_step&&t.current_step!=o.Step.draft?[3,3]:[4,e.getObject("pepsico_approval_process").count({filters:[["pepsico_material_approval","=",t._id],["space","=",t.space]]})];case 1:return 0!=A.sent()?[3,3]:(c=new Date,[4,e.getObject("pepsico_approval_process").insert({pepsico_material_approval:t._id,owner:r.userId,review_department:r.organization._id,current_step:o.Step.draft,space:t.space,created:c,created_by:r.userId,modified:c,modified_by:r.userId,name:n,submitted:c,approved:"submit"})]);case 2:A.sent(),A.label=3;case 3:switch(a){case o.Step.draft:case o.Step.ai_review:case o.Step.departmental_review:case o.Step.personnel_review:case o.Step.submitter_revisions:case o.Step.awaiting_deployment:return[3,4];case o.Step.conclusion:return[3,21]}return[3,23];case 4:A.trys.push([4,18,19,20]),p=i.__values(s),u=p.next(),A.label=5;case 5:if(u.done)return[3,17];_=u.value,A.label=6;case 6:A.trys.push([6,12,13,14]),y=void 0,d=i.__values(_.userIds),v=d.next(),A.label=7;case 7:return v.done?[3,11]:(g=v.value,[4,e.getObject("space_users").directFind({filters:[["user","=",g],["space","=",t.space]]})]);case 8:return f=A.sent(),[4,e.getObject("pepsico_approval_process").insert({pepsico_material_approval:t._id,owner:g,type:_.type,review_department:f.length>0?f[0].organization:null,current_step:a,approved:"progess",space:t.space,created:new Date,created_by:r.userId,modified:new Date,modified_by:r.userId,name:n})];case 9:A.sent(),A.label=10;case 10:return v=d.next(),[3,7];case 11:return[3,14];case 12:return m=A.sent(),y={error:m},[3,14];case 13:try{v&&!v.done&&(O=d.return)&&O.call(d)}finally{if(y)throw y.error}return[7];case 14:return _.type?[4,e.getObject("pepsico_material_approval").directUpdate(t._id,(S={},S["handler_".concat((0,l.toLower)(_.type))]=_.userIds,S))]:[3,16];case 15:A.sent(),A.label=16;case 16:return u=p.next(),[3,5];case 17:return[3,20];case 18:return h=A.sent(),b={error:h},[3,20];case 19:try{u&&!u.done&&(w=p.return)&&w.call(p)}finally{if(b)throw b.error}return[7];case 20:return[3,24];case 21:return[4,e.getObject("pepsico_approval_process").insert({pepsico_material_approval:t._id,current_step:o.Step.conclusion,space:t.space,created:new Date,created_by:r.userId,modified:new Date,modified_by:r.userId,name:n})];case 22:return A.sent(),[3,24];case 23:return[3,24];case 24:return[2]}})})},j=function(e,r){return i.__awaiter(void 0,void 0,void 0,function(){var a,s;return i.__generator(this,function(n){switch(n.label){case 0:return[4,O(e,r)];case 1:return a=n.sent(),s=[],a===o.Step.personnel_review?(s=(0,l.concat)(r.reviewer,r.assistance),r.pre_reviewer&&(s=(0,l.concat)(s,r.pre_reviewer))):(s=(0,l.concat)(r.sra_reviewer,r.ns_reviewer,r.ca_reviewer,r.legal_reviewer,r.sra_assistance,r.ns_assistance,r.ca_assistance,r.legal_assistance),(0,t.needsQcReview)(r)&&(s=(0,l.concat)(s,r.qc_reviewer,r.qc_assistance)),r.pre_ns_reviewer&&(s=(0,l.concat)(s,r.pre_ns_reviewer)),r.pre_legal_reviewer&&(s=(0,l.concat)(s,r.pre_legal_reviewer)),r.pre_sra_reviewer&&(s=(0,l.concat)(s,r.pre_sra_reviewer)),r.pre_ca_reviewer&&(s=(0,l.concat)(s,r.pre_ca_reviewer)),(0,t.needsQcReview)(r)&&r.pre_qc_reviewer&&(s=(0,l.concat)(s,r.pre_qc_reviewer))),"yes"==r.child_files&&(s=(0,l.concat)(s,r.kids_reviewer)),[4,e.getObject("pepsico_material_approval").directUpdate(r._id,{$push:{person_view:{$each:(0,l.compact)((0,l.uniq)(s))}},approval_type:a})];case 2:return n.sent(),[2]}})})},D={pre_ns_approval_status:{reviewerField:"ns_reviewer",type:o.ProcessApprovalType.NS,statusField:"ns_approval_status"},pre_legal_approval_status:{reviewerField:"legal_reviewer",type:o.ProcessApprovalType.Legal,statusField:"legal_approval_status"},pre_sra_approval_status:{reviewerField:"sra_reviewer",type:o.ProcessApprovalType.SRA,statusField:"sra_approval_status"},pre_ca_approval_status:{reviewerField:"ca_reviewer",type:o.ProcessApprovalType.CA,statusField:"ca_approval_status"},pre_qc_approval_status:{reviewerField:"qc_reviewer",type:o.ProcessApprovalType.QC,statusField:"qc_approval_status"},pre_approval_status:{reviewerField:"reviewer",type:o.ProcessApprovalType.guding,statusField:"approval_status"}};t.addFormalReviewerAfterPreApproval=function(e,t,r,a){return i.__awaiter(void 0,void 0,void 0,function(){var s,n,c,p,u,_,v,f,m,h,b,w,y,O,S,A,I,P,T;return i.__generator(this,function(E){switch(E.label){case 0:return(s=D[r])?!0===(n=a[s.statusField])||n===o.ApprovalStatus.pass||!(c=a[s.reviewerField])||Array.isArray(c)&&0===c.length?[2]:(p=Array.isArray(c)?c:[c],[4,(0,g.getReviewerAgentsInfo)(e,a.space,p)]):[2];case 1:(u=E.sent()).userIds=(0,l.uniq)(u.userIds),_=e.meta.user,E.label=2;case 2:E.trys.push([2,8,9,10]),v=i.__values(u.userIds),f=v.next(),E.label=3;case 3:return f.done?[3,7]:(m=f.value,[4,e.getObject("space_users").directFind({filters:[["user","=",m],["space","=",a.space]]})]);case 4:return h=E.sent(),[4,e.getObject("pepsico_approval_process").insert({pepsico_material_approval:a._id,owner:m,type:s.type,review_department:h.length>0?h[0].organization:null,current_step:a.current_step,approved:"progess",space:a.space,created:new Date,created_by:_.userId,modified:new Date,modified_by:_.userId,name:""})];case 5:E.sent(),E.label=6;case 6:return f=v.next(),[3,3];case 7:return[3,10];case 8:return b=E.sent(),S={error:b},[3,10];case 9:try{f&&!f.done&&(A=v.return)&&A.call(v)}finally{if(S)throw S.error}return[7];case 10:return[4,e.getObject("pepsico_material_approval").directUpdate(a._id,(I={},I["handler_".concat((0,l.toLower)(s.type))]=u.userIds,I))];case 11:return E.sent(),[4,e.getObject("pepsico_material_approval").findOne(t)];case 12:return w=E.sent(),y=w.person_pending_approve||[],O=(0,l.compact)((0,l.concat)(y,u.userIds)),[4,e.getObject("pepsico_material_approval").directUpdate(a._id,(P={person_pending_approve:O},P[s.statusField]="",P))];case 13:return E.sent(),[4,e.getObject("pepsico_material").directUpdateMany([["pepsico_material_approval","=",t],[s.statusField,"=",!1]],(T={},T[s.statusField]="",T))];case 14:return E.sent(),console.log("[addFormalReviewerAfterPreApproval] 预审字段 ".concat(r," 通过, 追加正式审核人:"),u.userIds),[4,(0,d.sendNotifications)(e,a,u.userIds,"请审批")];case 15:return E.sent(),[2]}})})},t.getPreReviewStatuses=function(e){var r=[];return e.pre_ns_reviewer&&r.push({dept:"NS",status:e.pre_ns_approval_status,preField:"pre_ns_approval_status",deptApprovalField:"ns_approval_status"}),e.pre_legal_reviewer&&r.push({dept:"Legal",status:e.pre_legal_approval_status,preField:"pre_legal_approval_status",deptApprovalField:"legal_approval_status"}),e.pre_sra_reviewer&&r.push({dept:"SRA",status:e.pre_sra_approval_status,preField:"pre_sra_approval_status",deptApprovalField:"sra_approval_status"}),e.pre_ca_reviewer&&r.push({dept:"CA",status:e.pre_ca_approval_status,preField:"pre_ca_approval_status",deptApprovalField:"ca_approval_status"}),(0,t.needsQcReview)(e)&&e.pre_qc_reviewer&&r.push({dept:"QC",status:e.pre_qc_approval_status,preField:"pre_qc_approval_status",deptApprovalField:"qc_approval_status"}),r},t.hasNonPreReviewDepartments=function(e){var r=function(e){return!0===e||e===o.ApprovalStatus.approved||e===o.ApprovalStatus.pass};return!e.pre_ns_reviewer&&!r(e.ns_approval_status)||!e.pre_legal_reviewer&&!r(e.legal_approval_status)||!e.pre_sra_reviewer&&!r(e.sra_approval_status)||!e.pre_ca_reviewer&&!r(e.ca_approval_status)||!(!(0,t.needsQcReview)(e)||e.pre_qc_reviewer||r(e.qc_approval_status))},t.areDepartmentReviewsComplete=function(e){return(0,t.isDeptReviewComplete)(e,"ns")&&(0,t.isDeptReviewComplete)(e,"legal")&&(0,t.isDeptReviewComplete)(e,"sra")&&(0,t.isDeptReviewComplete)(e,"ca")&&(!(0,t.needsQcReview)(e)||(0,t.isDeptReviewComplete)(e,"qc"))},t.getDepartmentEffectiveStatuses=function(e){var r=[(0,t.getDeptEffectiveStatus)(e,"ns"),(0,t.getDeptEffectiveStatus)(e,"legal"),(0,t.getDeptEffectiveStatus)(e,"sra"),(0,t.getDeptEffectiveStatus)(e,"ca")];return(0,t.needsQcReview)(e)&&r.push((0,t.getDeptEffectiveStatus)(e,"qc")),r},t.advanceApproval=function(e,t,r){return i.__awaiter(void 0,void 0,void 0,function(){var a,s,n,c,u,f,h,b,y,O,P,T,k,R,L,U,N,M,x,F,q,G,B,V,H,J,Q,Y,z,K,$,Z,X,W,ee,te,re,ae,se,ne,ie,oe,ce,le,pe,ue,_e,de,ve,ge,fe,me,he;return i.__generator(this,function(be){switch(be.label){case 0:return be.trys.push([0,110,,111]),a="请查看",s=e.meta.user,[4,e.getObject("pepsico_material_approval").findOne(t)];case 1:return n=be.sent(),console.log("[advanceApproval]",n.current_step,n.person_pending_approve,s.userId),[4,(we=n,i.__awaiter(void 0,void 0,void 0,function(){return i.__generator(this,function(e){if(we.review_status===o.ReviewStatus.terminated)throw new Error("已中止审核.");if(we.current_step===o.Step.conclusion)throw new Error("已审核完成.");return[2,!0]})}))];case 2:return be.sent(),[4,S(e,n,r)];case 3:return c=be.sent(),[4,w(e,n)];case 4:return u=be.sent(),c===o.Step.conclusion&&u?[4,e.getObject("pepsico_material_approval").directUpdate(n._id,{is_skip_approver:!0})]:[3,8];case 5:return be.sent(),[4,e.getObject("pepsico_material").directUpdateMany(["pepsico_material_approval","=",n._id],{is_skip_approver:!0})];case 6:return be.sent(),[4,j(e,n)];case 7:be.sent(),be.label=8;case 8:return[4,A(e,n,c)];case 9:if(f=be.sent(),n.current_step!==o.Step.submitter_revisions&&n.current_step!==o.Step.ai_review||c!==o.Step.departmental_review&&c!==o.Step.personnel_review)return[3,26];h=[],b={},be.label=10;case 10:be.trys.push([10,19,20,21]),y=i.__values(f),O=y.next(),be.label=11;case 11:return O.done?[3,18]:(te=O.value,P=(0,p.getApproverFieldByType)(te.type),console.log("getApproverFieldByType",te.type,P),P?[4,(0,p.getUserReviewedAllMaterialsStatus)(e,n._id,P)]:[3,17]);case 12:if(T=be.sent(),console.log("getUserReviewedAllMaterialsStatus",n._id,P,T),T!==o.ApprovalStatus.approved)return[3,15];if(R=(k=D[P])?n[k.statusField]:void 0,!k||!0===R||R===o.ApprovalStatus.pass)return[3,14];if(L=n[k.reviewerField],0===(U=L?Array.isArray(L)?L:[L]:[]).length)throw new Error("".concat(k.type,"正式审核人缺失, 预审自动通过后无法分派正式审核, 请联系管理员在审核人员配置中补充后重新提交"));return[4,(0,g.getReviewerAgentsInfo)(e,n.space,U)];case 13:(N=be.sent()).userIds=(0,l.uniq)(N.userIds),h.push(i.__assign(i.__assign({},N),{type:k.type})),console.log("[advanceApproval] 预审自动通过, 转入正式审核",t,P,k.type,N.userIds),be.label=14;case 14:return console.log("[advanceApproval] 自动更新审批单上的状态字段",t,((ve={})[P]=o.ApprovalStatus.approved,ve)),b[P]=!0,[3,16];case 15:T===o.ApprovalStatus.pass?console.log("[advanceApproval] 部门已跳过,保持bypass状态",t,P):h.push(te),be.label=16;case 16:be.label=17;case 17:return O=y.next(),[3,11];case 18:return[3,21];case 19:return M=be.sent(),_e={error:M},[3,21];case 20:try{O&&!O.done&&(de=y.return)&&de.call(y)}finally{if(_e)throw _e.error}return[7];case 21:return Object.keys(b).length>0?[4,e.getObject("pepsico_material_approval").directUpdate(t,b)]:[3,23];case 22:be.sent(),be.label=23;case 23:return h.length>0?(f=h,[3,26]):[3,24];case 24:return c=o.Step.awaiting_deployment,[4,A(e,n,c)];case 25:f=be.sent(),be.label=26;case 26:return console.log("[advanceApproval] currentStepApprovalStatus:",r," nextStep:",c," nextApprovers:",f),x=[],F=[],(0,l.map)(f,function(e){x=(0,l.concat)(x,e.userIds),F=(0,l.concat)(F,e.clientUserIds)}),q={current_step:c,review_status:I(c),person_pending_approve:x,$push:{person_view:{$each:(0,l.compact)((0,l.uniq)((0,l.difference)(F,x)))},person_approved:{$each:n.person_pending_approve}}},n.current_step!==o.Step.draft?[3,28]:(q.draft_submitted=new Date,[4,e.getObject("pepsico_material").directUpdateMany(["pepsico_material_approval","=",n._id],{draft_submitted:q.draft_submitted})]);case 27:be.sent(),be.label=28;case 28:return n.current_step===o.Step.ai_review&&(q.ai_reviewed_date=new Date),n.current_step!==o.Step.departmental_review&&n.current_step!==o.Step.personnel_review||(q.re_reviewed_date=new Date),c!==o.Step.awaiting_deployment?[3,30]:(q.review_completed_date=new Date,[4,e.getObject("pepsico_material").directUpdateMany(["pepsico_material_approval","=",n._id],{review_completed_date:q.review_completed_date})]);case 29:be.sent(),be.label=30;case 30:return n.current_step===o.Step.awaiting_deployment&&(q.awaiting_deployment_date=new Date),n.current_step!==o.Step.conclusion?[3,32]:(q.conclusion_date=new Date,n.review_completed_date?[3,32]:(q.review_completed_date=q.conclusion_date,[4,e.getObject("pepsico_material").directUpdateMany(["pepsico_material_approval","=",n._id],{review_completed_date:q.review_completed_date})]));case 31:be.sent(),be.label=32;case 32:return n.current_step===o.Step.submitter_revisions&&(q.submitter_revision_date=new Date,console.log("[advanceApproval] 检测到修改后提交场景, 标记图片对比任务: ".concat(t)),q.image_comparison_status="pending",q.image_comparison_at=new Date,q.image_comparison_failed_count=0),[4,e.getObject("pepsico_material_approval").update(t,q)];case 33:return be.sent(),[4,E(e,n,{nextStep:c,nextApprovers:f,description:""})];case 34:return be.sent(),c!==o.Step.ai_review?[3,38]:n.current_step!==o.Step.submitter_revisions?[3,37]:[4,(0,m.invalidateApprovalAIReviews)(e,t)];case 35:return G=be.sent(),console.log("[advanceApproval] 修改后重新AI审核, 失效历史AI意见 ".concat(G," 条: ").concat(t)),[4,(0,m.writeSystemLog)(e,"info",{action:"invalidate-ai-review",id:t,approval_name:n.name,operator:s&&s.userId,from_step:n.current_step,to_step:c,count:G},"AI意见失效")];case 36:be.sent(),be.label=37;case 37:(0,_.callAIReview)(e,t).catch(function(){}),be.label=38;case 38:be.trys.push([38,80,81,82]),B=i.__values(f),V=B.next(),be.label=39;case 39:return V.done?[3,79]:(H=V.value).type!==o.ProcessApprovalType.CA?[3,42]:[4,e.getObject("pepsico_material_approval").directUpdate(t,{ca_approval_status:""})];case 40:return be.sent(),[4,e.getObject("pepsico_material").directUpdateMany([["pepsico_material_approval","=",t],["ca_approval_status","=",!1]],{ca_approval_status:""})];case 41:be.sent(),be.label=42;case 42:return H.type!==o.ProcessApprovalType.QC?[3,45]:[4,e.getObject("pepsico_material_approval").directUpdate(t,{qc_approval_status:""})];case 43:return be.sent(),[4,e.getObject("pepsico_material").directUpdateMany([["pepsico_material_approval","=",t],["qc_approval_status","=",!1]],{qc_approval_status:""})];case 44:be.sent(),be.label=45;case 45:return H.type!==o.ProcessApprovalType.Legal?[3,48]:[4,e.getObject("pepsico_material_approval").directUpdate(t,{legal_approval_status:""})];case 46:return be.sent(),[4,e.getObject("pepsico_material").directUpdateMany([["pepsico_material_approval","=",t],["legal_approval_status","=",!1]],{legal_approval_status:""})];case 47:be.sent(),be.label=48;case 48:return H.type!==o.ProcessApprovalType.NS?[3,51]:[4,e.getObject("pepsico_material_approval").directUpdate(t,{ns_approval_status:""})];case 49:return be.sent(),[4,e.getObject("pepsico_material").directUpdateMany([["pepsico_material_approval","=",t],["ns_approval_status","=",!1]],{ns_approval_status:""})];case 50:be.sent(),be.label=51;case 51:return H.type!==o.ProcessApprovalType.SRA?[3,54]:[4,e.getObject("pepsico_material_approval").directUpdate(t,{sra_approval_status:""})];case 52:return be.sent(),[4,e.getObject("pepsico_material").directUpdateMany([["pepsico_material_approval","=",t],["sra_approval_status","=",!1]],{sra_approval_status:""})];case 53:be.sent(),be.label=54;case 54:return H.type!==o.ProcessApprovalType.guding?[3,57]:[4,e.getObject("pepsico_material_approval").directUpdate(t,{approval_status:""})];case 55:return be.sent(),[4,e.getObject("pepsico_material").directUpdateMany([["pepsico_material_approval","=",t],["approval_status","=",!1]],{approval_status:""})];case 56:be.sent(),be.label=57;case 57:return H.type!==o.ProcessApprovalType.Kids?[3,60]:[4,e.getObject("pepsico_material_approval").directUpdate(t,{kids_approval_status:""})];case 58:return be.sent(),[4,e.getObject("pepsico_material").directUpdateMany([["pepsico_material_approval","=",t],["kids_approval_status","=",!1]],{kids_approval_status:""})];case 59:be.sent(),be.label=60;case 60:return H.type!==o.ProcessApprovalType.PreNS?[3,63]:[4,e.getObject("pepsico_material_approval").directUpdate(t,{pre_ns_approval_status:""})];case 61:return be.sent(),[4,e.getObject("pepsico_material").directUpdateMany([["pepsico_material_approval","=",t],["pre_ns_approval_status","=",!1]],{pre_ns_approval_status:""})];case 62:be.sent(),be.label=63;case 63:return H.type!==o.ProcessApprovalType.PreLegal?[3,66]:[4,e.getObject("pepsico_material_approval").directUpdate(t,{pre_legal_approval_status:""})];case 64:return be.sent(),[4,e.getObject("pepsico_material").directUpdateMany([["pepsico_material_approval","=",t],["pre_legal_approval_status","=",!1]],{pre_legal_approval_status:""})];case 65:be.sent(),be.label=66;case 66:return H.type!==o.ProcessApprovalType.PreSRA?[3,69]:[4,e.getObject("pepsico_material_approval").directUpdate(t,{pre_sra_approval_status:""})];case 67:return be.sent(),[4,e.getObject("pepsico_material").directUpdateMany([["pepsico_material_approval","=",t],["pre_sra_approval_status","=",!1]],{pre_sra_approval_status:""})];case 68:be.sent(),be.label=69;case 69:return H.type!==o.ProcessApprovalType.PreCA?[3,72]:[4,e.getObject("pepsico_material_approval").directUpdate(t,{pre_ca_approval_status:""})];case 70:return be.sent(),[4,e.getObject("pepsico_material").directUpdateMany([["pepsico_material_approval","=",t],["pre_ca_approval_status","=",!1]],{pre_ca_approval_status:""})];case 71:be.sent(),be.label=72;case 72:return H.type!==o.ProcessApprovalType.PreQC?[3,75]:[4,e.getObject("pepsico_material_approval").directUpdate(t,{pre_qc_approval_status:""})];case 73:return be.sent(),[4,e.getObject("pepsico_material").directUpdateMany([["pepsico_material_approval","=",t],["pre_qc_approval_status","=",!1]],{pre_qc_approval_status:""})];case 74:be.sent(),be.label=75;case 75:return H.type!==o.ProcessApprovalType.Preguding?[3,78]:[4,e.getObject("pepsico_material_approval").directUpdate(t,{pre_approval_status:""})];case 76:return be.sent(),[4,e.getObject("pepsico_material").directUpdateMany([["pepsico_material_approval","=",t],["pre_approval_status","=",!1]],{pre_approval_status:""})];case 77:be.sent(),be.label=78;case 78:return V=B.next(),[3,39];case 79:return[3,82];case 80:return J=be.sent(),ge={error:J},[3,82];case 81:try{V&&!V.done&&(fe=B.return)&&fe.call(B)}finally{if(ge)throw ge.error}return[7];case 82:return c!==o.Step.departmental_review&&c!==o.Step.personnel_review?[3,84]:[4,j(e,n)];case 83:be.sent(),be.label=84;case 84:return n.current_step!==o.Step.departmental_review&&n.current_step!==o.Step.personnel_review?[3,86]:[4,e.getObject("pepsico_material_approval").directUpdate(t,{materials_remove_share_link_from_onedrive_status:"pending"})];case 85:be.sent(),be.label=86;case 86:return c!==o.Step.awaiting_deployment?[3,88]:[4,C(e,t)];case 87:be.sent(),be.label=88;case 88:return c===o.Step.awaiting_deployment||c===o.Step.conclusion&&n.current_step===o.Step.ai_review?(Q={materials_download_from_onedrive_status:"pending"},[4,e.getObject("pepsico_material_approval").directUpdate(t,Q)]):[3,90];case 89:be.sent(),be.label=90;case 90:return r===o.ApprovalStatus.rejected&&(a="内容审批被驳回"),r!==o.ApprovalStatus.approved||c!==o.Step.departmental_review&&c!==o.Step.personnel_review||(a="请审批"),c===o.Step.awaiting_deployment&&(a="内容审批已通过待上线"),Y=[],c!==o.Step.departmental_review&&c!==o.Step.personnel_review?[3,102]:(z=new Date,K=new Date(z.getTime()+2592e5),[4,e.getObject("pepsico_review_postpone").directFind({filters:[["pepsico_material_approval","=",t],["is_marker","=",!0]]})]);case 91:if(!(($=be.sent())&&$.length>0))return[3,102];Z=new Set($.map(function(e){return e.department_type})),X=function(t){var r,a,n,o,c,p,u,_;return i.__generator(this,function(d){switch(d.label){case 0:if(!Z.has(t.type))return[2,"continue"];r=t.userIds||[],a=$.filter(function(e){return e.department_type===t.type}),d.label=1;case 1:d.trys.push([1,6,7,8]),u=void 0,n=i.__values(a),o=n.next(),d.label=2;case 2:return o.done?[3,5]:(c=o.value,[4,e.getObject("pepsico_review_postpone").directUpdate(c._id,{is_marker:!1,visible_after:K,notification_sent:!1,postponed_user_ids:r.join(","),modified:z,modified_by:s.userId})]);case 3:d.sent(),d.label=4;case 4:return o=n.next(),[3,2];case 5:return[3,8];case 6:return p=d.sent(),u={error:p},[3,8];case 7:try{o&&!o.done&&(_=n.return)&&_.call(n)}finally{if(u)throw u.error}return[7];case 8:return Y=(0,l.compact)((0,l.uniq)((0,l.concat)(Y,r))),[2]}})},be.label=92;case 92:be.trys.push([92,97,98,99]),W=i.__values(f),ee=W.next(),be.label=93;case 93:return ee.done?[3,96]:(te=ee.value,[5,X(te)]);case 94:be.sent(),be.label=95;case 95:return ee=W.next(),[3,93];case 96:return[3,99];case 97:return re=be.sent(),me={error:re},[3,99];case 98:try{ee&&!ee.done&&(he=W.return)&&he.call(W)}finally{if(me)throw me.error}return[7];case 99:return Y.length>0?[4,e.getObject("pepsico_material_approval").findOne(t)]:[3,102];case 100:return ae=be.sent(),se=ae.review_postponed_users||[],ne=(0,l.compact)((0,l.uniq)((0,l.concat)(se,Y))),ie=ae.postpone_marker_users||[],oe=ie.filter(function(e){return!Y.includes(e)}),[4,e.getObject("pepsico_material_approval").directUpdate(t,{review_postponed_users:ne,postpone_marker_users:oe})];case 101:be.sent(),console.log("[advanceApproval] 自动延后审核人: ".concat(Y,", visibleAfter: ").concat(K)),be.label=102;case 102:return ce=Y.length>0?x.filter(function(e){return!Y.includes(e)}):x,[4,(0,d.sendNotifications)(e,n,ce,a)];case 103:return be.sent(),"内容审批被驳回"!==a&&"内容审批已通过待上线"!==a?[3,105]:[4,(0,v.notifyApprovalCcUsers)(e,n,a,d.sendCcNotifications,ce)];case 104:be.sent(),be.label=105;case 105:return c!==o.Step.awaiting_deployment?[3,107]:(le=n.owner,pe=n.material_owner_id,le&&pe&&le!==pe?(console.log("[advanceApproval] 通知发起人审核完成: initiator=".concat(le,", material_owner=").concat(pe)),[4,(0,d.sendNotifications)(e,n,[le],"审核完成")]):[3,107]);case 106:be.sent(),be.label=107;case 107:return c!==o.Step.conclusion?[3,109]:[4,(0,v.notifyApprovalCcUsers)(e,n,"内容审批已完成",d.sendCcNotifications,ce)];case 108:be.sent(),be.label=109;case 109:return[2,{}];case 110:throw ue=be.sent(),console.error("[advanceApproval] Error:",ue.message,ue.stack),ue;case 111:return[2]}var we})})},t.terminate=function(e,t,r,a){return i.__awaiter(void 0,void 0,void 0,function(){var s,n,c,p,u,_,d,v,g,f,m;return i.__generator(this,function(b){switch(b.label){case 0:return s=e.meta.user,[4,e.getObject("pepsico_material_approval").findOne(t)];case 1:return(n=b.sent()).owner===s.userId||s.is_space_admin||(0,l.includes)(n.person_pending_approve,s.userId)?[4,e.getObject("pepsico_approval_process").directFind({filters:[["pepsico_material_approval","=",n._id],["current_step","=",o.Step.conclusion],["owner","=",s.userId],["approved","=","terminate"]],sort:"created desc",top:1})]:[3,17];case 2:return c=i.__read.apply(void 0,[b.sent(),1]),(p=c[0])?[4,e.getObject("pepsico_approval_process").directUpdate(p._id,{modified:new Date,modified_by:s.userId,name:r,attachments:(0,h.mergeFileIds)(p.attachments,a)})]:[3,4];case 3:return b.sent(),[3,6];case 4:return[4,e.getObject("pepsico_approval_process").insert({pepsico_material_approval:n._id,current_step:o.Step.conclusion,owner:s.userId,space:n.space,created:new Date,created_by:s.userId,modified:new Date,modified_by:s.userId,approvalStatus:"terminate",approved:"terminate",name:r,attachments:(0,h.mergeFileIds)([],a)})];case 5:b.sent(),b.label=6;case 6:return[4,e.getObject("pepsico_approval_process").directFind({filters:[["pepsico_material_approval","=",n._id],["approved","=","progess"]]})];case 7:u=b.sent(),b.label=8;case 8:b.trys.push([8,13,14,15]),_=i.__values(u),d=_.next(),b.label=9;case 9:return d.done?[3,12]:(v=d.value,[4,e.getObject("pepsico_approval_process").directUpdate(v._id,{approved:"",modified:new Date,modified_by:s.userId})]);case 10:b.sent(),b.label=11;case 11:return d=_.next(),[3,9];case 12:return[3,15];case 13:return g=b.sent(),f={error:g},[3,15];case 14:try{d&&!d.done&&(m=_.return)&&m.call(_)}finally{if(f)throw f.error}return[7];case 15:return[4,e.getObject("pepsico_material_approval").update(t,{current_step:o.Step.conclusion,review_status:o.ReviewStatus.terminated,termination_date:new Date,person_pending_approve:[],termination_type:n.owner===s.userId?"发起人中止":"审批人中止"})];case 16:return b.sent(),[2,{}];case 17:throw new Error("Sorry, you don’t have permission to terminate the review.")}})})};var C=function(e,t){return i.__awaiter(this,void 0,void 0,function(){return i.__generator(this,function(r){switch(r.label){case 0:return[4,e.getObject("pepsico_material_approval").update(t,{launch:"pending"})];case 1:return r.sent(),[2]}})})};t.confirmDeployment=function(e,r,a){return void 0===a&&(a={content_rule:null}),i.__awaiter(this,void 0,void 0,function(){var s,n,c;return i.__generator(this,function(i){switch(i.label){case 0:return s=e.meta.user,[4,e.getObject("pepsico_material_approval").findOne(r)];case 1:if(n=i.sent(),s.userId!==n.material_owner_id)throw new Error("只有材料拥有者才能执行此操作.");return n.current_step!==o.Step.awaiting_deployment?[2,{}]:(0,l.includes)(n.person_pending_approve,s.userId)?[3,3]:[4,e.getObject("pepsico_material_approval").directUpdate(r,{person_pending_approve:[s.userId]})];case 2:i.sent(),n.person_pending_approve=[s.userId],i.label=3;case 3:return[4,P(e,n,{approvalStatus:o.ApprovalStatus.submit,approveField:""})];case 4:return i.sent(),c={launch:"launched",aunch_time:new Date},a&&void 0!==a.content_rule&&(c.content_rule=a.content_rule),[4,e.getObject("pepsico_material_approval").update(r,c)];case 5:return i.sent(),[4,(0,t.advanceApproval)(e,r,o.ApprovalStatus.submit)];case 6:return i.sent(),[4,(0,u.inventoryApprovalMaterial)(e,r)];case 7:return i.sent(),[2,{}]}})})},t.postponeDeployment=function(e,t,r){return i.__awaiter(this,void 0,void 0,function(){var a,s;return i.__generator(this,function(n){switch(n.label){case 0:return a=e.meta.user,[4,e.getObject("pepsico_material_approval").findOne(t)];case 1:if(s=n.sent(),a.userId!==s.material_owner_id)throw new Error("只有材料拥有者才能执行此操作.");return s.current_step!==o.Step.awaiting_deployment?[3,5]:(0,l.includes)(s.person_pending_approve,a.userId)?[3,3]:[4,e.getObject("pepsico_material_approval").directUpdate(t,{person_pending_approve:[a.userId]})];case 2:n.sent(),n.label=3;case 3:return[4,e.getObject("pepsico_material_approval").update(t,{launch:"postpone",postpone_launch_date:r.postpone_launch_date})];case 4:n.sent(),n.label=5;case 5:return[2,{}]}})})},t.approvalContent=function(e,r,a){var s=a.approveField,n=a.materialStatus,c=void 0===n?o.ApprovalStatus.approved:n;return i.__awaiter(this,void 0,void 0,function(){var a,n,p,u,_,d,v,g,f,h;return i.__generator(this,function(i){switch(i.label){case 0:return a=e.meta.user,[4,e.getObject("pepsico_material_approval").findOne(r)];case 1:return(n=i.sent()).current_step==o.Step.draft||(0,l.includes)(n.person_pending_approve,a.userId)?[3,3]:[4,(0,m.writeSystemLog)(e,"warn",{action:"approve-denied-not-pending",id:r,approval_name:n.name,operator:a&&a.userId,approve_field:s,current_step:n.current_step,person_pending_approve:n.person_pending_approve},"核准被拒绝: 用户不在待办名单")];case 2:return i.sent(),[2,{}];case 3:return p=c!==o.ApprovalStatus.pass||o.ApprovalStatus.pass,[4,T(e,r,s,p)];case 4:return i.sent(),[4,e.getObject("pepsico_material_approval").findOne(r)];case 5:return u=i.sent(),_=!0===p?o.ApprovalStatus.approved:p,[4,P(e,u,{approvalStatus:_,approveField:s})];case 6:return i.sent(),!D[s]||!0!==p&&p!==o.ApprovalStatus.pass?[3,8]:[4,(0,t.addFormalReviewerAfterPreApproval)(e,r,s,u)];case 7:i.sent(),i.label=8;case 8:if(d=function(e){return!0===e||e===o.ApprovalStatus.approved||e===o.ApprovalStatus.pass},v=function(e){return e===o.ApprovalStatus.pass},u.current_step===o.Step.departmental_review){if(!(0,t.areDepartmentReviewsComplete)(u))return console.log("[approvalContent]: 有部门审核周期未完成, 只结束当前用户审批任务,不推进审批进度."),[2,{}];(g=(0,t.getDepartmentEffectiveStatuses)(u)).every(d)?(f=g.every(v),_=f?o.ApprovalStatus.pass:o.ApprovalStatus.approved):_=o.ApprovalStatus.rejected,console.log("[approvalContent]: 部门复审完成, 结果为:",_)}else if(u.current_step===o.Step.personnel_review){if(!(0,t.isDeptReviewComplete)(u,"approval"))return console.log("[approvalContent]: 固定人员审核周期未完成, 只结束当前用户审批任务,不推进审批进度."),[2,{}];h=(0,t.getDeptEffectiveStatus)(u,"approval"),_=d(h)?v(h)?o.ApprovalStatus.pass:o.ApprovalStatus.approved:o.ApprovalStatus.rejected,console.log("[approvalContent]: 固定人员复审完成, 结果为:",_)}if("yes"==u.child_files){if(!(0,t.hasReviewed)(u.kids_approval_status))return console.log("[approvalContent]: kids审核人未审批, 只结束当前用户审批任务,不推进审批进度."),[2,{}];0==u.kids_approval_status&&(_=o.ApprovalStatus.rejected),console.log("[approvalContent]: kids审核完成, 结果为:",_)}return console.log("[approvalContent] 推进审批进度,参数为 审批单: ".concat(r," 当前步骤: ").concat(u.current_step," 审批结果为: ").concat(_)),[4,(0,t.advanceApproval)(e,r,_)];case 9:return i.sent(),[2,{}]}})})},t.rejectContent=function(e,r,a){var s=a.approveField;return i.__awaiter(this,void 0,void 0,function(){var a,n,c,p;return i.__generator(this,function(i){switch(i.label){case 0:return a=e.meta.user,[4,e.getObject("pepsico_material_approval").findOne(r)];case 1:return(n=i.sent()).current_step==o.Step.draft||(0,l.includes)(n.person_pending_approve,a.userId)?[3,3]:[4,(0,m.writeSystemLog)(e,"warn",{action:"reject-denied-not-pending",id:r,approval_name:n.name,operator:a&&a.userId,approve_field:s,current_step:n.current_step,person_pending_approve:n.person_pending_approve},"驳回被拒绝: 用户不在待办名单")];case 2:case 7:return i.sent(),[2,{}];case 3:return[4,T(e,r,s,!1)];case 4:return i.sent(),[4,e.getObject("pepsico_material_approval").findOne(r)];case 5:return c=i.sent(),p=o.ApprovalStatus.rejected,[4,P(e,c,{approvalStatus:o.ApprovalStatus.rejected,approveField:s})];case 6:if(i.sent(),c.current_step===o.Step.departmental_review){if(!(0,t.areDepartmentReviewsComplete)(c))return console.log("[rejectContent]: 有部门审核周期未完成, 只结束当前用户审批任务,不推进审批进度."),[2,{}];console.log("[rejectContent]: 部门复审完成")}else if(c.current_step===o.Step.personnel_review){if(!(0,t.isDeptReviewComplete)(c,"approval"))return console.log("[rejectContent]: 固定人员审核周期未完成, 只结束当前用户审批任务,不推进审批进度."),[2,{}];console.log("[rejectContent]: 固定人员复审完成")}if("yes"==c.child_files){if(!(0,t.hasReviewed)(c.kids_approval_status))return console.log("[rejectContent]: kids审核人未审批, 只结束当前用户审批任务,不推进审批进度."),[2,{}];console.log("[rejectContent]: kids审核完成")}return console.log("[rejectContent] 推进审批进度,参数为 审批单: ".concat(r," 当前步骤: ").concat(c.current_step," 审批结果为: ").concat(p)),[4,(0,t.advanceApproval)(e,r,p)]}})})},t.submitKidsContent=function(e,r,a){return i.__awaiter(this,void 0,void 0,function(){var s;return i.__generator(this,function(n){switch(n.label){case 0:if(a!=o.ApprovalStatus.approved&&a!=o.ApprovalStatus.rejected)throw new Error("无效的审核状态.");return s="kids_approval_status",a!==o.ApprovalStatus.approved?[3,2]:[4,(0,t.approvalContent)(e,r,{approveField:s})];case 1:return n.sent(),[3,4];case 2:return[4,(0,t.rejectContent)(e,r,{approveField:s})];case 3:n.sent(),n.label=4;case 4:return[2]}})})},t.submitPreReviewContent=function(e,r,a){return i.__awaiter(this,void 0,void 0,function(){var s,n,c,p,u;return i.__generator(this,function(i){switch(i.label){case 0:if(a!=o.ApprovalStatus.approved&&a!=o.ApprovalStatus.rejected)throw new Error("无效的审核状态.");return s=e.meta.user,[4,e.getObject("pepsico_material_approval").findOne(r)];case 1:if((n=i.sent()).current_step!==o.Step.departmental_review&&n.current_step!==o.Step.personnel_review)throw new Error("当前步骤不支持预审操作");if(!(0,l.includes)(n.person_pending_approve,s.userId))throw new Error("您不是当前预审人");return c="",n.pre_reviewer===s.userId?c="pre_approval_status":n.pre_ns_reviewer===s.userId?c="pre_ns_approval_status":n.pre_legal_reviewer===s.userId?c="pre_legal_approval_status":n.pre_sra_reviewer===s.userId?c="pre_sra_approval_status":n.pre_ca_reviewer===s.userId?c="pre_ca_approval_status":(0,t.needsQcReview)(n)&&n.pre_qc_reviewer===s.userId&&(c="pre_qc_approval_status"),c?[3,3]:[4,e.getObject("pepsico_approval_process").find({filters:[["owner","=",s.userId],["pepsico_material_approval","=",r],["current_step","=",n.current_step],["space","=",n.space],["approved","=","progess"]],top:1,sort:"modified desc"})];case 2:(p=i.sent()).length>0&&((u=p[0].type)===o.ProcessApprovalType.PreNS?c="pre_ns_approval_status":u===o.ProcessApprovalType.PreLegal?c="pre_legal_approval_status":u===o.ProcessApprovalType.PreSRA?c="pre_sra_approval_status":u===o.ProcessApprovalType.PreCA?c="pre_ca_approval_status":u===o.ProcessApprovalType.PreQC?c="pre_qc_approval_status":u===o.ProcessApprovalType.Preguding&&(c="pre_approval_status")),i.label=3;case 3:if(!c)throw new Error("无法确定预审字段");return a!==o.ApprovalStatus.approved?[3,5]:[4,(0,t.approvalContent)(e,r,{approveField:c})];case 4:return i.sent(),[3,7];case 5:return[4,(0,t.rejectContent)(e,r,{approveField:c})];case 6:i.sent(),i.label=7;case 7:return[2]}})})},t.submitContent=function(e,r,a,s){return i.__awaiter(this,void 0,void 0,function(){var n,c,u,_,v,g,f,h,w,y,S,A,I,T,E,j,D,C,k,R,L,U,N,M;return i.__generator(this,function(x){switch(x.label){case 0:return[4,e.getObject("pepsico_material_approval").findOne(r)];case 1:return n=x.sent(),c=e.meta.user,u=!1,n.current_step===o.Step.ai_review&&c.is_space_admin&&!0===s?(console.log("".concat(c.name,"(").concat(c.userId,")提交了AI审核步骤:"),r),u=!0,[4,e.getObject("pepsico_approval_process").find({filters:[["owner","=",process.env.PEPSICO_CONTENT_APPROVAL_AI_USERID],["pepsico_material_approval","=",r],["current_step","=",o.Step.ai_review],["space","=",n.space],["approved","=","progess"]],top:1,sort:"modified desc"})]):[3,10];case 2:_=x.sent(),console.log("管理员提交了AI审核步骤, 修改审批历史: process.length:",_.length,JSON.stringify({filters:[["owner","=",process.env.PEPSICO_CONTENT_APPROVAL_AI_USERID],["pepsico_material_approval","=",r],["current_step","=",o.Step.ai_review],["space","=",n.space],["approved","=","progess"]],top:1,sort:"modified desc"})),x.label=3;case 3:x.trys.push([3,8,9,10]),v=i.__values(_),g=v.next(),x.label=4;case 4:return g.done?[3,7]:(f=g.value,console.log("管理员提交了AI审核步骤, 修改审批历史: process Id:",f._id),[4,e.getObject("pepsico_approval_process").directUpdate(f._id,{submitted:new Date,modified:new Date,modified_by:c.userId,approved:"skip"})]);case 5:x.sent(),x.label=6;case 6:return g=v.next(),[3,4];case 7:return[3,10];case 8:return h=x.sent(),N={error:h},[3,10];case 9:try{g&&!g.done&&(M=v.return)&&M.call(v)}finally{if(N)throw N.error}return[7];case 10:if(1!=u&&n.current_step!=o.Step.draft&&!(0,l.includes)(n.person_pending_approve,c.userId))return[2,{}];if(!n.is_external||n.current_step!==o.Step.draft||1==n.external_submitted)return[3,14];if(n.owner!==c.userId)return[3,13];if(!n.internal_collaborator)throw new Error("请先选择内部协作者");return[4,e.getObject("pepsico_material_approval").directUpdate(r,{owner:n.internal_collaborator,external_submitted:!0})];case 11:return x.sent(),[4,(0,d.sendNotifications)(e,n,[n.internal_collaborator],"协助提交材料审批单")];case 12:x.sent(),x.label=13;case 13:return[2];case 14:return n.current_step!==o.Step.draft&&n.current_step!==o.Step.submitter_revisions?[3,20]:(w=n.current_step===o.Step.draft?"submit":"resubmit",y=b.uniq(b.compact(n.pls_km_files||[])),S=b.compact(b.map(n.pls_upload_files||[],function(e){var t=e;return"object"==typeof t&&null!==t?t.value||t._id:t})),S.length>0?[4,(0,m.createApplicationPLSFiles)(e,S,n,void 0,{checkDuplicate:n.current_step===o.Step.draft})]:[3,18]);case 15:return A=x.sent(),I=b.uniq(b.compact(y.concat(A.records.map(function(e){return e.id})))),[4,e.getObject("pepsico_material_approval").directUpdate(n._id,{pls_km_files:I,pls_upload_files:[],modified:new Date,modified_by:c.userId})];case 16:return x.sent(),[4,e.getObject("pepsico_material_approval").findOne(r)];case 17:n=x.sent(),x.label=18;case 18:return T=b.uniq(b.compact(n.pls_km_files||[])),E=y.length>0,j=S.length>0,[4,(0,m.logPLSChange)(e,{approval:n,scene:w,beforeIds:y,afterIds:T,source:E&&j?"mixed":j?"upload":"existing"})];case 19:x.sent(),x.label=20;case 20:return n.current_step!==o.Step.draft?[3,28]:[4,O(e,n)];case 21:if((D=x.sent())===o.Step.departmental_review&&(0,t.needsQcReview)(n)&&b.isEmpty(n.qc_reviewer))throw new Error("QC审核人缺失, 请确认审批单对应审核人员信息");return[4,e.getObject("pepsico_material_approval").directUpdate(n._id,{approval_type:D})];case 22:return x.sent(),[3,25];case 23:return 1!=x.sent()?[2,{status:500,msg:"更新素材失败, 请稍后重试",data:{}}]:[4,(0,p.downloadBulkFromOneDriveDoc)(e,r)];case 24:if(1!=x.sent())return[2,{status:500,msg:"更新素材失败, 请稍后重试",data:{}}];x.label=25;case 25:return n&&n.material_owner?[4,e.getObject("space_users").find({filters:[["email","=",n.material_owner],["space","=",n.space]]})]:[3,28];case 26:return(C=x.sent())&&C.length>0?(k=C[0],[4,e.getObject("pepsico_material_approval").directUpdate(r,{material_owner_id:k.user})]):[3,28];case 27:x.sent(),x.label=28;case 28:return console.log("[submitContent] 步骤提交,参数为 审批单: ".concat(r," 当前步骤: ").concat(n.current_step," 审批结果为: ").concat(a)),n.current_step!==o.Step.ai_review||a!==o.ApprovalStatus.approved?[3,38]:[4,(0,p.getOneDriveMaterials)(e,r)];case 29:return R=x.sent(),"completed"==n.materials_xml_to_word_status?[3,32]:[4,e.getObject("pepsico_material_approval").directUpdate(n._id,{materials_download_from_onedrive_failed_count:0,materials_download_from_onedrive_status:"not_started",materials_remove_share_link_from_onedrive_failed_count:0,materials_remove_share_link_from_onedrive_status:"not_started",materials_uploaded_to_onedrive_failed_count:0,materials_uploaded_to_onedrive_status:"not_started"})];case 30:return x.sent(),[4,e.getObject("pepsico_material_approval").findOne(r)];case 31:n=x.sent(),x.label=32;case 32:return"completed"==n.materials_uploaded_to_onedrive_status?[3,38]:(console.log("materials:",R.length),0!==R.length?[3,34]:[4,e.getObject("pepsico_material_approval").directUpdate(n._id,{materials_uploaded_to_onedrive_status:"no_materials",materials_xml_to_word_status:"no_materials"})]);case 33:return x.sent(),[3,38];case 34:return L=R.filter(function(e){return!0!==e.xml_converted_word}),console.log("pendingXmlToWordMaterials:",L.length),L.length>0&&"no_materials"!=n.materials_xml_to_word_status?[4,e.getObject("pepsico_material_approval").directUpdate(n._id,{materials_xml_to_word_status:"pending"})]:[3,36];case 35:return x.sent(),[2];case 36:return U=R.filter(function(e){return!0!==e.uploaded_to_onedrive}),console.log("pendingUploadMaterials:",U.length),U.length>0?[4,e.getObject("pepsico_material_approval").directUpdate(n._id,{materials_uploaded_to_onedrive_status:"pending"})]:[3,38];case 37:return x.sent(),[2];case 38:return console.time("updateUserStepStatus: "+r),[4,P(e,n,{approvalStatus:a,approveField:""})];case 39:return x.sent(),console.timeEnd("updateUserStepStatus: "+r),console.time("advanceApproval: "+r),[4,(0,t.advanceApproval)(e,r,a)];case 40:return x.sent(),console.timeEnd("advanceApproval: "+r),[2]}})})},t.hasReviewed=function(e){return!0===e||!1===e||e===o.ApprovalStatus.pass||e===o.ApprovalStatus.approved};var k=((a={})[o.ProcessApprovalType.NS]="ns_reviewer",a[o.ProcessApprovalType.Legal]="legal_reviewer",a[o.ProcessApprovalType.SRA]="sra_reviewer",a[o.ProcessApprovalType.CA]="ca_reviewer",a[o.ProcessApprovalType.QC]="qc_reviewer",a[o.ProcessApprovalType.guding]="reviewer",a[o.ProcessApprovalType.Kids]="kids_reviewer",a[o.ProcessApprovalType.PreNS]="pre_ns_reviewer",a[o.ProcessApprovalType.PreLegal]="pre_legal_reviewer",a[o.ProcessApprovalType.PreSRA]="pre_sra_reviewer",a[o.ProcessApprovalType.PreCA]="pre_ca_reviewer",a[o.ProcessApprovalType.PreQC]="pre_qc_reviewer",a[o.ProcessApprovalType.Preguding]="pre_reviewer",a),R=((s={})[o.ProcessApprovalType.NS]="handler_ns",s[o.ProcessApprovalType.Legal]="handler_legal",s[o.ProcessApprovalType.SRA]="handler_sra",s[o.ProcessApprovalType.CA]="handler_ca",s[o.ProcessApprovalType.QC]="handler_qc",s[o.ProcessApprovalType.guding]="handler_guding",s[o.ProcessApprovalType.Kids]="handler_kids",s[o.ProcessApprovalType.PreNS]="handler_prens",s[o.ProcessApprovalType.PreLegal]="handler_prelegal",s[o.ProcessApprovalType.PreSRA]="handler_presra",s[o.ProcessApprovalType.PreCA]="handler_preca",s[o.ProcessApprovalType.PreQC]="handler_preqc",s[o.ProcessApprovalType.Preguding]="handler_preguding",s),L=((n={})[o.ProcessApprovalType.NS]="ns_approval_status",n[o.ProcessApprovalType.Legal]="legal_approval_status",n[o.ProcessApprovalType.SRA]="sra_approval_status",n[o.ProcessApprovalType.CA]="ca_approval_status",n[o.ProcessApprovalType.QC]="qc_approval_status",n[o.ProcessApprovalType.guding]="approval_status",n[o.ProcessApprovalType.Kids]="kids_approval_status",n[o.ProcessApprovalType.PreNS]="pre_ns_approval_status",n[o.ProcessApprovalType.PreLegal]="pre_legal_approval_status",n[o.ProcessApprovalType.PreSRA]="pre_sra_approval_status",n[o.ProcessApprovalType.PreCA]="pre_ca_approval_status",n[o.ProcessApprovalType.PreQC]="pre_qc_approval_status",n[o.ProcessApprovalType.Preguding]="pre_approval_status",n),U=[o.ProcessApprovalType.CA,o.ProcessApprovalType.QC,o.ProcessApprovalType.SRA,o.ProcessApprovalType.NS,o.ProcessApprovalType.Legal,o.ProcessApprovalType.guding,o.ProcessApprovalType.PreCA,o.ProcessApprovalType.PreQC,o.ProcessApprovalType.PreSRA,o.ProcessApprovalType.PreNS,o.ProcessApprovalType.PreLegal,o.ProcessApprovalType.Preguding],N=function(e){return e?Array.isArray(e)?e:[e]:[]},M=function(e,t,r){var a=R[t],s=k[t],n=a?N(e[a]):[],i=s?N(e[s]):[],o=n.length>0?n:i;return(0,l.includes)(o,r)};t.getPostponeReviewDepartmentType=function(e,t,r){var a=(0,l.compact)((0,l.uniq)((0,l.map)(t||[],"type"))),s=a.find(function(t){if(t===o.ProcessApprovalType.Kids)return!1;var r=L[t];return!!r&&!1===e[r]});if(s)return s;if(r){var n=U.find(function(t){var a=L[t];return!!a&&!1===e[a]&&M(e,t,r)});if(n)return n}if(a.includes(o.ProcessApprovalType.Kids)||r&&M(e,o.ProcessApprovalType.Kids,r))throw new Error("Kids审核人不支持延后审核操作");throw new Error("仅驳回审批单后可以延后审核")},t.postponeReview=function(e,r,a){return i.__awaiter(this,void 0,void 0,function(){var s,n,c,p,u,_,d,v,g,f,m,h,w,y,O,S,A,I,P,T;return i.__generator(this,function(E){switch(E.label){case 0:if(s=e.meta.user,!(n=b.trim(a&&a.postpone_reason||"")))throw new Error("请填写延后原因");return[4,e.getObject("pepsico_material_approval").findOne(r)];case 1:if(c=E.sent(),![o.Step.departmental_review,o.Step.personnel_review].includes(c.current_step)&&c.current_step!==o.Step.submitter_revisions)throw new Error("当前步骤不支持延后审核操作");if(c.is_urgent)throw new Error("加急审批单不允许延后审核");if(!(0,l.includes)(c.person_approved,s.userId))throw new Error("您不在当前已审批人列表中");return[4,e.getObject("pepsico_approval_process").directFind({filters:[["pepsico_material_approval","=",r],["owner","=",s.userId],["approved","=","progess"],["space","=",c.space]]})];case 2:if(E.sent().length>0)throw new Error("您还有待处理的审批任务,无法执行延后审核");return[4,e.getObject("pepsico_approval_process").directFind({filters:[["pepsico_material_approval","=",r],["owner","=",s.userId],["space","=",c.space]],sort:"created desc"})];case 3:if(!(p=E.sent())||0===p.length)throw new Error("未找到您的审核记录");if(!(u=(0,t.getPostponeReviewDepartmentType)(c,p,s.userId)))throw new Error("无法确定您所在的审核部门");if(!(_=L[u])||!1!==c[_])throw new Error("仅驳回审批单后可以延后审核");return d=k[u],v=R[u],g=[],v&&c[v]?g=N(c[v]):d&&c[d]&&(g=N(c[d])),0===g.length&&(g=[s.userId]),f=new Date,[4,e.getObject("pepsico_review_postpone").directFind({filters:[["pepsico_material_approval","=",r],["postpone_by","=",s.userId],["space","=",c.space],["is_marker","=",!0]],sort:"created desc"})];case 4:return(m=E.sent())&&m.length>0?(h=m[0],[4,e.getObject("pepsico_review_postpone").directUpdate(h._id,{department_type:u,postpone_reason:n,postpone_date:f,postponed_user_ids:g.join(","),notification_sent:!1,modified:f,modified_by:s.userId,name:"".concat(u," 延后审核标记 ").concat(f.toISOString())})]):[3,14];case 5:E.sent(),E.label=6;case 6:E.trys.push([6,11,12,13]),w=i.__values(m.slice(1)),y=w.next(),E.label=7;case 7:return y.done?[3,10]:(O=y.value,[4,e.getObject("pepsico_review_postpone").directUpdate(O._id,{is_marker:!1,notification_sent:!0,modified:f,modified_by:s.userId})]);case 8:E.sent(),E.label=9;case 9:return y=w.next(),[3,7];case 10:return[3,13];case 11:return S=E.sent(),P={error:S},[3,13];case 12:try{y&&!y.done&&(T=w.return)&&T.call(w)}finally{if(P)throw P.error}return[7];case 13:return[3,16];case 14:return[4,e.getObject("pepsico_review_postpone").insert({pepsico_material_approval:r,department_type:u,postpone_by:s.userId,postpone_reason:n,postpone_date:f,is_marker:!0,notification_sent:!1,postponed_user_ids:g.join(","),space:c.space,created:f,created_by:s.userId,modified:f,modified_by:s.userId,name:"".concat(u," 延后审核标记 ").concat(f.toISOString())})];case 15:E.sent(),E.label=16;case 16:return console.log("[postponeReview] recordId=".concat(r,", departmentType=").concat(u,", deptUserIds=").concat(g,", markedForNextRound=true")),A=c.postpone_marker_users||[],I=(0,l.compact)((0,l.uniq)((0,l.concat)(A,g))),[4,e.getObject("pepsico_material_approval").directUpdate(r,{postpone_marker_users:I})];case 17:return E.sent(),[2,{}]}})})}},5584:e=>{e.exports=require("tslib")},5949:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.backfillTagLabels=t.computeTagLabels=t.loadTagNames=t.formatTagLabel=t.parseTagValuePaths=t.TAG_LABEL_FIELDS=void 0;var a=r(5584),s=r(7825),n=r(7283);t.TAG_LABEL_FIELDS={pepsico_material_approval:[{field:"product",labelField:"product_label",tagId:n.PRODUCT_TAG_ID,picklistCode:n.getProductPicklistCode,extraFields:["form_version"]},{field:"material_type",labelField:"material_type_label",tagId:"223321001114222"},{field:"available_channels",labelField:"available_channels_label",tagId:"223321001114944"},{field:"content_rule",labelField:"content_rule_label",tagId:"223321022150011"}],pepsico_material:[{field:"material_type",labelField:"material_type_label",tagId:"223321001114222"}]};var i=/[,、]/;t.parseTagValuePaths=function(e){var t=s.flatMap(s.castArray(e),function(e){return s.isString(e)?e.split(i):[]});return s.compact(t.map(function(e){var t=s.compact(e.split("-").map(function(e){return e.trim()}));return t.length>0?t:null}))},t.formatTagLabel=function(e,t){return e.map(function(e){return e.map(function(e){return t[e]||e}).join("-")}).join("、")};var o={};t.loadTagNames=function(e,t,r){return a.__awaiter(void 0,void 0,void 0,function(){var n,i;return a.__generator(this,function(a){switch(a.label){case 0:return 0===r.length?[2,{}]:o[t]?[3,2]:[4,e.getObject("picklists").directFind({filters:[["code","=",t]],fields:["_id"],top:1})];case 1:if(0===(n=a.sent()).length)return[2,{}];o[t]=n[0]._id,a.label=2;case 2:return[4,e.getObject("picklist_options").directFind({filters:[["picklist","=",o[t]],["value","in",s.uniq(r)]],fields:["value","name"]})];case 3:return i=a.sent(),[2,s.fromPairs(i.map(function(e){return[e.value,e.name]}))]}})})},t.computeTagLabels=function(e,r,n){return a.__awaiter(void 0,void 0,void 0,function(){var i,o,c,l,p,u,_,d,v;return a.__generator(this,function(g){switch(g.label){case 0:i={},g.label=1;case 1:g.trys.push([1,6,7,8]),o=a.__values(t.TAG_LABEL_FIELDS[r]||[]),c=o.next(),g.label=2;case 2:return c.done?[3,5]:(l=c.value,p=(0,t.parseTagValuePaths)(n[l.field]),[4,(0,t.loadTagNames)(e,l.picklistCode?l.picklistCode(n):l.tagId,s.flatten(p))]);case 3:u=g.sent(),i[l.labelField]=p.length>0?(0,t.formatTagLabel)(p,u):null,g.label=4;case 4:return c=o.next(),[3,2];case 5:return[3,8];case 6:return _=g.sent(),d={error:_},[3,8];case 7:try{c&&!c.done&&(v=o.return)&&v.call(o)}finally{if(d)throw d.error}return[7];case 8:return[2,i]}})})},t.backfillTagLabels=function(e,r,n){return void 0===n&&(n={}),a.__awaiter(void 0,void 0,void 0,function(){var i,o,c,l,p,u,_,d,v,g,f,m;return a.__generator(this,function(h){switch(h.label){case 0:if(!(i=t.TAG_LABEL_FIELDS[r]))throw new Error("不支持的对象: ".concat(r));return o=n.batchSize||500,[4,e.getObject(r).directFind({filters:n.lastId?[["_id",">",n.lastId]]:[],fields:s.uniq(a.__spreadArray(a.__spreadArray(a.__spreadArray(["_id"],a.__read(i.map(function(e){return e.field})),!1),a.__read(i.map(function(e){return e.labelField})),!1),a.__read(s.flatMap(i,function(e){return e.extraFields||[]})),!1)),sort:"_id asc",top:o})];case 1:c=h.sent(),l=0,p=function(n){var o,c;return a.__generator(this,function(a){switch(a.label){case 0:return i.some(function(e){return!n[e.labelField]&&(0,t.parseTagValuePaths)(n[e.field]).length>0})?[4,(0,t.computeTagLabels)(e,r,n)]:[2,"continue"];case 1:return o=a.sent(),c=s.pickBy(o,function(e,t){return!n[t]&&!!e}),s.isEmpty(c)?[3,3]:[4,e.getObject(r).directUpdate(n._id,c)];case 2:a.sent(),l++,a.label=3;case 3:return[2]}})},h.label=2;case 2:h.trys.push([2,7,8,9]),u=a.__values(c),_=u.next(),h.label=3;case 3:return _.done?[3,6]:(d=_.value,[5,p(d)]);case 4:h.sent(),h.label=5;case 5:return _=u.next(),[3,3];case 6:return[3,9];case 7:return v=h.sent(),g={error:v},[3,9];case 8:try{_&&!_.done&&(f=u.return)&&f.call(u)}finally{if(g)throw g.error}return[7];case 9:return[4,null===(m=e.logger)||void 0===m?void 0:m.info("[标签名称快照]回填-".concat(r),{objectName:r,scanned:c.length,updated:l})];case 10:return h.sent(),[2,{scanned:c.length,updated:l,lastId:c.length>0?s.last(c)._id:n.lastId,hasMore:c.length>=o}]}})})}},6074:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.migrateSpotCheckData=void 0;var a=r(5584);t.migrateSpotCheckData={rest:{method:"POST",fullPath:"/api/pepsico-content/material/migrate-spot-check-data"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n,i,o,c,l,p,u,_,d,v,g,f;return a.__generator(this,function(m){switch(m.label){case 0:return t=e.meta.user,e.getObject=this.getObject,[4,this.getLogger()];case 1:if(r=m.sent(),e.logger=r,!t||!t.is_space_admin)return[2,{status:403,msg:"只有管理员可以执行数据迁移",data:{}}];m.label=2;case 2:return m.trys.push([2,18,,19]),[4,e.getObject("pepsico_material").find({filters:[["spot_checked","=",!0],["pepsico_spot_check","!=",null]],fields:["_id","pepsico_spot_check","spot_check_time","pepsico_spot_check_status","spot_description","space"]})];case 3:s=m.sent(),null==r||r.info("Found ".concat(s.length," materials with spot check data to migrate")),n=0,i=0,m.label=4;case 4:m.trys.push([4,15,16,17]),o=a.__values(s),c=o.next(),m.label=5;case 5:return c.done?[3,14]:(l=c.value,[4,e.getObject("pepsico_material_spot_check_record").findOne({filters:[["pepsico_material","=",l._id],["spot_checker","=",l.pepsico_spot_check]]})]);case 6:if(m.sent())return i++,[3,13];if(p="",!l.pepsico_spot_check)return[3,10];m.label=7;case 7:return m.trys.push([7,9,,10]),[4,e.getObject("space_users").findOne({filters:["user","=",l.pepsico_spot_check]})];case 8:return u=m.sent(),p=(null==u?void 0:u.organization)||"",[3,10];case 9:return _=m.sent(),null==r||r.error("Error getting department for user ".concat(l.pepsico_spot_check),_),[3,10];case 10:return[4,e.getObject("pepsico_material_spot_check_record").insert({pepsico_material:l._id,spot_checker:l.pepsico_spot_check,spot_check_department:p,spot_check_time:l.spot_check_time||new Date,spot_check_status:void 0===l.pepsico_spot_check_status||l.pepsico_spot_check_status,spot_check_opinion:l.spot_description||"",space:l.space},t)];case 11:return m.sent(),[4,e.getObject("pepsico_material").directUpdate(l._id,{spot_checkers:[l.pepsico_spot_check],spot_check_departments:p?[p]:[],spot_check_overall_status:"checked"})];case 12:m.sent(),++n%100==0&&(null==r||r.info("Migrated ".concat(n," records..."))),m.label=13;case 13:return c=o.next(),[3,5];case 14:return[3,17];case 15:return d=m.sent(),g={error:d},[3,17];case 16:try{c&&!c.done&&(f=o.return)&&f.call(o)}finally{if(g)throw g.error}return[7];case 17:return null==r||r.info("Migration complete. Migrated: ".concat(n,", Skipped: ").concat(i)),[2,{status:0,msg:"数据迁移完成",data:{migrated:n,skipped:i,total:s.length}}];case 18:return v=m.sent(),null==r||r.error("Migration failed",v),[2,{status:500,msg:"数据迁移失败: ".concat(v.message),data:{}}];case 19:return[2]}})})}}},6118:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.findMaterialGroupPath=t.loadMaterialGroupOptions=t.matchMaterialGroupRule=t.getQueryMode=t.materialGroupRuleMatches=t.QueryMode=t.MATERIAL_GROUP_RULE_OBJECT_NAME=void 0;var a=r(5584),s=r(7825),n=r(8844),i=r(777),o=r(5949),c=r(7283);t.MATERIAL_GROUP_RULE_OBJECT_NAME="pepsico_ch_material_group_rule",t.QueryMode={product:"product",sales:"sales"},t.materialGroupRuleMatches=function(e,t){return!((0,n.isUnset)(e.orgs)&&(0,n.isUnset)(e.classification)||!(0,n.isUnset)(e.orgs)&&0===s.intersection((0,n.toValues)(e.orgs),t.orgIds).length||!(0,n.isUnset)(e.classification)&&!(0,n.pathMatches)(t.classification,e.classification))},t.getQueryMode=function(e){return e?e.query_mode||t.QueryMode.sales:t.QueryMode.product},t.matchMaterialGroupRule=function(e,r){return a.__awaiter(void 0,void 0,void 0,function(){var i,o,c;return a.__generator(this,function(a){switch(a.label){case 0:return[4,e.getObject(t.MATERIAL_GROUP_RULE_OBJECT_NAME).directFind({filters:[["active","=",!0]],fields:["_id","name","priority","orgs","classification","query_mode"],sort:"priority asc"})];case 1:return 0===(i=a.sent()).length?[2,null]:(c={},[4,(0,n.getOrgIds)(e,r.ownerDepartment)]);case 2:return c.orgIds=a.sent(),c.classification=r.classification,o=c,[2,s.find(i,function(e){return(0,t.materialGroupRuleMatches)(e,o)})||null]}})})},t.loadMaterialGroupOptions=function(e,r){return a.__awaiter(void 0,void 0,void 0,function(){var n,l,p,u,_;return a.__generator(this,function(a){switch(a.label){case 0:return n=!!r.sales,l=s.compact(s.castArray(r.path||[])),n||0!==l.length?[3,2]:[4,(0,t.matchMaterialGroupRule)(e,{ownerDepartment:r.ownerDepartment,classification:r.classification})];case 1:p=a.sent(),n=(0,t.getQueryMode)(p)===t.QueryMode.sales,a.label=2;case 2:return n||0!==l.length?[3,4]:0===(u=(0,o.parseTagValuePaths)(r.product)).length?[2,[]]:[4,(0,o.loadTagNames)(e,c.PRODUCT_PICKLIST_CODE,s.flatten(u))];case 3:_=a.sent(),l=u.map(function(e){return(0,i.toMaterialGroupPath)(e.map(function(e){return _[e]||e}))}),a.label=4;case 4:return[4,(0,i.queryMaterialGroupTree)(e,{sales:n,materialGroupPath:l})];case 5:return[2,a.sent()]}})})},t.findMaterialGroupPath=function(e,t){var r=function(e,s){var n,o;try{for(var c=a.__values(e||[]),l=c.next();!l.done;l=c.next()){var p=l.value,u=a.__spreadArray(a.__spreadArray([],a.__read(s),!1),[p.label],!1);if(String(p.value)===String(t))return p.materialGroupPath||(0,i.toMaterialGroupPath)(u);var _=r(p.children,u);if(_)return _}}catch(e){n={error:e}}finally{try{l&&!l.done&&(o=c.return)&&o.call(c)}finally{if(n)throw n.error}}return null};return r(e,[])}},6293:e=>{e.exports=require("dayjs")},6570:(e,t,r)=>{var a;Object.defineProperty(t,"__esModule",{value:!0}),t.syncTagValues=t.orderItemsByParent=t.normalizeRequest=t.isValidTagValId=t.parseChangedAt=t.httpStatusOf=t.isTagSyncError=t.TagSyncError=t.MAX_TAG_DEPTH=t.REQUEST_LOG_RETENTION_DAYS=t.MAX_REQUEST_ID_LENGTH=t.MAX_TAG_VAL_ID_LENGTH=t.MAX_NAME_LENGTH=t.MAX_ITEMS_PER_BATCH=t.TAG_SYNC_ACTIONS=t.TagSyncAction=t.TagSyncCode=t.getTagPicklistCode=t.TAG_PICKLIST_CODES=t.CONTENT_HUB_TAG_WHITELIST=void 0;var s=r(5584),n=r(7825),i=r(7283);t.CONTENT_HUB_TAG_WHITELIST={223321001114213:"品牌/产品",223321001114222:"素材类型",223321001114944:"可使用渠道",223321022150011:"素材授权规则"},t.TAG_PICKLIST_CODES=((a={})[i.PRODUCT_TAG_ID]=i.PRODUCT_PICKLIST_CODE,a),t.getTagPicklistCode=function(e){return t.TAG_PICKLIST_CODES[e]||e},t.TagSyncCode={OK:0,PARTIAL:1001,BAD_REQUEST:40001,TAG_NOT_ALLOWED:40002,INVALID_TAG_VAL_ID:40003,PARENT_NOT_FOUND:40004,PARENT_IMMUTABLE:40005,TOO_MANY_ITEMS:40006,TAG_VAL_NOT_FOUND:40007,UNAUTHORIZED:40101,SERVER_ERROR:5e4},t.TagSyncAction={upsert:"upsert",disable:"disable",enable:"enable"},t.TAG_SYNC_ACTIONS=[t.TagSyncAction.upsert,t.TagSyncAction.disable,t.TagSyncAction.enable],t.MAX_ITEMS_PER_BATCH=100,t.MAX_NAME_LENGTH=100,t.MAX_TAG_VAL_ID_LENGTH=64,t.MAX_REQUEST_ID_LENGTH=128,t.REQUEST_LOG_RETENTION_DAYS=7,t.MAX_TAG_DEPTH=3;var o="ch_changed_at",c=function(e){function t(t,r){var a=e.call(this,r)||this;return a.isTagSyncError=!0,a.code=t,a}return s.__extends(t,e),t}(Error);t.TagSyncError=c,t.isTagSyncError=function(e){return!(!e||!e.isTagSyncError)},t.httpStatusOf=function(e){return e===t.TagSyncCode.OK||e===t.TagSyncCode.PARTIAL?200:e===t.TagSyncCode.UNAUTHORIZED?401:e===t.TagSyncCode.SERVER_ERROR?500:400};var l=/^\d{4}-\d{2}-\d{2}[Tt ]\d{2}:\d{2}(:\d{2}(\.\d+)?)?(Z|z|[+-]\d{2}:?\d{2})$/;t.parseChangedAt=function(e){if(!n.isString(e))return null;var t=e.trim();if(!l.test(t))return null;var r=new Date(t);return isNaN(r.getTime())?null:r};var p=/^[A-Za-z0-9_]+$/;t.isValidTagValId=function(e){if(!n.isString(e))return!1;var r=e.trim();return!!r&&p.test(r)&&r.length<=t.MAX_TAG_VAL_ID_LENGTH},t.normalizeRequest=function(e){if(!n.isPlainObject(e))throw new c(t.TagSyncCode.BAD_REQUEST,"请求体格式错误");if(n.every(["requestId","changedAt","tagId","items"],function(t){return n.isNil(e[t])}))throw new c(t.TagSyncCode.BAD_REQUEST,"请求体为空或未被解析, 请确认已带上 Content-Type: application/json");var r=n.isString(e.requestId)?e.requestId.trim():"";if(!r||r.length>t.MAX_REQUEST_ID_LENGTH)throw new c(t.TagSyncCode.BAD_REQUEST,"requestId 缺失或格式错误");var a=(0,t.parseChangedAt)(e.changedAt);if(!a)throw new c(t.TagSyncCode.BAD_REQUEST,"changedAt 缺失或格式错误, 需为带时区偏移的 ISO 8601 时间");var s=n.isString(e.tagId)?e.tagId.trim():"";if(!s)throw new c(t.TagSyncCode.BAD_REQUEST,"tagId 缺失或格式错误");if(!t.CONTENT_HUB_TAG_WHITELIST[s])throw new c(t.TagSyncCode.TAG_NOT_ALLOWED,"tagId 不在托管白名单: ".concat(s));var i=e.items;if(!n.isArray(i)||i.length<1)throw new c(t.TagSyncCode.BAD_REQUEST,"items 缺失或为空");if(i.length>t.MAX_ITEMS_PER_BATCH)throw new c(t.TagSyncCode.TOO_MANY_ITEMS,"单批条数超过 ".concat(t.MAX_ITEMS_PER_BATCH," 条"));var o={},l=i.map(function(e,r){if(!n.isPlainObject(e))throw new c(t.TagSyncCode.BAD_REQUEST,"items[".concat(r,"] 格式错误"));var s=n.isNil(e.action)||""===e.action?t.TagSyncAction.upsert:e.action;if(!n.includes(t.TAG_SYNC_ACTIONS,s))throw new c(t.TagSyncCode.BAD_REQUEST,"items[".concat(r,"].action 非法: ").concat(e.action));if(!(0,t.isValidTagValId)(e.tagValId))throw new c(t.TagSyncCode.INVALID_TAG_VAL_ID,"items[".concat(r,"].tagValId 非法"));var i=e.tagValId.trim();if(o[i])throw new c(t.TagSyncCode.BAD_REQUEST,"同一批次内 tagValId 重复: ".concat(i));o[i]=!0;var l=null;if(s===t.TagSyncAction.upsert){if(!n.isString(e.name)||!e.name.trim())throw new c(t.TagSyncCode.BAD_REQUEST,"items[".concat(r,"].name 缺失, upsert 必填"));if((l=e.name.trim()).length>t.MAX_NAME_LENGTH)throw new c(t.TagSyncCode.BAD_REQUEST,"items[".concat(r,"].name 超过 ").concat(t.MAX_NAME_LENGTH," 个字符"))}var p=null;if(!n.isNil(e.parentTagValId)&&""!==e.parentTagValId){if(!(0,t.isValidTagValId)(e.parentTagValId))throw new c(t.TagSyncCode.INVALID_TAG_VAL_ID,"items[".concat(r,"].parentTagValId 非法"));if((p=e.parentTagValId.trim())===i)throw new c(t.TagSyncCode.BAD_REQUEST,"items[".concat(r,"].parentTagValId 不能指向自身"))}var u=a;if(!n.isNil(e.changedAt)&&""!==e.changedAt&&!(u=(0,t.parseChangedAt)(e.changedAt)))throw new c(t.TagSyncCode.BAD_REQUEST,"items[".concat(r,"].changedAt 格式错误, 需为带时区偏移的 ISO 8601 时间"));return{index:r,action:s,tagValId:i,name:l,parentTagValId:p,changedAt:u}});return{requestId:r,tagId:s,changedAt:a,items:l}},t.orderItemsByParent=function(e){var r={};e.forEach(function(e){e.action===t.TagSyncAction.upsert&&(r[e.tagValId]=e)});var a=[],s={},n=function(e){if(!s[e.tagValId]){s[e.tagValId]=1;var t=e.parentTagValId&&r[e.parentTagValId];t&&1!==s[t.tagValId]&&n(t),s[e.tagValId]=2,a.push(e)}};return e.forEach(n),a};var u=function(e,r,a,i){return s.__awaiter(void 0,void 0,void 0,function(){var o,c,l,p,u,_,d,v,g,f,m,h,b,w,y,O,S;return s.__generator(this,function(A){switch(A.label){case 0:o={},a.forEach(function(e){e.action===t.TagSyncAction.upsert&&(o[e.tagValId]=e.parentTagValId||null)}),c=n.keyBy(n.values(i),"_id"),l=function(t){return s.__awaiter(void 0,void 0,void 0,function(){var a;return s.__generator(this,function(s){switch(s.label){case 0:return t in c?[3,2]:[4,e.getObject("picklist_options").directFind({filters:[["picklist","=",r],["_id","=",t]],fields:["_id","value","parent"],top:1})];case 1:a=s.sent(),c[t]=a&&a[0]||null,s.label=2;case 2:return[2,c[t]]}})})},p={},u=function(e){return s.__awaiter(void 0,void 0,void 0,function(){var r,a,n;return s.__generator(this,function(s){switch(s.label){case 0:if(!e)return[2,0];if(p[e._id])return[2,p[e._id]];r=1,a=e,n=0,s.label=1;case 1:return n<t.MAX_TAG_DEPTH+5&&a&&a.parent?[4,l(a.parent)]:[3,4];case 2:if(!(a=s.sent()))return[3,4];r+=1,s.label=3;case 3:return n++,[3,1];case 4:return p[e._id]=r,[2,r]}})})},_={},A.label=1;case 1:A.trys.push([1,9,10,11]),d=s.__values(a),v=d.next(),A.label=2;case 2:if(v.done)return[3,8];if((g=v.value).action!==t.TagSyncAction.upsert||i[g.tagValId])return[3,7];f=1,m=g.tagValId,A.label=3;case 3:return f<=t.MAX_TAG_DEPTH+2&&(h=o[m])?(b=i[h])?(w=f,[4,u(b)]):[3,5]:[3,6];case 4:return f=w+A.sent(),[3,6];case 5:return h in o?(m=h,f+=1,[3,3]):[3,6];case 6:_[g.tagValId]=f,A.label=7;case 7:return v=d.next(),[3,2];case 8:return[3,11];case 9:return y=A.sent(),O={error:y},[3,11];case 10:try{v&&!v.done&&(S=d.return)&&S.call(d)}finally{if(O)throw O.error}return[7];case 11:return[2,function(e){return _[e]||1}]}})})},_=["_id","value","name","parent","enable","space",o],d=function(e,r){var a=r.requestId,n=r.tagId,i=r.changedAt,o=r.items,c=r.code,l=r.data,p=r.space,u=r.userId,_=r.sourceIp,d=r.duration;return s.__awaiter(void 0,void 0,void 0,function(){var r,v;return s.__generator(this,function(s){switch(s.label){case 0:return r=new Date,v=new Date(r.getTime()+24*t.REQUEST_LOG_RETENTION_DAYS*60*60*1e3),[4,e.getObject("pepsico_ch_tag_sync_request").directInsert({name:a,request_id:a,tag_id:n,tag_label:t.CONTENT_HUB_TAG_WHITELIST[n],changed_at:i,item_count:o.length,result_code:c,response:JSON.stringify(l),source_ip:_,duration:d,expired_date:v,space:p,owner:u,created:r,created_by:u,modified:r,modified_by:u})];case 1:return s.sent(),[2]}})})},v=function(e,t){var r=t.requestId,a=t.tagId,n=t.items,i=t.results,o=t.space,c=t.userId,l=t.sourceIp,p=t.duration;return s.__awaiter(void 0,void 0,void 0,function(){var t,u,_,d,v,g,f,m,h;return s.__generator(this,function(b){switch(b.label){case 0:t=new Date,u=e.getObject("pepsico_ch_tag_sync_log"),b.label=1;case 1:b.trys.push([1,6,7,8]),_=s.__values(n),d=_.next(),b.label=2;case 2:return d.done?[3,5]:(v=d.value,g=i[v.index]||{},[4,u.directInsert({name:"".concat(r,"-").concat(v.tagValId),request_id:r,changed_at:v.changedAt,tag_id:a,tag_val_id:v.tagValId,tag_val_name:v.name,parent_tag_val_id:v.parentTagValId,action:v.action,result:g.result,error_code:g.code,error_msg:g.msg,source_ip:l,duration:p,space:o,owner:c,created:t,created_by:c,modified:t,modified_by:c})]);case 3:b.sent(),b.label=4;case 4:return d=_.next(),[3,2];case 5:return[3,8];case 6:return f=b.sent(),m={error:f},[3,8];case 7:try{d&&!d.done&&(h=_.return)&&h.call(_)}finally{if(m)throw m.error}return[7];case 8:return[2]}})})},g={};t.syncTagValues=function(e,r){return s.__awaiter(void 0,void 0,void 0,function(){var a;return s.__generator(this,function(s){return[2,(n=(a=(0,t.normalizeRequest)(r)).tagId,i=function(){return f(e,a)},o=(g[n]||Promise.resolve()).then(i,i),g[n]=o.then(function(){},function(){}),o)];var n,i,o})})};var f=function(e,r){return s.__awaiter(void 0,void 0,void 0,function(){var a,i,o,l,p,g,f,h,b,w,y,O,S,A,I,P,T,E,j,D,C,k,R,L,U,N,M,x,F,q,G,B,V,H,J,Q,Y,z,K,$,Z;return s.__generator(this,function(X){switch(X.label){case 0:return a=Date.now(),i=r.requestId,o=r.tagId,l=r.changedAt,p=r.items,g=e.meta&&e.meta.clientIp||null,[4,e.getObject("picklists").directFind({filters:[["code","=",(0,t.getTagPicklistCode)(o)]],fields:["_id","name","space"],top:1})];case 1:if(f=X.sent(),!(h=f&&f[0]))throw new c(t.TagSyncCode.SERVER_ERROR,"标签类目未在 Compliance 侧建档: ".concat(o,"(选项集编码 ").concat((0,t.getTagPicklistCode)(o),")"));return b=n.uniq(n.compact(n.flatten(p.map(function(e){return[e.tagValId,e.parentTagValId]})))),[4,e.getObject("picklist_options").directFind({filters:[["picklist","=",h._id],["value","in",b]],fields:_})];case 2:w=X.sent(),y=n.keyBy(w,"value"),O={},p.forEach(function(e){e.action===t.TagSyncAction.upsert&&(O[e.tagValId]=!0)});try{for(S=s.__values(p),A=S.next();!A.done;A=S.next())if(x=A.value,I=y[x.tagValId],x.parentTagValId){if(!(P=y[x.parentTagValId])&&!O[x.parentTagValId])throw new c(t.TagSyncCode.PARENT_NOT_FOUND,"parentTagValId 不存在: ".concat(x.parentTagValId));if(I&&(!P||I.parent!==P._id))throw new c(t.TagSyncCode.PARENT_IMMUTABLE,"不支持修改已存在记录的 parentTagValId: ".concat(x.tagValId))}}catch(e){J={error:e}}finally{try{A&&!A.done&&(Q=S.return)&&Q.call(S)}finally{if(J)throw J.error}}return[4,u(e,h._id,p,y)];case 3:T=X.sent();try{for(E=s.__values(p),j=E.next();!j.done;j=E.next())if((x=j.value).action===t.TagSyncAction.upsert&&!y[x.tagValId]&&(D=T(x.tagValId))>t.MAX_TAG_DEPTH)throw new c(t.TagSyncCode.BAD_REQUEST,"标签层级超过 ".concat(t.MAX_TAG_DEPTH," 层: ").concat(x.tagValId,"(第 ").concat(D," 层)"))}catch(e){Y={error:e}}finally{try{j&&!j.done&&(z=E.return)&&z.call(E)}finally{if(Y)throw Y.error}}C=e.meta&&e.meta.user||{},k=C.userId,R=h.space||C.spaceId,L=[],U=e.getObject("picklist_options"),X.label=4;case 4:X.trys.push([4,9,10,11]),N=s.__values((0,t.orderItemsByParent)(p)),M=N.next(),X.label=5;case 5:return M.done?[3,8]:(x=M.value,F=L,q=x.index,[4,m(e,{item:x,picklist:h,optionByValue:y,optionsObj:U,space:R,userId:k})]);case 6:F[q]=X.sent(),X.label=7;case 7:return M=N.next(),[3,5];case 8:return[3,11];case 9:return G=X.sent(),K={error:G},[3,11];case 10:try{M&&!M.done&&($=N.return)&&$.call(N)}finally{if(K)throw K.error}return[7];case 11:return B={requestId:i,idempotent:!1,results:L},V=n.some(L,{result:"failed"})?t.TagSyncCode.PARTIAL:t.TagSyncCode.OK,H=Date.now()-a,[4,d(e,{requestId:i,tagId:o,changedAt:l,items:p,code:V,data:B,space:R,userId:k,sourceIp:g,duration:H})];case 12:return X.sent(),[4,v(e,{requestId:i,tagId:o,items:p,results:L,space:R,userId:k,sourceIp:g,duration:H})];case 13:return X.sent(),[4,null===(Z=e.logger)||void 0===Z?void 0:Z.info("[Content Hub 标签同步]-".concat(i),{objectName:"picklist_options",request_id:i,tag_id:o,code:V,results:L})];case 14:return X.sent(),[2,{code:V,msg:"",data:B}]}})})},m=function(e,r){var a=r.item,i=r.picklist,c=r.optionByValue,l=r.optionsObj,p=r.space,u=r.userId;return s.__awaiter(void 0,void 0,void 0,function(){var r,_,d,v,g,f,m,h,b,w,y,O,S,A,I,P,T,E,j;return s.__generator(this,function(s){switch(s.label){case 0:r=a.action,_=a.tagValId,d=a.name,v=a.parentTagValId,g=a.changedAt,s.label=1;case 1:return s.trys.push([1,5,,7]),f=c[_],r===t.TagSyncAction.upsert||f?(m=new Date,f?[3,3]:(h=v?c[v]:null,v&&!h?[2,{tagValId:_,result:"failed",code:t.TagSyncCode.PARENT_NOT_FOUND,msg:"parentTagValId 不存在"}]:[4,l.directInsert((I={picklist:i._id,value:_,name:d,parent:h?h._id:null,enable:!0},I[o]=g,I.space=p,I.owner=u,I.created=m,I.created_by=u,I.modified=m,I.modified_by=u,I))])):[2,{tagValId:_,result:"failed",code:t.TagSyncCode.TAG_VAL_NOT_FOUND,msg:"tagValId 不存在"}];case 2:return b=s.sent(),c[_]=n.assign({},b,((P={_id:b._id,value:_,name:d,parent:h?h._id:null,enable:!0})[o]=g,P)),[2,{tagValId:_,result:"created"}];case 3:return w=null,y="unchanged",r===t.TagSyncAction.upsert?f.name!==d&&(w={name:d},y="updated"):(O=r===t.TagSyncAction.enable,!1!==f.enable!==O?(w={enable:O},y=O?"enabled":"disabled"):f.enable!==O&&(w={enable:O})),S=n.assign({},w,((T={})[o]=g,T.modified=m,T.modified_by=u,T)),[4,l.directUpdate(f._id,S)];case 4:return s.sent(),c[_]=n.assign({},f,w,((E={})[o]=g,E)),[2,{tagValId:_,result:y}];case 5:return A=s.sent(),[4,null===(j=e.logger)||void 0===j?void 0:j.error("[Content Hub 标签同步]单条处理失败-".concat(_),{objectName:"picklist_options",tag_val_id:_,action:r,error:A.message})];case 6:return s.sent(),[2,{tagValId:_,result:"failed",code:t.TagSyncCode.SERVER_ERROR,msg:A.message}];case 7:return[2]}})})}},6586:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.fixStuckPersonnelReview=void 0;var a=r(5584),s=r(8398),n=r(5510);t.fixStuckPersonnelReview={rest:{method:"GET",fullPath:"/api/pepsico-content/fix-stuck-personnel-review/:approvalId"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,i,o,c,l,p,u,_,d,v,g,f,m,h,b,w,y,O,S;return a.__generator(this,function(A){switch(A.label){case 0:return(t=e.meta.user)&&t.is_space_admin?(e.getObject=this.getObject,[4,this.getLogger()]):[2,{status:403,msg:"只有管理员可以执行此操作"}];case 1:return r=A.sent(),e.logger=r,(i=e.params.approvalId)?[4,e.getObject("pepsico_material_approval").findOne(i)]:[2,{status:400,msg:"请传入参数 approvalId"}];case 2:return(o=A.sent())?o.current_step!==s.Step.personnel_review?[2,{status:200,msg:"审批单当前步骤为 ".concat(o.current_step,",不是固定人员审核步骤,无需修复")}]:(0,n.isDeptReviewComplete)(o,"approval")?"yes"!==o.child_files||(0,n.hasReviewed)(o.kids_approval_status)?(c=function(e){return!0===e||e===s.ApprovalStatus.approved||e===s.ApprovalStatus.pass},l=function(e){return e===s.ApprovalStatus.pass},p=(0,n.getDeptEffectiveStatus)(o,"approval"),u=c(p)?l(p)?s.ApprovalStatus.pass:s.ApprovalStatus.approved:s.ApprovalStatus.rejected,"yes"===o.child_files&&!1===o.kids_approval_status&&(u=s.ApprovalStatus.rejected),[4,e.getObject("pepsico_approval_process").find({filters:[["pepsico_material_approval","=",i],["current_step","=",s.Step.personnel_review],["space","=",o.space],["submitted","!=",null]],sort:"submitted desc",top:1})]):[2,{status:200,msg:"kids审核人未审批,暂不能推进"}]:[2,{status:200,msg:"固定人员审核周期确实未完成,无需修复"}]:[2,{status:404,msg:"审批单不存在"}];case 3:return _=A.sent(),d=_.length>0&&_[0].submitted?new Date(_[0].submitted):null,console.log("[fixStuckPersonnelReview] 审批单: ".concat(i,", 修复推进, 审批结果: ").concat(u,", 使用提交时间: ").concat(d)),[4,this.advanceApproval(e,i,u)];case 4:return A.sent(),d?(v={re_reviewed_date:d},[4,e.getObject("pepsico_material_approval").findOne(i)]):[3,18];case 5:return(g=A.sent()).current_step===s.Step.awaiting_deployment&&g.review_completed_date?(v.review_completed_date=d,[4,e.getObject("pepsico_material").directUpdateMany(["pepsico_material_approval","=",i],{review_completed_date:d})]):[3,7];case 6:A.sent(),A.label=7;case 7:return[4,e.getObject("pepsico_material_approval").directUpdate(i,v)];case 8:return A.sent(),f=g.current_step,[4,e.getObject("pepsico_approval_process").directFind({filters:[["pepsico_material_approval","=",i],["current_step","=",f],["space","=",o.space]]})];case 9:m=A.sent(),A.label=10;case 10:A.trys.push([10,15,16,17]),h=a.__values(m),b=h.next(),A.label=11;case 11:return b.done?[3,14]:(w=b.value,[4,e.getObject("pepsico_approval_process").directUpdate(w._id,{created:d})]);case 12:A.sent(),A.label=13;case 13:return b=h.next(),[3,11];case 14:return[3,17];case 15:return y=A.sent(),O={error:y},[3,17];case 16:try{b&&!b.done&&(S=h.return)&&S.call(h)}finally{if(O)throw O.error}return[7];case 17:console.log("[fixStuckPersonnelReview] 已覆盖时间字段:",JSON.stringify(v),", 修正了 ".concat(m.length," 条 approval_process 记录的接收时间")),A.label=18;case 18:return[2,{status:200,msg:"审批单 ".concat(i," 已修复并推进到下一步"),data:{approvalId:i,result:u,submittedDate:d}}]}})})}}},6658:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.notifyApprovalCcUsers=t.setApprovalCcUsers=t.getApprovalCcUsers=void 0;var a=r(5584),s=r(7825),n=r(3833),i={内容审批被驳回:"rejected",内容审批已通过待上线:"awaiting_deployment",内容审批已完成:"completed"},o=function(e){if(e)return"string"==typeof e?e:e.user?e.user:e._id?e._id:void 0};t.getApprovalCcUsers=function(e){return(0,s.compact)((0,s.uniq)((e.cc_users||[]).map(o)))};var c=function(e,t,r,s){return a.__awaiter(void 0,void 0,void 0,function(){return a.__generator(this,function(a){switch(a.label){case 0:return[4,e.getObject("pepsico_approval_cc_log").insert({pepsico_material_approval:t._id,approval_name:t.name,action:r,operator:e.meta.user.userId,cc_user:s,space:t.space,created:new Date,created_by:e.meta.user.userId,modified:new Date,modified_by:e.meta.user.userId,name:"add"===r?"添加抄送人":"移除抄送人"})];case 1:return a.sent(),[2]}})})};t.setApprovalCcUsers=function(e,r,i,l){return void 0===l&&(l=n.sendCcNotifications),a.__awaiter(void 0,void 0,void 0,function(){var n,p,u,_,d,v,g,f,m,h,b,w,y,O,S,A,I,P;return a.__generator(this,function(T){switch(T.label){case 0:return n=e.meta.user,[4,e.getObject("pepsico_material_approval").findOne(r)];case 1:if(!(p=T.sent()))throw new Error("无效的审批单");if(p.owner!==n.userId)throw new Error("只有发起人可以设置抄送人");return u=(0,t.getApprovalCcUsers)(p),_=(0,s.compact)((0,s.uniq)((i||[]).map(o))).filter(function(e){return e!==p.owner}),d=(0,s.difference)(_,u),v=(0,s.difference)(u,_),g=(0,s.compact)((0,s.uniq)((0,s.concat)(function(e){var t=e.person_view||[];return(0,s.compact)((0,s.uniq)((Array.isArray(t)?t:[t]).map(o)))}(p),d))),[4,e.getObject("pepsico_material_approval").directUpdate(r,{cc_users:_,person_view:g})];case 2:T.sent(),T.label=3;case 3:T.trys.push([3,8,9,10]),f=a.__values(d),m=f.next(),T.label=4;case 4:return m.done?[3,7]:(y=m.value,[4,c(e,p,"add",y)]);case 5:T.sent(),T.label=6;case 6:return m=f.next(),[3,4];case 7:return[3,10];case 8:return h=T.sent(),S={error:h},[3,10];case 9:try{m&&!m.done&&(A=f.return)&&A.call(f)}finally{if(S)throw S.error}return[7];case 10:T.trys.push([10,15,16,17]),b=a.__values(v),w=b.next(),T.label=11;case 11:return w.done?[3,14]:(y=w.value,[4,c(e,p,"remove",y)]);case 12:T.sent(),T.label=13;case 13:return w=b.next(),[3,11];case 14:return[3,17];case 15:return O=T.sent(),I={error:O},[3,17];case 16:try{w&&!w.done&&(P=b.return)&&P.call(b)}finally{if(I)throw I.error}return[7];case 17:return d.length>0?[4,l(e,p,d,"cc_added")]:[3,19];case 18:T.sent(),T.label=19;case 19:return[2,{ccUsers:_,addedUsers:d,removedUsers:v}]}})})},t.notifyApprovalCcUsers=function(e,r,o,c,l){return void 0===c&&(c=n.sendCcNotifications),void 0===l&&(l=[]),a.__awaiter(void 0,void 0,void 0,function(){var n;return a.__generator(this,function(a){switch(a.label){case 0:return 0===(n=(0,s.difference)((0,t.getApprovalCcUsers)(r),l)).length?[2]:[4,c(e,r,n,i[o]||"cc_added")];case 1:return a.sent(),[2]}})})}},6903:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.doUrgent=t.canUrgent=t.getUrgentQuota=void 0;var a=r(5584),s=r(8398);t.getUrgentQuota=function(e,t,r){return a.__awaiter(void 0,void 0,void 0,function(){var s,n,i,o,c,l,p,u,_,d;return a.__generator(this,function(a){switch(a.label){case 0:return s=new Date,n=s.getFullYear(),i=s.getMonth()<6?1:2,[4,e.getObject("pepsico_urgent_quota").findOne({filters:[["user","=",t],["space","=",r],["year","=",n]]})];case 1:return(o=a.sent())?(c=(null==o?void 0:o.h1_used)||0,l=(null==o?void 0:o.h2_used)||0,1===i?(u=c,_=6,p=Math.max(0,6-c)):(d=Math.max(0,6-c),_=6+d,u=l,p=Math.max(0,_-l)),[2,{available:p,used:u,total:_,year:n,half:i,configured:!0}]):[2,{available:0,used:0,total:0,year:n,half:i,configured:!1}]}})})},t.canUrgent=function(e,r,n){return a.__awaiter(void 0,void 0,void 0,function(){var i,o,c;return a.__generator(this,function(a){switch(a.label){case 0:return[4,e.getObject("pepsico_material_approval").findOne(r)];case 1:return(i=a.sent())?i.is_urgent?[2,{canUrgent:!1,reason:"该审批单已处于加急状态"}]:i.owner!==n?[2,{canUrgent:!1,reason:"只有发起人可以加急"}]:[4,e.getObject("space_users").findOne({filters:[["user","=",n],["space","=",i.space]],fields:["is_collaborator"]})]:[2,{canUrgent:!1,reason:"审批单不存在"}];case 2:return!0===(null==(o=a.sent())?void 0:o.is_collaborator)?[2,{canUrgent:!1,reason:"只有内部用户可以加急"}]:[s.Step.departmental_review,s.Step.personnel_review].includes(i.current_step)?(i.review_postponed_users||[]).length>0?[2,{canUrgent:!1,reason:"存在延后审核人,无法加急"}]:[4,(0,t.getUrgentQuota)(e,n,i.space)]:[2,{canUrgent:!1,reason:"当前步骤不支持加急"}];case 3:return(c=a.sent()).configured?c.available<=0?[2,{canUrgent:!1,reason:"暂无加急次数",quota:c}]:[2,{canUrgent:!0,quota:c}]:[2,{canUrgent:!1,reason:"未配置加急次数",quota:c}]}})})};var n=function(e,t,r,s,n,i){return a.__awaiter(void 0,void 0,void 0,function(){var o,c,l,p,u,_,d,v,g,f;return a.__generator(this,function(m){switch(m.label){case 0:return m.trys.push([0,2,,3]),[4,e.broker.call("notifications.add",{message:{name:"加急审批: ".concat(s),body:"发起人已标记为加急审核,请优先处理",related_to:{o:"pepsico_material_approval",ids:[r]},related_name:s,from:n,space:t},from:n,to:i})];case 1:return m.sent(),[3,3];case 2:return o=m.sent(),console.log("[urgent] sendUrgentNotification notification error",o),[3,3];case 3:return m.trys.push([3,15,,16]),[4,e.getObject("space_users").find({filters:[["user","=",i],["space","=",t]]})];case 4:c=m.sent(),m.label=5;case 5:m.trys.push([5,12,13,14]),l=a.__values(c),p=l.next(),m.label=6;case 6:if(p.done)return[3,11];if(!(u=p.value).email)return[3,10];m.label=7;case 7:return m.trys.push([7,9,,10]),[4,e.broker.call("@builder6/email.send",{to:u.email,subject:"[加急审核] ".concat(s),html:'\n <p>您有一份审批单被标记为<strong>加急审核</strong>,请优先处理。</p>\n <a href="'.concat(process.env.ROOT_URL,"/app/pepsico_content_review/pepsico_material_approval/view/").concat(r,'?side_object=pepsico_material_approval&side_listview_id=pending">').concat(s,"</a>\n ")})];case 8:return m.sent(),[3,10];case 9:return _=m.sent(),console.log("[urgent] sendUrgentNotification email error",_),[3,10];case 10:return p=l.next(),[3,6];case 11:return[3,14];case 12:return d=m.sent(),g={error:d},[3,14];case 13:try{p&&!p.done&&(f=l.return)&&f.call(l)}finally{if(g)throw g.error}return[7];case 14:return[3,16];case 15:return v=m.sent(),console.log("[urgent] sendUrgentNotification spaceUsers error",v),[3,16];case 16:return[2]}})})};t.doUrgent=function(e,r,s){return a.__awaiter(void 0,void 0,void 0,function(){var i,o,c,l,p,u,_,d,v,g,f,m,h,b,w,y,O,S,A;return a.__generator(this,function(I){switch(I.label){case 0:return[4,(0,t.canUrgent)(e,r,s)];case 1:if(!(i=I.sent()).canUrgent)throw new Error(i.reason);return[4,e.getObject("pepsico_material_approval").findOne(r)];case 2:return o=I.sent(),c=i.quota,l=c.year,p=c.half,u=c.used,_=c.total,[4,e.getObject("pepsico_urgent_quota").findOne({filters:[["user","=",s],["space","=",o.space],["year","=",l]]})];case 3:if(!(d=I.sent()))throw new Error("未配置加急次数");return v=1===p?"h1_used":"h2_used",[4,e.getObject("pepsico_urgent_quota").directUpdate(d._id,(O={},O[v]=(d[v]||0)+1,O))];case 4:return I.sent(),[4,e.getObject("pepsico_material_approval").directUpdate(r,{is_urgent:!0,urgent_times:(o.urgent_times||0)+1,urgent_at:new Date})];case 5:return I.sent(),[4,e.getObject("pepsico_urgent_log").insert({approval:r,approval_name:o.name,operator:s,space:o.space,year:l,half:p})];case 6:I.sent(),g=Array.isArray(o.person_pending_approve)?o.person_pending_approve:[],I.label=7;case 7:I.trys.push([7,12,13,14]),f=a.__values(g),m=f.next(),I.label=8;case 8:return m.done?[3,11]:(h=m.value,[4,n(e,o.space,r,o.name,s,h)]);case 9:I.sent(),I.label=10;case 10:return m=f.next(),[3,8];case 11:return[3,14];case 12:return b=I.sent(),S={error:b},[3,14];case 13:try{m&&!m.done&&(A=f.return)&&A.call(f)}finally{if(S)throw S.error}return[7];case 14:return w=u+1,y=Math.max(0,_-w),[2,{message:"加急成功!已使用 ".concat(w," 次,剩余 ").concat(y," 次"),used:w,available:y,total:_}]}})})}},6928:e=>{e.exports=require("path")},7065:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.submit=void 0;var a=r(5584),s=r(256),n=r(8398);t.submit={rest:{method:"POST",fullPath:"/api/pepsico-content/approve/submit/:recordId"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,i;return a.__generator(this,function(a){switch(a.label){case 0:return e.getObject=this.getObject,[4,this.getLogger()];case 1:return t=a.sent(),e.logger=t,[4,e.getObject("pepsico_material_approval").findOne(e.params.recordId)];case 2:return(r=a.sent()).current_step!==n.Step.draft||"non-top"==r.kol_classification||"top"==r.kol_classification?[3,5]:[4,(0,s.getDefApproverStepRule)(e)];case 3:return i=a.sent(),[4,e.getObject("pepsico_material_approval").directUpdate(e.params.recordId,{pepsico_flow_rule:i._id})];case 4:a.sent(),a.label=5;case 5:return console.time("submitContent: "+e.params.recordId),[4,this.submitContent(e,e.params.recordId,e.params.approvalStatus,e.params.skip)];case 6:return a.sent(),console.timeEnd("submitContent: "+e.params.recordId),[2,{}]}})})}}},7283:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getProductPicklistCode=t.PRODUCT_PICKLIST_CODE=t.LEGACY_PRODUCT_PICKLIST_CODE=t.PRODUCT_TAG_ID=void 0;var a=r(8844);t.PRODUCT_TAG_ID="223321001114213",t.LEGACY_PRODUCT_PICKLIST_CODE="223321001114213",t.PRODUCT_PICKLIST_CODE="223321001114213-v3",t.getProductPicklistCode=function(e){return(0,a.isContentHubForm)(e)?t.PRODUCT_PICKLIST_CODE:t.LEGACY_PRODUCT_PICKLIST_CODE}},7815:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.migrateSpotCheckDepartments=void 0;var a=r(5584),s=r(8160);function n(e){return a.__awaiter(this,void 0,void 0,function(){var t;return a.__generator(this,function(r){switch(r.label){case 0:return[4,(t=s.getDataSource("default").adapter).connect()];case 1:return r.sent(),[2,t.collection(e)]}})})}t.migrateSpotCheckDepartments={rest:{method:"GET",fullPath:"/api/pepsico-content/material/migrate-spot-check-departments"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,i,o,c,l,p,u,_,d,v,g,f,m,h,b,w;return a.__generator(this,function(y){switch(y.label){case 0:return t=e.meta.user,e.getObject=this.getObject,[4,this.getLogger()];case 1:if(r=y.sent(),e.logger=r,!t||!t.is_space_admin)return[2,{status:403,msg:"只有管理员可以执行数据迁移",data:{}}];y.label=2;case 2:return y.trys.push([2,17,,18]),[4,n("pepsico_material")];case 3:return s=y.sent(),[4,n("space_users")];case 4:return i=y.sent(),[4,s.find({pepsico_spot_check:{$ne:null},$or:[{spot_check_departments:{$exists:!1}},{spot_check_departments:null},{spot_check_departments:{$size:0}}]},{projection:{_id:1,pepsico_spot_check:1,space:1}}).toArray()];case 5:o=y.sent(),null==r||r.info("Found ".concat(o.length," materials with missing spot_check_departments")),c=0,l=0,p=[],y.label=6;case 6:y.trys.push([6,14,15,16]),u=a.__values(o),_=u.next(),y.label=7;case 7:if(_.done)return[3,13];d=_.value,y.label=8;case 8:return y.trys.push([8,11,,12]),[4,i.findOne({user:d.pepsico_spot_check,space:d.space})];case 9:return(null==(v=y.sent())?void 0:v.organization)?(g=[v.organization],[4,s.updateOne({_id:d._id},{$set:{spot_check_departments:g}})]):(null==r||r.warn("No organization found for user ".concat(d.pepsico_spot_check,", material ").concat(d._id)),l++,[3,12]);case 10:return y.sent(),++c%100==0&&(null==r||r.info("Updated ".concat(c," records..."))),[3,12];case 11:return f=y.sent(),null==r||r.error("Error processing material ".concat(d._id),f),p.push(d._id),[3,12];case 12:return _=u.next(),[3,7];case 13:return[3,16];case 14:return m=y.sent(),b={error:m},[3,16];case 15:try{_&&!_.done&&(w=u.return)&&w.call(u)}finally{if(b)throw b.error}return[7];case 16:return null==r||r.info("Migration complete. Updated: ".concat(c,", Skipped: ").concat(l,", Errors: ").concat(p.length)),[2,{status:0,msg:"spot_check_departments 数据修正完成",data:{updated:c,skipped:l,errors:p.length,total:o.length}}];case 17:return h=y.sent(),null==r||r.error("Migration failed",h),[2,{status:500,msg:"数据修正失败: ".concat(h.message),data:{}}];case 18:return[2]}})})}}},7825:e=>{e.exports=require("lodash")},8152:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getBriefFlows=void 0;var a=r(5584);t.getBriefFlows={rest:{method:"GET",fullPath:"/api/pepsico-content/brief-flows"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n,i,o,c,l;return a.__generator(this,function(p){switch(p.label){case 0:return t=e.params.filters,r={fields:["_id","name"]},t&&(r.filters=JSON.parse(t)),c=(o=Promise).all,[4,this.getObject("pepsico_material_approval").find(r)];case 1:return l=[p.sent()],[4,this.getObject("pepsico_material_approval").count(r)];case 2:return[4,c.apply(o,[l.concat([p.sent()])])];case 3:return s=a.__read.apply(void 0,[p.sent(),2]),n=s[0],i=s[1],[2,{status:0,msg:"",data:{items:n,total:i}}]}})})}}},8160:e=>{e.exports=require("@steedos/objectql")},8330:e=>{e.exports=JSON.parse('{"name":"@steedos-labs/content-compliance","version":"1.0.6","description":"内容审核系统改造:content hub&登录页增加申请表&跳过中止操作支持上传证明文件表单改造","main":"package.service.js","scripts":{"build":"tsc && webpack --config webpack.config.js","build:watch":"webpack --config webpack.config.js --watch","test":"jest --config jest.config.js","release":"yarn build && npm publish --registry https://registry.npmjs.org && cnpm sync @steedos-labs/content-compliance"},"dependencies":{"amis-formula":"~6.3.0","mime-types":"2.1.35","lodash":"4.17.21","dayjs":"1.11.13","moleculer-cron":"0.0.7"},"devDependencies":{"webpack":"^5.88.2","webpack-cli":"^5.1.4","webpack-node-externals":"^3.0.0","jest":"^29.0.0","ts-jest":"^29.0.3","@types/jest":"^29.5.0","@types/lodash":"^4.17.0","@types/node":"^20.0.0","js-yaml":"^3.14.1"},"publishConfig":{"access":"public"},"gitHead":"24d4f3c614efb07e373e34a97bef04e8a5929a5b"}')},8398:(e,t)=>{var r,a,s,n;Object.defineProperty(t,"__esModule",{value:!0}),t.ProcessApprovalType=t.ReviewStatus=t.ApprovalStatus=t.Step=void 0,(n=t.Step||(t.Step={})).draft="draft",n.conclusion="conclusion",n.ai_review="ai_review",n.departmental_review="departmental_review",n.personnel_review="personnel_review",n.submitter_revisions="submitter_revisions",n.awaiting_deployment="awaiting_deployment",(s=t.ApprovalStatus||(t.ApprovalStatus={})).approved="approved",s.rejected="rejected",s.pending="pending",s.submit="submit",s.pass="pass",(a=t.ReviewStatus||(t.ReviewStatus={})).draft="draft",a.under_review="under_review",a.rejected="rejected",a.approved="approved",a.terminated="terminated",(r=t.ProcessApprovalType||(t.ProcessApprovalType={})).NS="NS",r.Legal="Legal",r.SRA="SRA",r.CA="CA",r.QC="QC",r.Kids="Kids",r.guding="guding",r.AI="AI",r.Others="Others",r.PreNS="PreNS",r.PreLegal="PreLegal",r.PreSRA="PreSRA",r.PreCA="PreCA",r.PreQC="PreQC",r.Preguding="Preguding"},8509:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});var a=r(5584),s=r(2045),n=r(256),i=r(8398),o=r(3833),c=r(4809),l=r(2972),p=r(4665),u=r(2777),_=r(5949),d=r(8160),v=r(7825),g=r(6928),f=r(8330),m=f.name,h=r(9861),b=r(3200),w=r(4716);function y(e){return a.__awaiter(this,void 0,void 0,function(){var t;return a.__generator(this,function(r){switch(r.label){case 0:return[4,(t=d.getDataSource("default").adapter).connect()];case 1:return r.sent(),[2,t.collection(e)]}})})}var O=process.env.STEEDOS_CRON_ENABLED,S=Number(process.env.PEPSICO_CRON_SEND_DELAY_NOTIFICATION_INTERVAL_MINUTES||5),A="true"===process.env.PEPSICO_CRON_PASSWORD_EXPIRY_CHECK_DISABLE,I=[{name:"materialsUploadToOneDriveJob",cronTime:process.env.PEPSICO_CRON_MATERIAL_UPLOAD_ONEDRIVE,timeZone:process.env.STEEDOS_CRON_TIME_ZONE||"Asia/Shanghai",manualStart:!1,onTick:function(){return a.__awaiter(this,void 0,void 0,function(){var e;return a.__generator(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),console.log("materialsUploadToOneDriveJob run",new Date),[4,this.broker.call("".concat(m,".materialsUploadToOneDrive"))];case 1:return t.sent(),[3,3];case 2:return e=t.sent(),console.log("materialsUploadToOneDriveJob error ",e),[3,3];case 3:return[2]}})})},onInitialize:function(){this.startJob("materialsUploadToOneDriveJob")},onComplete:function(){console.log("materialsUploadToOneDriveJob is stopped")}},{name:"materialsDownloadFromOneDriveJob",cronTime:process.env.PEPSICO_CRON_MATERIAL_DOWNLOAD_ONEDRIVE,timeZone:process.env.STEEDOS_CRON_TIME_ZONE||"Asia/Shanghai",manualStart:!1,onTick:function(){return a.__awaiter(this,void 0,void 0,function(){var e;return a.__generator(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),console.log("materialsDownloadFromOneDriveJob run",new Date),[4,this.broker.call("".concat(m,".materialsDownloadFromOneDrive"))];case 1:return t.sent(),[3,3];case 2:return e=t.sent(),console.log("materialsDownloadFromOneDriveJob error ",e),[3,3];case 3:return[2]}})})},onInitialize:function(){this.startJob("materialsDownloadFromOneDriveJob")},onComplete:function(){console.log("materialsDownloadFromOneDriveJob is stopped")}},{name:"materialsRemoveShareLinkToOneDriveJob",cronTime:process.env.PEPSICO_CRON_MATERIAL_DOWNLOAD_ONEDRIVE,timeZone:process.env.STEEDOS_CRON_TIME_ZONE||"Asia/Shanghai",manualStart:!1,onTick:function(){return a.__awaiter(this,void 0,void 0,function(){var e;return a.__generator(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),console.log("materialsRemoveShareLinkToOneDriveJob run",new Date),[4,this.broker.call("".concat(m,".materialsRemoveShareLinkToOneDrive"))];case 1:return t.sent(),[3,3];case 2:return e=t.sent(),console.log("materialsRemoveShareLinkToOneDriveJob error ",e),[3,3];case 3:return[2]}})})},onInitialize:function(){this.startJob("materialsRemoveShareLinkToOneDriveJob")},onComplete:function(){console.log("materialsRemoveShareLinkToOneDriveJob is stopped")}},{name:"sendDelayNotificationsJob",cronTime:"0 */".concat(S," * * * *"),timeZone:process.env.STEEDOS_CRON_TIME_ZONE||"Asia/Shanghai",manualStart:!1,onTick:function(){return a.__awaiter(this,void 0,void 0,function(){var e;return a.__generator(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),console.log("sendDelayNotificationsJob run",new Date),[4,this.broker.call("".concat(m,".sendDelayNotifications"))];case 1:return t.sent(),[3,3];case 2:return e=t.sent(),console.log("sendDelayNotificationsJob error ",e),[3,3];case 3:return[2]}})})},onInitialize:function(){this.startJob("sendDelayNotificationsJob")},onComplete:function(){console.log("sendDelayNotificationsJob is stopped")}},{name:"processPostponeReviewNotificationsJob",cronTime:"0 */".concat(S," * * * *"),timeZone:process.env.STEEDOS_CRON_TIME_ZONE||"Asia/Shanghai",manualStart:!1,onTick:function(){return a.__awaiter(this,void 0,void 0,function(){var e;return a.__generator(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),console.log("processPostponeReviewNotificationsJob run",new Date),[4,this.broker.call("".concat(m,".processPostponeReviewNotifications"))];case 1:return t.sent(),[3,3];case 2:return e=t.sent(),console.log("processPostponeReviewNotificationsJob error ",e),[3,3];case 3:return[2]}})})},onInitialize:function(){this.startJob("processPostponeReviewNotificationsJob")},onComplete:function(){console.log("processPostponeReviewNotificationsJob is stopped")}},{name:"syncDashboard",cronTime:process.env.PEPSICO_CRON_DASHBOARD_SYNC_DATA||"0 3 * * *",timeZone:process.env.STEEDOS_CRON_TIME_ZONE||"Asia/Shanghai",manualStart:!1,onTick:function(){return a.__awaiter(this,void 0,void 0,function(){var e;return a.__generator(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),console.log("syncDashboard run",new Date),[4,this.broker.call("".concat(m,".dashboardSyncData"))];case 1:return t.sent(),[3,3];case 2:return e=t.sent(),console.log("syncDashboard error ",e),[3,3];case 3:return[2]}})})},onInitialize:function(){this.startJob("syncDashboard")},onComplete:function(){console.log("syncDashboard is stopped")}},{name:"scanPLSFiles",cronTime:process.env.PEPSICO_CRON_PLS_SCAN||"0 23 * * *",timeZone:process.env.STEEDOS_CRON_TIME_ZONE||"Asia/Shanghai",manualStart:!1,onTick:function(){return a.__awaiter(this,void 0,void 0,function(){var e;return a.__generator(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),console.log("scanPLSFiles run",new Date),[4,this.broker.call("".concat(m,".scanPLSFiles"))];case 1:return t.sent(),[3,3];case 2:return e=t.sent(),console.log("scanPLSFiles error ",e),[3,3];case 3:return[2]}})})},onInitialize:function(){this.startJob("scanPLSFiles")},onComplete:function(){console.log("scanPLSFiles is stopped")}},{name:"scanInactiveUsers",cronTime:process.env.PEPSICO_CRON_INACTIVE_USERS_SCAN||"0 1 * * *",timeZone:process.env.STEEDOS_CRON_TIME_ZONE||"Asia/Shanghai",manualStart:!1,onTick:function(){return a.__awaiter(this,void 0,void 0,function(){var e;return a.__generator(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),console.log("scanInactiveUsers run",new Date),[4,this.broker.call("".concat(m,".scanInactiveUsers"))];case 1:return t.sent(),[3,3];case 2:return e=t.sent(),console.log("scanInactiveUsers error ",e),[3,3];case 3:return[2]}})})},onInitialize:function(){this.startJob("scanInactiveUsers")},onComplete:function(){console.log("scanInactiveUsers is stopped")}},{name:"sendMonthlySpotCheckReportJob",cronTime:process.env.PEPSICO_CRON_SEND_SPOT_REPORT||"0 10 * * *",timeZone:process.env.STEEDOS_CRON_TIME_ZONE||"Asia/Shanghai",manualStart:!1,onTick:function(){return a.__awaiter(this,void 0,void 0,function(){var e,t;return a.__generator(this,function(r){switch(r.label){case 0:return r.trys.push([0,4,,5]),console.log("sendMonthlySpotCheckReportJob run",new Date),[4,this.broker.call("".concat(m,".getReportId"))];case 1:return(e=r.sent())?[4,this.broker.call("".concat(m,".sendMonthlySpotCheckReport"),{rid:e})]:[3,3];case 2:r.sent(),r.label=3;case 3:return[3,5];case 4:return t=r.sent(),console.log("sendMonthlySpotCheckReportJob error ",t),[3,5];case 5:return[2]}})})},onInitialize:function(){this.startJob("sendMonthlySpotCheckReportJob")},onComplete:function(){console.log("sendMonthlySpotCheckReportJob is stopped")}},{name:"scanApprovalAndDeletedMaterialFromSharepointJob",cronTime:process.env.PEPSICO_CRON_DELETE_MATERIAL_FROM_SHAREPOINT||"0 2 * * *",timeZone:process.env.STEEDOS_CRON_TIME_ZONE||"Asia/Shanghai",manualStart:!1,onTick:function(){return a.__awaiter(this,void 0,void 0,function(){var e;return a.__generator(this,function(t){switch(t.label){case 0:return t.trys.push([0,4,,5]),console.log("scanApprovalAndDeletedMaterialFromSharepointJob run",new Date),"true"!=process.env.PEPSICO_CRON_DELETE_MATERIAL_FROM_SHAREPOINT_DISABLE?[3,1]:(console.log("已停用自动批量删除Sharepoint过期素材"),[3,3]);case 1:return[4,this.broker.call("".concat(m,".scanApprovalAndDeletedMaterialFromSharepoint"))];case 2:t.sent(),t.label=3;case 3:return[3,5];case 4:return e=t.sent(),console.log("scanApprovalAndDeletedMaterialFromSharepointJob error ",e),[3,5];case 5:return[2]}})})},onInitialize:function(){this.startJob("scanApprovalAndDeletedMaterialFromSharepointJob")},onComplete:function(){console.log("scanApprovalAndDeletedMaterialFromSharepointJob is stopped")}},{name:"imageComparisonJob",cronTime:process.env.PEPSICO_CRON_IMAGE_COMPARISON||"*/30 * * * * *",timeZone:process.env.STEEDOS_CRON_TIME_ZONE||"Asia/Shanghai",manualStart:!1,onTick:function(){return a.__awaiter(this,void 0,void 0,function(){var e;return a.__generator(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),console.log("imageComparisonJob run",new Date),[4,this.broker.call("".concat(m,".processImageComparisons"))];case 1:return t.sent(),[3,3];case 2:return e=t.sent(),console.log("imageComparisonJob error ",e),[3,3];case 3:return[2]}})})},onInitialize:function(){this.startJob("imageComparisonJob")},onComplete:function(){console.log("imageComparisonJob is stopped")}},{name:"checkUserPasswordExpirationJob",cronTime:process.env.PEPSICO_CRON_PASSWORD_EXPIRY_CHECK||"0 10 * * *",timeZone:process.env.STEEDOS_CRON_TIME_ZONE||"Asia/Shanghai",manualStart:!1,onTick:function(){return a.__awaiter(this,void 0,void 0,function(){var e;return a.__generator(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),A?(console.log("已停用 checkUserPasswordExpirationJob"),[2]):(console.log("checkUserPasswordExpirationJob run",new Date),[4,this.broker.call("".concat(m,".checkUserPasswordExpiration"))]);case 1:return t.sent(),[3,3];case 2:return e=t.sent(),console.log("checkUserPasswordExpirationJob error ",e),[3,3];case 3:return[2]}})})},onInitialize:function(){this.startJob("checkUserPasswordExpirationJob")},onComplete:function(){console.log("checkUserPasswordExpirationJob is stopped")}}];e.exports={name:m,namespace:"steedos",mixins:[b,h],settings:{cronJobs:1==O||"true"==O?I:null},metadata:{$package:{name:f.name,path:g.join(__dirname,".."),isPackage:!0}},dependencies:["~packages-standard-objects"],actions:a.__assign(a.__assign({},s),{materialsUploadToOneDrive:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n,o,c,l,p,u;return a.__generator(this,function(_){switch(_.label){case 0:return[4,this.getLogger()];case 1:return t=_.sent(),[4,this.getObject("pepsico_material_approval").find({filters:[["current_step","=","ai_review"],["materials_uploaded_to_onedrive_status","in",["pending","failed"]]],top:10,sort:"modified desc"})];case 2:r=_.sent(),console.log("定时任务[素材上传到oneDrive] count: "+r.length,{objectName:"pepsico_material_approval",count:r.length,approvals:v.map(r,function(e){return v.pick(e,["_id","materials_uploaded_to_onedrive_failed_count","current_step","materials_uploaded_to_onedrive_status"])})}),e.meta.user={userId:process.env.PEPSICO_CONTENT_APPROVAL_AI_USERID},e.getObject=this.getObject,e.logger=t,_.label=3;case 3:_.trys.push([3,13,14,15]),s=a.__values(r),n=s.next(),_.label=4;case 4:if(n.done)return[3,12];if((o=n.value).materials_uploaded_to_onedrive_failed_count&&!(o.materials_uploaded_to_onedrive_failed_count<5))return[3,11];_.label=5;case 5:return _.trys.push([5,9,,11]),[4,this.uploadBulkDocToOneDrive(e,o._id)];case 6:return _.sent()?[4,this.submitContent(e,o._id,i.ApprovalStatus.approved)]:[3,8];case 7:_.sent(),_.label=8;case 8:return[3,11];case 9:return c=_.sent(),[4,this.getObject("pepsico_material_approval").directUpdate(o._id,{materials_uploaded_to_onedrive_status:"failed",$inc:{materials_uploaded_to_onedrive_failed_count:1}})];case 10:return _.sent(),t.error("".concat(o._id,"-[素材上传到oneDrive失败]:").concat(c.message),{objectName:"pepsico_material_approval",_id:o._id}),[3,11];case 11:return n=s.next(),[3,4];case 12:return[3,15];case 13:return l=_.sent(),p={error:l},[3,15];case 14:try{n&&!n.done&&(u=s.return)&&u.call(s)}finally{if(p)throw p.error}return[7];case 15:return[2]}})})},materialsDownloadFromOneDrive:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n,i,o,c,l,p;return a.__generator(this,function(u){switch(u.label){case 0:return[4,this.getLogger()];case 1:return t=u.sent(),[4,this.getObject("pepsico_material_approval").find({filters:[["current_step","=",["awaiting_deployment","conclusion"]],["materials_download_from_onedrive_status","in",["pending","failed"]]],top:10,sort:"modified desc"})];case 2:r=u.sent(),console.log("定时任务[从oneDrive下载素材] count: "+r.length,{objectName:"pepsico_material_approval",count:r.length,approvals:v.map(r,function(e){return v.pick(e,["_id","materials_download_from_onedrive_failed_count","current_step","materials_download_from_onedrive_status"])})}),e.meta.user={userId:process.env.PEPSICO_CONTENT_APPROVAL_AI_USERID},e.getObject=this.getObject,e.logger=t,u.label=3;case 3:u.trys.push([3,11,12,13]),s=a.__values(r),n=s.next(),u.label=4;case 4:if(n.done)return[3,10];if((i=n.value).materials_download_from_onedrive_failed_count&&!(i.materials_download_from_onedrive_failed_count<5))return[3,9];u.label=5;case 5:return u.trys.push([5,7,,9]),[4,this.downloadBulkFromOneDriveDoc(e,i._id)];case 6:return u.sent(),[3,9];case 7:return o=u.sent(),[4,this.getObject("pepsico_material_approval").directUpdate(i._id,{materials_download_from_onedrive_status:"failed",$inc:{materials_download_from_onedrive_failed_count:1}})];case 8:return u.sent(),t.error("".concat(i._id,"-[从oneDrive下载素材失败]:").concat(o.message),{objectName:"pepsico_material_approval",_id:i._id}),[3,9];case 9:return n=s.next(),[3,4];case 10:return[3,13];case 11:return c=u.sent(),l={error:c},[3,13];case 12:try{n&&!n.done&&(p=s.return)&&p.call(s)}finally{if(l)throw l.error}return[7];case 13:return[2]}})})},materialsRemoveShareLinkToOneDrive:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n,i,o,c,l,p;return a.__generator(this,function(u){switch(u.label){case 0:return[4,this.getLogger()];case 1:return t=u.sent(),[4,this.getObject("pepsico_material_approval").find({filters:[["current_step","=",["awaiting_deployment","conclusion"]],["materials_remove_share_link_from_onedrive_status","in",["pending","failed"]]],top:10,sort:"modified desc"})];case 2:r=u.sent(),console.log("定时任务[从oneDrive删除共享连接] count: "+r.length,{objectName:"pepsico_material_approval",count:r.length,approvals:v.map(r,function(e){return v.pick(e,["_id","materials_remove_share_link_from_onedrive_failed_count","current_step","materials_remove_share_link_from_onedrive_status"])})}),e.meta.user={userId:process.env.PEPSICO_CONTENT_APPROVAL_AI_USERID},e.getObject=this.getObject,e.logger=t,u.label=3;case 3:u.trys.push([3,11,12,13]),s=a.__values(r),n=s.next(),u.label=4;case 4:if(n.done)return[3,10];if((i=n.value).materials_remove_share_link_from_onedrive_failed_count&&!(i.materials_remove_share_link_from_onedrive_failed_count<5))return[3,9];u.label=5;case 5:return u.trys.push([5,7,,9]),[4,this.deleteBulkDocOneDriveShareLink(e,i._id)];case 6:return u.sent(),[3,9];case 7:return o=u.sent(),[4,this.getObject("pepsico_material_approval").directUpdate(i._id,{materials_remove_share_link_from_onedrive_status:"failed",$inc:{materials_remove_share_link_from_onedrive_failed_count:1}})];case 8:return u.sent(),t.error("".concat(i._id,"-[从oneDrive删除共享连接失败]:").concat(o.message),{objectName:"pepsico_material_approval",_id:i._id}),[3,9];case 9:return n=s.next(),[3,4];case 10:return[3,13];case 11:return c=u.sent(),l={error:c},[3,13];case 12:try{n&&!n.done&&(p=s.return)&&p.call(s)}finally{if(l)throw l.error}return[7];case 13:return[2]}})})},sendDelayNotifications:function(e){return a.__awaiter(this,void 0,void 0,function(){var t;return a.__generator(this,function(r){switch(r.label){case 0:return[4,this.getLogger()];case 1:return t=r.sent(),e.getObject=this.getObject,e.logger=t,[4,(0,o.sendDelayNotifications)(e,S)];case 2:return r.sent(),[2]}})})},processPostponeReviewNotifications:function(e){return a.__awaiter(this,void 0,void 0,function(){var t;return a.__generator(this,function(r){switch(r.label){case 0:return[4,this.getLogger()];case 1:return t=r.sent(),e.getObject=this.getObject,e.logger=t,[4,(0,o.processPostponeReviewNotifications)(e,S)];case 2:return r.sent(),[2]}})})},processImageComparisons:function(e){return a.__awaiter(this,void 0,void 0,function(){var t;return a.__generator(this,function(r){switch(r.label){case 0:return[4,this.getLogger()];case 1:return t=r.sent(),e.meta.user={userId:process.env.PEPSICO_CONTENT_APPROVAL_AI_USERID},e.getObject=this.getObject,e.logger=t,[4,(0,p.processPendingImageComparisons)(e)];case 2:return r.sent(),[2]}})})},backfillTagLabels:{rest:{method:"GET",fullPath:"/api/pepsico-content/tag-labels/backfill"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n,i,o,c,l,p,u,d,v,g,f;return a.__generator(this,function(m){switch(m.label){case 0:return(t=e.meta.user)&&t.is_space_admin?[4,this.getLogger()]:[2,{error:"没有权限"}];case 1:r=m.sent(),e.getObject=this.getObject,e.logger=r,s={},m.label=2;case 2:m.trys.push([2,9,10,11]),n=a.__values(Object.keys(_.TAG_LABEL_FIELDS)),i=n.next(),m.label=3;case 3:if(i.done)return[3,8];o=i.value,c=void 0,l=0,p=0,u=!0,m.label=4;case 4:return u?[4,(0,_.backfillTagLabels)(e,o,{lastId:c})]:[3,6];case 5:return d=m.sent(),c=d.lastId,l+=d.scanned,p+=d.updated,u=d.hasMore,[3,4];case 6:s[o]={扫描数量:l,回填数量:p},m.label=7;case 7:return i=n.next(),[3,3];case 8:return[3,11];case 9:return v=m.sent(),g={error:v},[3,11];case 10:try{i&&!i.done&&(f=n.return)&&f.call(n)}finally{if(g)throw g.error}return[7];case 11:return[2,s]}})})}},checkUserPasswordExpiration:function(e){return a.__awaiter(this,void 0,void 0,function(){var t;return a.__generator(this,function(r){switch(r.label){case 0:return[4,this.getLogger()];case 1:return t=r.sent(),e.getObject=this.getObject,e.logger=t,[4,(0,u.checkUserPasswordExpiration)(e)];case 2:return r.sent(),[2]}})})},scanPLSFiles:{rest:{method:"GET",fullPath:"/api/pepsico-content/scan/pls"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r;return a.__generator(this,function(a){switch(a.label){case 0:return(t=e.meta.user)&&!t.is_space_admin?[2,{error:"没有权限"}]:[4,this.getLogger()];case 1:return r=a.sent(),e.getObject=this.getObject,e.logger=r,[4,(0,c.scanPLSFiles)(e)];case 2:return[2,{新增PLS记录数量:a.sent()}]}})})}},backfillPLSFileTitles:{rest:{method:"GET",fullPath:"/api/pepsico-content/pls-file/backfill-title"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s;return a.__generator(this,function(a){switch(a.label){case 0:return(t=e.meta.user)&&!t.is_space_admin?[2,{error:"没有权限"}]:[4,this.getLogger()];case 1:return r=a.sent(),e.getObject=this.getObject,e.logger=r,[4,(0,c.backfillPLSFileTitles)(e)];case 2:return[2,{历史记录总数:(s=a.sent()).total,更新标题数量:s.updated,跳过数量:s.skipped}]}})})}},resetPLSFileAIExtract:{rest:{method:"GET",fullPath:"/api/pepsico-content/pls-file/reset-ai-extract"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s;return a.__generator(this,function(a){switch(a.label){case 0:return(t=e.meta.user)&&!t.is_space_admin?[2,{error:"没有权限"}]:[4,this.getLogger()];case 1:return r=a.sent(),e.getObject=this.getObject,e.logger=r,[4,(0,c.resetPLSFileAIExtract)(e)];case 2:return[2,{记录总数:(s=a.sent()).total,重置数量:s.updated}]}})})}},batchCreatePLSFiles:{rest:{method:"POST",fullPath:"/api/pepsico-content/pls-file/batch-upload"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n;return a.__generator(this,function(a){switch(a.label){case 0:return(t=e.meta.user)&&t.userId?(e.getObject=this.getObject,r=e,[4,this.getLogger()]):[2,{error:"请先登录"}];case 1:return r.logger=a.sent(),s=e.params.fileIds||e.params.files,n=v.isString(s)?s.split(","):s||[],[4,(0,c.batchCreatePLSFiles)(e,n)];case 2:return[2,a.sent()]}})})}},checkDuplicatePLSFiles:{rest:{method:"POST",fullPath:"/api/pepsico-content/pls-file/check-duplicate"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n,i;return a.__generator(this,function(a){switch(a.label){case 0:return(t=e.meta.user)&&t.userId?(e.getObject=this.getObject,r=e,[4,this.getLogger()]):[2,{status:1,msg:"请先登录"}];case 1:return r.logger=a.sent(),s=e.params.fileIds||e.params.files,n=v.isString(s)?s.split(","):s||[],[4,(0,c.findDuplicatePLSFilesSafely)(e,n)];case 2:return[2,{status:0,msg:"",data:{duplicated:(i=a.sent()).length>0,message:i.length>0?(0,c.buildDuplicatePLSMessage)(i):"",duplicateFileIds:v.map(i,"fileId")}}]}})})}},setPLSFileActive:{rest:{method:"POST",fullPath:"/api/pepsico-content/pls-file/set-active"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n,i;return a.__generator(this,function(a){switch(a.label){case 0:return(t=e.meta.user)&&t.userId?(e.getObject=this.getObject,r=e,[4,this.getLogger()]):[2,{error:"请先登录"}];case 1:return r.logger=a.sent(),s=e.params,n=s.id,i=s.active,n?[4,(0,c.setPLSFileActive)(e,n,!0===i||"true"===i)]:[2,{error:"缺少记录ID"}];case 2:return[2,a.sent()]}})})}},extractPLSRules:{rest:{method:"POST",fullPath:"/api/pepsico-content/pls-file/extract-rules"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s;return a.__generator(this,function(a){switch(a.label){case 0:return(t=e.meta.user)&&t.userId?(e.getObject=this.getObject,r=e,[4,this.getLogger()]):[2,{status:1,msg:"请先登录"}];case 1:return r.logger=a.sent(),(s=e.params.id)?[4,(0,c.callExtractPLSRules)(e,s)]:[2,{status:1,msg:"缺少记录ID"}];case 2:return[2,{status:0,msg:"",data:a.sent()}]}})})}},uploadApplicationPLSFiles:{rest:{method:"POST",fullPath:"/api/pepsico-content/pls-file/upload"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n,i,o,l,p,u,_,d;return a.__generator(this,function(a){switch(a.label){case 0:return(t=e.meta.user)&&t.userId?(e.getObject=this.getObject,r=e,[4,this.getLogger()]):[2,{error:"请先登录"}];case 1:return r.logger=a.sent(),s=e.params.fileIds||e.params.files,n=v.isString(s)?s.split(","):s||[],v.uniq(v.compact(n)).length>c.MAX_PLS_SOURCE_PER_MODE?[2,{error:"一次最多上传".concat(c.MAX_PLS_SOURCE_PER_MODE,"个PLS文件")}]:(i=e.params,o=i.approvalId,l=i.materialId,p=null,o?[4,this.getObject("pepsico_material_approval").findOne(o)]:[3,3]);case 2:if(!(p=a.sent()))return[2,{error:"审批单不存在"}];if(p.owner!==t.userId&&!(0,c.isApprovalReviewer)(p,t.userId))return[2,{error:"没有权限关联该审批单的PLS文件"}];a.label=3;case 3:return u=null,l?[4,this.getObject("pepsico_material").findOne(l)]:[3,5];case 4:if(!(_=a.sent()))return[2,{error:"素材不存在"}];if(o&&_.pepsico_material_approval!==o)return[2,{error:"素材不属于该审批单"}];u=l,a.label=5;case 5:return p&&!(0,c.isVersionedForm)(p)?[3,7]:[4,(0,c.findDuplicatePLSFilesSafely)(e,n)];case 6:if((d=a.sent()).length>0)return[2,{error:(0,c.buildDuplicatePLSMessage)(d)}];a.label=7;case 7:return[4,(0,c.createApplicationPLSFiles)(e,n,p,u)];case 8:return[2,a.sent()]}})})}},applyPLSSource:{rest:{method:"POST",fullPath:"/api/pepsico-content/pls-review/apply-source"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n,i,o,p,u,_,d,g;return a.__generator(this,function(a){switch(a.label){case 0:return(t=e.meta.user)&&t.userId?(e.getObject=this.getObject,r=e,[4,this.getLogger()]):[2,{error:"请先登录"}];case 1:return r.logger=a.sent(),s=e.params,n=s.approvalId,i=s.materialId,o=s.oldPlsFileId,p=s.sourceMode,u=e.params.newPlsFileIds||e.params.newPlsFileId,_=v.uniq(v.compact(v.isString(u)?u.split(","):u||[])),n&&i&&o&&0!==_.length?(d=v.includes(["upload","mixed"],p)?p:"existing",[4,(0,c.replaceApprovalPLSSource)(e,n,o,_,i,d)]):[2,{error:"缺少审批单、素材或PLS来源参数"}];case 2:return g=a.sent(),[4,(0,l.callChangePLSReview)(e,{approvalId:n,materialId:i,plsFileId:o,newPlsFileIds:g.newPlsFileIds})];case 3:return a.sent(),[2,g]}})})}},getActivePLSOptions:{rest:{method:"GET",fullPath:"/api/pepsico-content/pls-file/active-options"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r;return a.__generator(this,function(a){switch(a.label){case 0:return e.meta.user&&e.meta.user.userId?(e.getObject=this.getObject,t={status:0},r={},[4,(0,c.getActivePLSOptions)(e)]):[2,{error:"请先登录"}];case 1:return[2,(t.data=(r.options=a.sent(),r),t)]}})})}},getPLSReviewGroups:{rest:{method:"GET",fullPath:"/api/pepsico-content/pls-review/material/:materialId"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t;return a.__generator(this,function(r){switch(r.label){case 0:return e.meta.user&&e.meta.user.userId?(e.getObject=this.getObject,t={status:0},[4,(0,c.getPLSReviewGroups)(e,e.params.materialId)]):[2,{error:"请先登录"}];case 1:return[2,(t.data=r.sent(),t)]}})})}},getMaterialReviewPermissions:{rest:{method:"GET",fullPath:"/api/pepsico-content/review-permissions/material/:materialId"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t;return a.__generator(this,function(r){switch(r.label){case 0:return e.meta.user&&e.meta.user.userId?(e.getObject=this.getObject,t={status:0},[4,(0,c.getMaterialReviewPermissions)(e,e.params.materialId)]):[2,{error:"请先登录"}];case 1:return[2,(t.data=r.sent(),t)]}})})}},scanInactiveUsers:{rest:{method:"GET",fullPath:"/api/pepsico-content/scan/inactive-users"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n,i,o,c,l,p,u,_,d,v;return a.__generator(this,function(g){switch(g.label){case 0:return(t=e.meta.user)&&!t.is_space_admin?[2,{error:"没有权限"}]:[4,this.getLogger()];case 1:return r=g.sent(),e.getObject=this.getObject,e.logger=r,s=new Date,(n=new Date).setDate(s.getDate()-90),[4,y("users")];case 2:return i=g.sent(),[4,y("space_users")];case 3:return o=g.sent(),[4,i.updateMany({},{$set:{login_expired:!1}})];case 4:return g.sent(),[4,o.updateMany({},{$set:{login_expired:!1}})];case 5:return g.sent(),[4,i.find({$or:[{$and:[{last_logon:{$ne:null}},{last_logon:{$lt:n}}]},{$and:[{last_logon:null},{created:{$lt:n}}]}]}).toArray()];case 6:c=g.sent(),g.label=7;case 7:g.trys.push([7,13,14,15]),l=a.__values(c),p=l.next(),g.label=8;case 8:return p.done?[3,12]:(u=p.value,[4,this.getObject("users").directUpdate(u._id,{login_expired:!0})]);case 9:return g.sent(),[4,this.getObject("space_users").directUpdateMany(["user","=",u._id],{login_expired:!0})];case 10:g.sent(),g.label=11;case 11:return p=l.next(),[3,8];case 12:return[3,15];case 13:return _=g.sent(),d={error:_},[3,15];case 14:try{p&&!p.done&&(v=l.return)&&v.call(l)}finally{if(d)throw d.error}return[7];case 15:return[2,{新增90天未登录用户数量:c.length}]}})})}},getReportId:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n,i;return a.__generator(this,function(a){switch(a.label){case 0:return[4,this.getLogger()];case 1:return t=a.sent(),e.getObject=this.getObject,e.logger=t,r=w().subtract(1,"month").format("YYYY-MM"),[4,e.getObject("pepsico_spot_check_report").directFind({filters:["year_month","=",r]})];case 2:return a.sent().length>0?[2]:(s=w().get("date"),n=w().day(),[4,e.getObject("spaces").find({filters:[]})]);case 3:return i=a.sent(),s>=10&&0!=n&&6!=n?[4,e.getObject("pepsico_spot_check_report").directInsert({name:"Report-".concat(r),year_month:r,owner:i[0].owner,space:i[0]._id,created:new Date,modified:new Date,created_by:i[0].owner,modified_by:i[0].owner})]:[3,5];case 4:return[2,a.sent()._id];case 5:return[2]}})})},permanentDeleteMaterialFromSharePoint:{rest:{method:"POST",fullPath:"/api/pepsico-content/material/permanent-delete"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n;return a.__generator(this,function(a){switch(a.label){case 0:return(t=e.meta.user)&&!t.is_space_admin?[2,{error:"没有权限"}]:(e.getObject=this.getObject,r=e.params.id,[4,e.getObject("pepsico_material").findOne(r)]);case 1:if(!(s=a.sent()))return[2,{error:"无效的ID"}];a.label=2;case 2:return a.trys.push([2,6,,8]),[4,e.broker.call("content-version-bridge.material_permanentDeleteFromOneDrive",{material:s})];case 3:return a.sent(),[4,e.getObject("pepsico_material").directUpdate(s._id,{permanent_deleted:!0,permanent_deleted_date:new Date})];case 4:return a.sent(),[4,e.logger.info("[永久删除sharepoint素材]-".concat(s.pepsico_material_approval,"-").concat(s._id),{pepsico_material_approval:s.pepsico_material_approval,material:s._id})];case 5:return a.sent(),[3,8];case 6:return n=a.sent(),console.log("error",n),[4,e.logger.error("[永久删除sharepoint素材]-".concat(s.pepsico_material_approval,"-").concat(s._id),{pepsico_material_approval:s.pepsico_material_approval,material:s._id,error:n.message})];case 7:return a.sent(),[3,8];case 8:return[2,{}]}})})}},scanApprovalAndDeletedMaterialFromSharepoint:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n,i,o,c,l,p;return a.__generator(this,function(u){switch(u.label){case 0:return[4,this.getLogger()];case 1:return t=u.sent(),e.getObject=this.getObject,e.logger=t,r=w().subtract(3,"month").toDate(),[4,e.getObject("pepsico_material_approval").find({filters:[["permanent_deleted","!=",!0],["review_status","=","approved"],["current_step","=","conclusion"],["modified","<=",r]]})];case 2:s=u.sent(),u.label=3;case 3:u.trys.push([3,8,9,10]),n=a.__values(s),i=n.next(),u.label=4;case 4:return i.done?[3,7]:(o=i.value,[4,this.permanentlyDeleteApprovalAllMaterialFromSharePoint(e,o)]);case 5:u.sent(),u.label=6;case 6:return i=n.next(),[3,4];case 7:return[3,10];case 8:return c=u.sent(),l={error:c},[3,10];case 9:try{i&&!i.done&&(p=n.return)&&p.call(n)}finally{if(l)throw l.error}return[7];case 10:return[2]}})})},permanentlyDeleteApprovalAllMaterialFromSharePoint:{rest:{method:"POST",fullPath:"/api/pepsico-content/approval/permanent-delete"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n;return a.__generator(this,function(a){switch(a.label){case 0:return(t=e.meta.user)&&!t.is_space_admin?[2,{error:"没有权限"}]:[4,this.getLogger()];case 1:return r=a.sent(),e.getObject=this.getObject,e.logger=r,s=e.params.id,[4,e.getObject("pepsico_material_approval").findOne(s)];case 2:return(n=a.sent())?[4,this.permanentlyDeleteApprovalAllMaterialFromSharePoint(e,n)]:[2,{error:"无效的ID"}];case 3:return a.sent(),[2,{}]}})})}}}),events:{"pepsico_material_approval.mentioned":function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s;return a.__generator(this,function(a){switch(a.label){case 0:return t=e.params,r=t.recordId,s=t.userId,console.log("EVENT[pepsico_material_approval.mentioned]",r,s),r&&s?[4,this.getObject("pepsico_material_approval").directUpdate(r,{$addToSet:{person_view:s}})]:[3,2];case 1:a.sent(),a.label=2;case 2:return[2]}})})}},methods:a.__assign(a.__assign({},v.pickBy(n,v.isFunction)),{permanentlyDeleteApprovalAllMaterialFromSharePoint:function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){var r,s,i,o,c,l,p,u,_,d,v,g,f;return a.__generator(this,function(m){switch(m.label){case 0:return m.trys.push([0,24,,26]),[4,e.getObject("pepsico_material").find({filters:[["pepsico_material_approval","=",t._id],["permanent_deleted","!=",!0],["extension_type","in",["doc","docx","ppt","pptx"]]]})];case 1:r=m.sent(),s=!0,m.label=2;case 2:m.trys.push([2,18,19,20]),i=a.__values(r),o=i.next(),m.label=3;case 3:if(o.done)return[3,17];if(!0===(c=o.value).download_from_onedrive)return[3,10];l=!1,p=5,u=1,m.label=4;case 4:return u<=p?[4,e.logger.info("[永久删除sharepoint素材]-".concat(t._id,"-").concat(c._id,"-尝试下载素材(第").concat(u,"次)"),{pepsico_material_approval:t._id,material:c._id,attempt:u})]:[3,8];case 5:return m.sent(),[4,n.downloadDocFromOneDriveDoc(e,c)];case 6:if(!0===m.sent())return l=!0,[3,8];m.label=7;case 7:return u++,[3,4];case 8:return l?[3,10]:(s=!1,[4,e.logger.error("[永久删除sharepoint素材]-".concat(t._id,"-").concat(c._id),{pepsico_material_approval:t._id,material:c._id,error:"尝试下载素材".concat(p,"次后仍然失败, 跳过删除.")})]);case 9:return m.sent(),[3,16];case 10:return m.trys.push([10,14,,16]),[4,e.broker.call("content-version-bridge.material_permanentDeleteFromOneDrive",{material:c})];case 11:return m.sent(),[4,e.getObject("pepsico_material").directUpdate(c._id,{permanent_deleted:!0,permanent_deleted_date:new Date})];case 12:return m.sent(),[4,e.logger.info("[永久删除sharepoint素材]-".concat(t._id,"-").concat(c._id),{pepsico_material_approval:t._id,material:c._id})];case 13:return m.sent(),[3,16];case 14:return _=m.sent(),s=!1,console.log("error",_),[4,e.logger.error("[永久删除sharepoint素材]-".concat(t._id,"-").concat(c._id),{pepsico_material_approval:t._id,material:c._id,error:_.message})];case 15:return m.sent(),[3,16];case 16:return o=i.next(),[3,3];case 17:return[3,20];case 18:return d=m.sent(),g={error:d},[3,20];case 19:try{o&&!o.done&&(f=i.return)&&f.call(i)}finally{if(g)throw g.error}return[7];case 20:return s?[4,e.getObject("pepsico_material_approval").directUpdate(t._id,{permanent_deleted:!0,permanent_deleted_date:new Date})]:[3,23];case 21:return m.sent(),[4,e.logger.info("[永久删除sharepoint素材]-".concat(t._id),{pepsico_material_approval:t._id})];case 22:m.sent(),m.label=23;case 23:return[3,26];case 24:return v=m.sent(),[4,e.logger.info("[永久删除sharepoint素材]-".concat(t._id),{pepsico_material_approval:t._id,error:v.message})];case 25:return m.sent(),[3,26];case 26:return[2]}})})}}),created:function(){return a.__awaiter(this,void 0,void 0,function(){return a.__generator(this,function(e){return[2]})})},started:function(){return a.__awaiter(this,void 0,void 0,function(){return a.__generator(this,function(e){return[2]})})},stopped:function(){return a.__awaiter(this,void 0,void 0,function(){return a.__generator(this,function(e){return[2]})})}}},8559:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.prepareCopyrightZip=t.copyrightZipName=t.buildZip=t.uniqueEntryNames=t.getCopyrightFileIds=t.COPYRIGHT_FILE_FIELDS=void 0;var a=r(5584),s=r(8938),n=r(7825),i=r(3106),o=r(4809);t.COPYRIGHT_FILE_FIELDS=["copyright_music","copyright_front","copyright_other"],t.getCopyrightFileIds=function(e){return e?n.uniq(n.compact(n.flatMap(t.COPYRIGHT_FILE_FIELDS,function(t){return n.castArray(e[t]||[])}))).map(String):[]};var c=function(){for(var e=new Uint32Array(256),t=0;t<256;t++){for(var r=t,a=0;a<8;a++)r=1&r?3988292384^r>>>1:r>>>1;e[t]=r>>>0}return e}();t.uniqueEntryNames=function(e){var t=new Set;return e.map(function(e){var r=(e||"file").replace(/[\\/]/g,"_");if(!t.has(r))return t.add(r),r;for(var a=r.lastIndexOf("."),s=a>0?r.slice(0,a):r,n=a>0?r.slice(a):"",i=1;t.has("".concat(s,"(").concat(i,")").concat(n));)i++;var o="".concat(s,"(").concat(i,")").concat(n);return t.add(o),o})},t.buildZip=function(e,r){void 0===r&&(r=new Date);var s=function(e){return{time:e.getHours()<<11|e.getMinutes()<<5|Math.floor(e.getSeconds()/2),date:e.getFullYear()-1980<<9|e.getMonth()+1<<5|e.getDate()}}(r),o=s.time,l=s.date,p=(0,t.uniqueEntryNames)(e.map(function(e){return e.name})),u=[],_=[],d=0;e.forEach(function(e,t){var r=Buffer.from(p[t],"utf8"),a=(0,i.deflateRawSync)(e.data),s=function(e){for(var t=4294967295,r=0;r<e.length;r++)t=c[255&(t^e[r])]^t>>>8;return(4294967295^t)>>>0}(e.data),n=Buffer.alloc(30);n.writeUInt32LE(67324752,0),n.writeUInt16LE(20,4),n.writeUInt16LE(2048,6),n.writeUInt16LE(8,8),n.writeUInt16LE(o,10),n.writeUInt16LE(l,12),n.writeUInt32LE(s,14),n.writeUInt32LE(a.length,18),n.writeUInt32LE(e.data.length,22),n.writeUInt16LE(r.length,26),n.writeUInt16LE(0,28),u.push(n,r,a);var v=Buffer.alloc(46);v.writeUInt32LE(33639248,0),v.writeUInt16LE(20,4),v.writeUInt16LE(20,6),v.writeUInt16LE(2048,8),v.writeUInt16LE(8,10),v.writeUInt16LE(o,12),v.writeUInt16LE(l,14),v.writeUInt32LE(s,16),v.writeUInt32LE(a.length,20),v.writeUInt32LE(e.data.length,24),v.writeUInt16LE(r.length,28),v.writeUInt32LE(d,42),_.push(v,r),d+=n.length+r.length+a.length});var v=n.sumBy(_,"length"),g=Buffer.alloc(22);return g.writeUInt32LE(101010256,0),g.writeUInt16LE(e.length,8),g.writeUInt16LE(e.length,10),g.writeUInt32LE(v,12),g.writeUInt32LE(d,16),Buffer.concat(a.__spreadArray(a.__spreadArray(a.__spreadArray([],a.__read(u),!1),a.__read(_),!1),[g],!1))};var l=function(e,t,r,n){return a.__awaiter(void 0,void 0,void 0,function(){var i,o,c,l,p,u;return a.__generator(this,function(a){switch(a.label){case 0:return i="----pepsico".concat(Date.now().toString(16)).concat(Math.random().toString(16).slice(2)),c=function(e,t){o.push(Buffer.from("--".concat(i,'\r\nContent-Disposition: form-data; name="').concat(e,'"\r\n\r\n').concat(t,"\r\n"),"utf8"))},(o=[]).push(Buffer.from("--".concat(i,'\r\nContent-Disposition: form-data; name="file"; filename="').concat(t.replace(/"/g,"_"),'"\r\n')+"Content-Type: application/zip\r\n\r\n","utf8")),o.push(e,Buffer.from("\r\n")),r&&c("space",r),n&&c("owner",n),o.push(Buffer.from("--".concat(i,"--\r\n"))),l=Buffer.concat(o),[4,s.default.post("".concat(process.env.LOCAL_ROOT_URL||process.env.ROOT_URL,"/api/v6/files/cfs.files.filerecord"),l,{headers:{"Content-Type":"multipart/form-data; boundary=".concat(i),"Content-Length":l.length,Authorization:"Bearer apikey,".concat(process.env.STEEDOS_API_KEY)},maxBodyLength:1/0,maxContentLength:1/0})];case 1:if(p=a.sent(),!(u=p.data&&p.data._id))throw new Error("版权文件压缩包上传失败: ".concat(JSON.stringify(p.data)));return[2,u]}})})};t.copyrightZipName=function(e){var t=String(e.name||e._id||"").replace(/[\\/:*?"<>|\r\n]/g,"_").trim().slice(0,100);return"".concat(t||"审批单","_版权文件.zip")},t.prepareCopyrightZip=function(e,r){return a.__awaiter(void 0,void 0,void 0,function(){var s,i,c,p,u,_,d,v,g,f,m,h,b,w;return a.__generator(this,function(y){switch(y.label){case 0:return 0===(s=(0,t.getCopyrightFileIds)(r)).length?[2,null]:[4,e.getObject("cfs_files_filerecord").directFind({filters:[["_id","in",s]],fields:["_id","original"]})];case 1:i=y.sent(),c=n.keyBy(i||[],"_id"),p=[],y.label=2;case 2:y.trys.push([2,9,10,11]),u=a.__values(s),_=u.next(),y.label=3;case 3:return _.done?[3,8]:(d=_.value,(v=c[d])?[4,(0,o.readFileBuffer)(e,d,6e4)]:[3,5]);case 4:return f=y.sent(),[3,6];case 5:f=null,y.label=6;case 6:if(!(g=f))throw new Error("读取版权文件失败: ".concat(v&&v.original&&v.original.name||d));p.push({name:v.original&&v.original.name||d,data:g}),y.label=7;case 7:return _=u.next(),[3,3];case 8:return[3,11];case 9:return m=y.sent(),b={error:m},[3,11];case 10:try{_&&!_.done&&(w=u.return)&&w.call(u)}finally{if(b)throw b.error}return[7];case 11:return h=(0,t.copyrightZipName)(r),[4,l((0,t.buildZip)(p),h,r.space,r.owner)];case 12:return[2,{fileId:y.sent(),name:h,count:p.length}]}})})}},8666:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.grantUploaderAndNotify=t.buildUploaderEmail=t.requestUploaderPermission=t.parseW1Response=t.buildW1Body=t.getUploaderRecipients=t.CONTENT_HUB_UPLOADER_LOG_NAME=void 0;var a=r(5584),s=r(8938),n=r(7825),i=r(4809);t.CONTENT_HUB_UPLOADER_LOG_NAME="Content Hub上传授权";var o=function(e){return n.isString(e)?e.trim().toLowerCase():""};t.getUploaderRecipients=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){var r,s,i,c,l,p,u,_;return a.__generator(this,function(d){switch(d.label){case 0:return r=e.getObject("space_users"),s=t.created_by||t.owner,i=[],c=function(e){return a.__awaiter(void 0,void 0,void 0,function(){var s;return a.__generator(this,function(a){switch(a.label){case 0:return e?[4,r.directFind({filters:[["user","=",e],["space","=",t.space]],fields:["user","email"],top:1})]:[2,null];case 1:return[2,(s=a.sent())&&s[0]]}})})},!0!==t.is_external?[3,4]:(l=n.isPlainObject(t.internal_collaborator)?t.internal_collaborator._id:t.internal_collaborator)?[4,r.directFind({filters:[["_id","=",l]],fields:["user","email"],top:1})]:[3,2];case 1:p=d.sent(),(_=p&&p[0])&&_.email&&i.push({email:_.email,role:"发起人",userId:_.user}),d.label=2;case 2:return[4,c(s)];case 3:return(u=d.sent())&&u.email&&i.push({email:u.email,role:"Agency",userId:u.user}),[3,6];case 4:return[4,c(t.owner||s)];case 5:(_=d.sent())&&_.email&&i.push({email:_.email,role:"发起人",userId:_.user}),d.label=6;case 6:return[2,n.uniqBy(n.filter(i,function(e){return!!o(e.email)}),function(e){return o(e.email)})]}})})},t.buildW1Body=function(e,t){var r=n.uniq(n.map(t,String));if(n.some(r,function(e){return!/^\d+$/.test(e)}))throw new Error("素材组 ID 不合法: ".concat(r.join(",")));return'{"email":'.concat(JSON.stringify(n.uniq(n.compact(n.map(e,o)))),',"materialGroupIdList":[').concat(r.join(","),"]}")},t.parseW1Response=function(e){return n.isString(e)?JSON.parse(e.replace(/("materialGroupId"\s*:\s*)(\d+)/g,'$1"$2"')):e},t.requestUploaderPermission=function(e,n,i,o){return void 0===o&&(o={}),a.__awaiter(void 0,void 0,void 0,function(){var c,l,p,u;return a.__generator(this,function(a){switch(a.label){case 0:c=(0,t.buildW1Body)(n,i),_=r(8749),l=_.randomUUID?_.randomUUID():"".concat(Date.now(),"-").concat(Math.random().toString(16).slice(2)),o.request={url:"/creativeSaas/pepsico/compliance/v1/editable-material/uploader-permission",request_id:l,body:c},a.label=1;case 1:return a.trys.push([1,3,,4]),[4,s.default.post("".concat(process.env.PEPSICO_CONTENT_HUB_BASE_URL).concat(o.request.url),c,{headers:{"tenant-access-token":e,"X-Request-Id":l,"Content-Type":"application/json; charset=UTF-8"},timeout:3e4,transformResponse:[function(e){return e}]})];case 2:return p=a.sent(),o.response=(0,t.parseW1Response)(p.data),[2,o.response];case 3:if((u=a.sent())&&u.response){o.http_status=u.response.status;try{o.response=(0,t.parseW1Response)(u.response.data)}catch(e){o.response=u.response.data}}throw u;case 4:return[2]}var _})})};var c=function(e){return String(null==e?"":e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")};t.buildUploaderEmail=function(e,t,r){var a=process.env.PEPSICO_CONTENT_HUB_WEB_URL;t=String(t||"").split("|").map(function(e){return e.trim()}).join(" > ");var s=r&&"SSO_PENDING"===r.accountStatus;return{subject:"【Content Hub】请上传可编辑素材: ".concat(e.name),html:"\n <p>您好,</p>\n <p>审批单「".concat(c(e.name),"」的素材已同步到 Content Hub,存放位置:</p>\n <p><b>").concat(c(t),"</b></p>\n <p>请登录 Content Hub,在上述目录上传该批素材的可编辑版本(如 PSD / PSB 等源文件)。您已被授予该目录的上传权限。</p>\n ").concat(s?"<p>您是首次使用 Content Hub,请先通过公司 SSO 登录一次以完成账号开通。</p>":"","\n ").concat(a?'<p><a href="'.concat(c(a),'">打开 Content Hub</a></p>'):"",'\n <p>审批单:<a href="').concat(process.env.ROOT_URL,"/app/pepsico_content_review/pepsico_material_approval/view/").concat(e._id,'">').concat(c(e.name),"</a></p>\n <p>有任何疑问,请联系系统管理员。</p>\n ")}},t.grantUploaderAndNotify=function(e,r,s,c){return a.__awaiter(void 0,void 0,void 0,function(){var l,p,u,_,d,v,g,f,m,h,b,w,y,O,S,A;return a.__generator(this,function(I){switch(I.label){case 0:l=n.sortBy(n.map(s,String)).join(","),p={action:"content-hub-uploader-permission",approval_id:r._id,approval_name:r.name,material_group_ids:s},I.label=1;case 1:return I.trys.push([1,19,,24]),l?r.ch_uploader_notified_group===l?[2]:[4,(0,t.getUploaderRecipients)(e,r)]:[2];case 2:return u=I.sent(),p.recipients=u.map(function(e){return{email:e.email,role:e.role}}),0!==u.length?[3,4]:(p.status="skipped",p.reason="取不到发起人 / Agency 的邮箱",[4,(0,i.writeSystemLog)(e,"info",p,t.CONTENT_HUB_UPLOADER_LOG_NAME,r.space)]);case 3:return I.sent(),[2];case 4:return d=t.requestUploaderPermission,[4,c()];case 5:return[4,d.apply(void 0,[I.sent(),n.map(u,"email"),s,p])];case 6:return(_=I.sent())&&!0===_.success&&200===_.code?[3,8]:(p.status="failed",p.error=_&&(_.msg||_.message)||"W1 调用失败",[4,(0,i.writeSystemLog)(e,"error",p,t.CONTENT_HUB_UPLOADER_LOG_NAME,r.space)]);case 7:return I.sent(),[2];case 8:v=_.data||[],g=[],f=[],m=function(s){var i,c,l,p,u,_,d,m;return a.__generator(this,function(a){switch(a.label){case 0:if(i=n.filter(v,function(e){return o(e.email)===o(s.email)}),c=n.filter(i,function(e){return"FAILED"!==e.accountStatus&&"FAILED"!==e.permissionStatus}),i.length>0&&0===c.length)return f.push({email:s.email,reason:"账号或授权失败",rows:i}),[2,"continue"];l=c[0],p=n.uniq(n.compact(n.map(c,"materialGroupPath"))).join(";")||r.ch_material_group_path||"",u=(0,t.buildUploaderEmail)(r,p,l),_=u.subject,d=u.html,a.label=1;case 1:return a.trys.push([1,3,,4]),[4,e.broker.call("@builder6/email.send",{to:s.email,subject:_,html:d})];case 2:return a.sent(),g.push(s.email),[3,4];case 3:return m=a.sent(),f.push({email:s.email,reason:"发送邮件失败: ".concat(m.message)}),[3,4];case 4:return[2]}})},I.label=9;case 9:I.trys.push([9,14,15,16]),h=a.__values(u),b=h.next(),I.label=10;case 10:return b.done?[3,13]:(w=b.value,[5,m(w)]);case 11:I.sent(),I.label=12;case 12:return b=h.next(),[3,10];case 13:return[3,16];case 14:return y=I.sent(),S={error:y},[3,16];case 15:try{b&&!b.done&&(A=h.return)&&A.call(h)}finally{if(S)throw S.error}return[7];case 16:return p.emailed=g,p.not_emailed=f,p.status=f.length>0?"partial":"done",[4,e.getObject("pepsico_material_approval").directUpdate(r._id,{ch_uploader_notified_group:l})];case 17:return I.sent(),[4,(0,i.writeSystemLog)(e,f.length>0?"error":"info",p,t.CONTENT_HUB_UPLOADER_LOG_NAME,r.space)];case 18:return I.sent(),[3,24];case 19:O=I.sent(),p.status="failed",p.error=O.message,I.label=20;case 20:return I.trys.push([20,22,,23]),[4,(0,i.writeSystemLog)(e,"error",p,t.CONTENT_HUB_UPLOADER_LOG_NAME,r.space)];case 21:case 22:return I.sent(),[3,23];case 23:return[3,24];case 24:return[2]}})})}},8749:e=>{e.exports=require("crypto")},8844:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.previewSyncForForm=t.getOrgIds=t.resolveOwnerDepartment=t.previewSyncRule=t.pickSyncRule=t.ruleMatches=t.ruleMismatchReason=t.isUnset=t.pathMatches=t.toValues=t.isContentHubForm=t.CONTENT_HUB_FORM_VERSIONS=t.SpotCheckCondition=t.NeedSync=t.SYNC_RULE_OBJECT_NAME=void 0;var a=r(5584),s=r(7825);t.SYNC_RULE_OBJECT_NAME="pepsico_ch_sync_rule",t.NeedSync={sync:"sync",notSync:"not_sync"},t.SpotCheckCondition={approved:"approved",none:"none"},t.CONTENT_HUB_FORM_VERSIONS=["v3"],t.isContentHubForm=function(e){return!!e&&s.includes(t.CONTENT_HUB_FORM_VERSIONS,e.form_version)},t.toValues=function(e){return s.compact(s.castArray(e).map(function(e){return s.isString(e)?e.trim():e&&s.isString(e.value)?e.value.trim():null}))},t.pathMatches=function(e,r){var a=(0,t.toValues)(e),n=(0,t.toValues)(r);return a.some(function(e){return n.some(function(t){return e===t||s.startsWith(e,"".concat(t,"-"))})})},t.isUnset=function(e){return 0===(0,t.toValues)(e).length},t.ruleMismatchReason=function(e,r,a){return void 0===a&&(a=!1),(0,t.isUnset)(e.orgs)||0!==s.intersection((0,t.toValues)(e.orgs),r.orgIds).length?(0,t.isUnset)(e.classification)||(0,t.pathMatches)(r.classification,e.classification)?(0,t.isUnset)(e.product)||(0,t.pathMatches)(r.product,e.product)?(0,t.isUnset)(e.kol_classification)||(0,t.isUnset)(r.kolClassification)||(n=r.kolClassification,i=e.kol_classification,s.intersection((0,t.toValues)(n),(0,t.toValues)(i)).length>0)?a||e.spot_check!==t.SpotCheckCondition.approved||r.spotCheck?!a&&e.spot_check===t.SpotCheckCondition.none&&r.spotCheck?"规则只适用于非抽查":null:"规则只适用于抽查核准":"KOL 分类不在规则所选范围内":(0,t.isUnset)(r.product)?"审批单还没选品牌/产品":"品牌/产品不在规则所选范围内":(0,t.isUnset)(r.classification)?"审批单还没选分类":"分类不在规则所选范围内":0===r.orgIds.length?"审批单还没有发起人部门":"发起人部门不在规则所选部门内";var n,i},t.ruleMatches=function(e,r){return null===(0,t.ruleMismatchReason)(e,r)},t.pickSyncRule=function(e,r){var a=s.find(e,function(e){return(0,t.ruleMatches)(e,r)})||null;return{needSync:!!a&&a.need_sync===t.NeedSync.sync,rule:a}},t.previewSyncRule=function(e,r){var n=(0,t.pickSyncRule)(e,a.__assign(a.__assign({},r),{spotCheck:!1})),i=(0,t.pickSyncRule)(e,a.__assign(a.__assign({},r),{spotCheck:!0})),o=n.needSync?n:i.needSync?i:n,c=s.compact(e.map(function(e){var s=(0,t.ruleMismatchReason)(e,a.__assign(a.__assign({},r),{spotCheck:!1}),!0);return s?{rule:e.name||e._id,reason:s}:null}));return{needSync:n.needSync||i.needSync,rule:o.rule,mismatches:c}},t.resolveOwnerDepartment=function(e,r,n){return a.__awaiter(void 0,void 0,void 0,function(){var i,o,c,l,p,u,_;return a.__generator(this,function(a){switch(a.label){case 0:return(i=(0,t.toValues)(s.isPlainObject(r)&&r._id?r._id:r)).length>0?[2,i[0]]:(o=e.meta&&e.meta.user,c=n&&n.userId||o&&o.userId,l=n&&n.spaceId||o&&o.spaceId,c?(p=[["user","=",c]],l&&p.push(["space","=",l]),[4,e.getObject("space_users").directFind({filters:p,fields:["organization","organizations"],top:1})]):[2,null]);case 1:return u=a.sent(),[2,(_=u&&u[0])&&(_.organization||s.first(_.organizations))||null]}})})},t.getOrgIds=function(e,t){return a.__awaiter(void 0,void 0,void 0,function(){var r;return a.__generator(this,function(n){switch(n.label){case 0:return t?[4,e.getObject("organizations").directFind({filters:[["_id","=",t]],fields:["_id","parents"],top:1})]:[2,[]];case 1:return 0===(r=n.sent()).length?[2,[t]]:[2,s.uniq(s.compact(a.__spreadArray([t],a.__read(r[0].parents||[]),!1)))]}})})},t.previewSyncForForm=function(e,r){return a.__awaiter(void 0,void 0,void 0,function(){var s,n,i,o;return a.__generator(this,function(a){switch(a.label){case 0:return[4,e.getObject(t.SYNC_RULE_OBJECT_NAME).directFind({filters:[["active","=",!0]],sort:"priority asc"})];case 1:return s=a.sent(),n=t.previewSyncRule,i=[s],o={},[4,(0,t.getOrgIds)(e,r.ownerDepartment)];case 2:return[2,n.apply(void 0,i.concat([(o.orgIds=a.sent(),o.classification=r.classification,o.product=r.product,o.kolClassification=r.kolClassification,o)]))]}})})}},8862:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.DCO_TYPES=void 0;var a=r(7825);t.DCO_TYPES=a.split(process.env.CONTENT_DCO_TYPES||"MD-PO1-PO18")},8864:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.clickReportSpotEmail=t.sendMonthlySpotCheckReport=t.clickSpotEmail=t.spotCheckMaterial=void 0;var a=r(5584),s=r(7825),n=r(8862),i=r(7825),o=r(1057),c=r(8844),l=r(8938),p=r(4716),u=function(e,t,r,s,n,i){return a.__awaiter(void 0,void 0,void 0,function(){var o;return a.__generator(this,function(a){switch(a.label){case 0:return[4,l.default.post("".concat(process.env.LOCAL_ROOT_URL||process.env.ROOT_URL,"/api/v6/email/send"),{from:e,to:t,cc:i,subject:r,text:s,html:n},{headers:{Authorization:"Bearer apikey,".concat(process.env.STEEDOS_API_KEY)}})];case 1:return o=a.sent(),console.log("sendEmail===>","".concat(process.env.LOCAL_ROOT_URL||process.env.ROOT_URL,"/api/v6/email/send"),{from:e,to:t.email,subject:r,text:s,html:n},{headers:{Authorization:"Bearer apikey,".concat(process.env.STEEDOS_API_KEY)}},o),[2,JSON.stringify(o.data)]}})})};t.spotCheckMaterial={rest:{method:"POST",fullPath:"/api/pepsico-content/material/spot-check/:mid"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,l,p,_,d,v,g,f,m,h,b,w,y,O,S,A,I,P,T,E,j,D,C,k,R,L,U,N,M,x,F,q;return a.__generator(this,function(G){switch(G.label){case 0:return t=e.meta.user,r=e.params,l=r.mid,p=r.description,_=r.pepsico_spot_check_status,e.getObject=this.getObject,[4,this.getLogger()];case 1:return d=G.sent(),e.logger=d,l?[4,e.getObject("pepsico_material").findOne(l)]:[2,{status:500,msg:"无效的素材标识",data:{}}];case 2:return(v=G.sent())?[4,e.getObject("pepsico_material_spot_check_record").findOne({filters:[["pepsico_material","=",l],["spot_checker","=",t.userId]]})]:[2,{status:500,msg:"无效的素材标识",data:{}}];case 3:return G.sent()?[2,{status:500,msg:"您已经抽查过此素材, 请勿重复操作!",data:{}}]:[4,e.getObject("space_users").findOne({filters:["user","=",t.userId]})];case 4:return g=G.sent(),f=(null==g?void 0:g.organization)||"",[4,e.getObject("pepsico_material_spot_check_record").insert({pepsico_material:l,spot_checker:t.userId,spot_check_department:f,spot_check_time:new Date,spot_check_status:_,spot_check_opinion:p,space:v.space},t)];case 5:return G.sent(),[4,e.getObject("pepsico_material_spot_check_record").find({filters:["pepsico_material","=",l]})];case 6:return m=G.sent(),h=(0,s.uniq)(m.map(function(e){return e.spot_checker})),b=(0,s.uniq)((0,s.compact)(m.map(function(e){return e.spot_check_department}))),[4,e.getObject("pepsico_material").directUpdate(l,{spot_checked:!0,spot_check_time:new Date,pepsico_spot_check:t.userId,spot_description:p,pepsico_spot_check_status:_,spot_checkers:h,spot_check_departments:b,spot_check_overall_status:"checked"})];case 7:return G.sent(),[4,e.getObject("pepsico_material_approval").findOne(v.pepsico_material_approval)];case 8:return(w=G.sent())?!0!==_||!(0,c.isContentHubForm)(w)&&!i.includes(n.DCO_TYPES,w.classification)?[3,10]:[4,(0,o.sendByMaterial)(e,l)]:[2,{status:500,msg:"无效的素材审批标识",data:{}}];case 9:G.sent(),G.label=10;case 10:y=(0,s.uniq)((0,s.compact)([w.owner,w.created_by])),console.log("通知用户:",JSON.stringify(y)),G.label=11;case 11:G.trys.push([11,20,,21]),G.label=12;case 12:G.trys.push([12,17,18,19]),O=a.__values(y),S=O.next(),G.label=13;case 13:return S.done?[3,16]:(A=S.value,console.log("站内通知用户:",A),[4,e.broker.call("notifications.add",{message:{name:"素材抽检结果通知: ".concat(v.name),body:"请点击素材进行查看",related_to:{o:"pepsico_material_approval",ids:[w._id]},related_name:w.name,from:t.userId,space:w.space},from:t.userId,to:A})]);case 14:G.sent(),G.label=15;case 15:return S=O.next(),[3,13];case 16:return[3,19];case 17:return I=G.sent(),M={error:I},[3,19];case 18:try{S&&!S.done&&(x=O.return)&&x.call(O)}finally{if(M)throw M.error}return[7];case 19:return[3,21];case 20:return P=G.sent(),console.log(P),[3,21];case 21:return G.trys.push([21,33,,34]),[4,e.getObject("space_users").find({filters:["user","in",y]})];case 22:T=G.sent(),E="【系统通知】素材抽检结果通知",G.label=23;case 23:G.trys.push([23,30,31,32]),j=a.__values(T),D=j.next(),G.label=24;case 24:return D.done?[3,29]:(C=D.value,[4,e.getObject("pepsico_mail_send_log")._makeNewID()]);case 25:return k=G.sent(),R='\n <p>您提交的素材已经被抽查。请点击下面的链接登录系统查看抽查意见:</p>\n <a href="'.concat(process.env.ROOT_URL,"/api/pepsico-content/material/click/spot-check/").concat(l,"/").concat(k,'">').concat(w.name,":").concat(v.name,"</a>\n "),[4,u(process.env.B6_EMAIL_FROM,C.email,E,"",R,"")];case 26:return L=G.sent(),[4,e.getObject("pepsico_mail_send_log").insert({_id:k,name:E,created:new Date,content:R,type:"素材抽查",to:[C.user],pepsico_material:v._id,result:L,space:v.space},t)];case 27:G.sent(),G.label=28;case 28:return D=j.next(),[3,24];case 29:return[3,32];case 30:return U=G.sent(),F={error:U},[3,32];case 31:try{D&&!D.done&&(q=j.return)&&q.call(j)}finally{if(F)throw F.error}return[7];case 32:return[3,34];case 33:return N=G.sent(),console.log(N),null==d||d.error("[素材抽查]-".concat(l),{error:N.message}),[3,34];case 34:return[2,{status:0,data:{}}]}})})}},t.clickSpotEmail={rest:{method:"GET",authorization:!1,fullPath:"/api/pepsico-content/material/click/spot-check/:mid/:lid"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n,i,o,c;return a.__generator(this,function(a){switch(a.label){case 0:return t=e.meta.user,r=e.params,s=r.mid,n=r.lid,t?(e.getObject=this.getObject,[4,this.getLogger()]):(e.meta.$statusCode=302,e.meta.$location="/accounts/a/#/login?redirect_uri="+encodeURIComponent("/api/pepsico-content/material/click/spot-check/".concat(s,"/").concat(n)),[2]);case 1:return i=a.sent(),e.logger=i,s?[4,e.getObject("pepsico_material").findOne(s)]:[2,{status:500,msg:"无效的素材标识",data:{}}];case 2:return(o=a.sent())?[4,e.getObject("pepsico_material_approval").findOne(o.pepsico_material_approval)]:[2,{status:500,msg:"无效的素材标识",data:{}}];case 3:return(c=a.sent())?[4,e.getObject("pepsico_mail_visit_log").insert({owner:t.userId,created:new Date,type:"素材抽查",pepsico_material_approval:o.pepsico_material_approval,pepsico_material:o._id,pepsico_mail_send_log:n,space:o.space},t)]:[2,{status:500,msg:"无效的素材审批标识",data:{}}];case 4:return a.sent(),e.meta.$statusCode=302,e.meta.$location="/app/pepsico_content_review/pepsico_material_approval/view/".concat(c._id,"?side_object=pepsico_material_approval"),[2]}})})}},t.sendMonthlySpotCheckReport={rest:{method:"GET",fullPath:"/api/pepsico-content/material/send-report/spot-check/:rid"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n,o,c,l,_,d,v,g,f,m,h,b,w,y,O;return a.__generator(this,function(S){switch(S.label){case 0:return t=e.meta.user,r=e.params.rid,e.getObject=this.getObject,[4,this.getLogger()];case 1:return s=S.sent(),e.logger=s,[4,e.getObject("pepsico_spot_check_report").findOne(r)];case 2:if(!(n=S.sent()))throw new Error("无效的id");return o=n.year_month,c=o.split("-"),l=function(e,t){if("number"!=typeof e||"number"!=typeof t)throw new Error("年份和月份必须是数字");if(t<1||t>12)throw new Error("月份必须在1-12之间");var r=p([e,t-1]);if(!r.isValid())throw new Error("无效的年份或月份");return{monthStart:r.startOf("month").toDate(),monthEnd:r.endOf("month").toDate()}}(Number(c[0]),Number(c[1])),_=l.monthStart,d=l.monthEnd,v=[{label:"乐事",value:"16541517620111040"},{label:"奇多",value:"1654151762046893"},{label:"Doritos/多力多滋",value:"16541517620141606"},{label:"Popcorners",value:"166686519900"},{label:"一口阳光",value:"1654151762018542"},{label:"妙脆角",value:"165788230400"},{label:"零食大礼包",value:"1649752"},{label:"桂格",value:"16541517620103133"},{label:"百事食品",value:"1654151762014792"}],[4,e.getObject("pepsico_brand_leader").directFind({filters:[]})];case 3:g=S.sent(),f=function(s){var c,l,p,g,f,m,h,b,w;return a.__generator(this,function(a){switch(a.label){case 0:return[4,e.getObject("pepsico_material").directFind({filters:[["spot_checked","=",!0],["product","=",s.name],["classification","=",s.classification],["spot_check_time",">=",_],["spot_check_time","<=",d]]})];case 1:return a.sent().length>0?(c="【系统通知】".concat(s.remark,"月度抽查报告[").concat(o,"]"),l=i.find(v,function(e){return e.value===s.name}),s?[4,e.getObject("pepsico_mail_send_log")._makeNewID()]:[3,13]):[3,13];case 2:if(p=a.sent(),g="\n <p>亲爱的用户,</p>\n <p>本月".concat(l.label,"抽查素材报告已生成。 请点击下面链接查看").concat(l.label,'月度抽查报告,建议分享给团队成员进行学习。</p>\n <a href="').concat(process.env.ROOT_URL,"/api/pepsico-content/material/click/spot-report/").concat(r,"/").concat(p,'">').concat(s.remark,":").concat(o,"</a>\n <p>有任何疑问,请联系系统管理员。</p>\n <p>谢谢!</p>\n "),f=[],!s.to)return[3,6];a.label=3;case 3:return a.trys.push([3,5,,6]),[4,e.getObject("space_users").find({filters:["user","in",s.to]})];case 4:return f=a.sent(),[3,6];case 5:return m=a.sent(),console.log(m),[3,6];case 6:if(h=[],!s.cc)return[3,10];a.label=7;case 7:return a.trys.push([7,9,,10]),[4,e.getObject("space_users").find({filters:["user","in",s.cc]})];case 8:return h=a.sent(),[3,10];case 9:return b=a.sent(),console.log(b),[3,10];case 10:return[4,u(process.env.B6_EMAIL_FROM,i.join(i.map(f,"email"),";"),c,"",g,i.join(i.map(h,"email"),";"))];case 11:return w=a.sent(),[4,e.getObject("pepsico_mail_send_log").insert({_id:p,name:c,created:new Date,content:g,type:"月度抽查报告",to:s.to,cc:s.cc,product:l.value,classification:s.classification,pepsico_spot_check_report:r,result:w,space:n.space},t)];case 12:a.sent(),a.label=13;case 13:return[2]}})},S.label=4;case 4:S.trys.push([4,9,10,11]),m=a.__values(g),h=m.next(),S.label=5;case 5:return h.done?[3,8]:(b=h.value,[5,f(b)]);case 6:S.sent(),S.label=7;case 7:return h=m.next(),[3,5];case 8:return[3,11];case 9:return w=S.sent(),y={error:w},[3,11];case 10:try{h&&!h.done&&(O=m.return)&&O.call(m)}finally{if(y)throw y.error}return[7];case 11:return[4,e.getObject("pepsico_spot_check_report").directUpdate(r,{mail_send:!0,mail_send_date:new Date})];case 12:return S.sent(),[2]}})})}},t.clickReportSpotEmail={rest:{method:"GET",authorization:!1,fullPath:"/api/pepsico-content/material/click/spot-report/:rid/:lid"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,s,n,i,o;return a.__generator(this,function(a){switch(a.label){case 0:return t=e.meta.user,r=e.params,s=r.rid,n=r.lid,t?(e.getObject=this.getObject,[4,this.getLogger()]):(e.meta.$statusCode=302,e.meta.$location="/accounts/a/#/login?redirect_uri="+encodeURIComponent("/api/pepsico-content/material/click/spot-report/".concat(s,"/").concat(n)),[2]);case 1:return i=a.sent(),e.logger=i,s?[4,e.getObject("pepsico_spot_check_report").findOne(s)]:[2,{status:500,msg:"无效的标识",data:{}}];case 2:return(o=a.sent())?[4,e.getObject("pepsico_mail_visit_log").insert({owner:t.userId,created:new Date,type:"月度抽查报告",pepsico_mail_send_log:n,space:o.space},t)]:[2,{status:500,msg:"无效的标识",data:{}}];case 3:return a.sent(),e.meta.$statusCode=302,e.meta.$location="/app/pepsico_content_review/page/pepsico_spot_check_report?rid=".concat(s,"&lid=").concat(n),[2]}})})}}},8938:e=>{e.exports=require("axios")},9082:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.dashboardSyncData=void 0;var a=r(5584);t.dashboardSyncData={rest:{method:"GET",fullPath:"/api/pepsico-content/dashboard/sync-data"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r;return a.__generator(this,function(a){switch(a.label){case 0:return[4,this.getLogger()];case 1:return t=a.sent(),e.logger=t,e.getObject=this.getObject,[4,this.dashboardSyncData(e)];case 2:return r=a.sent(),console.log("dashboardSyncData",r),[2,r]}})})}}},9227:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.contentHubTagValues=void 0;var a=r(5584),s=r(7825),n=r(6570),i=s.compact(s.split(process.env.PEPSICO_CONTENT_HUB_TAG_SYNC_USERIDS||"",",").map(function(e){return e.trim()})),o=s.compact(s.split(process.env.PEPSICO_CONTENT_HUB_TAG_SYNC_ALLOWED_IPS||"",",").map(function(e){return e.trim()}));t.contentHubTagValues={rest:{method:"POST",authorization:!1,fullPath:"/api/pepsico-content/content-hub/tag-values"},handler:function(e){var t,r;return a.__awaiter(this,void 0,void 0,function(){var c,l,p,u,_,d,v,g;return a.__generator(this,function(a){switch(a.label){case 0:return c=function(t,r,a){return e.meta.$statusCode=(0,n.httpStatusOf)(t),{code:t,msg:r,data:a}},l=s.isString(null===(t=e.params)||void 0===t?void 0:t.requestId)?e.params.requestId.trim():"",p={requestId:l,idempotent:!1,results:[]},(u=e.meta.user)&&u.userId?i.length>0&&!s.includes(i,u.userId)||o.length>0&&!s.includes(o,(f=e.meta.clientIp,s.isString(f)?f.replace(/^::ffff:/i,"").trim():""))?[2,c(n.TagSyncCode.UNAUTHORIZED,"鉴权失败",p)]:[4,this.getLogger()]:[2,c(n.TagSyncCode.UNAUTHORIZED,"鉴权失败",p)];case 1:_=a.sent(),e.logger=_,e.getObject=this.getObject,a.label=2;case 2:return a.trys.push([2,4,,6]),[4,(0,n.syncTagValues)(e,e.params)];case 3:return d=a.sent(),[2,c(d.code,d.msg,d.data)];case 4:return v=a.sent(),g=(0,n.isTagSyncError)(v)?v.code:n.TagSyncCode.SERVER_ERROR,[4,_.warn("[Content Hub 标签同步]整批拒绝-".concat(l),{objectName:"picklist_options",request_id:l,tag_id:null===(r=e.params)||void 0===r?void 0:r.tagId,code:g,error:v.message})];case 5:return a.sent(),[2,c(g,v.message,p)];case 6:return[2]}var f})})}}},9435:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.migrateReviewCompletedDate=void 0;var a=r(5584),s=r(8160);function n(e){return a.__awaiter(this,void 0,void 0,function(){var t;return a.__generator(this,function(r){switch(r.label){case 0:return[4,(t=s.getDataSource("default").adapter).connect()];case 1:return r.sent(),[2,t.collection(e)]}})})}t.migrateReviewCompletedDate={rest:{method:"GET",fullPath:"/api/pepsico-content/migrate-review-completed-date"},handler:function(e){var t;return a.__awaiter(this,void 0,void 0,function(){var r,s,i,o,c,l,p,u,_,d,v,g,f,m,h,b,w,y,O;return a.__generator(this,function(S){switch(S.label){case 0:return r=e.meta.user,e.getObject=this.getObject,[4,this.getLogger()];case 1:if(s=S.sent(),e.logger=s,!r||!r.is_space_admin)return[2,{status:403,msg:"只有管理员可以执行数据迁移",data:{}}];S.label=2;case 2:return S.trys.push([2,20,,21]),[4,n("pepsico_material_approval")];case 3:return i=S.sent(),[4,n("pepsico_approval_process")];case 4:return o=S.sent(),[4,n("pepsico_material")];case 5:return c=S.sent(),[4,i.find({current_step:{$in:["awaiting_deployment","conclusion"]},$or:[{review_completed_date:{$exists:!1}},{review_completed_date:null}]},{projection:{_id:1}}).toArray()];case 6:l=S.sent(),null==s||s.info("[migrateReviewCompletedDate] 待更新审批单数: ".concat(l.length)),p=0,u=0,_=[],S.label=7;case 7:S.trys.push([7,17,18,19]),d=a.__values(l),v=d.next(),S.label=8;case 8:return v.done?[3,16]:(g=v.value,[4,o.findOne({pepsico_material_approval:g._id,current_step:"awaiting_deployment"},{projection:{created:1}})]);case 9:return(f=S.sent())&&f.created?[3,11]:[4,o.findOne({pepsico_material_approval:g._id,current_step:"conclusion"},{projection:{created:1}})];case 10:f=S.sent(),S.label=11;case 11:return f&&f.created?[4,i.updateOne({_id:g._id},{$set:{review_completed_date:f.created}})]:[3,14];case 12:return S.sent(),[4,c.updateMany({pepsico_material_approval:g._id},{$set:{review_completed_date:f.created}})];case 13:return m=S.sent(),u+=m.matchedCount||(null===(t=m.result)||void 0===t?void 0:t.n)||0,p++,[3,15];case 14:_.push(g._id),S.label=15;case 15:return v=d.next(),[3,8];case 16:return[3,19];case 17:return h=S.sent(),y={error:h},[3,19];case 18:try{v&&!v.done&&(O=d.return)&&O.call(d)}finally{if(y)throw y.error}return[7];case 19:return b={approvalTotal:l.length,approvalUpdated:p,approvalSkipped:_.length,skippedIds:_,materialUpdated:u},null==s||s.info("[migrateReviewCompletedDate] 迁移完成",b),[2,{status:0,msg:"迁移完成",data:b}];case 20:return w=S.sent(),null==s||s.error("[migrateReviewCompletedDate] 迁移失败",w),[2,{status:500,msg:"迁移失败: ".concat(w.message),data:{}}];case 21:return[2]}})})}}},9536:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.submitKids=void 0;var a=r(5584);t.submitKids={rest:{method:"POST",fullPath:"/api/pepsico-content/approve/kids/submit/:recordId"},handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t;return a.__generator(this,function(r){switch(r.label){case 0:return e.getObject=this.getObject,[4,this.getLogger()];case 1:return t=r.sent(),e.logger=t,[4,this.submitKidsContent(e,e.params.recordId,e.params.approvalStatus)];case 2:return r.sent(),[2,{}]}})})}}},9600:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.contentHubFillOnSave=void 0;var a=r(5584),s=r(9676);t.contentHubFillOnSave={handler:function(e){return a.__awaiter(this,void 0,void 0,function(){var t,r,n,i,o,c,l,p;return a.__generator(this,function(a){switch(a.label){case 0:return[4,this.getLogger()];case 1:t=a.sent(),e.logger=t,e.getObject=this.getObject,r=e.params||{},n=r.doc,i=r.id,a.label=2;case 2:return a.trys.push([2,6,,8]),o=null,i?[4,e.getObject("pepsico_material_approval").directFind({filters:[["_id","=",i]],fields:s.CONTENT_HUB_INPUT_FIELDS,top:1})]:[3,4];case 3:c=a.sent(),o=c&&c.length>0?c[0]:null,a.label=4;case 4:return p={},[4,(0,s.fillContentHubFields)(e,n||{},o)];case 5:return[2,(p.patch=a.sent(),p)];case 6:return l=a.sent(),[4,t.error("[Content Hub]保存时补算同步开关 / 素材组路径失败, 不影响保存",{id:i,error:l.message})];case 7:return a.sent(),[2,{patch:{}}];case 8:return[2]}})})}}},9676:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.fillContentHubFields=t.CONTENT_HUB_INPUT_FIELDS=void 0;var a=r(5584),s=r(7825),n=r(8844),i=r(6118),o=r(777),c=["owner_department","classification","product","kol_classification"];t.CONTENT_HUB_INPUT_FIELDS=["form_version","space","owner","created_by","owner_department","classification","product","kol_classification","ch_sync_enabled","ch_sync_manual","ch_material_group","ch_material_group_path"],t.fillContentHubFields=function(e,t,r){return void 0===r&&(r=null),a.__awaiter(void 0,void 0,void 0,function(){var l,p,u,_,d,v,g,f,m,h;return a.__generator(this,function(b){switch(b.label){case 0:return l=a.__assign(a.__assign({},r||{}),t),(0,n.isContentHubForm)(l)?(p={},[4,(0,n.resolveOwnerDepartment)(e,l.owner_department,{userId:l.owner||l.created_by,spaceId:l.space})]):[2,{}];case 1:return u=b.sent(),_=!r||s.some(c,function(e){return s.has(t,e)&&!s.isEqual(t[e],r[e])}),!0===l.ch_sync_manual||!_&&!s.has(t,"ch_sync_enabled")?[3,3]:[4,(0,n.previewSyncForForm)(e,{ownerDepartment:u,classification:l.classification,product:l.product,kolClassification:l.kol_classification})];case 2:d=b.sent().needSync,l.ch_sync_enabled!==d&&(p.ch_sync_enabled=d),b.label=3;case 3:return v=(0,o.toMaterialGroupId)(l.ch_material_group),s.has(t,"ch_material_group")&&null!=t.ch_material_group&&t.ch_material_group!==v&&(p.ch_material_group=v),g=!!r&&(0,o.toMaterialGroupId)(r.ch_material_group)!==v&&l.ch_material_group_path===r.ch_material_group_path,f=l.ch_material_group,v&&(!l.ch_material_group_path||g)&&s.isPlainObject(f)&&f.materialGroupPath?(p.ch_material_group_path=f.materialGroupPath,[3,6]):[3,4];case 4:return!v||l.ch_material_group_path&&!g?[3,6]:[4,(0,i.loadMaterialGroupOptions)(e,{product:l.product,ownerDepartment:u,classification:l.classification})];case 5:m=b.sent(),(h=(0,i.findMaterialGroupPath)(m,v))&&(p.ch_material_group_path=h),b.label=6;case 6:return[2,p]}})})}},9861:e=>{e.exports=require("moleculer-cron")}},t={},r=function r(a){var s=t[a];if(void 0!==s)return s.exports;var n=t[a]={exports:{}};return e[a](n,n.exports,r),n.exports}(8509);module.exports=r})();