liyong
2026-04-29 f053e8ba8c6d0b95daa378ef118b3a780f9f6cde
feat(production): 添加工单报工状态查询功能

- 在 ProductWorkOrderDto 中新增 hasUnreportedMachine 字段用于标识是否可以报工
- 修改数据库查询逻辑,在 productWorkOrder 表基础上增加生产机器记录表关联查询
- 实现通过 EXISTS 子查询判断工单是否存在未报工的机器记录
- 更新工单列表查询接口返回报工状态信息
- 优化 SQL 查询结构并调整字段映射关系
已修改2个文件
17 ■■■■ 文件已修改
src/main/java/com/ruoyi/production/dto/ProductWorkOrderDto.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/production/ProductWorkOrderMapper.xml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/dto/ProductWorkOrderDto.java
@@ -50,4 +50,7 @@
    @ApiModelProperty(value = "工单处理用户ids")
    private String processUserIds;
    @ApiModelProperty(value = "是否可以报工")
    private Boolean hasUnreportedMachine;
}
src/main/resources/mapper/production/ProductWorkOrderMapper.xml
@@ -25,6 +25,11 @@
        pp.id as processId,
        pm.model,
        pm.unit,
            IF(EXISTS(
                SELECT 1 FROM production_machine_record pmr
                WHERE pmr.work_order_id = pwo.id
                  AND pmr.report_status = 0
            ), FALSE, true ) AS has_unreported_machine,
        p.product_name AS productName,
        po.nps_no AS productOrderNpsNo,
        ROUND(pwo.complete_quantity / pwo.plan_quantity * 100, 2) AS completionStatus,
@@ -42,15 +47,6 @@
        LEFT JOIN product_model pm ON pm.id = ppri.product_model_id
        LEFT JOIN product p ON p.id = pm.product_id
        where 1=1
            <if test="c.workOrderNo != null and c.workOrderNo != ''">
               and pwo.work_order_no like concat('%',#{c.workOrderNo},'%')
            </if>
            <if test="c.planStartTime != null and c.planEndTime != null">
                and DATE(pwo.create_time) between #{c.planStartTime} and #{c.planEndTime}
            </if>
            <if test="c.productOrderId != null and c.productOrderId != ''">
               and pwo.product_order_id = #{c.productOrderId}
            </if>
        order by po.id desc,pwo.id asc
    </select>
    <select id="getProductWorkOrderFlowCard" resultType="com.ruoyi.production.dto.ProductWorkOrderDto">