skyouc
2025-04-30 d3c44bb9a25c42bba6e2dfd85ac7d04863112dc8
收货单改入修改
单位带入修改
9个文件已修改
42 ■■■■ 已修改文件
rsf-admin/src/i18n/en.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/i18n/zh.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/page/orders/asnOrder/AsnWareModal.jsx 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderItemController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/AsnOrderItemService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderItemServiceImpl.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-admin/src/i18n/en.js
@@ -578,6 +578,7 @@
                stockUnit: "stockUnit",
                purQty: "purQty",
                purUnit: "purUnit",
                unit: 'Unit',
                qty: "qty",
                splrCode: "splrCode",
                splrName: "splrName",
rsf-admin/src/i18n/zh.js
@@ -568,6 +568,7 @@
                stockUnit: "库存单位",
                purQty: "采购量",
                purUnit: "采购单位",
                unit: '单位',
                qty: "完成数量",
                splrBatch: "供应商批次",
                splrCode: "供应商编码",
rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx
@@ -282,7 +282,7 @@
                        <Stack direction="row" spacing={2}>
                            <Button variant="contained" onClick={() => setCreateDialog(true)}>新增物料</Button>
                            {/* {asnId !== '' && <ConfirmButton label={'删除'} variant="outlined" color="error" onConfirm={handleDelete} />} */}
                            <ConfirmButton label={'删除'} variant="outlined" color="error" onConfirm={handleDeleteItem} />
                            <ConfirmButton label={'ra.action.delete'} variant="outlined" color="error" onConfirm={handleDeleteItem} />
                        </Stack>
                    </Box>
                    <Box sx={{ mt: 2 }}>
rsf-admin/src/page/orders/asnOrder/AsnWareModal.jsx
@@ -55,16 +55,18 @@
        const hasarr = data.map(el => +el.matnrId)
        const selectedData = selectedRows.filter(item => !hasarr.includes(item)).map(id => (tableData.find(row => row.id === id)));
        const value = selectedData.map((el => {
            console.log(el);
            const dynamicFields = dyFields.reduce((acc, item) => {
                acc[item.fields] = el['extendFields']?.[item.fields] || '';
                return acc;
            }, {});
            return {
                ...el,
                matnrId: el.id,
                maktx: el.name,
                matnrCode: el.code,
                stockUnit: el.stockUnit || '',
                purUnit: el.purchaseUnit || '',
                stockUnit: el.unit,
                purUnit: el.unit,
                ...dynamicFields
            }
        }))
@@ -176,11 +178,9 @@
};
export default AsnWareModal;
const AsnWareModalTable = ({ tableData, setTableData, selectedRows, setSelectedRows, dyFields, setDyFields }) => {
    const translate = useTranslate();
    const notify = useNotify();
    const [columns, setColumns] = useState([
        // { field: 'id', headerName: 'ID', width: 100 },
        { field: 'name', headerName: translate('table.field.matnr.name'), width: 300 },
@@ -189,20 +189,16 @@
        { field: 'spec', headerName: translate('table.field.matnr.spec'), width: 100 },
        { field: 'model', headerName: translate('table.field.matnr.model'), width: 100 },
        { field: 'weight', headerName: translate('table.field.matnr.weight'), width: 100 },
        { field: 'describle', headerName: translate('table.field.matnr.describle'), width: 100 },
        { field: 'nromNum', headerName: translate('table.field.matnr.nromNum'), width: 100 },
        { field: 'unit', headerName: translate('table.field.matnr.unit'), width: 100 },
        { field: 'purchaseUnit', headerName: translate('table.field.matnr.purUnit'), width: 100 },
        { field: 'purUnit', headerName: translate('table.field.matnr.purUnit'), width: 100 },
        { field: 'stockUnit', headerName: translate('table.field.matnr.stockUnit'), width: 100 },
        { field: 'stockLeval$', headerName: translate('table.field.matnr.stockLevel'), width: 100, sortable: false },
    ])
    const handleSelectionChange = (ids) => {
        setSelectedRows(ids)
    };
    useEffect(() => {
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderItemController.java
@@ -13,8 +13,6 @@
import com.vincent.rsf.server.common.domain.BaseParam;
import com.vincent.rsf.server.common.domain.KeyValVo;
import com.vincent.rsf.server.common.domain.PageParam;
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.Companys;
import com.vincent.rsf.server.manager.entity.excel.AsnOrderTemplate;
@@ -80,7 +78,7 @@
        params.put("createBy", getLoginUserId());
        params.put("updateBy", getLoginUserId());
        if (!asnOrderItemService.fieldsSave(params)) {
        if (!asnOrderItemService.fieldsSave(params, getLoginUserId())) {
            return R.error("Save Fail");
        }
        return R.ok("Save Success");
@@ -171,9 +169,9 @@
    @PostMapping("/asnOrderItem/import")
    @ApiOperation("ASN导入接口")
    @PreAuthorize("hasAuthority('manager:asnOrderItem:update')")
    public R importExcel(@RequestParam(value = "file") MultipartFile file, @RequestParam String asnId) throws Exception {
    public R importExcel(@RequestParam(value = "file") MultipartFile file) throws Exception {
        if (Objects.isNull(file)) {
            R.error("文件不能为空!!");
           return R.error("文件不能为空!!");
        }
        HashMap<String, Object> hashMap = new HashMap<>();
        return asnOrderItemService.excelImport(file, hashMap, getLoginUserId());
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/AsnOrderItemService.java
@@ -18,7 +18,7 @@
    R excelImport(MultipartFile file, HashMap<String, Object> hashMap, Long loginUserId) throws Exception;
    boolean fieldsSave(Map<String, Object> params);
    boolean fieldsSave(Map<String, Object> params, Long loginUserId);
    R generateBarcode(List<Long> orders);
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderItemServiceImpl.java
@@ -35,7 +35,6 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
@@ -94,7 +93,7 @@
        for (String key : listMap.keySet()) {
            AsnOrderTemplate template = listMap.get(key).stream().findFirst().get();
            AsnOrder asnOrder = asnOrderMapper.getOne(new LambdaQueryWrapper<AsnOrder>().eq(AsnOrder::getCode, template.getCode()));
            if (Objects.isNull(asnOrder)) {
            if (!Objects.isNull(asnOrder)) {
                continue;
            }
            AsnOrder order = new AsnOrder();
@@ -153,6 +152,7 @@
    /**
     * @param
     * @param loginUserId
     * @return
     * @author Ryan
     * @description ASN明细单据保存,及扩展字段保存
@@ -160,12 +160,12 @@
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean fieldsSave(Map<String, Object> params) {
    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 (Objects.isNull(asnOrderItem.getAnfme()) || Double.compare(asnOrderItem.getAnfme(), 0.0) <= 0) {
            throw new CoolException("计划数不能为空!!");
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderServiceImpl.java
@@ -117,7 +117,7 @@
            throw new CoolException("主单保存失败!!");
        }
        if (params.getItems().isEmpty()) {
            throw new CoolException("收货通知单明细不能为寒食节!!");
            throw new CoolException("收货通知单明细不能为空!!");
        }
        params.setOrders(orders);
@@ -171,7 +171,7 @@
            item.put("poCode", orders.getPoCode());
            item.put("createBy", loginUserId);
            item.put("updateBy", loginUserId);
            if (!asnOrderItemService.fieldsSave(item)) {
            if (!asnOrderItemService.fieldsSave(item, loginUserId)) {
                throw new CoolException("明细保存失败!!");
            }
        });
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/OutStockServiceImpl.java
@@ -69,7 +69,7 @@
            item.put("poCode", orders.getPoCode());
            item.put("createBy", loginUserId);
            item.put("updateBy", loginUserId);
            if (!asnOrderItemService.fieldsSave(item)) {
            if (!asnOrderItemService.fieldsSave(item, loginUserId)) {
                throw new CoolException("明细保存失败!!");
            }
        });