Java Spring 批量修改,实体、接口、方法的定义

参数类型:

javascript 复制代码
{"ids":["2085247882935402496"],"VehicleType":"快递"}

Controller.java 接口层

java 复制代码
     @Resource
    private Tj0OutboundJobTaskService tj0OutboundJobTaskService;

/**
     * 批量更新车辆类型
     * Author:Bingo
     * Date:2023-08-10
     * @param reqParam
     * @return
     */
    @PostMapping({"/batchUpdateVehicleType"})
    public Result batchUpdateVehicleType(@RequestBody Map reqParam) {
        return tj0OutboundJobTaskService.batchUpdateVehicleType(reqParam);
    }

service 接口层

java 复制代码
    /**
     * 批量更新车辆类型
     * @param reqParam
     * @return
     */
    Result batchUpdateVehicleType(Map reqParam);

impl 实现层

OutBoundJobTaskExec.java

java 复制代码
/**
     * 批量更新车辆类型
     *
     * @param reqParam 请求参数,包含 ids(其他出库单ID列表)和 VehicleType(车辆类型)
     * @return 操作结果
     * @author Bingo
     * @date 2026-08-19
     */
    @Transactional(rollbackOn = Exception.class)
    public Result batchUpdateVehicleType(Map reqParam) {
        try {
            List<String> ids = (List<String>) reqParam.get("ids");
            String vehicleType = (String) reqParam.get("VehicleType");

            if (ids == null || ids.isEmpty()) {
                return Result.error("出库单ID列表不能为空");
            }
            if (StrUtil.isBlank(vehicleType)) {
                return Result.error("车辆类型不能为空");
            }

            List<Long> idList = ids.stream().map(Long::parseLong).collect(Collectors.toList());
            List<OtherOutboundOrder> orderList = otherOutboundOrderRepository.findByIds(OtherOutboundOrder.class, idList);

            if (CollectionUtil.isEmpty(orderList)) {
                return Result.error("未找到对应的出库单数据");
            }

            for (OtherOutboundOrder order : orderList) {
                order.setTj0VehicleType(vehicleType);
            }

            otherOutboundOrderRepository.updateBatch(orderList);

            return Result.success("更新成功,共更新" + orderList.size() + "条记录");
        } catch (Exception e) {
            logger.error("批量更新车辆类型失败", e);
            return Result.error("批量更新车辆类型失败:" + e.getMessage());
        }
    }

表实体定义

java 复制代码
package com.nancal.wms.entity;

import com.nancal.base.bean.entity.ManufacturingActivity;
import lombok.Data;
import javax.persistence.*;
import java.time.LocalDate;
import java.time.LocalDateTime;

@Data
@Entity
@Table(name = "whs_mat_recod")
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public class WhsMatRecod extends ManufacturingActivity {

    /**
     * 智库操作人
     */
    @Column(name = "tj0IwmsOperator")
    private String tj0IwmsOperator;
    private String storeName;
    /**
     * SAP过账结果
     */
    private String tj0SapMBLNR;
    @Column(name = "tj0storeType")
    private String tj0storeType;//库房类型
    @Column(name = "revision")
    private String revision; 
    @Column(name = "bussiness_type")
    private String bussinessType;
    @Transient
    private String displayIvtTrTyName;
    @Transient
    private String displayOperator;
    @Transient
    private String displayStore;
    @Transient
    private String displayUnitName;

    public WhsMatRecod() {
    }

    public String toString() {
        String var10000 = this.getRevision();
        return "WhsMatRecod(revision=" + var10000 + ", matEffectiveDate=" + this.getMatEffectiveDate() + ", materialTyId=" + this.getMaterialTyId() + ", agentSeqMgts=" + this.getAgentSeqMgts() + ", batchNumber=" + this.getBatchNumber() + ", cntnCode=" + this.getCntnCode() + ", externalBatchNumber=" + this.getExternalBatchNumber() + ", ivtTrTyId=" + this.getIvtTrTyId() + ", materialAgentId=" + this.getMaterialAgentId() + ", materialClassName=" + this.getMaterialClassName() + ", materialCode=" + this.getMaterialCode() + ", materialDepict=" + this.getMaterialDepict() + ", materialId=" + this.getMaterialId() + ", materialLedgerId=" + this.getMaterialLedgerId() + ", operateQuantity=" + this.getOperateQuantity() + ", operateTime=" + this.getOperateTime() + ", operateType=" + this.getOperateType() + ", operator=" + this.getOperator() + ", orderNumber=" + this.getOrderNumber() + ", productDraw=" + this.getProductDraw() + ", relatedOrderNumber=" + this.getRelatedOrderNumber() + ", specificationType=" + this.getSpecificationType() + ", storeId=" + this.getStoreId() + ", supplier=" + this.getSupplier() + ", supplierId=" + this.getSupplierId() + ", unit=" + this.getUnit() + ", displayIvtTrTyName=" + this.getDisplayIvtTrTyName() + ", displayOperator=" + this.getDisplayOperator() + ", displayStore=" + this.getDisplayStore() + ", displayUnitName=" + this.getDisplayUnitName() + ")";
    }
}
相关推荐
Flynn Liang10 小时前
AI 应用的安全红线:Spring AI 下的 Prompt 注入防护、PII 脱敏、输出审计与密钥管理
人工智能·安全·spring·数据泄露·springai·prompt注入
QCoding10 小时前
企业级Agent Evaluation实战:Agent能跑就能上线?AI Agent到底怎么测?
后端·spring
海的透彻10 小时前
dockerfile如何快速构建容器(java服务)
java·开发语言
code2cat11 小时前
Java工具篇之Gradle:用任务图组织构建与交付
java·开发语言·单元测试·gradle
后台模板学习11 小时前
大模型 Prompt 工程在电商订单系统中的踩坑记录
java·python·prompt
w_zero_one11 小时前
算法--构造
java·数据结构·算法
SL_staff12 小时前
制造业订单交付崩盘?用四层协同框架重建交付可信度(技术实践)
java·产品·全栈
SL_staff12 小时前
打破风控迭代死循环:用决策编排重构业务与技术协作链路
java·产品·全栈
Mikko713 小时前
Redis 连接数满了服务端有错误信息吗?连接数不增加却命令超时?6.2 实测连接池、超时与大 key 怎么判定
java·spring boot·redis·后端
.Bryce.13 小时前
从零到一开发技术名词大全:从需求分析到 AI Agent 工程
java·网络·人工智能·agent·需求分析·agent评测