dengzedong
5 天以前 90a1495b9d765c9e1d48f689dbcf977cbdb2768e
模型结果修改为存在唯一索引则修改,不存在插入。避免死锁问题
已修改3个文件
29 ■■■■■ 文件已修改
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmItemResultDao.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmItemResultServiceImpl.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/MmItemResultDao.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/dao/MmItemResultDao.java
@@ -4,7 +4,9 @@
import com.iailab.framework.tenant.core.db.dynamic.TenantDS;
import com.iailab.module.model.mcs.pre.entity.MmItemResultEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
@@ -19,5 +21,7 @@
    void savePredictValue(Map<String, Object> params);
    void saveOrUpdateItemResult(@Param("list") List<MmItemResultEntity> list);
    void savePredictJsonValue(Map<String, Object> params);
}
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/pre/service/impl/MmItemResultServiceImpl.java
@@ -15,8 +15,6 @@
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@@ -85,14 +83,15 @@
            map4.put("entity", resultJson);
            mmItemResultDao.savePredictJsonValue(map4);
            Map<String, Object> params = new HashMap(4);
            params.put("TABLENAME", T_MM_ITEM_RESULT);
            params.put("OUTPUTID", entry.getKey());
            params.put("STARTTIME", importList.get(0).getDatatime());
            params.put("ENDTIME", importList.get(importList.size() - 1).getDatatime());
            mmItemResultDao.deletePredictValue(params);
//            Map<String, Object> params = new HashMap(4);
//            params.put("TABLENAME", T_MM_ITEM_RESULT);
//            params.put("OUTPUTID", entry.getKey());
//            params.put("STARTTIME", importList.get(0).getDatatime());
//            params.put("ENDTIME", importList.get(importList.size() - 1).getDatatime());
//            mmItemResultDao.deletePredictValue(params);
        }
        mmItemResultDao.insertBatch(importList,max_group_count);
        // 存在则修改,不存在插入
        mmItemResultDao.saveOrUpdateItemResult(importList);
        Map<String, Object> map3 = new HashMap<>(2);
        map3.put("TABLENAME", "T_MM_ITEM_RESULT_LAST_POINT");
iailab-module-model/iailab-module-model-biz/src/main/resources/mapper/mcs/MmItemResultDao.xml
@@ -28,5 +28,13 @@
        VALUES (#{entity.id},#{entity.outputid},#{entity.predicttime},#{entity.jsonvalue},#{entity.cumulant})
    </insert>
    <insert id="saveOrUpdateItemResult" parameterType="com.iailab.module.model.mcs.pre.entity.MmItemResultEntity">
        INSERT INTO t_mm_item_result (id,outputid, datatime, datavalue) VALUES
        <foreach item="item" collection="list" separator=",">
            (#{item.id},#{item.outputid},#{item.datatime},#{item.datavalue})
        </foreach>
            ON DUPLICATE KEY UPDATE datavalue = VALUES(datavalue)
    </insert>
</mapper>