lyh
2025-05-29 e63255bf33f3835e99e30efaf3c6a3fc7fc4d1ba
lxzn-module-msi/src/main/java/org/jeecg/modules/msi/webapi/service/impl/MsiWebapiJsonServiceImpl.java
@@ -1,7 +1,8 @@
package org.jeecg.modules.msi.webapi.service.impl;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import liquibase.util.JdbcUtils;
import org.apache.commons.lang3.StringUtils;
import org.jeecg.common.util.DateUtils;
import org.jeecg.modules.msi.webapi.entity.MsiWebapiJsonEntity;
@@ -9,8 +10,15 @@
import org.jeecg.modules.msi.webapi.service.IMsiWebapiJsonService;
import org.jeecg.modules.msi.webapi.vo.DetailedListVo;
import org.jeecg.modules.msi.webapi.vo.MachineEquipentInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DataSourceUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -19,7 +27,14 @@
@Service
public class MsiWebapiJsonServiceImpl extends ServiceImpl<MsiWebapiJsonMapper, MsiWebapiJsonEntity> implements IMsiWebapiJsonService {
    @Autowired
    private JdbcTemplate jdbcTemplate;
    /**
     * 解析单条数据保存到单表
     * @param data
     * @return
     */
    @Override
    public boolean saveTableAutomationOne(List<MachineEquipentInfo> data) {
        if (data ==null || data.isEmpty()) {
@@ -38,9 +53,51 @@
                listParameter.add(parameter);
            }
        }
        //状态数据
        // 执行状态数据SQL
        try {
            executeBatchSql(listStatus);
            executeBatchSql(listParameter);
            return true;
        } catch (Exception e) {
            log.error("执行SQL批量插入失败", e);
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            return false;
        }
    }
        return false;
    /**
     * 批量执行SQL语句
     * @param sqlList SQL语句列表
     * @throws SQLException
     */
    private void executeBatchSql(List<String> sqlList) throws SQLException {
        if (CollectionUtils.isEmpty(sqlList)) {
            return;
        }
        Connection connection = null;
        Statement statement = null;
        try {
            connection = DataSourceUtils.getConnection(jdbcTemplate.getDataSource());
            connection.setAutoCommit(false);
            statement = connection.createStatement();
            for (String sql : sqlList) {
                statement.addBatch(sql);
            }
            statement.executeBatch();
            connection.commit();
        } catch (SQLException e) {
            if (connection != null) {
                connection.rollback();
            }
            throw e;
        } finally {
            JdbcUtils.closeStatement(statement);
            DataSourceUtils.releaseConnection(connection, jdbcTemplate.getDataSource());
        }
    }
@@ -77,43 +134,49 @@
        if (itemMap.containsKey("runningStatus")) {
            sql = sql + "'" + itemMap.get("runningStatus").getItemValue() + "', ";
        } else {
            sql = sql + null + ", ";
            sql = sql + "NULL, ";
        }
        //spindleSpeed
        if (itemMap.containsKey("spindleSpeed")) {
            sql = sql + "'" + itemMap.get("spindleSpeed").getItemValue() + "', ";
        } else {
            sql = sql + null + ", ";
            sql = sql + "NULL, ";
        }
        //feedRatio
        if (itemMap.containsKey("feedRatio")) {
            sql = sql + "'" + itemMap.get("feedRatio").getItemValue() + "', ";
        }else {
            sql = sql + "NULL, ";
        }
        //runDuration
        if (itemMap.containsKey("runDuration")) {
            sql = sql + "'" + itemMap.get("runDuration").getItemValue() + "', ";
        } else {
            sql = sql + null + ", ";
            sql = sql + "NULL, ";
        }
        //spindleDuration
        if (itemMap.containsKey("spindleDuration")) {
            sql = sql + "'" + itemMap.get("spindleDuration").getItemValue() + "', ";
        } else {
            sql = sql + null + ", ";
            sql = sql + "NULL, ";
        }
        //progName
        if (itemMap.containsKey("spindleSpeed")) {
            sql = sql + "'" + itemMap.get("spindleSpeed").getItemValue() + "', ";
        if (itemMap.containsKey("progName")) {  // 修正为 "progName"
            sql = sql + "'" + itemMap.get("progName").getItemValue() + "', ";
        } else {
            sql = sql + null + ", ";
            sql = sql + "NULL, ";
        }
        //progStatus
        if (itemMap.containsKey("progStatus")) {
            sql = sql + "'" + itemMap.get("progStatus").getItemValue() + "', ";
        } else {
            sql = sql + null + ", ";
            sql = sql + "NULL, ";
        }
        //toolNo
        if (itemMap.containsKey("toolNo")) {
            sql = sql + "'" + itemMap.get("toolNo").getItemValue() + "'  ";
            sql = sql + "'" + itemMap.get("toolNo").getItemValue() + "' ";
        } else {
            sql = sql + null;
            sql = sql + "NULL";
        }
        sql = sql + "); \n";