@steedos-labs/content-compliance-bev 0.0.3 → 0.0.5

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 (73) hide show
  1. package/dist/index.js +1 -1
  2. package/lib/actions/collection.d.ts +2 -0
  3. package/lib/actions/collection.js +26 -0
  4. package/lib/actions/collection.js.map +1 -0
  5. package/lib/actions/spotCheckMaterial.d.ts +20 -0
  6. package/lib/actions/spotCheckMaterial.js +543 -90
  7. package/lib/actions/spotCheckMaterial.js.map +1 -1
  8. package/lib/index.js +112 -33
  9. package/lib/index.js.map +1 -1
  10. package/lib/methods/approval_engine.js +182 -149
  11. package/lib/methods/approval_engine.js.map +1 -1
  12. package/lib/methods/content_hub.js +23 -38
  13. package/lib/methods/content_hub.js.map +1 -1
  14. package/lib/methods/material.js +6 -4
  15. package/lib/methods/material.js.map +1 -1
  16. package/lib/methods/task.d.ts +1 -1
  17. package/lib/methods/task.js +12 -20
  18. package/lib/methods/task.js.map +1 -1
  19. package/main/default/objects/pepsico_material/buttons/pepsico_material_approve.button.yml +10 -0
  20. package/main/default/objects/pepsico_material/buttons/pepsico_material_reject.button.yml +10 -0
  21. package/main/default/objects/pepsico_material/buttons/pepsico_material_spot_check.button.yml +1 -1
  22. package/main/default/objects/pepsico_material/buttons/pepsico_upload_supplement.button.yml +1 -0
  23. package/main/default/objects/pepsico_material/fields/approved_time.field.yml +5 -0
  24. package/main/default/objects/pepsico_material/fields/modified.field.yml +1 -0
  25. package/main/default/objects/pepsico_material/fields/modified_by.field.yml +1 -0
  26. package/main/default/objects/pepsico_material/fields/spot_check_pool_year_month.field.yml +9 -0
  27. package/main/default/objects/pepsico_material/fields/spot_check_type.field.yml +1 -1
  28. package/main/default/objects/pepsico_material/listviews/kol_midtier.listview.yml +3 -3
  29. package/main/default/objects/pepsico_material/listviews/spot_check.listview.yml +9 -5
  30. package/main/default/objects/pepsico_material/pepsico_material.object.yml +1 -1
  31. package/main/default/objects/pepsico_material_approval/buttons/pepsico_submit.button.yml +4 -0
  32. package/main/default/objects/pepsico_material_approval/fields/approved_time.field.yml +5 -0
  33. package/main/default/objects/pepsico_material_approval/fields/internal_collaborator.field.yml +1 -1
  34. package/main/default/objects/pepsico_material_approval/fields/material_owner.field.yml +2 -2
  35. package/main/default/objects/pepsico_material_approval/fields/modified.field.yml +1 -0
  36. package/main/default/objects/pepsico_material_approval/fields/modified_by.field.yml +1 -0
  37. package/main/default/objects/pepsico_material_approval/listviews/all.listview.yml +29 -15
  38. package/main/default/objects/pepsico_material_approval/listviews/collaboration.listview.yml +13 -9
  39. package/main/default/objects/pepsico_material_approval/listviews/handle.listview.yml +10 -3
  40. package/main/default/objects/pepsico_material_approval_data/fields/modified.field.yml +1 -0
  41. package/main/default/objects/pepsico_material_approval_data/fields/modified_by.field.yml +1 -0
  42. package/main/default/objects/pepsico_material_data/fields/modified.field.yml +1 -0
  43. package/main/default/objects/pepsico_material_data/fields/modified_by.field.yml +1 -0
  44. package/main/default/objects/pepsico_material_spot_check/fields/modified.field.yml +1 -0
  45. package/main/default/objects/pepsico_material_spot_check/fields/modified_by.field.yml +1 -0
  46. package/main/default/objects/pepsico_spot_check_pool/buttons/send_mail.button.yml +39 -0
  47. package/main/default/objects/pepsico_spot_check_pool/fields/logs.field.yml +8 -0
  48. package/main/default/objects/pepsico_spot_check_pool/fields/mail_send.field.yml +8 -0
  49. package/main/default/objects/pepsico_spot_check_pool/fields/mail_send_date.field.yml +9 -0
  50. package/main/default/objects/pepsico_spot_check_pool/fields/micro_pepsico_material.field.yml +11 -0
  51. package/main/default/objects/pepsico_spot_check_pool/fields/mid_tier_pepsico_material.field.yml +11 -0
  52. package/main/default/objects/pepsico_spot_check_pool/fields/year_month.field.yml +8 -0
  53. package/main/default/objects/pepsico_spot_check_pool/listviews/all.listview.yml +18 -0
  54. package/main/default/objects/pepsico_spot_check_pool/pepsico_spot_check_pool.object.yml +27 -0
  55. package/main/default/objects/pepsico_spot_check_pool/permissions/admin.permission.yml +15 -0
  56. package/main/default/objects/pepsico_spot_check_pool/permissions/user.permission.yml +14 -0
  57. package/main/default/objects/pepsico_spot_check_report/fields/modified_by.field.yml +1 -1
  58. package/main/default/objects/pepsico_tag_increase/fields/modified.field.yml +1 -0
  59. package/main/default/objects/pepsico_tag_increase/fields/modified_by.field.yml +1 -0
  60. package/main/default/objects/permission_set/listviews/all.listview.yml +16 -21
  61. package/main/default/objects/permission_set/permission_set.object.yml +3 -1
  62. package/main/default/pages/pepsico_content_review_detail.page.amis.json +16 -4
  63. package/main/default/pages/pepsico_material_detail.page.amis.json +18 -0
  64. package/main/default/pages/pepsico_material_detail.page.yml +3 -0
  65. package/main/default/pages/pepsico_midtier_spot_check.page.amis.json +45 -17
  66. package/main/default/pages/pepsico_spot_check.page.amis.json +1 -2
  67. package/main/default/pages/pepsico_spot_check_dco.page.amis.json +1 -2
  68. package/main/default/permissionsets/pepsico_spot_check_users.permissionset.yml +9 -0
  69. package/main/default/tabs/pepsico_midtier_spot_check.tab.yml +1 -1
  70. package/main/default/tabs/pepsico_spot_check.tab.yml +1 -4
  71. package/main/default/triggers/pepsico_material_approval_changName.trigger.yml +9 -1
  72. package/main/default/triggers/pepsico_material_approval_change.trigger.yml +2 -2
  73. package/package.json +1 -1
@@ -54,7 +54,7 @@
54
54
  "className": "contents",
55
55
  "items": {
56
56
  "type": "service",
57
- "id": "u:service1",
57
+ "id": "u:pepsico_approval_task",
58
58
  "api": {
59
59
  "url": "/api/v6/data/pepsico_approval_task?skip=0&top=1000&fields=_id",
60
60
  "requestAdaptor": "api.url = api.url + `&filters=${JSON.stringify([['pepsico_material_approval', '=', context.recordId],['approval_field', '=', 'approval_status'],['owner', '=', context.handler_guding[context.index]]])}`; return api;",
@@ -62,7 +62,10 @@
62
62
  },
63
63
  "body": {
64
64
  "type": "service",
65
- "id": "u:service2",
65
+ "id": "u:pepsico_approval_task_material",
66
+ "data": {
67
+ "approval_status": "${approval_status}"
68
+ },
66
69
  "api": {
67
70
  "url": "/api/v6/data/pepsico_material?skip=0&top=1000&fields=_id,name,space",
68
71
  "requestAdaptor": "api.url = api.url + `&filters=${JSON.stringify([['pepsico_material_approval', '=', context.recordId],['void_material', '!=', true]])}`; return api;",
@@ -97,7 +100,7 @@
97
100
  "id": "u:9c1860a9b300",
98
101
  "crudMode": "table",
99
102
  "crudDataFilter": "crud.bulkActions = null;",
100
- "adaptor": "debugger;window.completeMaterialDataSimple(payload, context.materialList)",
103
+ "adaptor": "window.completeMaterialDataSimple(payload, context.materialList)",
101
104
  "requestAdaptor": "api.data.query = api.data.query.replace('filters: []', 'filters: ' + JSON.stringify([['pepsico_material_approval', '=', context.pepsico_material_approval],['approval_field', '=', 'approval_status'],['owner', '=', context.owner]])).replace('filters:[]', 'filters:'+JSON.stringify([['pepsico_material_approval', '=', context.pepsico_material_approval],['approval_field', '=', 'approval_status'],['owner', '=', context.owner]]))"
102
105
  }
103
106
  ],
@@ -128,7 +131,16 @@
128
131
  }
129
132
  }
130
133
  },
131
- "visibleOn": "${approval_type === 'personnel_review' && review_status != 'draft'}"
134
+ "visibleOn": "${false && approval_type === 'personnel_review' && review_status != 'draft'}"
135
+ },
136
+ {
137
+ "type": "tpl",
138
+ "tpl": "<li class=\"col-span-1 flex rounded-md shadow-sm\">\n <div class=\"flex w-16 shrink-0 items-center justify-center rounded-l-md bg-private text-base font-medium text-white\">固定</div>\n <div class=\"flex flex-1 items-center justify-between truncate rounded-r-md border-b border-r border-t border-gray-200 bg-white\">\n <div class=\"flex-1 truncate px-4 py-2 text-sm\">\n <a href=\"#\" class=\"font-medium text-gray-900 hover:text-gray-600\">${(_display.handler_guding || _display.reviewer)|pick:label}</a>\n <p class=\"text-gray-500 m-0 h-5\"><span class='mr-4'>${CONCATENATE(IF(approval_materials_quantity, approval_materials_quantity, 0), ' / ', materials_quantity)}</span>${IFS(approval_status === true, '<i class=\"fa-solid fa-check\"></i>', approval_status === false, '<i class=\"fa-solid fa-xmark\"></i>', !approval_status, '')}</p>\n </div>\n </div>\n</li>",
139
+ "inline": true,
140
+ "wrapperComponent": "",
141
+ "id": "u:ec5fe1e3ac08",
142
+ "visibleOn": "${approval_type === 'personnel_review' && review_status != 'draft'}",
143
+ "editorState": "default"
132
144
  },
133
145
  {
134
146
  "type": "tpl",
@@ -518,6 +518,24 @@
518
518
  "headerClassName": "pb-2 bg-transparent border-none",
519
519
  "bodyClassName": "px-0 pb-0",
520
520
  "body": [
521
+ {
522
+ "type": "alert",
523
+ "editorState": "default",
524
+ "body": [
525
+ {
526
+ "type": "tpl",
527
+ "tpl": "提示:素材未通过商标检索",
528
+ "wrapperComponent": "",
529
+ "inline": false,
530
+ "id": "u:c1ef42dcf0a4",
531
+ "editorState": "default"
532
+ }
533
+ ],
534
+ "level": "danger",
535
+ "className": "mb-1",
536
+ "id": "u:356998cc6f17",
537
+ "visibleOn": "${classification == '22335110412927067-22335110412927093' && is_trademark_checked == 'no'}"
538
+ },
521
539
  {
522
540
  "type": "rooms-provider",
523
541
  "baseUrl": "${context.rootUrl}",
@@ -1,4 +1,7 @@
1
1
  name: pepsico_material_detail
2
+ __filename: >-
3
+ /workspaces/steedos-project-pepsico/steedos-packages/content-review/main/default/pages/pepsico_material_detail.page.yml
4
+ __timestamp: 1764119559435
2
5
  is_active: true
3
6
  label: 材料素材记录页
4
7
  locked: false
@@ -1,7 +1,49 @@
1
1
  {
2
2
  "type": "page",
3
3
  "title": "Welcome to Steedos",
4
+ "id": "page:spot_check",
5
+ "bodyClassName": "h-full p-0 sm:bg-gray-50",
6
+ "css": {
7
+ ".listHeight": {
8
+ "height": "calc(100% - 80px)"
9
+ }
10
+ },
4
11
  "body": [
12
+ {
13
+ "type": "container",
14
+ "body": [
15
+ {
16
+ "type": "tpl",
17
+ "tpl": "<li class=\"col-span-1 flex rounded-md shadow-sm\">\n <div class=\"flex w-16 shrink-0 items-center justify-center rounded-l-md bg-private text-base font-medium text-white\">总数</div>\n <div class=\"flex flex-1 items-center justify-between truncate rounded-r-md border-b border-r border-t border-gray-200 bg-white\">\n <div class=\"flex-1 truncate px-4 py-2 text-sm\">\n <p class=\"text-gray-500 m-0 h-5\"><span class='mr-4'>${count}</span></p>\n </div>\n </div>\n</li>",
18
+ "inline": true,
19
+ "wrapperComponent": "",
20
+ "id": "u:65eac8efca60",
21
+ "editorState": "default"
22
+ },{
23
+ "type": "tpl",
24
+ "tpl": "<li class=\"col-span-1 flex rounded-md shadow-sm\">\n <div class=\"flex w-16 shrink-0 items-center justify-center rounded-l-md bg-private text-base font-medium text-white\">已抽查数</div>\n <div class=\"flex flex-1 items-center justify-between truncate rounded-r-md border-b border-r border-t border-gray-200 bg-white\">\n <div class=\"flex-1 truncate px-4 py-2 text-sm\">\n <p class=\"text-gray-500 m-0 h-5\"><span class='mr-4'>${IF(spot_count, spot_count, 0)}</span></p>\n </div>\n </div>\n</li>",
25
+ "inline": true,
26
+ "wrapperComponent": "",
27
+ "id": "u:1b743b2be88d",
28
+ "editorState": "default"
29
+ },
30
+ {
31
+ "type": "tpl",
32
+ "tpl": "<li class=\"col-span-1 flex rounded-md shadow-sm\">\n <div class=\"flex w-16 shrink-0 items-center justify-center rounded-l-md bg-private text-base font-medium text-white\">抽查率</div>\n <div class=\"flex flex-1 items-center justify-between truncate rounded-r-md border-b border-r border-t border-gray-200 bg-white\">\n <div class=\"flex-1 truncate px-4 py-2 text-sm\">\n <p class=\"text-gray-500 m-0 h-5\"><span class='mr-4'>${IF(count > 0, CONCATENATE(ROUND(IF(spot_count, spot_count, 0)/count * 100), '%'), '')}</span></p>\n </div>\n </div>\n</li>",
33
+ "inline": true,
34
+ "wrapperComponent": "",
35
+ "id": "u:1b743b2be88d",
36
+ "editorState": "default"
37
+ }
38
+ ],
39
+ "size": "none",
40
+ "wrapperBody": false,
41
+ "id": "u:364038776887",
42
+ "isFixedHeight": false,
43
+ "isFixedWidth": false,
44
+ "visibleOn": "${1==1}",
45
+ "className": "grid grid-cols-1 gap-5 sm:grid-cols-2 sm:gap-6 lg:grid-cols-5 sm:m-4 sm:sticky z-20"
46
+ },
5
47
  {
6
48
  "type": "steedos-object-listview",
7
49
  "className": "listHeight",
@@ -12,11 +54,10 @@
12
54
  "id": "u:ee75c526fe3d",
13
55
  "crudMode": "table",
14
56
  "ctx": {
15
- "auto_open_filter": true,
16
- "formFactor": "LARGE"
57
+ "auto_open_filter": true
17
58
  },
18
- "requestAdaptor": "const _sfilters = JSON.parse(JSON.stringify(filters)); if(_sfilters.length > 0){_sfilters.push('and')};_sfilters.push(['spot_checked', '=', true]); api.data.query = api.data.query.slice(0, -1) + ',spot_count:pepsico_material__count(filters: '+JSON.stringify(_sfilters)+')}'; ",
19
- "adaptor": "var scope2 = context._scoped; scope2.doAction({actionType: \"setValue\", componentId: \"page:midtier_spot_check\", args: {value: {count: payload.data.count, spot_count: payload.data.spot_count}}})"
59
+ "requestAdaptor": "const _sfilters = JSON.parse(JSON.stringify(filters)); if(_sfilters.length > 0){_sfilters.push('and')};_sfilters.push(['spot_checked_done', '=', true]); api.data.query = api.data.query.slice(0, -1) + ',spot_count:pepsico_material__count(filters: '+JSON.stringify(_sfilters)+')}'; ",
60
+ "adaptor": "var scope2 = context._scoped; scope2.doAction({actionType: \"setValue\", componentId: \"page:spot_check\", args: {value: {count: payload.data.count, spot_count: payload.data.spot_count}}})"
20
61
  }
21
62
  ],
22
63
  "regions": [
@@ -24,21 +65,8 @@
24
65
  ],
25
66
  "data": {
26
67
  "initialValues": {},
27
- "appId": "builder",
28
68
  "title": "",
29
69
  "listName": "kol_midtier",
30
70
  "showFieldsFilter": true
31
- },
32
- "id": "page:midtier_spot_check",
33
- "bodyClassName": "h-full p-0 sm:bg-gray-50",
34
- "css": {
35
- ".listHeight": {
36
- "height": "calc(100% - 80px)"
37
- }
38
- },
39
- "asideResizor": false,
40
- "editorState": "default",
41
- "pullRefresh": {
42
- "disabled": true
43
71
  }
44
72
  }
@@ -56,7 +56,7 @@
56
56
  "ctx": {
57
57
  "auto_open_filter": true
58
58
  },
59
- "requestAdaptor": "const _sfilters = JSON.parse(JSON.stringify(filters)); if(_sfilters.length > 0){_sfilters.push('and')};_sfilters.push(['spot_checked', '=', true]); api.data.query = api.data.query.slice(0, -1) + ',spot_count:pepsico_material__count(filters: '+JSON.stringify(_sfilters)+')}'; ",
59
+ "requestAdaptor": "const _sfilters = JSON.parse(JSON.stringify(filters)); if(_sfilters.length > 0){_sfilters.push('and')};_sfilters.push(['spot_checked_done', '=', true]); api.data.query = api.data.query.slice(0, -1) + ',spot_count:pepsico_material__count(filters: '+JSON.stringify(_sfilters)+')}'; ",
60
60
  "adaptor": "var scope2 = context._scoped; scope2.doAction({actionType: \"setValue\", componentId: \"page:spot_check\", args: {value: {count: payload.data.count, spot_count: payload.data.spot_count}}})"
61
61
  }
62
62
  ],
@@ -65,7 +65,6 @@
65
65
  ],
66
66
  "data": {
67
67
  "initialValues": {},
68
- "appId": "builder",
69
68
  "title": "",
70
69
  "listName": "spot_check",
71
70
  "showFieldsFilter": true
@@ -48,7 +48,7 @@
48
48
  "auto_open_filter": true,
49
49
  "formFactor": "LARGE"
50
50
  },
51
- "requestAdaptor": "const _sfilters = JSON.parse(JSON.stringify(filters)); if(_sfilters.length > 0){_sfilters.push('and')};_sfilters.push(['spot_checked', '=', true]); api.data.query = api.data.query.slice(0, -1) + ',spot_count:pepsico_material__count(filters: '+JSON.stringify(_sfilters)+')}'; ",
51
+ "requestAdaptor": "const _sfilters = JSON.parse(JSON.stringify(filters)); if(_sfilters.length > 0){_sfilters.push('and')};_sfilters.push(['spot_checked_done', '=', true]); api.data.query = api.data.query.slice(0, -1) + ',spot_count:pepsico_material__count(filters: '+JSON.stringify(_sfilters)+')}'; ",
52
52
  "adaptor": "var scope2 = context._scoped; scope2.doAction({actionType: \"setValue\", componentId: \"page:dco_spot_check\", args: {value: {count: payload.data.count, spot_count: payload.data.spot_count}}})"
53
53
  }
54
54
  ],
@@ -57,7 +57,6 @@
57
57
  ],
58
58
  "data": {
59
59
  "initialValues": {},
60
- "appId": "builder",
61
60
  "title": "",
62
61
  "listName": "dco_spot_check",
63
62
  "showFieldsFilter": true
@@ -0,0 +1,9 @@
1
+ name: pepsico_spot_check_users
2
+ enable_MFA: false
3
+ label: 抽查人
4
+ locked: false
5
+ login_expiration_in_days: 90
6
+ logout_other_clients: false
7
+ phone_login_expiration_in_days: 90
8
+ phone_logout_other_clients: false
9
+ type: permission_set
@@ -16,5 +16,5 @@ permissions:
16
16
  permission_set: user
17
17
  - locked: false
18
18
  permission: 'on'
19
- permission_set: pepsico_spot_check_view
19
+ permission_set: pepsico_spot_check_users
20
20
  type: page
@@ -10,14 +10,11 @@ page: pepsico_spot_check
10
10
  permissions:
11
11
  - locked: false
12
12
  permission: 'on'
13
- permission_set: pepsico_spot_check
13
+ permission_set: pepsico_spot_check_users
14
14
  - locked: false
15
15
  permission: 'on'
16
16
  permission_set: admin
17
17
  - locked: false
18
18
  permission: 'off'
19
19
  permission_set: user
20
- - locked: false
21
- permission: 'on'
22
- permission_set: pepsico_spot_check_view
23
20
  type: page
@@ -24,7 +24,15 @@ handler: |-
24
24
  if (hasChanges) {
25
25
  const updateData = {};
26
26
  syncFields.forEach(field => {
27
- updateData[field] = record[field];
27
+ if(field === 'product'){
28
+ try{
29
+ updateData[field] = _.first(_.split(record.product, '-'));
30
+ }catch(e){
31
+ console.log(e)
32
+ }
33
+ }else{
34
+ updateData[field] = record[field];
35
+ }
28
36
  });
29
37
 
30
38
  const mRecords = await objects.pepsico_material.find({
@@ -10,13 +10,13 @@ handler: |-
10
10
  if(ctx.params.isInsert){
11
11
  if(doc.approval_type === 'personnel_review'){
12
12
  if(_.isEmpty(doc.reviewer)){
13
- throw new Error('固定审核人缺失, 请确认审批单对应审核人员信息');
13
+ throw new Error('固定审核人缺失, 请确认审批单填写信息或联系管理员进行处理');
14
14
  }
15
15
  }
16
16
 
17
17
  if(doc.approval_type === 'departmental_review'){
18
18
  if(_.isEmpty(doc.ca_reviewer) && _.isEmpty(doc.legal_reviewer) && _.isEmpty(doc.ns_reviewer) && _.isEmpty(doc.sra_reviewer)){
19
- throw new Error('审核人缺失, 请确认审批单对应审核人员信息');
19
+ throw new Error('审核人缺失, 请确认审批单填写信息或联系管理员进行处理');
20
20
  }
21
21
  }
22
22
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@steedos-labs/content-compliance-bev",
3
- "version": "0.0.3",
3
+ "version": "0.0.5",
4
4
  "description": "百事Bev内容审核系统",
5
5
  "main": "package.service.js",
6
6
  "scripts": {