@things-factory/worksheet-base 4.0.21 → 4.0.25
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.
- package/dist-server/controllers/ecommerce/ecommerce-controller.js +10 -3
- package/dist-server/controllers/ecommerce/ecommerce-controller.js.map +1 -1
- package/dist-server/controllers/ecommerce/sellercraft-controller.js +5 -3
- package/dist-server/controllers/ecommerce/sellercraft-controller.js.map +1 -1
- package/dist-server/controllers/inbound/putaway-returning-worksheet-controller.js +24 -4
- package/dist-server/controllers/inbound/putaway-returning-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/inbound/unloading-worksheet-controller.js +98 -140
- package/dist-server/controllers/inbound/unloading-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/outbound/packing-worksheet-controller.js +2 -6
- package/dist-server/controllers/outbound/packing-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/outbound/picking-worksheet-controller.js +4 -4
- package/dist-server/controllers/outbound/picking-worksheet-controller.js.map +1 -1
- package/dist-server/controllers/render-orientage-do.js +3 -3
- package/dist-server/controllers/render-orientage-do.js.map +1 -1
- package/dist-server/controllers/render-orientage-grn.js +4 -4
- package/dist-server/controllers/render-orientage-grn.js.map +1 -1
- package/dist-server/controllers/worksheet-controller.js +5 -5
- package/dist-server/controllers/worksheet-controller.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-multiple-release-good-worksheet.js +14 -0
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-multiple-release-good-worksheet.js.map +1 -0
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-release-good-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/index.js +2 -1
- package/dist-server/graphql/resolvers/worksheet/generate-worksheet/index.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js +8 -4
- package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/activate-picking.js +6 -4
- package/dist-server/graphql/resolvers/worksheet/picking/activate-picking.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js +4 -7
- package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking/fetch-and-assign-picking-task.js +64 -54
- package/dist-server/graphql/resolvers/worksheet/picking/fetch-and-assign-picking-task.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js +1 -0
- package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/putaway-returning-worksheet.js +3 -1
- package/dist-server/graphql/resolvers/worksheet/putaway-returning-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/putaway-worksheet.js +4 -2
- package/dist-server/graphql/resolvers/worksheet/putaway-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/return-worksheet.js +3 -1
- package/dist-server/graphql/resolvers/worksheet/return-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/sorting-worksheet.js +2 -1
- package/dist-server/graphql/resolvers/worksheet/sorting-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/unloading/index.js +4 -5
- package/dist-server/graphql/resolvers/worksheet/unloading/index.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/unloading/undo-unloading.js +4 -4
- package/dist-server/graphql/resolvers/worksheet/unloading/undo-unloading.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/unloading-worksheet.js +4 -2
- package/dist-server/graphql/resolvers/worksheet/unloading-worksheet.js.map +1 -1
- package/dist-server/graphql/resolvers/worksheet/worksheet.js +28 -1
- package/dist-server/graphql/resolvers/worksheet/worksheet.js.map +1 -1
- package/dist-server/graphql/types/worksheet/index.js +7 -8
- package/dist-server/graphql/types/worksheet/index.js.map +1 -1
- package/dist-server/graphql/types/worksheet/worksheet-info.js +1 -0
- package/dist-server/graphql/types/worksheet/worksheet-info.js.map +1 -1
- package/package.json +16 -16
- package/server/controllers/ecommerce/ecommerce-controller.ts +18 -4
- package/server/controllers/ecommerce/sellercraft-controller.ts +11 -5
- package/server/controllers/inbound/putaway-returning-worksheet-controller.ts +28 -6
- package/server/controllers/inbound/unloading-worksheet-controller.ts +130 -152
- package/server/controllers/outbound/packing-worksheet-controller.ts +2 -7
- package/server/controllers/outbound/picking-worksheet-controller.ts +4 -4
- package/server/controllers/render-orientage-do.ts +7 -5
- package/server/controllers/render-orientage-grn.ts +9 -7
- package/server/controllers/worksheet-controller.ts +5 -5
- package/server/graphql/resolvers/worksheet/generate-worksheet/generate-multiple-release-good-worksheet.ts +22 -0
- package/server/graphql/resolvers/worksheet/generate-worksheet/generate-release-good-worksheet.ts +3 -1
- package/server/graphql/resolvers/worksheet/generate-worksheet/index.ts +2 -0
- package/server/graphql/resolvers/worksheet/packing-worksheet.ts +9 -5
- package/server/graphql/resolvers/worksheet/picking/activate-picking.ts +7 -4
- package/server/graphql/resolvers/worksheet/picking/complete-picking.ts +4 -8
- package/server/graphql/resolvers/worksheet/picking/fetch-and-assign-picking-task.ts +67 -56
- package/server/graphql/resolvers/worksheet/picking-worksheet.ts +1 -0
- package/server/graphql/resolvers/worksheet/putaway-returning-worksheet.ts +7 -3
- package/server/graphql/resolvers/worksheet/putaway-worksheet.ts +7 -3
- package/server/graphql/resolvers/worksheet/return-worksheet.ts +7 -3
- package/server/graphql/resolvers/worksheet/sorting-worksheet.ts +5 -2
- package/server/graphql/resolvers/worksheet/unloading/index.ts +3 -5
- package/server/graphql/resolvers/worksheet/unloading/undo-unloading.ts +9 -6
- package/server/graphql/resolvers/worksheet/unloading-worksheet.ts +7 -3
- package/server/graphql/resolvers/worksheet/worksheet.ts +29 -1
- package/server/graphql/types/worksheet/index.ts +8 -9
- package/server/graphql/types/worksheet/worksheet-info.ts +1 -0
- package/dist-server/graphql/resolvers/worksheet/unloading/undo-product-scan-unload.js +0 -15
- package/dist-server/graphql/resolvers/worksheet/unloading/undo-product-scan-unload.js.map +0 -1
- package/server/graphql/resolvers/worksheet/unloading/undo-product-scan-unload.ts +0 -23
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { EntityManager, getRepository } from 'typeorm'
|
|
2
2
|
|
|
3
3
|
import { User } from '@things-factory/auth-base'
|
|
4
|
+
import { ReleaseGood, OrderInventory } from '@things-factory/sales-base'
|
|
4
5
|
import { Setting } from '@things-factory/setting-base'
|
|
5
6
|
import { Domain } from '@things-factory/shell'
|
|
6
7
|
|
|
@@ -10,69 +11,79 @@ import { pickingWorksheet } from '../picking-worksheet'
|
|
|
10
11
|
import { activatePicking } from './activate-picking'
|
|
11
12
|
|
|
12
13
|
export const fetchAndAssignPickingTaskResolver = {
|
|
13
|
-
async fetchAndAssignPickingTask(_: any, {}, context: any) {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
async fetchAndAssignPickingTask(_: any, { }, context: any) {
|
|
15
|
+
try {
|
|
16
|
+
const { tx, domain, user }: { tx: EntityManager; domain: Domain; user: User } = context.state
|
|
17
|
+
const assignee: User = await tx.getRepository(User).findOne(user.id, { relations: ['domains'] })
|
|
18
|
+
if ((assignee?.domains || []).every((userDomain: Domain) => userDomain.id !== domain.id))
|
|
19
|
+
throw new Error('Target user is not belong to current domain')
|
|
18
20
|
|
|
19
|
-
|
|
21
|
+
if (!assignee) throw new Error('failed to find target user')
|
|
20
22
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}
|
|
41
|
-
})
|
|
23
|
+
let worksheet: any
|
|
24
|
+
let worksheetQb = await tx.getRepository(Worksheet).createQueryBuilder('ws')
|
|
25
|
+
.select('ws.id')
|
|
26
|
+
.addSelect('ws.name')
|
|
27
|
+
.addSelect('ws.status')
|
|
28
|
+
.addSelect('ws.release_good_id')
|
|
29
|
+
.where('(ws.domain_id = :domain_id AND ws.type = :type AND ws.assignee_id =:assignee AND (ws.status = :status1 OR ws.status = :status2))', { domain_id: domain.id, type: WORKSHEET_TYPE.PICKING, assignee: assignee.id, status1: WORKSHEET_STATUS.EXECUTING, status2: WORKSHEET_STATUS.DEACTIVATED })
|
|
30
|
+
.andWhere(qb => {
|
|
31
|
+
const subQuery = qb
|
|
32
|
+
.subQuery()
|
|
33
|
+
.select('COUNT(*) AS totalPS')
|
|
34
|
+
.from(OrderInventory, 'OrderInventory')
|
|
35
|
+
.where('OrderInventory.release_good_id = ws.release_good_id')
|
|
36
|
+
.andWhere(`OrderInventory.status = 'PENDING_SPLIT'`)
|
|
37
|
+
.groupBy('OrderInventory.release_good_id')
|
|
38
|
+
.having('COUNT(*) > 0')
|
|
39
|
+
.getQuery()
|
|
40
|
+
return 'NOT EXISTS ' + subQuery
|
|
41
|
+
})
|
|
42
42
|
|
|
43
|
-
|
|
44
|
-
worksheet = await tx.getRepository(Worksheet).findOne({
|
|
45
|
-
relations: ['releaseGood'],
|
|
46
|
-
where: [
|
|
47
|
-
{
|
|
48
|
-
domain,
|
|
49
|
-
type: WORKSHEET_TYPE.PICKING,
|
|
50
|
-
status: WORKSHEET_STATUS.EXECUTING,
|
|
51
|
-
assignee: null
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
domain,
|
|
55
|
-
type: WORKSHEET_TYPE.PICKING,
|
|
56
|
-
status: WORKSHEET_STATUS.DEACTIVATED,
|
|
57
|
-
assignee: null
|
|
58
|
-
}
|
|
59
|
-
]
|
|
60
|
-
})
|
|
43
|
+
worksheet = await worksheetQb.getRawOne();
|
|
61
44
|
|
|
62
|
-
|
|
63
|
-
|
|
45
|
+
if (!worksheet) {
|
|
46
|
+
let worksheetQb = await tx.getRepository(Worksheet).createQueryBuilder('ws')
|
|
47
|
+
.select('ws.id')
|
|
48
|
+
.addSelect('ws.name')
|
|
49
|
+
.addSelect('ws.status')
|
|
50
|
+
.addSelect('ws.release_good_id')
|
|
51
|
+
.where('(ws.domain_id = :domain_id AND ws.type = :type AND ws.assignee_id IS NULL AND (ws.status = :status1 OR ws.status = :status2))', { domain_id: domain.id, type: WORKSHEET_TYPE.PICKING, status1: WORKSHEET_STATUS.EXECUTING, status2: WORKSHEET_STATUS.DEACTIVATED })
|
|
52
|
+
.andWhere(qb => {
|
|
53
|
+
const subQuery = qb
|
|
54
|
+
.subQuery()
|
|
55
|
+
.select('COUNT(*) AS totalPS')
|
|
56
|
+
.from(OrderInventory, 'OrderInventory')
|
|
57
|
+
.where('OrderInventory.release_good_id = ws.release_good_id')
|
|
58
|
+
.andWhere(`OrderInventory.status = 'PENDING_SPLIT'`)
|
|
59
|
+
.groupBy('OrderInventory.release_good_id')
|
|
60
|
+
.having('COUNT(*) > 0')
|
|
61
|
+
.getQuery()
|
|
62
|
+
return 'NOT EXISTS ' + subQuery
|
|
63
|
+
})
|
|
64
|
+
|
|
65
|
+
worksheet = await worksheetQb.getRawOne();
|
|
66
|
+
|
|
67
|
+
if (!worksheet) throw new Error('no suitable worksheet found')
|
|
68
|
+
await getRepository(Worksheet).update({ id: worksheet.id }, { assignee: assignee })
|
|
69
|
+
}
|
|
64
70
|
|
|
65
|
-
|
|
71
|
+
if (worksheet.ws_status == WORKSHEET_STATUS.DEACTIVATED) await activatePicking(tx, domain, user, worksheet.ws_name)
|
|
66
72
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
73
|
+
const locationSortingRules: Setting = await tx.getRepository(Setting).findOne({
|
|
74
|
+
where: { domain, name: 'rule-for-picking-product' }
|
|
75
|
+
})
|
|
70
76
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
77
|
+
const sortingRule = JSON.parse(locationSortingRules.value)
|
|
78
|
+
const locationSortingRule = Object.keys(sortingRule).map(field => {
|
|
79
|
+
return { name: field, desc: sortingRule[field] === 'DESC' }
|
|
80
|
+
})
|
|
75
81
|
|
|
76
|
-
|
|
82
|
+
const releaseGood: ReleaseGood = await tx.getRepository(ReleaseGood).findOne(worksheet.release_good_id)
|
|
83
|
+
|
|
84
|
+
return await pickingWorksheet(domain, releaseGood.name, locationSortingRule, tx)
|
|
85
|
+
} catch (error) {
|
|
86
|
+
throw error
|
|
87
|
+
}
|
|
77
88
|
}
|
|
78
89
|
}
|
|
@@ -90,6 +90,7 @@ export async function pickingWorksheet(
|
|
|
90
90
|
startedAt: worksheet.startedAt,
|
|
91
91
|
refNo: releaseGood.refNo,
|
|
92
92
|
refNo2: releaseGood.refNo2,
|
|
93
|
+
refNo3: releaseGood.refNo3,
|
|
93
94
|
releaseGood
|
|
94
95
|
},
|
|
95
96
|
worksheetDetailInfos: worksheetDetails.map(async (pickingWSD: WorksheetDetail) => {
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import { Domain } from '@things-factory/shell'
|
|
2
1
|
import { getRepository } from 'typeorm'
|
|
2
|
+
|
|
3
3
|
import { Bizplace } from '@things-factory/biz-base'
|
|
4
|
-
import {
|
|
4
|
+
import { OrderInventory, ReturnOrder } from '@things-factory/sales-base'
|
|
5
|
+
import { Domain } from '@things-factory/shell'
|
|
5
6
|
import { Inventory } from '@things-factory/warehouse-base'
|
|
6
|
-
|
|
7
|
+
|
|
7
8
|
import { WORKSHEET_TYPE } from '../../../constants'
|
|
8
9
|
import { Worksheet, WorksheetDetail } from '../../../entities'
|
|
10
|
+
import { fetchExecutingWorksheet } from '../../../utils'
|
|
9
11
|
|
|
10
12
|
export const putawayReturningWorksheetResolver = {
|
|
11
13
|
async putawayReturningWorksheet(_: any, { returnOrderNo }, context: any) {
|
|
@@ -50,6 +52,8 @@ export const putawayReturningWorksheetResolver = {
|
|
|
50
52
|
partnerDomainId: customerBizplace?.domain.id,
|
|
51
53
|
customerCompanyDomainId: customerCompanyDomain.id,
|
|
52
54
|
refNo: returnOrder.refNo,
|
|
55
|
+
refNo2: returnOrder.refNo2,
|
|
56
|
+
refNo3: returnOrder.refNo3,
|
|
53
57
|
startedAt: worksheet.startedAt
|
|
54
58
|
},
|
|
55
59
|
worksheetDetailInfos: worksheet.worksheetDetails.map(async (putawayWSD: WorksheetDetail) => {
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getRepository } from 'typeorm'
|
|
2
|
+
|
|
2
3
|
import { Bizplace } from '@things-factory/biz-base'
|
|
4
|
+
import { ArrivalNotice, OrderInventory } from '@things-factory/sales-base'
|
|
3
5
|
import { Domain } from '@things-factory/shell'
|
|
4
|
-
import { getRepository } from 'typeorm'
|
|
5
|
-
import { fetchExecutingWorksheet } from '../../../utils'
|
|
6
6
|
import { Inventory } from '@things-factory/warehouse-base'
|
|
7
|
+
|
|
7
8
|
import { WORKSHEET_TYPE } from '../../../constants'
|
|
8
9
|
import { Worksheet, WorksheetDetail } from '../../../entities'
|
|
10
|
+
import { fetchExecutingWorksheet } from '../../../utils'
|
|
9
11
|
|
|
10
12
|
export const putawayWorksheetResolver = {
|
|
11
13
|
async putawayWorksheet(_: any, { arrivalNoticeNo }, context: any) {
|
|
@@ -49,6 +51,8 @@ export const putawayWorksheetResolver = {
|
|
|
49
51
|
partnerDomainId: customerBizplace?.domain.id,
|
|
50
52
|
customerCompanyDomainId: customerCompanyDomain.id,
|
|
51
53
|
refNo: arrivalNotice.refNo,
|
|
54
|
+
refNo2: arrivalNotice.refNo2,
|
|
55
|
+
refNo3: arrivalNotice.refNo3,
|
|
52
56
|
startedAt: worksheet.startedAt
|
|
53
57
|
},
|
|
54
58
|
worksheetDetailInfos: worksheet.worksheetDetails.map(async (putawayWSD: WorksheetDetail) => {
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import { Domain } from '@things-factory/shell'
|
|
2
1
|
import { getRepository } from 'typeorm'
|
|
3
|
-
|
|
4
|
-
import { Inventory } from '@things-factory/warehouse-base'
|
|
2
|
+
|
|
5
3
|
import { OrderInventory, ReleaseGood } from '@things-factory/sales-base'
|
|
4
|
+
import { Domain } from '@things-factory/shell'
|
|
5
|
+
import { Inventory } from '@things-factory/warehouse-base'
|
|
6
|
+
|
|
6
7
|
import { WORKSHEET_TYPE } from '../../../constants'
|
|
7
8
|
import { Worksheet, WorksheetDetail } from '../../../entities'
|
|
9
|
+
import { fetchExecutingWorksheet } from '../../../utils'
|
|
8
10
|
|
|
9
11
|
export const returnWorksheetResolver = {
|
|
10
12
|
async returnWorksheet(_: any, { releaseGoodNo }, context: any) {
|
|
@@ -41,6 +43,8 @@ export const returnWorksheetResolver = {
|
|
|
41
43
|
partnerDomainId: worksheet?.bizplace.domain.id,
|
|
42
44
|
customerCompanyDomainId: customerCompanyDomain.id,
|
|
43
45
|
refNo: releaseGood.refNo,
|
|
46
|
+
refNo2: releaseGood.refNo2,
|
|
47
|
+
refNo3: releaseGood.refNo3,
|
|
44
48
|
startedAt: worksheet.startedAt
|
|
45
49
|
},
|
|
46
50
|
worksheetDetailInfos: worksheet.worksheetDetails.map((returnWSD: WorksheetDetail) => {
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { OrderInventory, ORDER_STATUS, ORDER_INVENTORY_STATUS, ReleaseGood } from '@things-factory/sales-base'
|
|
2
|
-
import { Domain } from '@things-factory/shell'
|
|
3
1
|
import { getRepository, SelectQueryBuilder } from 'typeorm'
|
|
2
|
+
|
|
3
|
+
import { ORDER_INVENTORY_STATUS, ORDER_STATUS, OrderInventory, ReleaseGood } from '@things-factory/sales-base'
|
|
4
|
+
import { Domain } from '@things-factory/shell'
|
|
5
|
+
|
|
4
6
|
import { WORKSHEET_TYPE } from '../../../constants'
|
|
5
7
|
import { fetchExecutingBatchWorksheet } from '../../../utils'
|
|
6
8
|
|
|
@@ -55,6 +57,7 @@ export const sortingWorksheetResolver = {
|
|
|
55
57
|
startedAt: worksheet.startedAt,
|
|
56
58
|
refNo: releaseGood.refNo,
|
|
57
59
|
refNo2: releaseGood.refNo2,
|
|
60
|
+
refNo3: releaseGood.refNo3,
|
|
58
61
|
releaseGood
|
|
59
62
|
},
|
|
60
63
|
worksheetDetailInfos: items.map((item: any) => {
|
|
@@ -1,18 +1,16 @@
|
|
|
1
1
|
import { activateUnloadingResolver } from './activate-unloading'
|
|
2
|
-
import { unloadResolver } from './unload'
|
|
3
|
-
import { scanProductUnloadResolver } from './scan-product-unload'
|
|
4
|
-
import { undoUnloadingResolver } from './undo-unloading'
|
|
5
|
-
import { undoProductScanUnloadResolver } from './undo-product-scan-unload'
|
|
6
2
|
import { completeProductScanUnloadResolver } from './complete-product-scan-unload'
|
|
7
3
|
import { completeUnloadingResolver } from './complete-unloading'
|
|
8
4
|
import { completeUnloadingPartiallyResolver } from './complete-unloading-partially'
|
|
5
|
+
import { scanProductUnloadResolver } from './scan-product-unload'
|
|
6
|
+
import { undoUnloadingResolver } from './undo-unloading'
|
|
7
|
+
import { unloadResolver } from './unload'
|
|
9
8
|
|
|
10
9
|
export const Mutations = {
|
|
11
10
|
...activateUnloadingResolver,
|
|
12
11
|
...scanProductUnloadResolver,
|
|
13
12
|
...unloadResolver,
|
|
14
13
|
...undoUnloadingResolver,
|
|
15
|
-
...undoProductScanUnloadResolver,
|
|
16
14
|
...completeProductScanUnloadResolver,
|
|
17
15
|
...completeUnloadingResolver,
|
|
18
16
|
...completeUnloadingPartiallyResolver
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
+
import { EntityManager } from 'typeorm'
|
|
2
|
+
|
|
1
3
|
import { User } from '@things-factory/auth-base'
|
|
2
4
|
import { Domain } from '@things-factory/shell'
|
|
3
|
-
|
|
5
|
+
|
|
4
6
|
import { UnloadingWorksheetController } from '../../../../controllers'
|
|
5
7
|
|
|
6
8
|
export const undoUnloadingResolver = {
|
|
7
|
-
async undoUnloading(_: any, {
|
|
9
|
+
async undoUnloading(_: any, { orderType, orderNo, inventoryIds }, context: any) {
|
|
8
10
|
const { tx, domain, user }: { tx: EntityManager; domain: Domain; user: User } = context.state
|
|
9
|
-
await undoUnloading(tx, domain, user,
|
|
11
|
+
await undoUnloading(tx, domain, user, orderType, orderNo, inventoryIds)
|
|
10
12
|
}
|
|
11
13
|
}
|
|
12
14
|
|
|
@@ -14,9 +16,10 @@ async function undoUnloading(
|
|
|
14
16
|
tx: EntityManager,
|
|
15
17
|
domain: Domain,
|
|
16
18
|
user: User,
|
|
17
|
-
|
|
18
|
-
|
|
19
|
+
orderType: string,
|
|
20
|
+
orderNo: string,
|
|
21
|
+
inventoryIds: [string]
|
|
19
22
|
): Promise<void> {
|
|
20
23
|
const worksheetController: UnloadingWorksheetController = new UnloadingWorksheetController(tx, domain, user)
|
|
21
|
-
await worksheetController.undoUnload(
|
|
24
|
+
await worksheetController.undoUnload(orderType, orderNo, inventoryIds)
|
|
22
25
|
}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getRepository } from 'typeorm'
|
|
2
|
+
|
|
2
3
|
import { Bizplace } from '@things-factory/biz-base'
|
|
4
|
+
import { ArrivalNotice, OrderProduct } from '@things-factory/sales-base'
|
|
3
5
|
import { Domain } from '@things-factory/shell'
|
|
4
|
-
|
|
5
|
-
import { fetchExecutingWorksheet } from '../../../utils'
|
|
6
|
+
|
|
6
7
|
import { WORKSHEET_TYPE } from '../../../constants'
|
|
7
8
|
import { Worksheet, WorksheetDetail } from '../../../entities'
|
|
9
|
+
import { fetchExecutingWorksheet } from '../../../utils'
|
|
8
10
|
|
|
9
11
|
export const unloadingWorksheetResolver = {
|
|
10
12
|
async unloadingWorksheet(_: any, { arrivalNoticeNo }, context: any) {
|
|
@@ -64,6 +66,8 @@ export const unloadingWorksheetResolver = {
|
|
|
64
66
|
bufferLocation: worksheet.bufferLocation.name,
|
|
65
67
|
startedAt: worksheet.startedAt,
|
|
66
68
|
refNo: arrivalNotice.refNo,
|
|
69
|
+
refNo2: arrivalNotice?.refNo2,
|
|
70
|
+
refNo3: arrivalNotice?.refNo3,
|
|
67
71
|
looseItem: arrivalNotice.looseItem,
|
|
68
72
|
orderVas: vasWorksheet ? vasWorksheet.worksheetDetails : null
|
|
69
73
|
},
|
|
@@ -18,7 +18,8 @@ interface WorksheetInterface extends Worksheet {
|
|
|
18
18
|
export const worksheetResolver = {
|
|
19
19
|
async worksheet(_: any, { name }, context: any) {
|
|
20
20
|
const { domain }: { domain: Domain } = context.state
|
|
21
|
-
|
|
21
|
+
let worksheet: WorksheetInterface
|
|
22
|
+
worksheet = (await getRepository(Worksheet).findOne({
|
|
22
23
|
where: {
|
|
23
24
|
domain,
|
|
24
25
|
name
|
|
@@ -60,6 +61,33 @@ export const worksheetResolver = {
|
|
|
60
61
|
]
|
|
61
62
|
})) as WorksheetInterface
|
|
62
63
|
|
|
64
|
+
if (!worksheet) {
|
|
65
|
+
worksheet = (await getRepository(Worksheet).findOne({
|
|
66
|
+
where: {
|
|
67
|
+
domain,
|
|
68
|
+
arrivalNotice: name
|
|
69
|
+
},
|
|
70
|
+
relations: [
|
|
71
|
+
'domain',
|
|
72
|
+
'bizplace',
|
|
73
|
+
'bizplace.domain',
|
|
74
|
+
'worksheetDetails',
|
|
75
|
+
'worksheetDetails.targetProduct',
|
|
76
|
+
'worksheetDetails.targetProduct.product',
|
|
77
|
+
'worksheetDetails.targetInventory',
|
|
78
|
+
'worksheetDetails.targetInventory.releaseGood',
|
|
79
|
+
'worksheetDetails.targetInventory.product',
|
|
80
|
+
'worksheetDetails.targetInventory.inventory',
|
|
81
|
+
'worksheetDetails.targetInventory.inventory.product',
|
|
82
|
+
'worksheetDetails.targetInventory.inventory.warehouse',
|
|
83
|
+
'worksheetDetails.targetInventory.inventory.location',
|
|
84
|
+
'worksheetDetails.targetInventory.inspectedLocation',
|
|
85
|
+
'creator',
|
|
86
|
+
'updater'
|
|
87
|
+
]
|
|
88
|
+
})) as WorksheetInterface
|
|
89
|
+
}
|
|
90
|
+
|
|
63
91
|
let pWorksheetPickingItemSorting = getRepository(Setting).findOne({
|
|
64
92
|
where: { domain, category: 'location', name: 'rule-for-worksheet-release-goods-item' }
|
|
65
93
|
})
|
|
@@ -61,6 +61,10 @@ export const Mutation = /* GraphQL */ `
|
|
|
61
61
|
releaseGoodNo: String!
|
|
62
62
|
): ReleaseGoodWorksheet @privilege(category: "worksheet_control", privilege: "mutation") @transaction
|
|
63
63
|
|
|
64
|
+
generateMultipleReleaseGoodWorksheet (
|
|
65
|
+
releaseGoodNos: [String!]
|
|
66
|
+
): Boolean @privilege(category: "worksheet_control", privilege: "mutation") @transaction
|
|
67
|
+
|
|
64
68
|
fetchSellercraftAirwayBill (
|
|
65
69
|
releaseGoodNo: String!
|
|
66
70
|
): AirwayBill @privilege(category: "worksheet_control", privilege: "mutation") @transaction
|
|
@@ -186,14 +190,9 @@ export const Mutation = /* GraphQL */ `
|
|
|
186
190
|
): Boolean @transaction
|
|
187
191
|
|
|
188
192
|
undoUnloading (
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
undoProductScanUnload (
|
|
194
|
-
worksheetDetailName: String!
|
|
195
|
-
palletId: String
|
|
196
|
-
cartonId: String
|
|
193
|
+
orderType: String!
|
|
194
|
+
orderNo: String!
|
|
195
|
+
inventoryIds: [String]!
|
|
197
196
|
): Boolean @privilege(category: "worksheet_execute", privilege: "mutation") @transaction
|
|
198
197
|
|
|
199
198
|
completeUnloadingPartially (
|
|
@@ -668,7 +667,7 @@ export const Query = /* GraphQL */ `
|
|
|
668
667
|
findReleaseOrdersByTaskNo(taskNo: String!): [ReleaseGood] @privilege(category: "worksheet", privilege: "query") @transaction
|
|
669
668
|
`
|
|
670
669
|
|
|
671
|
-
export const Types = /* GraphQL */[
|
|
670
|
+
export const Types = /* GraphQL */ [
|
|
672
671
|
Worksheet,
|
|
673
672
|
AirwayBill,
|
|
674
673
|
NewWorksheet,
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.undoProductScanUnloadResolver = void 0;
|
|
4
|
-
const controllers_1 = require("../../../../controllers");
|
|
5
|
-
exports.undoProductScanUnloadResolver = {
|
|
6
|
-
async undoProductScanUnload(_, { worksheetDetailName, palletId, cartonId }, context) {
|
|
7
|
-
const { tx, domain, user } = context.state;
|
|
8
|
-
await undoProductScanUnload(tx, domain, user, worksheetDetailName, palletId, cartonId);
|
|
9
|
-
}
|
|
10
|
-
};
|
|
11
|
-
async function undoProductScanUnload(tx, domain, user, worksheetDetailName, palletId, cartonId) {
|
|
12
|
-
const worksheetController = new controllers_1.UnloadingWorksheetController(tx, domain, user);
|
|
13
|
-
await worksheetController.undoProductScanUnload(worksheetDetailName, palletId, cartonId);
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=undo-product-scan-unload.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"undo-product-scan-unload.js","sourceRoot":"","sources":["../../../../../server/graphql/resolvers/worksheet/unloading/undo-product-scan-unload.ts"],"names":[],"mappings":";;;AAGA,yDAAsE;AAEzD,QAAA,6BAA6B,GAAG;IAC3C,KAAK,CAAC,qBAAqB,CAAC,CAAM,EAAE,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,OAAY;QAC3F,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,GAAsD,OAAO,CAAC,KAAK,CAAA;QAC7F,MAAM,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;IACxF,CAAC;CACF,CAAA;AAED,KAAK,UAAU,qBAAqB,CAClC,EAAiB,EACjB,MAAc,EACd,IAAU,EACV,mBAA2B,EAC3B,QAAgB,EAChB,QAAgB;IAEhB,MAAM,mBAAmB,GAAiC,IAAI,0CAA4B,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,CAAA;IAC5G,MAAM,mBAAmB,CAAC,qBAAqB,CAAC,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAA;AAC1F,CAAC"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { User } from '@things-factory/auth-base'
|
|
2
|
-
import { Domain } from '@things-factory/shell'
|
|
3
|
-
import { EntityManager } from 'typeorm'
|
|
4
|
-
import { UnloadingWorksheetController } from '../../../../controllers'
|
|
5
|
-
|
|
6
|
-
export const undoProductScanUnloadResolver = {
|
|
7
|
-
async undoProductScanUnload(_: any, { worksheetDetailName, palletId, cartonId }, context: any) {
|
|
8
|
-
const { tx, domain, user }: { tx: EntityManager; domain: Domain; user: User } = context.state
|
|
9
|
-
await undoProductScanUnload(tx, domain, user, worksheetDetailName, palletId, cartonId)
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
async function undoProductScanUnload(
|
|
14
|
-
tx: EntityManager,
|
|
15
|
-
domain: Domain,
|
|
16
|
-
user: User,
|
|
17
|
-
worksheetDetailName: string,
|
|
18
|
-
palletId: string,
|
|
19
|
-
cartonId: string
|
|
20
|
-
): Promise<void> {
|
|
21
|
-
const worksheetController: UnloadingWorksheetController = new UnloadingWorksheetController(tx, domain, user)
|
|
22
|
-
await worksheetController.undoProductScanUnload(worksheetDetailName, palletId, cartonId)
|
|
23
|
-
}
|