zhanghl
2025-04-21 ca0960aeb3f9af9cf852f98ee70523ff9e85b6f9
工序异常分析:更新零件统计时生成
已添加6个文件
已修改1个文件
561 ■■■■■ 文件已修改
aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsAbnormalProcessAnalysisController.java 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsAbnormalProcessAnalysis.java 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsAbnormalProcessAnalysisMapper.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-core/src/main/java/com/aps/core/service/IApsAbnormalProcessAnalysisService.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsAbnormalProcessAnalysisServiceImpl.java 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPartRouteStatServiceImpl.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-core/src/main/resources/mapper/core/ApsAbnormalProcessAnalysisMapper.xml 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
aps-modules/aps-core/src/main/java/com/aps/core/controller/mainPlan/ApsAbnormalProcessAnalysisController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,100 @@
package com.aps.core.controller.mainPlan;
import com.aps.common.core.utils.poi.ExcelUtil;
import com.aps.common.core.web.controller.BaseController;
import com.aps.common.core.web.domain.AjaxResult;
import com.aps.common.core.web.page.TableDataInfo;
import com.aps.common.log.annotation.Log;
import com.aps.common.log.enums.BusinessType;
import com.aps.common.security.annotation.RequiresPermissions;
import com.aps.core.domain.ApsAbnormalProcessAnalysis;
import com.aps.core.service.IApsAbnormalProcessAnalysisService;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
 * å·¥åºå¼‚常分析Controller
 *
 * @author zhl
 * @date 2025-04-21
 */
@RestController
@RequestMapping("/abnormalProcessAnalysis")
public class ApsAbnormalProcessAnalysisController extends BaseController
{
    @Autowired
    private IApsAbnormalProcessAnalysisService apsAbnormalProcessAnalysisService;
    /**
     * æŸ¥è¯¢å·¥åºå¼‚常分析列表
     */
    /*@RequiresPermissions("abnormalAnalysis:list")*/
    @GetMapping("/list")
    public TableDataInfo list(ApsAbnormalProcessAnalysis apsAbnormalProcessAnalysis)
    {
        startPage();
        List<ApsAbnormalProcessAnalysis> list = apsAbnormalProcessAnalysisService.selectApsAbnormalProcessAnalysisList(apsAbnormalProcessAnalysis);
        return getDataTable(list);
    }
    /**
     * å¯¼å‡ºå·¥åºå¼‚常分析列表
     */
    @RequiresPermissions("abnormalAnalysis:export")
    @Log(title = "工序异常分析", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, ApsAbnormalProcessAnalysis apsAbnormalProcessAnalysis)
    {
        List<ApsAbnormalProcessAnalysis> list = apsAbnormalProcessAnalysisService.selectApsAbnormalProcessAnalysisList(apsAbnormalProcessAnalysis);
        ExcelUtil<ApsAbnormalProcessAnalysis> util = new ExcelUtil<ApsAbnormalProcessAnalysis>(ApsAbnormalProcessAnalysis.class);
        util.exportExcel(response, list, "工序异常分析数据");
    }
    /**
     * èŽ·å–å·¥åºå¼‚å¸¸åˆ†æžè¯¦ç»†ä¿¡æ¯
     */
    @RequiresPermissions("abnormalAnalysis:query")
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id)
    {
        return success(apsAbnormalProcessAnalysisService.selectApsAbnormalProcessAnalysisById(id));
    }
    /**
     * ä¿®æ”¹å·¥åºå¼‚常分析
     */
    @RequiresPermissions("abnormalAnalysis:edit")
    @Log(title = "工序异常分析", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody ApsAbnormalProcessAnalysis apsAbnormalProcessAnalysis)
    {
        return toAjax(apsAbnormalProcessAnalysisService.updateApsAbnormalProcessAnalysis(apsAbnormalProcessAnalysis));
    }
    /**
     * åˆ é™¤å·¥åºå¼‚常分析
     */
    @RequiresPermissions("abnormalAnalysis:remove")
    @Log(title = "工序异常分析", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids)
    {
        return toAjax(apsAbnormalProcessAnalysisService.deleteApsAbnormalProcessAnalysisByIds(ids));
    }
    /**
     * æ–°å¢žå·¥åºå¼‚常分析
     */
    /*@RequiresPermissions("abnormalAnalysis:add")*/
    @Log(title = "工序异常分析", businessType = BusinessType.INSERT)
    @PostMapping("/generator")
    public AjaxResult generatorAbnormalInfo()
    {
        apsAbnormalProcessAnalysisService.batchSaveAbnormalInfo();
        return toAjax(true);
    }
}
aps-modules/aps-core/src/main/java/com/aps/core/domain/ApsAbnormalProcessAnalysis.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,98 @@
package com.aps.core.domain;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.aps.common.core.annotation.Excel;
import com.aps.common.core.web.domain.BaseEntity;
/**
 * å·¥åºå¼‚常分析对象 aps_abnormal_process_analysis
 *
 * @author zhl
 * @date 2025-04-21
 */
public class ApsAbnormalProcessAnalysis extends BaseEntity
{
    private static final long serialVersionUID = 1L;
    /** id */
    private Long id;
    /** å·¥åºåç§° */
    @Excel(name = "工序名称")
    private String processName;
    /** å¼‚常来源 */
    @Excel(name = "异常来源")
    private String source;
    /** å¼‚常描述 */
    @Excel(name = "异常描述")
    private String summary;
    /** æ˜¯å¦åˆ é™¤ */
    private String delFlag;
    public void setId(Long id)
    {
        this.id = id;
    }
    public Long getId()
    {
        return id;
    }
    public void setProcessName(String processName)
    {
        this.processName = processName;
    }
    public String getProcessName()
    {
        return processName;
    }
    public void setSource(String source)
    {
        this.source = source;
    }
    public String getSource()
    {
        return source;
    }
    public void setSummary(String summary)
    {
        this.summary = summary;
    }
    public String getSummary()
    {
        return summary;
    }
    public void setDelFlag(String delFlag)
    {
        this.delFlag = delFlag;
    }
    public String getDelFlag()
    {
        return delFlag;
    }
    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("processName", getProcessName())
            .append("source", getSource())
            .append("summary", getSummary())
            .append("createTime", getCreateTime())
            .append("delFlag", getDelFlag())
            .append("createBy", getCreateBy())
            .toString();
    }
}
aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsAbnormalProcessAnalysisMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,77 @@
package com.aps.core.mapper;
import java.util.List;
import com.aps.core.domain.ApsAbnormalProcessAnalysis;
import org.apache.ibatis.annotations.Mapper;
/**
 * å·¥åºå¼‚常分析Mapper接口
 *
 * @author zhl
 * @date 2025-04-21
 */
@Mapper
public interface ApsAbnormalProcessAnalysisMapper
{
    /**
     * æŸ¥è¯¢å·¥åºå¼‚常分析
     *
     * @param id å·¥åºå¼‚常分析主键
     * @return å·¥åºå¼‚常分析
     */
    public ApsAbnormalProcessAnalysis selectApsAbnormalProcessAnalysisById(Long id);
    /**
     * æŸ¥è¯¢å·¥åºå¼‚常分析列表
     *
     * @param apsAbnormalProcessAnalysis å·¥åºå¼‚常分析
     * @return å·¥åºå¼‚常分析集合
     */
    public List<ApsAbnormalProcessAnalysis> selectApsAbnormalProcessAnalysisList(ApsAbnormalProcessAnalysis apsAbnormalProcessAnalysis);
    /**
     * æ–°å¢žå·¥åºå¼‚常分析
     *
     * @param apsAbnormalProcessAnalysis å·¥åºå¼‚常分析
     * @return ç»“æžœ
     */
    public int insertApsAbnormalProcessAnalysis(ApsAbnormalProcessAnalysis apsAbnormalProcessAnalysis);
    /**
     * ä¿®æ”¹å·¥åºå¼‚常分析
     *
     * @param apsAbnormalProcessAnalysis å·¥åºå¼‚常分析
     * @return ç»“æžœ
     */
    public int updateApsAbnormalProcessAnalysis(ApsAbnormalProcessAnalysis apsAbnormalProcessAnalysis);
    /**
     * åˆ é™¤å·¥åºå¼‚常分析
     *
     * @param id å·¥åºå¼‚常分析主键
     * @return ç»“æžœ
     */
    public int deleteApsAbnormalProcessAnalysisById(Long id);
    /**
     * æ‰¹é‡åˆ é™¤å·¥åºå¼‚常分析
     *
     * @param ids éœ€è¦åˆ é™¤çš„æ•°æ®ä¸»é”®é›†åˆ
     * @return ç»“æžœ
     */
    public int deleteApsAbnormalProcessAnalysisByIds(Long[] ids);
    /**
     * é€šè¿‡ç»Ÿè®¡è¡¨èŽ·å–å¼‚å¸¸ä¿¡æ¯
     * */
    List<ApsAbnormalProcessAnalysis> selectAbnormalInfoFromStat();
    /**
     * æ‰¹é‡æ’入异常信息
     * */
    int batchSaveAbnormalInfo(List<ApsAbnormalProcessAnalysis> list);
    /*
    * æ‰¹é‡åˆ é™¤æ•°æ®
    * */
    int batchRemoveAbnormalInfo();
}
aps-modules/aps-core/src/main/java/com/aps/core/service/IApsAbnormalProcessAnalysisService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,63 @@
package com.aps.core.service;
import java.util.List;
import com.aps.core.domain.ApsAbnormalProcessAnalysis;
/**
 * å·¥åºå¼‚常分析Service接口
 *
 * @author zhl
 * @date 2025-04-21
 */
public interface IApsAbnormalProcessAnalysisService
{
    /**
     * æŸ¥è¯¢å·¥åºå¼‚常分析
     *
     * @param id å·¥åºå¼‚常分析主键
     * @return å·¥åºå¼‚常分析
     */
    public ApsAbnormalProcessAnalysis selectApsAbnormalProcessAnalysisById(Long id);
    /**
     * æŸ¥è¯¢å·¥åºå¼‚常分析列表
     *
     * @param apsAbnormalProcessAnalysis å·¥åºå¼‚常分析
     * @return å·¥åºå¼‚常分析集合
     */
    public List<ApsAbnormalProcessAnalysis> selectApsAbnormalProcessAnalysisList(ApsAbnormalProcessAnalysis apsAbnormalProcessAnalysis);
    /**
     * æ–°å¢žå·¥åºå¼‚常分析
     *
     * @param apsAbnormalProcessAnalysis å·¥åºå¼‚常分析
     * @return ç»“æžœ
     */
    public int insertApsAbnormalProcessAnalysis(ApsAbnormalProcessAnalysis apsAbnormalProcessAnalysis);
    /**
     * ä¿®æ”¹å·¥åºå¼‚常分析
     *
     * @param apsAbnormalProcessAnalysis å·¥åºå¼‚常分析
     * @return ç»“æžœ
     */
    public int updateApsAbnormalProcessAnalysis(ApsAbnormalProcessAnalysis apsAbnormalProcessAnalysis);
    /**
     * æ‰¹é‡åˆ é™¤å·¥åºå¼‚常分析
     *
     * @param ids éœ€è¦åˆ é™¤çš„工序异常分析主键集合
     * @return ç»“æžœ
     */
    public int deleteApsAbnormalProcessAnalysisByIds(Long[] ids);
    /**
     * åˆ é™¤å·¥åºå¼‚常分析信息
     *
     * @param id å·¥åºå¼‚常分析主键
     * @return ç»“æžœ
     */
    public int deleteApsAbnormalProcessAnalysisById(Long id);
    int batchSaveAbnormalInfo();
}
aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsAbnormalProcessAnalysisServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,113 @@
package com.aps.core.service.impl;
import java.util.List;
import com.aps.common.core.utils.DateUtils;
import com.aps.common.security.utils.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.aps.core.mapper.ApsAbnormalProcessAnalysisMapper;
import com.aps.core.domain.ApsAbnormalProcessAnalysis;
import com.aps.core.service.IApsAbnormalProcessAnalysisService;
import org.springframework.transaction.annotation.Transactional;
/**
 * å·¥åºå¼‚常分析Service业务层处理
 *
 * @author zhl
 * @date 2025-04-21
 */
@Service
public class ApsAbnormalProcessAnalysisServiceImpl implements IApsAbnormalProcessAnalysisService {
    @Autowired
    private ApsAbnormalProcessAnalysisMapper apsAbnormalProcessAnalysisMapper;
    /**
     * æŸ¥è¯¢å·¥åºå¼‚常分析
     *
     * @param id å·¥åºå¼‚常分析主键
     * @return å·¥åºå¼‚常分析
     */
    @Override
    public ApsAbnormalProcessAnalysis selectApsAbnormalProcessAnalysisById(Long id) {
        return apsAbnormalProcessAnalysisMapper.selectApsAbnormalProcessAnalysisById(id);
    }
    /**
     * æŸ¥è¯¢å·¥åºå¼‚常分析列表
     *
     * @param apsAbnormalProcessAnalysis å·¥åºå¼‚常分析
     * @return å·¥åºå¼‚常分析
     */
    @Override
    public List<ApsAbnormalProcessAnalysis> selectApsAbnormalProcessAnalysisList(ApsAbnormalProcessAnalysis apsAbnormalProcessAnalysis) {
        return apsAbnormalProcessAnalysisMapper.selectApsAbnormalProcessAnalysisList(apsAbnormalProcessAnalysis);
    }
    /**
     * æ–°å¢žå·¥åºå¼‚常分析
     *
     * @param apsAbnormalProcessAnalysis å·¥åºå¼‚常分析
     * @return ç»“æžœ
     */
    @Override
    public int insertApsAbnormalProcessAnalysis(ApsAbnormalProcessAnalysis apsAbnormalProcessAnalysis) {
        apsAbnormalProcessAnalysis.setCreateTime(DateUtils.getNowDate());
        return apsAbnormalProcessAnalysisMapper.insertApsAbnormalProcessAnalysis(apsAbnormalProcessAnalysis);
    }
    /**
     * ä¿®æ”¹å·¥åºå¼‚常分析
     *
     * @param apsAbnormalProcessAnalysis å·¥åºå¼‚常分析
     * @return ç»“æžœ
     */
    @Override
    public int updateApsAbnormalProcessAnalysis(ApsAbnormalProcessAnalysis apsAbnormalProcessAnalysis) {
        return apsAbnormalProcessAnalysisMapper.updateApsAbnormalProcessAnalysis(apsAbnormalProcessAnalysis);
    }
    /**
     * æ‰¹é‡åˆ é™¤å·¥åºå¼‚常分析
     *
     * @param ids éœ€è¦åˆ é™¤çš„工序异常分析主键
     * @return ç»“æžœ
     */
    @Override
    public int deleteApsAbnormalProcessAnalysisByIds(Long[] ids) {
        return apsAbnormalProcessAnalysisMapper.deleteApsAbnormalProcessAnalysisByIds(ids);
    }
    /**
     * åˆ é™¤å·¥åºå¼‚常分析信息
     *
     * @param id å·¥åºå¼‚常分析主键
     * @return ç»“æžœ
     */
    @Override
    public int deleteApsAbnormalProcessAnalysisById(Long id) {
        return apsAbnormalProcessAnalysisMapper.deleteApsAbnormalProcessAnalysisById(id);
    }
    /**
     * æœ¬æ–¹æ³•用于从数据库中选择异常信息,并批量保存这些信息
     * ä¸»è¦ç›®çš„æ˜¯å¤„理异常信息的批量保存,以提高数据处理效率
     */
    @Transactional
    @Override
    public int batchSaveAbnormalInfo() {
        String username = SecurityUtils.getUsername();
        /*先删除旧数据*/
        apsAbnormalProcessAnalysisMapper.batchRemoveAbnormalInfo();
        // é€‰æ‹©æ•°æ®åº“中的异常信息
        List<ApsAbnormalProcessAnalysis> list = apsAbnormalProcessAnalysisMapper.selectAbnormalInfoFromStat();
        // æ‰¹é‡ä¿å­˜é€‰ä¸­çš„异常信息
        if (!list.isEmpty()) {
            //遍历list æ›´æ–° æ¯æ¡è®°å½•çš„ create_by å­—段
            list.forEach(item -> item.setCreateBy(username));
            apsAbnormalProcessAnalysisMapper.batchSaveAbnormalInfo(list);
        }
        return list.size();
    }
}
aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPartRouteStatServiceImpl.java
@@ -15,12 +15,16 @@
import com.aps.core.domain.ApsPartPlan;
import com.aps.core.domain.ApsResourceDateStat;
import com.aps.core.domain.ApsResourceGroup;
import com.aps.core.mapper.ApsAbnormalProcessAnalysisMapper;
import com.aps.core.mapper.ApsResourceGroupMapper;
import com.aps.core.service.IApsAbnormalProcessAnalysisService;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletResponse;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.util.IOUtils;
import org.apache.poi.util.Removal;
import org.apache.poi.xssf.streaming.SXSSFCell;
import org.apache.poi.xssf.streaming.SXSSFRow;
import org.apache.poi.xssf.streaming.SXSSFSheet;
@@ -51,6 +55,9 @@
    private ApsResourceGroupMapper resourceGroupMapper;
    @Autowired
    private ApsResourceGroupMapper apsResourceGroupMapper;
    @Resource
    private IApsAbnormalProcessAnalysisService analysisService;
    /**
     * æŸ¥è¯¢é›¶ä»¶ç»Ÿè®¡è¡¨
@@ -172,6 +179,8 @@
            }
        }
        apsPartRouteStatMapper.deleteLastBatch(batchNum);
        /*计算并保存 å·¥åºå¼‚常信息*/
        analysisService.batchSaveAbnormalInfo();
    }
    /** æŸ¥è¯¢èµ„源日历表
     */
aps-modules/aps-core/src/main/resources/mapper/core/ApsAbnormalProcessAnalysisMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,101 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.aps.core.mapper.ApsAbnormalProcessAnalysisMapper">
    <resultMap type="ApsAbnormalProcessAnalysis" id="ApsAbnormalProcessAnalysisResult">
        <result property="id"    column="id"    />
        <result property="processName"    column="process_name"    />
        <result property="source"    column="source"    />
        <result property="summary"    column="summary"    />
        <result property="createTime"    column="create_time"    />
        <result property="delFlag"    column="del_flag"    />
        <result property="createBy"    column="create_by"    />
    </resultMap>
    <sql id="selectApsAbnormalProcessAnalysisVo">
        select id, process_name, source, summary, create_time, del_flag, create_by from aps_abnormal_process_analysis
    </sql>
    <select id="selectApsAbnormalProcessAnalysisList" parameterType="ApsAbnormalProcessAnalysis" resultMap="ApsAbnormalProcessAnalysisResult">
        <include refid="selectApsAbnormalProcessAnalysisVo"/>
        <where>
            and del_flag = '0'
            <if test="processName != null  and processName != ''"> and process_name like concat('%', #{processName}, '%')</if>
            <if test="source != null  and source != ''"> and source = #{source}</if>
            <if test="summary != null  and summary != ''"> and summary like concat('%', #{summary}, '%')</if>
        </where>
    </select>
    <select id="selectApsAbnormalProcessAnalysisById" parameterType="Long" resultMap="ApsAbnormalProcessAnalysisResult">
        <include refid="selectApsAbnormalProcessAnalysisVo"/>
        where id = #{id}
    </select>
    <insert id="insertApsAbnormalProcessAnalysis" parameterType="ApsAbnormalProcessAnalysis" useGeneratedKeys="true" keyProperty="id">
        insert into aps_abnormal_process_analysis
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="processName != null">process_name,</if>
            <if test="source != null">source,</if>
            <if test="summary != null">summary,</if>
            <if test="createTime != null">create_time,</if>
            <if test="delFlag != null">del_flag,</if>
            <if test="createBy != null">create_by,</if>
         </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="processName != null">#{processName},</if>
            <if test="source != null">#{source},</if>
            <if test="summary != null">#{summary},</if>
            <if test="createTime != null">#{createTime},</if>
            <if test="delFlag != null">#{delFlag},</if>
            <if test="createBy != null">#{createBy},</if>
         </trim>
    </insert>
    <update id="updateApsAbnormalProcessAnalysis" parameterType="ApsAbnormalProcessAnalysis">
        update aps_abnormal_process_analysis
        <trim prefix="SET" suffixOverrides=",">
            <if test="processName != null">process_name = #{processName},</if>
            <if test="source != null">source = #{source},</if>
            <if test="summary != null">summary = #{summary},</if>
            <if test="createTime != null">create_time = #{createTime},</if>
            <if test="delFlag != null">del_flag = #{delFlag},</if>
            <if test="createBy != null">create_by = #{createBy},</if>
        </trim>
        where id = #{id}
    </update>
    <delete id="deleteApsAbnormalProcessAnalysisById" parameterType="Long">
        delete from aps_abnormal_process_analysis where id = #{id}
    </delete>
    <delete id="deleteApsAbnormalProcessAnalysisByIds" parameterType="String">
        delete from aps_abnormal_process_analysis where id in
        <foreach item="id" collection="array" open="(" separator="," close=")">
            #{id}
        </foreach>
    </delete>
    <select id="selectAbnormalInfoFromStat" resultMap="ApsAbnormalProcessAnalysisResult">
        select distinct resource_group_name as process_name, '零件' as source, '工序与资源组不匹配' as summary, now() as create_time,'0' as del_flag
        from aps_part_route_stat as aprs
        where aprs.del_flag='0'
          and  aprs.resource_group_name not in (select  resource_group_name from  aps_resource_group  as arg where arg.del_flag='0')
        order by resource_group_name;
    </select>
    <!--批量插入信息-->
    <insert id="batchSaveAbnormalInfo" parameterType="ApsAbnormalProcessAnalysis">
        insert into aps_abnormal_process_analysis(process_name,source,summary,create_time,del_flag,create_by)
        values
        <foreach collection="list" item="item" index="index" separator=",">
            (#{item.processName},#{item.source},#{item.summary},#{item.createTime},#{item.delFlag},#{item.createBy})
        </foreach>
    </insert>
    <!--批量将aps_abnormal_process_analysis表内del_flag=0的数据更新为 del_flag=1-->
    <update id="batchRemoveAbnormalInfo">
        update aps_abnormal_process_analysis set del_flag='1' where del_flag='0'
    </update>
</mapper>