gongchunyi
5 天以前 d5e8cbc39a363ec8a6cdc80360e2112fb3b2a9c0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
<?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.ruoyi.production.mapper.ProductionOrderPickRecordMapper">
 
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.ruoyi.production.pojo.ProductionOrderPickRecord">
        <id column="id" property="id" />
        <result column="pick_id" property="pickId" />
        <result column="production_order_id" property="productionOrderId" />
        <result column="production_operation_task_id" property="productionOperationTaskId" />
        <result column="product_model_id" property="productModelId" />
        <result column="batch_no" property="batchNo" />
        <result column="pick_quantity" property="pickQuantity" />
        <result column="before_quantity" property="beforeQuantity" />
        <result column="after_quantity" property="afterQuantity" />
        <result column="pick_type" property="pickType" />
        <result column="remark" property="remark" />
        <result column="feeding_reason" property="feedingReason" />
        <result column="create_time" property="createTime" />
        <result column="update_time" property="updateTime" />
        <result column="create_user" property="createUser" />
        <result column="dept_id" property="deptId" />
    </resultMap>
 
    <!-- 领料详情:一条领料流水一行,展示每次实际领取(含补料)的数量,而不是主单汇总 -->
    <select id="listPickedDetailByOrderId" resultType="com.ruoyi.production.bean.vo.ProductionOrderPickVo">
        select popr.pick_id as id,
               popr.id as recordId,
               popr.pick_id as pickId,
               popr.production_order_id as productionOrderId,
               popr.production_operation_task_id as productionOperationTaskId,
               pop.technology_operation_id as technologyOperationId,
               pop.operation_name as operationName,
               popr.product_model_id as productModelId,
               popr.batch_no as batchNo,
               popr.before_quantity as beforeQuantity,
               popr.after_quantity as afterQuantity,
               popr.pick_type as pickType,
               popr.remark,
               popr.create_time as createTime,
               popr.update_time as updateTime,
               popr.create_user as createUser,
               popr.dept_id as deptId,
               case
                   when popr.pick_type = 2 then 0
                   else round(pop.demanded_quantity * popr.pick_quantity / nullif(pop.quantity, 0), 2)
               end as demandedQuantity,
               case
                   when popr.pick_type = 2 then popr.pick_quantity
                   else 0
               end as feedingQty,
               case
                   when popr.pick_type = 2 then 0
                   else popr.pick_quantity
               end as pickQuantity,
               pop.return_qty as returnQty,
               pop.is_returned as returned,
               pop.is_bom as bom,
               p.product_name as productName,
               pm.model as model,
               pm.unit as unit
        from production_order_pick_record popr
                 join production_order_pick pop on pop.id = popr.pick_id
                 left join product_model pm on popr.product_model_id = pm.id
                 left join product p on pm.product_id = p.id
        where popr.production_order_id = #{productionOrderId}
        order by popr.create_time, popr.id
    </select>
 
    <select id="listFeedingRecord" resultType="com.ruoyi.production.bean.vo.ProductionOrderPickRecordVo">
        select popr.*,
               poro.operation_name as operationName,
               p.product_name as productName,
               pm.model as model,
               pm.unit as unit,
               coalesce(su.nick_name, su.user_name) as supplementUserName,
               popr.create_time as supplementTime
        from production_order_pick_record popr
                 left join production_operation_task pot on popr.production_operation_task_id = pot.id
                 left join production_order_routing_operation poro on pot.production_order_routing_operation_id = poro.id
                 left join product_model pm on popr.product_model_id = pm.id
                 left join product p on pm.product_id = p.id
                 left join sys_user su on popr.create_user = su.user_id
        where popr.production_order_id = #{productionOrderId}
          and popr.pick_id = #{pickId}
          and popr.pick_type = 2
        order by popr.create_time desc, popr.id desc
    </select>
 
</mapper>