#修改
1. mybatis Map驼峰不转换问题修复
2. 字段修改导致接口显示问题修复
2个文件已添加
5个文件已删除
13个文件已修改
710 ■■■■■ 已修改文件
rsf-server/src/main/java/com/vincent/rsf/server/api/entity/dto/ReceiptDetlsDto.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/common/config/MybatisPlusConfig.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderController.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderItemController.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/QlyInspectController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/AsnOrderAndItemsParams.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/AsnOrderItemMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/AsnOrderItemService.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/AsnOrderService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderItemServiceImpl.java 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderServiceImpl.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/system/utils/ExtendFieldsUtils.java 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/test/controller/QlyInspectController.java 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/test/entity/QlyInspect.java 222 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/test/mapper/QlyInspectMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/test/service/QlyInspectService.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/test/service/impl/QlyInspectServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/resources/application.yml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/resources/mapper/manager/AsnOrderItemMapper.xml 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
rsf-server/src/main/java/com/vincent/rsf/server/api/entity/dto/ReceiptDetlsDto.java
@@ -35,7 +35,7 @@
    private String poCode;
    @ApiModelProperty("物料名称")
    private String matnk;
    private String maktx;
    @ApiModelProperty("供应商批次")
    private String splrBatch;
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java
@@ -204,7 +204,6 @@
                                        .setShiperId(matnr.getShipperId())
                                        .setValue(extendFields.get(key).toString())
                                        .setUuid(uuid16);
                                fieldsItems.add(fieldsItem);
                                //唯一标识入库
                                item.setFieldsIndex(uuid16);
@@ -294,7 +293,7 @@
            ReceiptDetlsDto detlsDto = new ReceiptDetlsDto();
            detlsDto.setAsnCode(asnOrderItem.getAsnCode())
                    .setMatnk(asnOrderItem.getMaktx())
                    .setMaktx(asnOrderItem.getMaktx())
                    .setBarcode(asnOrderItem.getBarcode())
                    .setPoCode(asnOrderItem.getPoCode())
                    .setPurQty(asnOrderItem.getAnfme())
@@ -325,14 +324,17 @@
                detlsDto.setStockQty(stockItem.getQty() + stockItem.getWorkQty());
            }
            //获取采购单明细信息
            PurchaseItem purchaseItem = purchaseItemMapper.selectOne(new LambdaQueryWrapper<PurchaseItem>().eq(PurchaseItem::getId, asnOrderItem.getPoDetlId()));
            //SET 平台行号
            detlsDto.setPlatformId(purchaseItem.getPlatItemId());
            if (!Objects.isNull(asnOrderItem.getPoDetlId())) {
                //获取采购单明细信息
                PurchaseItem purchaseItem = purchaseItemMapper.selectOne(new LambdaQueryWrapper<PurchaseItem>().eq(PurchaseItem::getId, asnOrderItem.getPoDetlId()));
                if (Objects.isNull(purchaseItem)) {
                    //SET 平台行号
                    detlsDto.setPlatformId(purchaseItem.getPlatItemId());
                }
            }
            detlsDtos.add(detlsDto);
        });
        return R.ok(detlsDtos);
    }
rsf-server/src/main/java/com/vincent/rsf/server/common/config/MybatisPlusConfig.java
@@ -1,5 +1,8 @@
package com.vincent.rsf.server.common.config;
import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer;
import com.baomidou.mybatisplus.core.MybatisConfiguration;
import com.baomidou.mybatisplus.extension.MybatisMapWrapperFactory;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
@@ -12,6 +15,7 @@
import org.springframework.context.annotation.Configuration;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import java.util.Arrays;
@@ -22,6 +26,7 @@
 * @since 2018-02-22 11:29:28
 */
@Configuration
@EnableTransactionManagement
public class MybatisPlusConfig {
    @Bean
@@ -78,4 +83,24 @@
        return new LongValue(1);
    }
    /**
     * 解决Map映射非驼峰
     * @return
     */
    @Bean
    public ConfigurationCustomizer mybatisConfigurationCustomizer(){
        return new ConfigurationCustomizer() {
            /**
             * Customize the given a {@link MybatisConfiguration} object.
             *
             * @param configuration the configuration object to customize
             */
            @Override
            public void customize(MybatisConfiguration configuration) {
                configuration.setObjectWrapperFactory(new MybatisMapWrapperFactory());
            }
        };
    }
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderController.java
@@ -10,6 +10,7 @@
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.AsnOrderAndItemsParams;
import com.vincent.rsf.server.manager.entity.AsnOrder;
import com.vincent.rsf.server.manager.service.AsnOrderService;
import com.vincent.rsf.server.system.constant.SerialRuleCode;
@@ -54,6 +55,7 @@
    }
    @PreAuthorize("hasAuthority('manager:asnOrder:list')")
    @OperationLog("表单查询")
    @GetMapping("/asnOrder/{id}")
    public R get(@PathVariable("id") Long id) {
        return R.ok().add(asnOrderService.getById(id));
@@ -159,4 +161,15 @@
        }
        return asnOrderService.generateBarcode(orders);
    }
    @PostMapping("/asnOrder/items/save")
    @ApiOperation("保存主单及明细")
    @PreAuthorize("hasAuthority('manager:asnOrder:save')")
    public R orderAndItem(@RequestBody AsnOrderAndItemsParams params) {
        if (Objects.isNull(params)) {
            throw new CoolException("参数不能为空!!");
        }
        return asnOrderService.saveOrderAndItems(params);
    }
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderItemController.java
@@ -1,28 +1,20 @@
package com.vincent.rsf.server.manager.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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.common.utils.CommonUtil;
import com.vincent.rsf.server.common.utils.ExcelUtil;
import com.vincent.rsf.server.common.annotation.OperationLog;
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.AsnOrderItemParams;
import com.vincent.rsf.server.manager.entity.AsnOrderItem;
import com.vincent.rsf.server.manager.entity.excel.AsnOrderTemplate;
import com.vincent.rsf.server.manager.service.AsnOrderItemService;
import com.vincent.rsf.server.system.controller.BaseController;
import com.vincent.rsf.server.system.entity.Fields;
import com.vincent.rsf.server.system.entity.FieldsItem;
import com.vincent.rsf.server.system.service.FieldsItemService;
import com.vincent.rsf.server.system.service.FieldsService;
import com.vincent.rsf.server.system.utils.SerialRuleUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
@@ -30,10 +22,8 @@
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
import java.util.stream.Collectors;
@Api(tags = "ASN单明细")
@RestController
@@ -43,11 +33,12 @@
    private AsnOrderItemService asnOrderItemService;
    @PreAuthorize("hasAuthority('manager:asnOrderItem:list')")
    @ApiOperation("分页获取列表")
    @PostMapping("/asnOrderItem/page")
    public R page(@RequestBody Map<String, Object> map) {
        BaseParam baseParam = buildParam(map, BaseParam.class);
        PageParam<AsnOrderItem, BaseParam> pageParam = new PageParam<>(baseParam, AsnOrderItem.class);
        return R.ok().add(asnOrderItemService.page(pageParam, pageParam.buildWrapper(true)));
        return R.ok().add(asnOrderItemService.listByAsnId(pageParam, pageParam.buildWrapper(true)));
    }
    @PreAuthorize("hasAuthority('manager:asnOrderItem:list')")
@@ -84,6 +75,19 @@
        return R.ok("Save Success");
    }
    @PreAuthorize("hasAuthority('manager:asnOrderItem:list')")
    @ApiOperation("获取ASN单明细信息")
    @PostMapping("/asnOrderItem/all/list")
    public R listByAsnId(@RequestBody Map<String, Object> map) {
        if (Objects.isNull(map)) {
            throw new CoolException("参数不能为空!!");
        }
        return R.ok();
//        return asnOrderItemService.listByAsnId(map);
    }
    @PreAuthorize("hasAuthority('manager:asnOrderItem:update')")
    @OperationLog("Update ASN单据")
@@ -123,7 +127,7 @@
    @PreAuthorize("hasAuthority('manager:asnOrderItem:list')")
    @PostMapping("/asnOrderItem/export")
    @ApiOperation("收货通知单明细")
    @ApiOperation("导出收货通知单明细")
    public void export(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception {
        AsnOrderTemplate template = ExcelUtil.mockData(AsnOrderTemplate.class);
        List<AsnOrderTemplate> list = new ArrayList<>();
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/QlyInspectController.java
@@ -109,4 +109,5 @@
        ExcelUtil.build(ExcelUtil.create(qlyInspectService.list(), QlyInspect.class), response);
    }
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/params/AsnOrderAndItemsParams.java
New file
@@ -0,0 +1,28 @@
package com.vincent.rsf.server.manager.controller.params;
import com.vincent.rsf.server.manager.entity.AsnOrder;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
/**
 * @author Ryan
 * @version 1.0
 * @title AsnOrderAndItemsParams
 * @description
 * @create 2025/3/15 08:52
 */
@Data
@ApiModel(value = "AsnOrderAndItemsParams", description = "主单明细")
public class AsnOrderAndItemsParams implements Serializable {
    @ApiModelProperty("主单信息")
    private AsnOrder orders;
    @ApiModelProperty("明细")
    private List<Map<String, Object>> items;
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/AsnOrderItemMapper.java
@@ -1,12 +1,24 @@
package com.vincent.rsf.server.manager.mapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.vincent.rsf.server.common.domain.BaseParam;
import com.vincent.rsf.server.common.domain.PageParam;
import com.vincent.rsf.server.manager.entity.AsnOrderItem;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.Map;
@Mapper
@Repository
public interface AsnOrderItemMapper extends BaseMapper<AsnOrderItem> {
    IPage<Map<String, Object>> resultForMap(PageParam<AsnOrderItem, BaseParam> pages, @Param(Constants.WRAPPER)  QueryWrapper<AsnOrderItem> buildWrapper);
//    List<Map<String, Object>> resultForMap(long pageParam, @Param(Constants.WRAPPER) QueryWrapper<AsnOrderItem> ew);
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/AsnOrderItemService.java
@@ -1,12 +1,14 @@
package com.vincent.rsf.server.manager.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.vincent.rsf.framework.common.R;
import com.vincent.rsf.framework.exception.CoolException;
import com.vincent.rsf.server.common.domain.BaseParam;
import com.vincent.rsf.server.common.domain.PageParam;
import com.vincent.rsf.server.manager.entity.AsnOrderItem;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
@@ -15,4 +17,8 @@
    R excelImport(MultipartFile file, HashMap<String, Object> hashMap) throws Exception;
    boolean fieldsSave(Map<String, Object> params);
//    R listByAsnId(Map<String, Object> map);
    IPage<Map<String, Object>> listByAsnId(PageParam<AsnOrderItem, BaseParam> pageParam, QueryWrapper<AsnOrderItem> buildWrapper);
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/AsnOrderService.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.vincent.rsf.framework.common.R;
import com.vincent.rsf.server.manager.controller.params.AsnOrderAndItemsParams;
import com.vincent.rsf.server.manager.entity.AsnOrder;
import java.util.List;
@@ -14,4 +15,6 @@
    R generateBarcode(List<AsnOrder> orders);
    List<AsnOrder> getListByMatnr(Map<String, String> params);
    R saveOrderAndItems(AsnOrderAndItemsParams params);
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderItemServiceImpl.java
@@ -4,9 +4,12 @@
import cn.afterturn.easypoi.excel.entity.result.ExcelImportResult;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.vincent.rsf.framework.common.R;
import com.vincent.rsf.framework.exception.CoolException;
import com.vincent.rsf.server.common.utils.CommonUtil;
import com.vincent.rsf.server.common.domain.BaseParam;
import com.vincent.rsf.server.common.domain.PageParam;
import com.vincent.rsf.server.common.utils.ExcelUtil;
import com.vincent.rsf.server.manager.entity.AsnOrder;
import com.vincent.rsf.server.manager.entity.excel.AsnOrderTemplate;
@@ -15,10 +18,9 @@
import com.vincent.rsf.server.manager.mapper.AsnOrderMapper;
import com.vincent.rsf.server.manager.service.AsnOrderItemService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.vincent.rsf.server.system.entity.Fields;
import com.vincent.rsf.server.system.entity.FieldsItem;
import com.vincent.rsf.server.system.service.FieldsItemService;
import com.vincent.rsf.server.system.service.FieldsService;
import com.vincent.rsf.server.system.utils.ExtendFieldsUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -36,6 +38,7 @@
    @Autowired
    private FieldsService fieldsService;
    @Autowired
    private FieldsItemService fieldsItemService;
@@ -69,28 +72,23 @@
    @Override
    public boolean fieldsSave(Map<String, Object> params) {
        List<Fields> fields = fieldsService.list(new LambdaQueryWrapper<Fields>().eq(Fields::getStatus, 1).eq(Fields::getFlagEnable, 1));
        List<FieldsItem> fieldsItems = new ArrayList<>();
        if (!fields.isEmpty()) {
            String uuid16 = CommonUtil.randomUUID16();
            for (Fields obj : fields) {
                if (!Objects.isNull(params.get(obj.getFields()))) {
                    FieldsItem item = new FieldsItem();
                    item.setUuid(uuid16)
                            .setValue(params.get(obj.getFields()).toString())
                            .setMatnrId(Long.parseLong(params.get("matnrId").toString()))
                            .setFieldsId(obj.getId());
                    fieldsItems.add(item);
                }
            }
            if (!fieldsItemService.saveBatch(fieldsItems)) {
                throw new CoolException("单据明细扩展字段保存失败!!");
            }
        }
       //保存扩展字段
        ExtendFieldsUtils.saveFields(params);
        AsnOrderItem asnOrderItem = JSONObject.parseObject(JSONObject.toJSONString(params), AsnOrderItem.class);
        if (!this.save(asnOrderItem)) {
        if (!this.saveOrUpdate(asnOrderItem)) {
            throw new CoolException("收货通知单明细保存失败!!");
        }
        return true;
    }
    @Override
    public IPage<Map<String, Object>> listByAsnId(PageParam<AsnOrderItem, BaseParam> pageParam, QueryWrapper<AsnOrderItem> buildWrapper) {
        IPage<Map<String, Object>> hsahMap = this.baseMapper.resultForMap(pageParam, buildWrapper);
        if (hsahMap.getRecords().isEmpty()) {
            return hsahMap.setRecords(new ArrayList<>());
        }
        hsahMap.setRecords(ExtendFieldsUtils.getExtendFields(hsahMap.getRecords()));
        return hsahMap;
    }
}
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderServiceImpl.java
@@ -6,6 +6,7 @@
import com.vincent.rsf.server.api.entity.dto.PoItemsDto;
import com.vincent.rsf.server.api.service.ReceiveMsgService;
import com.vincent.rsf.server.api.service.ReportMsgService;
import com.vincent.rsf.server.manager.controller.params.AsnOrderAndItemsParams;
import com.vincent.rsf.server.manager.entity.AsnOrderItem;
import com.vincent.rsf.server.manager.mapper.AsnOrderItemMapper;
import com.vincent.rsf.server.manager.mapper.AsnOrderMapper;
@@ -98,4 +99,35 @@
        return this.listByIds(longList);
    }
    @Override
    public R saveOrderAndItems(AsnOrderAndItemsParams params) {
        if (Objects.isNull(params.getOrders())) {
            throw new CoolException("主单信息不能为空");
        }
        AsnOrder orders = params.getOrders();
        String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_ASN_ORDER, orders);
        if (Objects.isNull(ruleCode)) {
            throw new CoolException("收货通知单编码生成失败!!");
        }
        orders.setCode(ruleCode);
        if (!this.save(orders)) {
            throw new CoolException("主单保存失败!!");
        }
        if (params.getItems().isEmpty()) {
            throw new CoolException("收货通知单明细不能为寒食节!!");
        }
        params.getItems().forEach(item -> {
            item.put("asnId", orders.getId());
            item.put("asnCode", orders.getCode());
            item.put("poCode", orders.getPoCode());
            if (!asnOrderItemService.fieldsSave(item)) {
                throw new CoolException("明细保存失败!!");
            }
        });
        return R.ok("保存成功!!");
    }
}
rsf-server/src/main/java/com/vincent/rsf/server/system/utils/ExtendFieldsUtils.java
New file
@@ -0,0 +1,95 @@
package com.vincent.rsf.server.system.utils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.vincent.rsf.framework.common.SpringUtils;
import com.vincent.rsf.framework.exception.CoolException;
import com.vincent.rsf.server.common.utils.CommonUtil;
import com.vincent.rsf.server.system.entity.Fields;
import com.vincent.rsf.server.system.entity.FieldsItem;
import com.vincent.rsf.server.system.service.FieldsItemService;
import com.vincent.rsf.server.system.service.FieldsService;
import org.springframework.beans.BeanUtils;
import java.util.*;
/**
 * @author Ryan
 * @version 1.0
 * @title ExtendFieldsUtils
 * @description
 * @create 2025/3/15 12:40
 */
public class ExtendFieldsUtils {
    /**
     * @author Ryan
     * @description 明细单据保存扩展字段
     * @param
     * @return
     * @time 2025/3/15 13:36
     */
    public static Boolean saveFields(Map<String, Object> params) {
        FieldsService fieldsService = SpringUtils.getBean(FieldsService.class);
        List<Fields> fields = fieldsService.list(new LambdaQueryWrapper<Fields>()
                .eq(Fields::getStatus, 1)
                .eq(Fields::getFlagEnable, 1));
        List<FieldsItem> fieldsItems = new ArrayList<>();
        if (!fields.isEmpty()) {
            String uuid16 = CommonUtil.randomUUID16();
            for (Fields obj : fields) {
                if (!Objects.isNull(params.get(obj.getFields()))) {
                    FieldsItem item = new FieldsItem();
                    item.setUuid(uuid16)
                            .setValue(params.get(obj.getFields()).toString())
                            .setMatnrId(Long.parseLong(params.get("matnrId").toString()))
                            .setFieldsId(obj.getId());
                    fieldsItems.add(item);
                }
                params.put("fieldsIndex", uuid16);
            }
            FieldsItemService fieldsItemService = SpringUtils.getBean(FieldsItemService.class);
            if (!fieldsItemService.saveBatch(fieldsItems)) {
                throw new CoolException("单据明细扩展字段保存失败!!");
            }
        }
        return true;
    }
    /**
     * @author Ryan
     * @description 获取扩展字段key-value值
     * @param
     * @return
     * @time 2025/3/15 15:05
     */
    public static List<Map<String, Object>> getExtendFields(List<Map<String, Object>> params) {
        FieldsService fieldsService = SpringUtils.getBean(FieldsService.class);
        List<Fields> fields = fieldsService.list(new LambdaQueryWrapper<Fields>()
                .eq(Fields::getStatus, 1)
                .eq(Fields::getFlagEnable, 1));
        FieldsItemService fieldsItemService = SpringUtils.getBean(FieldsItemService.class);
        List<Map<String, Object>> result = new ArrayList<>();
        for (Map<String, Object> param : params) {
            result.add(param);
            if (Objects.isNull(param.get("fieldsIndex"))) {
                continue;
            }
            List<FieldsItem> itemList = fieldsItemService
                    .list(new LambdaQueryWrapper<FieldsItem>()
                            .eq(FieldsItem::getUuid, param.get("fieldsIndex")));
            if (itemList.isEmpty()) {
                continue;
            }
            fields.forEach(fds -> {
                for (FieldsItem fieldsItem : itemList) {
                    if (!Objects.isNull(fieldsItem.getFieldsId()) && fieldsItem.getFieldsId().equals(fds.getId())) {
                        param.put(fds.getFields(), fieldsItem.getValue());
                    }
                }
            });
        }
        return result;
    }
}
rsf-server/src/main/java/com/vincent/rsf/server/test/controller/QlyInspectController.java
File was deleted
rsf-server/src/main/java/com/vincent/rsf/server/test/entity/QlyInspect.java
File was deleted
rsf-server/src/main/java/com/vincent/rsf/server/test/mapper/QlyInspectMapper.java
File was deleted
rsf-server/src/main/java/com/vincent/rsf/server/test/service/QlyInspectService.java
File was deleted
rsf-server/src/main/java/com/vincent/rsf/server/test/service/impl/QlyInspectServiceImpl.java
File was deleted
rsf-server/src/main/resources/application.yml
@@ -26,6 +26,7 @@
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    map-underscore-to-camel-case: true
    cache-enabled: true
#    object-wrapper-factory: com.baomidou.mybatisplus.extension.MybatisMapWrapperFactory
  global-config:
    :banner: false
    db-config:
rsf-server/src/main/resources/mapper/manager/AsnOrderItemMapper.xml
@@ -2,4 +2,40 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.vincent.rsf.server.manager.mapper.AsnOrderItemMapper">
    <select id="resultForMap" resultType="java.util.Map">
        SELECT
            id,
            asn_id,
            asn_code,
            plat_item_id,
            po_detl_id,
            po_code,
            fields_index,
            matnr_id,
            matnr_code,
            maktx,
            anfme,
            stock_unit,
            pur_qty,
            pur_unit,
            qty,
            splr_code,
            splr_batch,
            splr_name,
            qrcode,
            track_code,
            barcode,
            pack_name,
            nty_status,
            `status` deleted,
            tenant_id,
            create_by,
            create_time,
            update_by,
            update_time,
            memo
        FROM
            man_asn_order_item
        ${ew.customSqlSegment}
    </select>
</mapper>