1.合格率统计逻辑调整;2.不合格处理:新增问题类型字段;3.对接企业微信配置调整;4.班次:新增删除排班操作
已修改11个文件
317 ■■■■ 文件已修改
inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/mapper/DataAnalysisMapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsUnqualifiedHandler.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/vo/InsOrderPlanVO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/mapper/DataAnalysisMapper.xml 269 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/mapper/InsSampleMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/mapper/InsUnqualifiedHandlerMapper.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/ruoyi/performance/controller/PerformanceShiftController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/ruoyi/performance/service/PerformanceShiftService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
performance-server/src/main/java/com/ruoyi/performance/service/impl/PerformanceShiftServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/utils/WxCpUtils.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderController.java
@@ -54,7 +54,7 @@
    //获取检验下单数据
    @ApiOperation(value = "查询单位检验单")
    @GetMapping("/selectInsOrderParameter")
    public Result selectInsOrderParameter(Page page, SampleOrderDto sampleOrderDto) throws Exception {
    public Result selectInsOrderParameter(Page page, SampleOrderDto sampleOrderDto) {
        return Result.success(insOrderService.selectInsOrderParameter(page, sampleOrderDto));
    }
inspect-server/src/main/java/com/ruoyi/inspect/mapper/DataAnalysisMapper.java
@@ -20,13 +20,6 @@
public interface DataAnalysisMapper {
    /**
     * 获取本周的物料属性信息
     *
     * @return
     */
    List<Map<String, Object>> getRawPassRateByBarChartByWeek(@Param("dto") DataAnalysisDto dataAnalysisDto);
    /**
     * 获取本月的物料属性信息
     *
     * @return
inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsUnqualifiedHandler.java
@@ -146,4 +146,10 @@
    @ApiModelProperty("分组id")
    private String groupId;
    /**
     * 问题类型
     */
    @ApiModelProperty("问题类型")
    private String issueType;
}
inspect-server/src/main/java/com/ruoyi/inspect/vo/InsOrderPlanVO.java
@@ -34,7 +34,7 @@
    private String orderType;
    @ApiModelProperty("状态")
    private String insState;
    private Integer insState;
    @ApiModelProperty("检验人")
    private String userName;
inspect-server/src/main/resources/mapper/DataAnalysisMapper.xml
@@ -2,66 +2,6 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.ruoyi.inspect.mapper.DataAnalysisMapper">
    <!-- 获取本周的物料属性信息 -->
    <select id="getRawPassRateByBarChartByWeek" resultType="java.util.Map">
        WITH RECURSIVE AllWeeks AS (
        SELECT 1 AS week
        UNION ALL
        SELECT week + 1 FROM AllWeeks WHERE week &lt; 7
        )
        SELECT
        COALESCE(sub.qualified, 0) AS qualified,
        COALESCE(sub.unQualified, 0) AS unQualified,
        CASE am.week
        WHEN 1 THEN '星期日'
        WHEN 2 THEN '星期一'
        WHEN 3 THEN '星期二'
        WHEN 4 THEN '星期三'
        WHEN 5 THEN '星期四'
        WHEN 6 THEN '星期五'
        WHEN 7 THEN '星期六'
        END AS searchTime
        FROM AllWeeks am
        LEFT JOIN (
        SELECT
        DAYOFWEEK(io1.send_time) AS week,
        SUM(CASE WHEN iiq.inspect_status = 1 THEN 1 ELSE 0 END) AS qualified,
        SUM(CASE WHEN iiq.inspect_status = 2 or iiq.inspect_status = 4 THEN 1 ELSE 0 END) AS unQualified
        FROM ifs_inventory_quantity iiq
        INNER JOIN ins_order io1
        ON io1.ifs_inventory_id = iiq.id
        LEFT JOIN (
        SELECT ins_order_id, MAX(sample) AS sample, MAX(model) AS model
        FROM ins_sample
        GROUP BY ins_order_id
        ) ins ON ins.ins_order_id = io1.id
        WHERE
        iiq.is_finish = 1
        AND iiq.inspect_status IN (1, 2,4)
        AND io1.order_type = #{dto.orderType}
        AND io1.state != -1
        AND io1.send_time BETWEEN #{dto.beginDate} AND #{dto.endDate}
        <if test="dto.materialProp != null and dto.materialProp.trim() != ''">
            AND IFNULL(iiq.material_prop,'') LIKE CONCAT('%',#{dto.materialProp},'%')
        </if>
        <if test="dto.sampleName != null and dto.sampleName.trim() != ''">
            AND IFNULL(ins.sample,'') LIKE CONCAT('%',#{dto.sampleName},'%')
        </if>
        <if test="dto.modelName != null and dto.modelName.trim() != ''">
            AND IFNULL(ins.model,'') LIKE CONCAT('%',#{dto.modelName},'%')
        </if>
        <if test="dto.supplierName != null and dto.supplierName.trim() != ''">
            AND IFNULL(iiq.supplier_name,'') LIKE CONCAT('%',#{dto.supplierName},'%')
        </if>
        GROUP BY DAYOFWEEK(io1.send_time)
        ) sub ON am.week = sub.week
        ORDER BY am.week
    </select>
    <!-- 获取本月的物料属性信息 -->
    <!-- 获取本月的物料属性信息(按天,补全日期) -->
    <select id="getRawPassRateByBarChartByDay" resultType="java.util.Map">
@@ -83,23 +23,27 @@
        FROM AllDays ad
        LEFT JOIN (
        SELECT
        DATE(io1.send_time) AS day,
        DATE(report_time) AS day,
        COUNT(*) AS total,
        SUM(CASE WHEN iiq.inspect_status = 1 and (iuh.id is null) THEN 1 ELSE 0 END) AS qualified,
        SUM(CASE WHEN iiq.inspect_status != 1 or (iuh.id is not null) THEN 1 ELSE 0 END) AS unQualified
        SUM(CASE WHEN inspect_status = 1 and (iuh_id is null) THEN 1 ELSE 0 END) AS qualified,
        SUM(CASE WHEN inspect_status != 1 or (iuh_id is not null) THEN 1 ELSE 0 END) AS unQualified
        FROM (SELECT
        IFNULL(iuh.feedback_time,io1.send_time) report_time,
        iuh.id AS iuh_id,
        iiq.inspect_status
        FROM ifs_inventory_quantity iiq
        LEFT JOIN ins_order io1
        ON io1.ifs_inventory_id = iiq.id
        AND io1.order_type = #{dto.orderType}
        AND io1.state != -1
        AND io1.send_time BETWEEN #{dto.beginDate} AND #{dto.endDate}
        LEFT JOIN (
            SELECT
                MAX(iuh.id) AS id,
                iuh.inventory_quantity_id
            FROM ins_unqualified_handler iuh
            WHERE iuh.oa_state !=4 AND iuh.oa_state is not null
            GROUP BY iuh.inventory_quantity_id
        SELECT
        MAX(iuh.id) AS id,
        iuh.inventory_quantity_id,
        iuh.feedback_time
        FROM ins_unqualified_handler iuh
        WHERE iuh.oa_state !=4 AND iuh.oa_state is not null
        GROUP BY iuh.inventory_quantity_id
        ) iuh ON iiq.id = iuh.inventory_quantity_id
        LEFT JOIN (
        SELECT ins_order_id, MAX(sample) AS sample, MAX(model) AS model
@@ -109,9 +53,9 @@
        WHERE
        iiq.is_finish = 1
        AND iiq.inspect_status IN (1,2,4)
        AND IFNULL(iuh.feedback_time,io1.send_time) BETWEEN #{dto.beginDate} AND #{dto.endDate}
        <if test="dto.materialProp != null and dto.materialProp != ''">
            AND IFNULL(iiq.material_prop,'') LIKE CONCAT('%',#{dto.materialProp},'%')
            AND iiq.material_prop = #{dto.materialProp}
        </if>
        <if test="dto.sampleName != null and dto.sampleName != ''">
            AND IFNULL(ins.sample,'') LIKE CONCAT('%',#{dto.sampleName},'%')
@@ -123,9 +67,9 @@
            AND IFNULL(iiq.supplier_name,'') LIKE CONCAT('%',#{dto.supplierName},'%')
        </if>
        <if test="dto.contract != null and dto.contract != ''">
            AND IFNULL(iiq.contract,'') = #{dto.contract}
        </if>
        GROUP BY DATE(io1.send_time)
            AND iiq.contract = #{dto.contract}
        </if>)temp
        GROUP BY day
        ) sub ON ad.day = sub.day
        ORDER BY ad.day
    </select>
@@ -165,23 +109,28 @@
        FROM AllMonths am
        LEFT JOIN (
        SELECT
        MONTH(io1.send_time) AS month,
        COUNT(*) AS total,
        SUM(CASE WHEN iiq.inspect_status = 1 and (iuh.id is null) THEN 1 ELSE 0 END) AS qualified,
        SUM(CASE WHEN iiq.inspect_status != 1 or (iuh.id is not null) THEN 1 ELSE 0 END) AS unQualified
            MONTH(report_time) AS month,
            COUNT(*) AS total,
            SUM(CASE WHEN inspect_status = 1 and (iuh_id is null) THEN 1 ELSE 0 END) AS qualified,
            SUM(CASE WHEN inspect_status != 1 or (iuh_id is not null) THEN 1 ELSE 0 END) AS unQualified
        FROM (
        SELECT
        IFNULL(iuh.feedback_time,io1.send_time) report_time,
        iuh.id AS iuh_id,
        iiq.inspect_status
        FROM ifs_inventory_quantity iiq
        LEFT JOIN ins_order io1
        ON io1.ifs_inventory_id = iiq.id
        AND io1.order_type = #{dto.orderType}
        AND io1.state != -1
        AND io1.send_time BETWEEN #{dto.beginDate} AND #{dto.endDate}
        LEFT JOIN (
            SELECT
            MAX(iuh.id) AS id,
            iuh.inventory_quantity_id
            FROM ins_unqualified_handler iuh
            WHERE iuh.oa_state !=4 AND iuh.oa_state is not null
            GROUP BY iuh.inventory_quantity_id
        SELECT
        MAX(iuh.id) AS id,
        iuh.inventory_quantity_id,
        iuh.feedback_time
        FROM ins_unqualified_handler iuh
        WHERE iuh.oa_state !=4 AND iuh.oa_state is not null
        GROUP BY iuh.inventory_quantity_id
        ) iuh ON iiq.id = iuh.inventory_quantity_id
        LEFT JOIN (
        SELECT ins_order_id, MAX(sample) AS sample, MAX(model) AS model
@@ -191,9 +140,10 @@
        WHERE
        iiq.is_finish = 1
        AND iiq.inspect_status IN (1,2,4)
        AND IFNULL(iuh.feedback_time,io1.send_time) BETWEEN #{dto.beginDate} AND #{dto.endDate}
        <if test="dto.materialProp != null and dto.materialProp != ''">
            AND IFNULL(iiq.material_prop,'') LIKE CONCAT('%',#{dto.materialProp},'%')
            AND iiq.material_prop = #{dto.materialProp}
        </if>
        <if test="dto.sampleName != null and dto.sampleName != ''">
            AND IFNULL(ins.sample,'') LIKE CONCAT('%',#{dto.sampleName},'%')
@@ -205,9 +155,9 @@
            AND IFNULL(iiq.supplier_name,'') LIKE CONCAT('%',#{dto.supplierName},'%')
        </if>
        <if test="dto.contract != null and dto.contract != ''">
            AND IFNULL(iiq.contract,'') = #{dto.contract}
        </if>
        GROUP BY MONTH(io1.send_time)
            AND iiq.contract = #{dto.contract}
        </if>)temp
        GROUP BY month
        ) sub ON am.month = sub.month
        ORDER BY am.month
    </select>
@@ -216,21 +166,26 @@
    <!-- 查看物料属性饼状图 -->
    <select id="getRawPassRateByCake" resultType="java.util.Map">
        SELECT
        COUNT(*) AS sum,
        /* 合格 */
        SUM(CASE WHEN iiq.inspect_status = 1 and (iuh.id is null) THEN 1 ELSE 0 END) AS qualified,
        /* 不合格 */
        SUM(CASE WHEN iiq.inspect_status != 1 or (iuh.id is not null) THEN 1 ELSE 0 END) AS unQualified
            COUNT(*) AS sum,
            /* 合格 */
            SUM(CASE WHEN inspect_status = 1 and (iuh_id is null) THEN 1 ELSE 0 END) AS qualified,
            /* 不合格 */
            SUM(CASE WHEN inspect_status != 1 or (iuh_id is not null) THEN 1 ELSE 0 END) AS unQualified
        FROM (
        SELECT
        iiq.inspect_status,
        iuh.id AS iuh_id
        FROM ifs_inventory_quantity iiq
        INNER JOIN ins_order io1
        ON io1.ifs_inventory_id = iiq.id
        LEFT JOIN (
            SELECT
            MAX(iuh.id) AS id,
            iuh.inventory_quantity_id
            FROM ins_unqualified_handler iuh
            WHERE iuh.oa_state !=4 AND iuh.oa_state is not null
            GROUP BY iuh.inventory_quantity_id
        SELECT
        MAX(iuh.id) AS id,
        iuh.inventory_quantity_id,
        iuh.feedback_time
        FROM ins_unqualified_handler iuh
        WHERE iuh.oa_state !=4 AND iuh.oa_state is not null
        GROUP BY iuh.inventory_quantity_id
        ) iuh ON iiq.id = iuh.inventory_quantity_id
        LEFT JOIN (
        SELECT
@@ -246,10 +201,9 @@
        AND iiq.inspect_status IN (1, 2,4)
        AND io1.order_type = #{dto.orderType}
        AND io1.state != -1
        AND io1.send_time BETWEEN #{dto.beginDate} AND #{dto.endDate}
        AND IFNULL(iuh.feedback_time,io1.send_time) BETWEEN #{dto.beginDate} AND #{dto.endDate}
        <if test="dto.materialProp != null and dto.materialProp.trim() != ''">
            AND IFNULL(iiq.material_prop, '') LIKE CONCAT('%', #{dto.materialProp}, '%')
            AND iiq.material_prop = #{dto.materialProp}
        </if>
        <if test="dto.sampleName != null and dto.sampleName.trim() != ''">
            AND IFNULL(ins.sample, '') LIKE CONCAT('%', #{dto.sampleName}, '%')
@@ -261,66 +215,71 @@
            AND IFNULL(iiq.supplier_name, '') LIKE CONCAT('%', #{dto.supplierName}, '%')
        </if>
        <if test="dto.contract != null and dto.contract != ''">
            AND IFNULL(iiq.contract,'') = #{dto.contract}
            AND iiq.contract = #{dto.contract}
        </if>
        )temp
    </select>
    <select id="getMaterialPropTable" resultType="com.ruoyi.inspect.dto.MaterialPropTableDTO">
        SELECT
        iiq.supplier_name AS supplierName,
        COUNT(iiq.id) AS totalBatch,
        SUM(CASE WHEN iiq.inspect_status != 1 or (iuh.id is not null) THEN 1 ELSE 0 END) AS unqualifiedBatch,
        ROUND(SUM(CASE WHEN iiq.inspect_status = 1 and iuh.id is null THEN 1 ELSE 0 END) / COUNT(*)* 100, 2 ) AS passRate
        FROM ifs_inventory_quantity iiq
        INNER JOIN ins_order io1
        ON io1.ifs_inventory_id = iiq.id
        AND io1.order_type = #{dto.orderType}
        AND io1.state != -1
        AND io1.send_time BETWEEN #{dto.beginDate} AND #{dto.endDate}
        LEFT JOIN (
            supplier_name,
            COUNT(id) AS totalBatch,
            SUM(CASE WHEN inspect_status != 1 or (iuh_id is not null) THEN 1 ELSE 0 END) AS unqualifiedBatch,
            ROUND(SUM(CASE WHEN inspect_status = 1 and iuh_id is null THEN 1 ELSE 0 END) / COUNT(*)* 100, 2 ) AS passRate
        FROM
        (
            SELECT
            MAX(iuh.id) AS id,
            iuh.inventory_quantity_id
            FROM ins_unqualified_handler iuh
            WHERE iuh.oa_state !=4 AND iuh.oa_state is not null
            GROUP BY iuh.inventory_quantity_id
        ) iuh ON iiq.id = iuh.inventory_quantity_id
        LEFT JOIN (
        SELECT
        ins_order_id,
        MAX(sample) AS sample,
        MAX(model) AS model
        FROM ins_sample
        GROUP BY ins_order_id
        ) ins ON ins.ins_order_id = io1.id
                iiq.supplier_name,
                iiq.id,
                iuh.id AS iuh_id,
                iiq.inspect_status
            FROM ifs_inventory_quantity iiq
            INNER JOIN ins_order io1
            ON io1.ifs_inventory_id = iiq.id
            AND io1.order_type = #{dto.orderType}
            AND io1.state != -1
            LEFT JOIN (
            SELECT
                MAX(iuh.id) AS id,
                iuh.inventory_quantity_id,
                iuh.feedback_time
                FROM ins_unqualified_handler iuh
                WHERE iuh.oa_state !=4 AND iuh.oa_state is not null
                GROUP BY iuh.inventory_quantity_id
            ) iuh ON iiq.id = iuh.inventory_quantity_id
            LEFT JOIN (
                SELECT
                    ins_order_id,
                    MAX(sample) AS sample,
                    MAX(model) AS model
                FROM ins_sample
                GROUP BY ins_order_id
            ) ins ON ins.ins_order_id = io1.id
            WHERE
            iiq.is_finish = 1
            AND iiq.inspect_status IN (1,2,4)
            AND IFNULL(iuh.feedback_time,io1.send_time) between #{dto.beginDate} and #{dto.endDate}
            <if test="dto.materialProp != null and dto.materialProp != ''">
                AND iiq.material_prop = #{dto.materialProp}
            </if>
        WHERE
        iiq.is_finish = 1
        AND iiq.inspect_status IN (1,2,4)
            <if test="dto.sampleName != null and dto.sampleName != ''">
                AND IFNULL(ins.sample,'') LIKE CONCAT('%',#{dto.sampleName},'%')
            </if>
        <if test="dto.materialProp != null and dto.materialProp != ''">
            AND IFNULL(iiq.material_prop,'') LIKE CONCAT('%',#{dto.materialProp},'%')
        </if>
            <if test="dto.modelName != null and dto.modelName != ''">
                AND IFNULL(ins.model,'') LIKE CONCAT('%',#{dto.modelName},'%')
            </if>
        <if test="dto.sampleName != null and dto.sampleName != ''">
            AND IFNULL(ins.sample,'') LIKE CONCAT('%',#{dto.sampleName},'%')
        </if>
        <if test="dto.modelName != null and dto.modelName != ''">
            AND IFNULL(ins.model,'') LIKE CONCAT('%',#{dto.modelName},'%')
        </if>
        <if test="dto.supplierName != null and dto.supplierName != ''">
            AND IFNULL(iiq.supplier_name,'') LIKE CONCAT('%',#{dto.supplierName},'%')
        </if>
        <if test="dto.contract != null and dto.contract != ''">
            AND IFNULL(iiq.contract,'') = #{dto.contract}
        </if>
        GROUP BY
        iiq.supplier_name
        ORDER BY
        passRate DESC;
            <if test="dto.supplierName != null and dto.supplierName != ''">
                AND IFNULL(iiq.supplier_name,'') LIKE CONCAT('%',#{dto.supplierName},'%')
            </if>
            <if test="dto.contract != null and dto.contract != ''">
                AND iiq.contract = #{dto.contract}
            </if>
        )temp
        GROUP BY supplier_name
        ORDER BY passRate DESC;
    </select>
inspect-server/src/main/resources/mapper/InsSampleMapper.xml
@@ -248,7 +248,7 @@
        AND io.send_time IS NOT NULL
        <if test="materialProp != null and materialProp != ''">
            AND iiq.material_prop LIKE CONCAT('%', #{materialProp}, '%')
            AND iiq.material_prop = #{materialProp}
        </if>
        <if test="sonLaboratory != null and sonLaboratory != ''">
inspect-server/src/main/resources/mapper/InsUnqualifiedHandlerMapper.xml
@@ -96,7 +96,8 @@
                iuh.ins_order_id,
                iuh.is_old_data,
                iuh.group_id,
                coa.operation
                coa.operation,
                iuh.issue_type
            from
                ins_unqualified_handler iuh
            inner join
performance-server/src/main/java/com/ruoyi/performance/controller/PerformanceShiftController.java
@@ -9,6 +9,7 @@
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
@@ -76,4 +77,11 @@
        performanceShiftService.exportToExcel(time,userName,laboratory,isMonth,response);
    }
    @ApiOperation(value = "删除排班数据")
    @DeleteMapping("delShift")
    @PreAuthorize("@ss.hasPermi('performance:class:del')")
    public Result<?> delShift(@RequestBody PerformanceShiftAddDto performanceShiftAddDto) {
        return Result.success(performanceShiftService.delShift(performanceShiftAddDto));
    }
}
performance-server/src/main/java/com/ruoyi/performance/service/PerformanceShiftService.java
@@ -33,4 +33,6 @@
    boolean editAnnotationText(PerformanceShift performanceShift);
    void exportToExcel(LocalDateTime time, String userName, String laboratory, Boolean isMonth, HttpServletResponse response);
    boolean delShift(PerformanceShiftAddDto performanceShiftAddDto);
}
performance-server/src/main/java/com/ruoyi/performance/service/impl/PerformanceShiftServiceImpl.java
@@ -457,6 +457,18 @@
        }
    }
    @Override
    public boolean delShift(PerformanceShiftAddDto performanceShiftAddDto) {
        if(ObjectUtils.isEmpty(performanceShiftAddDto)){
            throw new RuntimeException("传入参数不能为空");
        }
        int deleted = baseMapper.delete(Wrappers.<PerformanceShift>lambdaQuery()
                .in(PerformanceShift::getUserId, performanceShiftAddDto.getUserIdList())
                .between(PerformanceShift::getWorkTime, performanceShiftAddDto.getStartTime(), performanceShiftAddDto.getEndTime())
        );
        return deleted>0;
    }
    private InputStream buildPerformanceShiftTemplate(List<LocalDate> attendanceDateList,Boolean isMonth) throws IOException {
        String templateName = "/static/performance_shift_month_template.xlsx";
        if(!isMonth){
ruoyi-common/src/main/java/com/ruoyi/common/utils/WxCpUtils.java
@@ -23,8 +23,8 @@
public class WxCpUtils {
    public static final String CORP_ID = "wwa423654b975441ac";
    public static final String CORP_SECRET = "snXq8qwA5tGu0YN1PlSDQqr6u9x3A0c_jQDmt8CN8Vs";
    public static final Integer AGENT_ID = 1000515;
    public static final String CORP_SECRET = "jqifSrLWjVJqBpszh0LawP3RFYwbfz46Cm0o0HF0N4I";
    public static final Integer AGENT_ID = 1000828;
    /**
     * @param user      例:ZT-033268|ZT-028629,多个中间用|隔开