소스 검색

update

master
CANCERYS\kw093 2 달 전
부모
커밋
0479cb92ad
2개의 변경된 파일49개의 추가작업 그리고 18개의 파일을 삭제
  1. +30
    -14
      src/app/api/pickOrder/actions.ts
  2. +19
    -4
      src/components/FinishedGoodSearch/FinishedGoodSearch.tsx

+ 30
- 14
src/app/api/pickOrder/actions.ts 파일 보기

@@ -201,20 +201,15 @@ export interface PickExecutionIssueData {
pickerName: string;
handledBy?: number;
}
export interface AutoAssignReleaseResponse {
export type AutoAssignReleaseResponse = {
id: number | null;
name: string;
code: string;
type?: string;
message: string | null;
errorPosition: string;
entity?: {
consoCode?: string;
pickOrderIds?: number[];
hasActiveOrders: boolean;
};
}

name?: string | null;
code?: string | null;
type?: string | null;
message?: string | null;
errorPosition?: string | null;
entity?: any;
};
export interface PickOrderCompletionResponse {
id: number | null;
name: string;
@@ -266,6 +261,11 @@ export interface FGPickOrderResponse {
truckNo: string;
qrCodeData: number;
}
export interface AutoAssignReleaseByStoreRequest {
userId: number;
storeId: string; // "2/F" | "4/F"
}

export const fetchFGPickOrders = async (pickOrderId: number) => {
const response = await serverFetchJson<FGPickOrderResponse>(
`${BASE_API_URL}/pickOrder/fg-pick-orders/${pickOrderId}`,
@@ -298,7 +298,23 @@ export const autoAssignAndReleasePickOrder = async (userId: number): Promise<Aut
revalidateTag("pickorder");
return response;
};

export const autoAssignAndReleasePickOrderByStore = async (
userId: number,
storeId: string
): Promise<AutoAssignReleaseResponse> => {
const payload: AutoAssignReleaseByStoreRequest = { userId, storeId };
const response = await serverFetchJson<AutoAssignReleaseResponse>(
`${BASE_API_URL}/pickOrder/auto-assign-release-by-store`,
{
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(payload),
next: { tags: ["pickorder"] },
}
);
revalidateTag("pickorder");
return response;
};
export const checkPickOrderCompletion = async (userId: number): Promise<PickOrderCompletionResponse> => {
const response = await serverFetchJson<PickOrderCompletionResponse>(
`${BASE_API_URL}/pickOrder/check-pick-completion/${userId}`,


+ 19
- 4
src/components/FinishedGoodSearch/FinishedGoodSearch.tsx 파일 보기

@@ -24,7 +24,7 @@ import NewCreateItem from "./newcreatitem";
import AssignAndRelease from "./AssignAndRelease";
import AssignTo from "./assignTo";
import { fetchAllItemsInClient, ItemCombo } from "@/app/api/settings/item/actions";
import { fetchPickOrderClient, autoAssignAndReleasePickOrder } from "@/app/api/pickOrder/actions";
import { fetchPickOrderClient, autoAssignAndReleasePickOrder, autoAssignAndReleasePickOrderByStore } from "@/app/api/pickOrder/actions";
import Jobcreatitem from "./Jobcreatitem";
import { useSession } from "next-auth/react";
import { SessionWithTokens } from "@/config/authConfig";
@@ -52,7 +52,15 @@ const PickOrderSearch: React.FC<Props> = ({ pickOrders }) => {
const [tabIndex, setTabIndex] = useState(0);
const [totalCount, setTotalCount] = useState<number>();
const [isAssigning, setIsAssigning] = useState(false);

const handleAssignByStore = async (storeId: "2/F" | "4/F") => {
if (!currentUserId) {
console.error("Missing user id in session");
return;
}
const res = await autoAssignAndReleasePickOrderByStore(currentUserId, storeId);
console.log("Assign by store result:", res);
// Optionally show toast/refresh list here
};
// ✅ Manual assignment handler - uses the action function
const handleManualAssign = useCallback(async () => {
if (!currentUserId || isAssigning) return;
@@ -286,10 +294,17 @@ const PickOrderSearch: React.FC<Props> = ({ pickOrders }) => {
<Grid item xs={4} display="flex" justifyContent="end" alignItems="center">
<Button
variant="contained"
onClick={handleManualAssign}
onClick={() => handleAssignByStore("2/F")}
disabled={isAssigning}
>
{isAssigning ? t("Assigning pick order...") : t("Assign & Release 2/F")}
</Button>
<Button
variant="contained"
onClick={() => handleAssignByStore("4/F")}
disabled={isAssigning}
>
{isAssigning ? t("Assigning pick order...") : t("Assign & Release")}
{isAssigning ? t("Assigning pick order...") : t("Assign & Release 4/F")}
</Button>
</Grid>
</Grid>


불러오는 중...
취소
저장