chenrui
2025-04-09 17ea3e9ec4f49b3652ff8a1e7dc9af502503d3f0
成品下单查询拼接检验人
已修改4个文件
102 ■■■■ 文件已修改
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsProductMapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/mapper/InsOrderMapper.xml 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/resources/mapper/InsProductMapper.xml 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsProductMapper.java
@@ -77,14 +77,6 @@
     * @return
     */
    int batchUpdateInsProductCheckUserId(@Param("insProductIds") List <Integer> insProductIds, @Param("checkUserId") Integer userId);
    /**
     * 根据订单id查询检验人员
     *
     * @param orderIds
     * @return
     */
    List<CheckUserDto> selectCheckUserNameByOrderIds(@Param("orderIds") List<Integer> orderIds);
}
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java
@@ -106,24 +106,6 @@
        otherParam.setCheckUserFlag(checkUserFlag);
        otherParam.setCheckUserId(SecurityUtils.getUserId());
        IPage<SampleOrderDto> sampleOrderDtoIPage = insOrderMapper.selectInsOrderPage(page, QueryWrappers.queryWrappers(sampleOrderDto), otherParam);
        // 拼接检验人根据检验项来
        if(CollectionUtils.isEmpty(sampleOrderDtoIPage.getRecords())){
            return sampleOrderDtoIPage;
        }
        List<Integer> orderIds = new ArrayList<>();
        for (SampleOrderDto record : sampleOrderDtoIPage.getRecords()) {
            orderIds.add(record.getId());
        }
        List<CheckUserDto> checkUserDtoList = insProductMapper.selectCheckUserNameByOrderIds(orderIds);
        for (SampleOrderDto record : sampleOrderDtoIPage.getRecords()) {
            Integer orderId = record.getId();
            for (CheckUserDto checkUserDto : checkUserDtoList) {
                if(orderId.equals(checkUserDto.getOrderId())) {
                    record.setTestingName(checkUserDto.getCheckUserNames());
                    break;
                }
            }
        }
        return sampleOrderDtoIPage;
    }
inspect-server/src/main/resources/mapper/InsOrderMapper.xml
@@ -58,43 +58,37 @@
        CONCAT(ROUND(approved_product_counts.approved_count / total_product_counts.total_count * 100, 2), '%') AS insProgress,
        io.sample_view AS sample_name,
        GROUP_CONCAT(DISTINCT isa.model SEPARATOR ' ') AS sample_model,
        GROUP_CONCAT(DISTINCT uu.name SEPARATOR ', ') AS testing_name,
        u.name,
        testing_name,
        ip.son_laboratory
        FROM
        ins_order io
            ins_order io
        LEFT JOIN ins_sample isa ON io.id = isa.ins_order_id
        LEFT JOIN ins_product ip on ip.ins_sample_id = isa.id
        LEFT JOIN ins_sample_user isau ON isau.ins_sample_id = io.id
        LEFT JOIN (SELECT id, ins_order_id, is_ratify, url, url_s FROM ins_report WHERE is_ratify = 1) ir ON io.id = ir.ins_order_id
        LEFT JOIN user u ON io.create_user = u.id
        LEFT JOIN user uu ON  ip.check_user_id = uu.id
        LEFT JOIN
        ins_sample isa ON io.id = isa.ins_order_id
        left join ins_product ip on ip.ins_sample_id = isa.id
            (SELECT ins_order_id, COUNT(*) AS sample_num
                FROM ins_sample
                WHERE id in(select id1 from (select is2.id id1 ,ip.id from ins_sample is2 left join ins_product ip on is2.id = ip.ins_sample_id where ip.id is not null)s )
                GROUP BY ins_order_id
            ) sample_counts ON io.id = sample_counts.ins_order_id
        LEFT JOIN
        ins_sample_user isau ON isau.ins_sample_id = io.id
            (SELECT ins_sample.ins_order_id, COUNT(*) AS total_count
                FROM ins_product
                JOIN ins_sample ON ins_product.ins_sample_id = ins_sample.id
                WHERE ins_product.state = 1
                GROUP BY ins_sample.ins_order_id
            ) total_product_counts ON io.id = total_product_counts.ins_order_id
        LEFT JOIN
        (SELECT id, ins_order_id, is_ratify, url, url_s FROM ins_report WHERE is_ratify = 1) ir ON io.id = ir.ins_order_id
        LEFT JOIN
        user u ON io.create_user = u.id
        LEFT JOIN
        (SELECT ins_order_id, COUNT(*) AS sample_num
        FROM ins_sample
        WHERE id in(select id1 from (select is2.id id1 ,ip.id from ins_sample is2 left join ins_product ip on is2.id = ip.ins_sample_id where ip.id is not null)s )
        GROUP BY ins_order_id) sample_counts ON io.id = sample_counts.ins_order_id
        LEFT JOIN
        (SELECT ins_sample.ins_order_id, COUNT(*) AS total_count
        FROM ins_product
        JOIN ins_sample ON ins_product.ins_sample_id = ins_sample.id
        WHERE ins_product.state = 1
        GROUP BY ins_sample.ins_order_id) total_product_counts ON io.id = total_product_counts.ins_order_id
        LEFT JOIN
        (SELECT ins_sample.ins_order_id, COUNT(*) AS approved_count
        FROM ins_product
        JOIN ins_sample ON ins_product.ins_sample_id = ins_sample.id
        WHERE ins_product.state = 1 AND ins_product.ins_result IS NOT NULL
        GROUP BY ins_sample.ins_order_id) approved_product_counts ON io.id = approved_product_counts.ins_order_id
        LEFT JOIN (SELECT ins_sample_id, GROUP_CONCAT(DISTINCT uu.name SEPARATOR ',') AS testing_name
        FROM ins_sample_user u
        LEFT JOIN user uu ON u.user_id = uu.id
        WHERE u.state = 0
        GROUP BY ins_sample_id
        ORDER BY ins_sample_id) isu ON isu.ins_sample_id = io.id
            (SELECT ins_sample.ins_order_id, COUNT(*) AS approved_count
                FROM ins_product
                JOIN ins_sample ON ins_product.ins_sample_id = ins_sample.id
                WHERE ins_product.state = 1 AND ins_product.ins_result IS NOT NULL
                GROUP BY ins_sample.ins_order_id
            ) approved_product_counts ON io.id = approved_product_counts.ins_order_id
        where (io.ifs_inventory_id IS NULL OR TRIM(io.ifs_inventory_id)  = '')
        <if test="otherParam.isOrderAll != null and otherParam.isOrderAll != ''">
            AND io.state in (1, 4)
inspect-server/src/main/resources/mapper/InsProductMapper.xml
@@ -157,24 +157,4 @@
            #{item}
        </foreach>
    </update>
    <select id="selectCheckUserNameByOrderIds" resultType="com.ruoyi.inspect.pojo.CheckUserDto">
        SELECT T1.id AS order_id,
               GROUP_CONCAT(DISTINCT user.name SEPARATOR ', ') AS check_user_names
        FROM (
              SELECT
                  ipr.check_user_id,
                  iso.id
              FROM
                  ins_product ipr
                      LEFT JOIN ins_sample isa ON ipr.ins_sample_id = isa.id
                      LEFT JOIN ins_order iso ON isa.ins_order_id = iso.id
              WHERE
                  iso.id IN
                  <foreach collection="orderIds" open="(" close=")" item="item" separator=",">
                      #{item}
                  </foreach>
        ) T1 LEFT JOIN user ON T1.check_user_id = user.id
        GROUP BY T1.id
    </select>
</mapper>