CANCERYS\kw093 před 2 měsíci
rodič
revize
3e56572d05
8 změnil soubory, kde provedl 34 přidání a 27 odebrání
  1. +4
    -1
      src/app/api/jo/actions.ts
  2. +1
    -0
      src/app/api/pickOrder/actions.ts
  3. +6
    -3
      src/components/FinishedGoodSearch/GoodPickExecution.tsx
  4. +5
    -1
      src/components/FinishedGoodSearch/GoodPickExecutiondetail.tsx
  5. +5
    -1
      src/components/Jodetail/JobPickExecution.tsx
  6. +5
    -2
      src/components/Jodetail/JobPickExecutionsecondscan.tsx
  7. +7
    -4
      src/components/Jodetail/JobmatchForm.tsx
  8. +1
    -15
      src/components/PickOrderSearch/PickExecution.tsx

+ 4
- 1
src/app/api/jo/actions.ts Zobrazit soubor

@@ -128,11 +128,14 @@ export const recordSecondScanIssue = cache(async (
pickOrderId: number,
itemId: number,
data: {
qty: number;
qty: number; // verified qty (actual pick qty)
missQty?: number; // ✅ 添加:miss qty
badItemQty?: number; // ✅ 添加:bad item qty
isMissing: boolean;
isBad: boolean;
reason: string;
createdBy: number;
type?: string; // ✅ type 也应该是可选的
}
) => {


+ 1
- 0
src/app/api/pickOrder/actions.ts Zobrazit soubor

@@ -183,6 +183,7 @@ export const recordFailLot = async (data: PickAnotherLotFormData) => {
return result;
};
export interface PickExecutionIssueData {
type: string;
pickOrderId: number;
pickOrderCode: string;
pickOrderCreateDate: string;


+ 6
- 3
src/components/FinishedGoodSearch/GoodPickExecution.tsx Zobrazit soubor

@@ -833,9 +833,12 @@ const PickExecution: React.FC<Props> = ({ filterArgs, onFgPickOrdersChange }) =>

const handlePickExecutionFormSubmit = useCallback(async (data: any) => {
try {
console.log("Pick execution form submitted:", data);
const result = await recordPickExecutionIssue(data);
console.log("Pick execution form submitted:", data);
const issueData = {
...data,
type: "Do", // Delivery Order Record 类型
};
const result = await recordPickExecutionIssue(issueData);
console.log("Pick execution issue recorded:", result);
if (result && result.code === "SUCCESS") {


+ 5
- 1
src/components/FinishedGoodSearch/GoodPickExecutiondetail.tsx Zobrazit soubor

@@ -1151,8 +1151,12 @@ useEffect(() => {
const handlePickExecutionFormSubmit = useCallback(async (data: any) => {
try {
console.log("Pick execution form submitted:", data);
const issueData = {
...data,
type: "Do", // Delivery Order Record 类型
};
const result = await recordPickExecutionIssue(data);
const result = await recordPickExecutionIssue(issueData);
console.log("Pick execution issue recorded:", result);
if (result && result.code === "SUCCESS") {


+ 5
- 1
src/components/Jodetail/JobPickExecution.tsx Zobrazit soubor

@@ -1353,8 +1353,12 @@ const JobPickExecution: React.FC<Props> = ({ filterArgs }) => {
const handlePickExecutionFormSubmit = useCallback(async (data: any) => {
try {
console.log("Pick execution form submitted:", data);
const issueData = {
...data,
type: "Jo", // Delivery Order Record 类型
};
const result = await recordPickExecutionIssue(data);
const result = await recordPickExecutionIssue(issueData);
console.log("Pick execution issue recorded:", result);
if (result && result.code === "SUCCESS") {


+ 5
- 2
src/components/Jodetail/JobPickExecutionsecondscan.tsx Zobrazit soubor

@@ -903,11 +903,14 @@ const JobPickExecution: React.FC<Props> = ({ filterArgs }) => {
selectedLotForExecutionForm.pickOrderId,
selectedLotForExecutionForm.itemId,
{
qty: data.actualPickQty,
qty: data.actualPickQty, // verified qty
missQty: data.missQty || 0, // ✅ 添加:实际的 miss qty
badItemQty: data.badItemQty || 0, // ✅ 添加:实际的 bad item qty
isMissing: data.missQty > 0,
isBad: data.badItemQty > 0,
reason: data.issueRemark || '',
createdBy: currentUserId
createdBy: currentUserId,
type: "match"
}
);
console.log("Pick execution issue recorded:", result);


+ 7
- 4
src/components/Jodetail/JobmatchForm.tsx Zobrazit soubor

@@ -125,7 +125,7 @@ const PickExecutionForm: React.FC<PickExecutionFormProps> = ({
return new Date().toISOString().split('T')[0];
}
};
// ✅ Initialize verified quantity to the received quantity (actualPickQty)
const initialVerifiedQty = selectedLot.actualPickQty || 0;
setVerifiedQty(initialVerifiedQty);
@@ -148,15 +148,16 @@ const PickExecutionForm: React.FC<PickExecutionFormProps> = ({
lotNo: selectedLot.lotNo,
storeLocation: selectedLot.location,
requiredQty: selectedLot.requiredQty,
actualPickQty: initialVerifiedQty, // ✅ Use the initial value
actualPickQty: initialVerifiedQty,
missQty: 0,
badItemQty: 0,
issueRemark: '',
// pickerName: '',
handledBy: undefined,
});
}
}, [open, selectedLot, selectedPickOrderLine, pickOrderId, pickOrderCreateDate]);
// ✅ 修复:只在 open 状态改变时重新初始化,移除其他依赖
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [open]);

const handleInputChange = useCallback((field: keyof PickExecutionIssueData, value: any) => {
setFormData(prev => ({ ...prev, [field]: value }));
@@ -220,6 +221,8 @@ const PickExecutionForm: React.FC<PickExecutionFormProps> = ({
const submissionData = {
...formData,
actualPickQty: verifiedQty,
missQty: formData.missQty || 0,
badItemQty: formData.badItemQty || 0,
lotId: formData.lotId || selectedLot?.lotId || 0,
lotNo: formData.lotNo || selectedLot?.lotNo || '',
pickOrderCode: formData.pickOrderCode || selectedPickOrderLine?.pickOrderCode || '',


+ 1
- 15
src/components/PickOrderSearch/PickExecution.tsx Zobrazit soubor

@@ -67,7 +67,6 @@ import SearchResults, { Column } from "../SearchResults/SearchResults";
import { defaultPagingController } from "../SearchResults/SearchResults";
import SearchBox, { Criterion } from "../SearchBox";
import dayjs from "dayjs";
import { dummyQCData } from "../PoDetail/dummyQcTemplate";
import { CreateStockOutLine } from "@/app/api/pickOrder/actions";
import LotTable from './LotTable';
import PickOrderDetailsTable from './PickOrderDetailsTable'; // ✅ Import the new component
@@ -515,20 +514,7 @@ const PickExecution: React.FC<Props> = ({ filterArgs }) => {
setSelectedLotForQc(selectedLot);
const transformedDummyData = dummyQCData.map(item => ({
id: item.id,
code: item.code,
name: item.name,
itemId: line.itemId,
lowerLimit: undefined,
upperLimit: undefined,
description: item.description,
qcPassed: undefined,
failQty: undefined,
remarks: undefined
}));
setQcItems(transformedDummyData as QcItemWithChecks[]);

let qcResult: any[] = [];
try {


Načítá se…
Zrušit
Uložit