skyouc
1 天以前 156c505cad3b133efe712559ea14e0aa1b196160
库存出库添加库位搜索
出库单添加下发执行功能
6个文件已修改
99 ■■■■■ 已修改文件
rsf-admin/src/page/orders/outStock/OutOrderItemList.jsx 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/orders/outStock/OutOrderList.jsx 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/orders/outStock/SelectMatnrModal.jsx 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/work/components/locItemInfoModal.jsx 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderItemServiceImpl.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/orders/outStock/OutOrderItemList.jsx
@@ -136,7 +136,7 @@
              setSelect(record)
              setEditDialog(true)
            }}
            omit={['id', 'createTime', 'createBy', 'memo', 'poDetlId', 'purQty', 'purUnit', 'trackCode', 'packName','qrcode', 'splrName', 'matnrId', 'asnId']}
            omit={['id', 'createTime', 'createBy', 'memo', 'poDetlId', 'purQty', 'purUnit', 'trackCode', 'packName', 'qrcode', 'splrName', 'matnrId', 'asnId']}
          >
            <NumberField source="id" />
            <NumberField source="asnId" label="table.field.outStockItem.asnId" />
@@ -157,11 +157,14 @@
            <TextField source="qrcode" label="table.field.outStockItem.qrcode" />
            <TextField source="trackCode" label="table.field.outStockItem.barcode" />
            <TextField source="packName" label="table.field.outStockItem.packName" />
            <TextField source="updateBy$" label="common.field.updateBy" />
            <DateField source="updateTime" label="common.field.updateTime" showTime />
            <TextField source="createBy$" label="common.field.createBy" />
            <ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false}>
              <TextField source="nickname" />
            </ReferenceField>,
            <ReferenceField source="createBy" label="common.field.createBy" reference="user" link={false} sortable={false}>
              <TextField source="nickname" />
            </ReferenceField>,
            <DateField source="createTime" label="common.field.createTime" showTime />
            <BooleanField source="status$" label="common.field.status" sortable={false} />
            <TextField source="memo" label="common.field.memo" sortable={false} />
          </StyledDatagrid>
        </List>
rsf-admin/src/page/orders/outStock/OutOrderList.jsx
@@ -57,6 +57,7 @@
import OutOrderModal from "./OutOrderModal";
import PublicIcon from '@mui/icons-material/Public';
import SelectMatnrModal from "./SelectMatnrModal";
import AddTaskIcon from '@mui/icons-material/AddTask';
const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
  '& .css-1vooibu-MuiSvgIcon-root': {
@@ -178,6 +179,7 @@
            <MyButton setCreateDialog={setManualDialog} setmodalType={setmodalType} />
            <EditButton label="toolbar.detail" icon={(<DetailsIcon />)}></EditButton>
            <CancelButton />
            <PublicButton />
          </WrapperField>
        </StyledDatagrid>
      </List>
@@ -287,3 +289,15 @@
    record?.exceStatus == 10 ? <ConfirmButton label={"toolbar.cancel"} startIcon={<CancelOutlinedIcon />} onConfirm={cancelOrder} /> : <></>
  )
}
const PublicButton = () => {
  const record = useRecordContext();
  const taskEvent = () => {
  }
  return (
    <ConfirmButton label={"toolbar.createTask"} startIcon={<AddTaskIcon />} onConfirm={taskEvent} />
  )
}
rsf-admin/src/page/orders/outStock/SelectMatnrModal.jsx
@@ -465,48 +465,26 @@
            ),
            headerClassName: "custom",
        },
        // {
        //     field: 'packName',
        //     headerName: translate('table.field.asnOrderItem.packName'),
        //     minWidth: 100,
        //     flex: 1,
        //     editable: true,
        // },
        // {
        //     field: 'poDetlId',
        //     headerName: translate('table.field.asnOrderItem.poDetlId'),
        //     minWidth: 100,
        //     flex: 1,
        // },
        {
            field: 'poCode',
            headerName: translate('table.field.outStockItem.poDetlCode') + "*",
            field: 'splrBatch',
            headerName: translate('table.field.outStockItem.splrBatch'),
            minWidth: 100,
            flex: 1,
            editable: true,
            headerClassName: "custom",
        },
        {
            field: 'poCode',
            headerName: translate('table.field.outStockItem.poDetlCode'),
            minWidth: 100,
            flex: 1,
            editable: true,
        },
        {
            field: 'stockUnit',
            headerName: translate('table.field.outStockItem.stockUnit'),
            minWidth: 100,
            flex: 1,
            editable: false,
        },
        // {
        //     field: 'purQty',
        //     headerName: translate('table.field.asnOrderItem.purQty'),
        //     minWidth: 100,
        //     flex: 1,
        //     editable: true,
        // },
        {
            field: 'purUnit',
            headerName: translate('table.field.outStockItem.purUnit'),
            minWidth: 100,
            flex: 1,
            editable: false,
            editable: true,
        },
    ])
rsf-admin/src/page/work/components/locItemInfoModal.jsx
@@ -114,6 +114,15 @@
                    <Grid container spacing={2}>
                        <Grid item md={2}>
                            <TextField
                                label={translate('table.field.locItem.locCode')}
                                name="locCode"
                                value={formData.locCode}
                                onChange={handleChange}
                                size="small"
                            />
                        </Grid>
                        <Grid item md={2}>
                            <TextField
                                label={translate('table.field.locItem.maktx')}
                                name="maktx"
                                value={formData.maktx}
@@ -166,15 +175,12 @@
    const notify = useNotify();
    const [columns, setColumns] = useState([
        // { field: 'id', headerName: 'ID', width: 100 },
        { field: 'locCode', headerName: translate('table.field.locItem.locCode'), width: 100 },
        { field: 'matnrCode', headerName: translate('table.field.locItem.matnrCode'), width: 200 },
        { field: 'maktx', headerName: translate('table.field.locItem.maktx'), width: 300 },
        { field: 'batch', headerName: translate('table.field.locItem.batch'), width: 100 },
        { field: 'anfme', headerName: translate('table.field.locItem.anfme'), width: 100 },
        // { field: 'workQty', headerName: translate('table.field.locItem.workQty'), width: 100 },
        { field: 'unit', headerName: translate('table.field.locItem.unit'), width: 100 },
    ])
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderItemServiceImpl.java
@@ -228,11 +228,6 @@
    @Transactional(rollbackFor = Exception.class)
    public boolean fieldsSave(Map<String, Object> params, Long loginUserId) {
        AsnOrderItem asnOrderItem = JSONObject.parseObject(JSONObject.toJSONString(params), AsnOrderItem.class);
        asnOrderItem.setUpdateBy(loginUserId).setCreateBy(loginUserId);
//        if (StringUtils.isBlank(asnOrderItem.getTrackCode())) {
//            String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_LABEL_CODE, asnOrderItem);
//            asnOrderItem.setTrackCode(ruleCode).setBarcode(ruleCode);
//        }
        if (StringUtils.isNoneBlank(asnOrderItem.getSplrCode())) {
            Companys companys = companysService.getOne(new LambdaQueryWrapper<Companys>()
                    .eq(Companys::getId, asnOrderItem.getSplrCode())
@@ -244,9 +239,6 @@
        if (Objects.isNull(asnOrderItem.getAnfme()) || Double.compare(asnOrderItem.getAnfme(), 0.0) <= 0) {
            throw new CoolException("计划数不能为空!!");
        }
//        if (StringUtils.isBlank(asnOrderItem.getSplrBatch())) {
//            throw new CoolException("供应商批次不能为空!!");
//        }
        //保存扩展字段
        try {
            StringBuffer sb = new StringBuffer();
@@ -268,6 +260,7 @@
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
        asnOrderItem.setUpdateBy(loginUserId).setCreateBy(loginUserId);
        if (!this.saveOrUpdate(asnOrderItem)) {
            throw new CoolException("收货通知单明细保存失败!!");
        }
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java
@@ -80,7 +80,7 @@
        });
        List<AsnOrderItem> orderItems = asnOrderItemService.list(new LambdaQueryWrapper<AsnOrderItem>()
                .eq(AsnOrderItem::getAsnId, params.getOrders().getId()));
        double sum = orderItems.stream().mapToDouble(AsnOrderItem::getAnfme).sum();
        Double sum = orderItems.stream().mapToDouble(AsnOrderItem::getAnfme).sum();
        orders.setAnfme(sum);
        if (!this.updateById(orders)) {
            throw new CoolException("计划收货数量修改失败!!");
@@ -360,11 +360,8 @@
        } catch (Exception e) {
            throw new CoolException(e.getMessage());
        }
        return R.ok();
    }
    /**
     * @param
     * @return
@@ -385,16 +382,14 @@
            throw new CoolException("主单修改失败!!");
        }
        if (Objects.isNull(params.getItems()) || params.getItems().isEmpty()) {
            return R.ok("明细参数不能为空!!");
            throw new CoolException("明细参数不能为空!!");
        }
        try {
            svaeOrUpdateOrderItem(params, loginUserId);
        } catch (Exception e) {
            throw new CoolException(e.getMessage());
        }
        return null;
        return R.ok();
    }
    /**