skyouc
2025-04-18 0cab12d746914719bcd777399909b155e4e03e73
问题修复
13个文件已修改
223 ■■■■ 已修改文件
rsf-admin/src/page/histories/taskLog/TaskLogEdit.jsx 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/histories/waitPakinLog/WaitPakinLogEdit.jsx 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/orders/asnOrder/AsnOrderItemList.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/task/TaskEdit.jsx 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/task/TaskList.jsx 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/waitPakin/WaitPakinCreate.jsx 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/waitPakin/WaitPakinEdit.jsx 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/waitPakin/WaitPakinList.jsx 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/entity/enums/OrderType.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/entity/enums/OrderWorkType.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderController.java 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/AsnExceStatus.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderLogServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/histories/taskLog/TaskLogEdit.jsx
@@ -20,7 +20,8 @@
    const { getValues } = useFormContext();
    return (
        <Toolbar sx={{ justifyContent: 'end' }}>
            <SaveButton />
            <></>
            {/* <SaveButton /> */}
            {/* <DeleteButton mutationMode="optimistic" /> */}
        </Toolbar>
    )
@@ -42,6 +43,17 @@
                    toolbar={<FormToolbar />}
                    mode="onTouched"
                    defaultValues={{}}
                    sx={{
                        "& .MuiFormLabel-root.MuiInputLabel-root.Mui-disabled": {
                            bgcolor: 'white',
                            WebkitTextFillColor: "rgba(0, 0, 0)"
                        },
                        "& .MuiInputBase-input.MuiFilledInput-input.Mui-disabled": {
                            bgcolor: 'white',
                            WebkitTextFillColor: "rgba(0, 0, 0)"
                        }
                    }}
                >
                    <Grid container width={{ xs: '100%', xl: '80%' }} rowSpacing={3} columnSpacing={3}>
                        <Grid item xs={24} md={16}>
rsf-admin/src/page/histories/waitPakinLog/WaitPakinLogEdit.jsx
@@ -35,8 +35,9 @@
    return (
        <Toolbar sx={{ justifyContent: 'end' }}>
            <SaveButton />
            <DeleteButton mutationMode="optimistic" />
            <></>
            {/* <SaveButton />
            <DeleteButton mutationMode="optimistic" /> */}
        </Toolbar>
    )
}
@@ -53,25 +54,24 @@
                aside={<EditBaseAside />}
            >
                <SimpleForm
                    sx={{
                        '& .MuiInputBase-input.MuiFilledInput-input.Mui-disabled': {
                            bgcolor: "white",
                            color: "black",
                            '-webkit-text-fill-color': "rgba(0, 0, 0)"
                        },
                        '& .MuiFormLabel-root.MuiInputLabel-root.Mui-disabled': {
                            color: 'rgba(0, 0, 0, 0.77)'
                        }
                    }}
                    shouldUnregister
                    warnWhenUnsavedChanges
                    toolbar={<FormToolbar />}
                    mode="onTouched"
                    defaultValues={{}}
                // validate={(values) => { }}
                >
                    <Grid container width={{ xs: '100%', xl: '80%' }} rowSpacing={3} columnSpacing={3}>
                        <Grid item xs={24} md={12}>
                        <Grid item xs={24} md={12} sx={{
                            "& .MuiFormLabel-root.MuiInputLabel-root.Mui-disabled": {
                                bgcolor: 'white',
                                WebkitTextFillColor: "rgba(0, 0, 0)"
                            },
                            "& .MuiInputBase-input.MuiFilledInput-input.Mui-disabled": {
                                bgcolor: 'white',
                                WebkitTextFillColor: "rgba(0, 0, 0)"
                            }
                        }}>
                            <Typography variant="h6" gutterBottom>
                                {translate('common.edit.title.main')}
                            </Typography>
@@ -79,25 +79,30 @@
                                <NumberInput
                                    label="table.field.waitPakinLog.pakinId"
                                    source="pakinId"
                                    readOnly
                                    autoFocus
                                />
                                <TextInput
                                    label="table.field.waitPakinLog.code"
                                    source="code"
                                    readOnly
                                    parse={v => v}
                                />
                                <TextInput
                                    label="table.field.waitPakinLog.barcode"
                                    source="barcode"
                                    readOnly
                                    parse={v => v}
                                />
                                <NumberInput
                                    label="table.field.waitPakinLog.anfme"
                                    readOnly
                                    source="anfme"
                                />
                                <SelectInput
                                    label="table.field.waitPakinLog.ioStatus"
                                    source="ioStatus"
                                    readOnly
                                    choices={[
                                        { id: 0, name: '待入库' },
                                        { id: 1, name: ' 入库中' },
rsf-admin/src/page/orders/asnOrder/AsnOrderItemList.jsx
@@ -125,7 +125,7 @@
              <MyCreateButton onClick={() => { setCreateDialog(true) }} />
              <SelectColumnsButton preferenceKey='asnOrderItem' />
              <ImportButton value={'asnOrderItem'} parmas={{ asnId: asnId }} />
              <MyExportButton />
              {/* <MyExportButton /> */}
            </TopToolbar>
          )}
          perPage={DEFAULT_ITEM_PAGE_SIZE}
rsf-admin/src/page/task/TaskEdit.jsx
@@ -20,7 +20,8 @@
    const { getValues } = useFormContext();
    return (
        <Toolbar sx={{ justifyContent: 'end' }}>
            <SaveButton />
            <></>
            {/* <SaveButton /> */}
            {/* <DeleteButton mutationMode="optimistic" /> */}
        </Toolbar>
    )
@@ -42,6 +43,17 @@
                    toolbar={<FormToolbar />}
                    mode="onTouched"
                    defaultValues={{}}
                    sx={{
                        "& .MuiFormLabel-root.MuiInputLabel-root.Mui-disabled": {
                            bgcolor: 'white',
                            WebkitTextFillColor: "rgba(0, 0, 0)"
                        },
                        "& .MuiInputBase-input.MuiFilledInput-input.Mui-disabled": {
                            bgcolor: 'white',
                            WebkitTextFillColor: "rgba(0, 0, 0)"
                        }
                    }}
                >
                    <Grid container width={{ xs: '100%', xl: '80%' }} rowSpacing={3} columnSpacing={3}>
                        <Grid item xs={24} md={16}>
rsf-admin/src/page/task/TaskList.jsx
@@ -122,7 +122,7 @@
                            <BulkDeleteButton mutationMode={OPERATE_MODE} />
                        </>
                    }
                    rowClick={false}
                    rowClick={'edit'}
                    expand={false}
                    expandSingle={true}
                    omit={['id', 'createTime', 'createBy', 'memo', 'robotCode', 'exceStatus', 'expDesc', 'expCode', 'status', 'sort']}
@@ -175,8 +175,8 @@
    const record = useRecordContext();
    const notify = useNotify(); 
    const refresh = useRefresh();
    const clickComplete = () => {
        console.log('------->');
    const clickComplete = (event) => {
        event.stopPropagation();
        completeTask([record])
    };
    //完成任务
rsf-admin/src/page/waitPakin/WaitPakinCreate.jsx
@@ -93,19 +93,6 @@
                                    />
                                </Grid>
                                <Grid item xs={6} display="flex" gap={1}>
                                    <NumberInput
                                        label="table.field.waitPakin.ansId"
                                        source="ansId"
                                    />
                                </Grid>
                                <Grid item xs={6} display="flex" gap={1}>
                                    <TextInput
                                        label="table.field.waitPakin.asnCode"
                                        source="asnCode"
                                        parse={v => v}
                                    />
                                </Grid>
                                <Grid item xs={6} display="flex" gap={1}>
                                    <TextInput
                                        label="table.field.waitPakin.barcode"
                                        source="barcode"
rsf-admin/src/page/waitPakin/WaitPakinEdit.jsx
@@ -71,22 +71,14 @@
                                    parse={v => v}
                                    autoFocus
                                />
                                <NumberInput
                                    label="table.field.waitPakin.ansId"
                                    readOnly
                                    source="ansId"
                                />
                                <TextInput
                                    label="table.field.waitPakin.asnCode"
                                    readOnly
                                    source="asnCode"
                                    parse={v => v}
                                />
                                <SelectInput
                                    label="table.field.waitPakin.flagDefect"
                                    readOnly
                                    source="flagDefect"
                                    parse={v => v}
                                    choices={[
                                        { id: 0, name: '否' },
                                        { id: 1, name: ' 是' },
                                    ]}
                                />
                            </Stack>
                            <Stack direction='row' gap={2}>
rsf-admin/src/page/waitPakin/WaitPakinList.jsx
@@ -65,8 +65,6 @@
const filters = [
    <SearchInput source="condition" alwaysOn />,
    <TextInput source="code" label="table.field.waitPakin.code" />,
    <NumberInput source="ansId" label="table.field.waitPakin.ansId" />,
    <TextInput source="asnCode" label="table.field.waitPakin.asnCode" />,
    <TextInput source="barcode" label="table.field.waitPakin.barcode" />,
    <NumberInput source="anfme" label="table.field.waitPakin.anfme" />,
    <SelectInput source="ioStatus" label="table.field.waitPakin.ioStatus"
@@ -118,8 +116,6 @@
    const BulkActionButtons = () => {
    }
    return (
        <Box display="flex">
            <List
@@ -157,8 +153,6 @@
                >
                    <NumberField source="id" />
                    <TextField source="code" label="table.field.waitPakin.code" />
                    {/* <NumberField source="ansId" label="table.field.waitPakin.ansId" /> */}
                    {/* <TextField source="asnCode" label="table.field.waitPakin.asnCode" /> */}
                    <TextField source="barcode" label="table.field.waitPakin.barcode" />
                    <NumberField source="anfme" label="table.field.waitPakin.anfme" />
                    <TextField source="ioStatus$" label="table.field.waitPakin.ioStatus" sortable={false} />
rsf-server/src/main/java/com/vincent/rsf/server/api/entity/enums/OrderType.java
@@ -40,4 +40,19 @@
        return null;
    }
    public static String getValType(String type) {
        if (type.equals(OrderType.ORDER_IN.type)) {
            return OrderType.ORDER_IN.desc;
        } else if (type.equals(OrderType.ORDER_OUT.type)) {
            return OrderType.ORDER_OUT.desc;
        } else if (type.equals(OrderType.ORDER_PLAT_IN.type)) {
            return OrderType.ORDER_PLAT_IN.desc;
        } else if (type.equals(OrderType.ORDER_RECEIPT.type)) {
            return OrderType.ORDER_RECEIPT.desc;
        } else if (type.equals(OrderType.ORDER_PURCHASE_IN.type)) {
            return OrderType.ORDER_PURCHASE_IN.desc;
        }
        return null;
    }
}
rsf-server/src/main/java/com/vincent/rsf/server/api/entity/enums/OrderWorkType.java
@@ -45,5 +45,24 @@
            return null;
    }
    public static String getWorkDesc(String type) {
        if (type.equals(OrderWorkType.ORDER_WORK_TYPE_DONE_IN.type)) {
            return OrderWorkType.ORDER_WORK_TYPE_DONE_IN.desc;
        } else if (type.equals(OrderWorkType.ORDER_WORK_TYPE_PROD.type)) {
            return OrderWorkType.ORDER_WORK_TYPE_PROD.desc;
        } else if (type.equals(OrderWorkType.ORDER_WORK_TYPE_PURCHASE.type)) {
            return OrderWorkType.ORDER_WORK_TYPE_PURCHASE.desc;
        } else if (type.equals(OrderWorkType.ORDER_WORK_TYPE_SALE.type)) {
            return OrderWorkType.ORDER_WORK_TYPE_SALE.desc;
        } else if (type.equals(OrderWorkType.ORDER_WORK_TYPE_RETURN.type)) {
            return OrderWorkType.ORDER_WORK_TYPE_RETURN.desc;
        } else if (type.equals(OrderWorkType.ORDER_WORK_TYPE_SUPPLIER.type)) {
            return OrderWorkType.ORDER_WORK_TYPE_SUPPLIER.desc;
        }else if (type.equals(OrderWorkType.ORDER_WORK_TYPE_RETURN_ORDER.type)) {
            return OrderWorkType.ORDER_WORK_TYPE_RETURN_ORDER.desc;
        }
        return null;
    }
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderController.java
@@ -7,6 +7,8 @@
import com.vincent.rsf.framework.common.Cools;
import com.vincent.rsf.framework.common.R;
import com.vincent.rsf.framework.exception.CoolException;
import com.vincent.rsf.server.api.entity.enums.OrderType;
import com.vincent.rsf.server.api.entity.enums.OrderWorkType;
import com.vincent.rsf.server.common.utils.ExcelUtil;
import com.vincent.rsf.server.common.annotation.OperationLog;
import com.vincent.rsf.server.common.domain.BaseParam;
@@ -15,7 +17,11 @@
import com.vincent.rsf.server.manager.controller.params.AsnOrderAndItemsParams;
import com.vincent.rsf.server.manager.controller.params.BatchUpdateParam;
import com.vincent.rsf.server.manager.entity.AsnOrder;
import com.vincent.rsf.server.manager.entity.AsnOrderItem;
import com.vincent.rsf.server.manager.entity.Matnr;
import com.vincent.rsf.server.manager.entity.excel.AsnOrderTemplate;
import com.vincent.rsf.server.manager.enums.AsnExceStatus;
import com.vincent.rsf.server.manager.service.AsnOrderItemService;
import com.vincent.rsf.server.manager.service.AsnOrderService;
import com.vincent.rsf.server.system.constant.SerialRuleCode;
import com.vincent.rsf.server.system.controller.BaseController;
@@ -30,6 +36,7 @@
import javax.mail.Multipart;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
import java.util.stream.Collectors;
@RestController
@Api(tags = "ASN入库通知单")
@@ -37,6 +44,8 @@
    @Autowired
    private AsnOrderService asnOrderService;
    @Autowired
    private AsnOrderItemService asnOrderItemService;
    @PreAuthorize("hasAuthority('manager:asnOrder:list')")
    @PostMapping("/asnOrder/page")
@@ -130,16 +139,44 @@
            if (!ids.isEmpty()) {
                orders = asnOrderService.list(new LambdaQueryWrapper<AsnOrder>().in(AsnOrder::getId, ids));
            } else {
                orders = asnOrderService.list(new LambdaQueryWrapper<AsnOrder>());
                orders = asnOrderService.list(new LambdaQueryWrapper<>());
            }
        } else {
            orders = asnOrderService.list(new LambdaQueryWrapper<AsnOrder>());
            orders = asnOrderService.list();
        }
        ExcelUtil.build(ExcelUtil.create(orders, AsnOrder.class), response);
        List<AsnOrderTemplate> orderTemplates = new ArrayList<>();
        for (AsnOrder order : orders) {
            List<AsnOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<AsnOrderItem>().eq(AsnOrderItem::getAsnId, order.getId()));
            for (AsnOrderItem item : orderItems) {
                if (Objects.isNull(item)) {
                    continue;
                }
                AsnOrderTemplate template = new AsnOrderTemplate();
                template.setCode(order.getCode())
                        .setType(OrderType.getValType(order.getType()))
                        .setWkType(OrderWorkType.getWorkDesc(order.getWkType()))
                        .setExceStatus(AsnExceStatus.getExceStatus(order.getExceStatus()))
                        .setAnfme(item.getAnfme() + "")
                        .setMaktx(item.getMaktx()).setMemo(item.getMemo())
                        .setMatnrCode(item.getMatnrCode())
                        .setPoCode(item.getPoCode())
                        .setPoId(order.getPoId() + "")
                        .setPackName(item.getPackName())
                        .setPlatItemId(item.getPlatItemId())
                        .setSplrBatch(item.getSplrBatch())
                        .setSplrCode(item.getSplrCode())
                        .setStockUnit(item.getStockUnit())
                        .setPurQty(item.getPurQty() + "")
                        .setPurUnit(item.getPurUnit());
                orderTemplates.add(template);
            }
        }
        ExcelUtil.build(ExcelUtil.create(orderTemplates, AsnOrderTemplate.class), response);
    }
    /**
     * 质检上报
     *
     * @param orders
     * @return
     */
@@ -160,7 +197,7 @@
    @PostMapping("/asnOrder/matnr/list")
    @ApiOperation("物料获取订单")
    @PreAuthorize("hasAuthority('manager:asnOrder:list')")
    public R getListByMatnr(@RequestBody Map<String, String> params){
    public R getListByMatnr(@RequestBody Map<String, String> params) {
        if (Objects.isNull(params)) {
            return R.error("查询条件不能为空!!");
        }
@@ -173,7 +210,7 @@
    @PreAuthorize("hasAuthority('manager:asnOrder:save')")
    public R orderAndItem(@RequestBody AsnOrderAndItemsParams params) throws Exception {
        if (Objects.isNull(params)) {
           return R.error("参数不能为空!!");
            return R.error("参数不能为空!!");
        }
        return asnOrderService.saveOrderAndItems(params, getLoginUserId());
    }
rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/AsnExceStatus.java
@@ -24,4 +24,36 @@
    public Short val;
    public String desc;
    public static String getExceStatus(Short val) {
        if (val.equals(AsnExceStatus.ASN_EXCE_STATUS_UN_EXCE.val)) {
            return AsnExceStatus.ASN_EXCE_STATUS_UN_EXCE.desc;
        } else if (val.equals(AsnExceStatus.ASN_EXCE_STATUS_EXCE_ING.val)) {
            return AsnExceStatus.ASN_EXCE_STATUS_EXCE_ING.desc;
        } else if (val.equals(AsnExceStatus.ASN_EXCE_STATUS_TASK_DONE.val)) {
            return AsnExceStatus.ASN_EXCE_STATUS_TASK_DONE.desc;
        } else if (val.equals(AsnExceStatus.ASN_EXCE_STATUS_TASK_CANCEL.val)) {
            return AsnExceStatus.ASN_EXCE_STATUS_TASK_CANCEL.desc;
        } else if (val.equals(AsnExceStatus.ASN_EXCE_STATUS_TASK_CLOSE.val)) {
            return AsnExceStatus.ASN_EXCE_STATUS_TASK_CLOSE.desc;
        } else {
            return null;
        }
    }
    public static Short getExcelStatusDesc(String desc) {
        if (desc.equals(AsnExceStatus.ASN_EXCE_STATUS_UN_EXCE.desc)) {
            return AsnExceStatus.ASN_EXCE_STATUS_UN_EXCE.val;
        } else if (desc.equals(AsnExceStatus.ASN_EXCE_STATUS_EXCE_ING.desc)) {
            return AsnExceStatus.ASN_EXCE_STATUS_EXCE_ING.val;
        } else if (desc.equals(AsnExceStatus.ASN_EXCE_STATUS_TASK_DONE.desc)) {
            return AsnExceStatus.ASN_EXCE_STATUS_TASK_DONE.val;
        } else if (desc.equals(AsnExceStatus.ASN_EXCE_STATUS_TASK_CANCEL.desc)) {
            return AsnExceStatus.ASN_EXCE_STATUS_TASK_CANCEL.val;
        } else if (desc.equals(AsnExceStatus.ASN_EXCE_STATUS_TASK_CLOSE.desc)) {
            return AsnExceStatus.ASN_EXCE_STATUS_TASK_CLOSE.val;
        } else {
            return null;
        }
    }
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderLogServiceImpl.java
@@ -51,6 +51,12 @@
        order.setId(orderLog.getAsnId())
                .setDeleted(0)
                .setExceStatus(AsnExceStatus.ASN_EXCE_STATUS_EXCE_ING.val);
        AsnOrder asnOrder = asnOrderService.getOne(new LambdaQueryWrapper<AsnOrder>().eq(AsnOrder::getCode, orderLog.getCode()));
        if (Objects.isNull(asnOrder)) {
            throw new CoolException("收货单据已添加,刷新后再操作!!");
        }
        if (!asnOrderService.saveOrUpdate(order)) {
            throw new CoolException("单据保存失败!!");
        }