Browse Source

feat(check): 优化盘点调整事务子明细数据结构

- 修改insertTransDetailSub插入语句,将sub_no改为seq_no作为序号,新增order_ref3和order_ref4字段
- 移除更新盘点结果处理时间及操作人字段,仅保留handle_flag标记
- 修改direction字段值从'IN'/'OUT'改为'+'/'-'表示入库出库方向
- 新增seqNo序号字段和warehouseId、wdr字段映射order_ref4和order_ref3扩展信息
- 移除handlingUnitId字段,统一使用subNo作为标签号(unit_id)存储
- 更新创建事务子明细方法参数和字段映射逻辑,完善字段说明文档注释
master
常熟吴彦祖 3 weeks ago
parent
commit
f183855628
  1. 22
      src/main/java/com/gaotao/modules/check/entity/CountAdjustmentTransSubData.java
  2. 46
      src/main/java/com/gaotao/modules/check/service/impl/CountAdjustmentServiceImpl.java
  3. 33
      src/main/resources/mapper/check/CountAdjustmentMapper.xml

22
src/main/java/com/gaotao/modules/check/entity/CountAdjustmentTransSubData.java

@ -33,7 +33,12 @@ public class CountAdjustmentTransSubData {
private Double itemNo;
/**
* 子行号
* 序号
*/
private Double seqNo;
/**
* 标签号sub_no就是handling_unit的unit_id
*/
private String subNo;
@ -52,11 +57,6 @@ public class CountAdjustmentTransSubData {
*/
private String directionDesc;
/**
* 标签号
*/
private String handlingUnitId;
/**
* 物料号
*/
@ -81,5 +81,15 @@ public class CountAdjustmentTransSubData {
* 栈板号存储在order_ref1
*/
private String palletId;
/**
* WDR存储在order_ref3
*/
private String wdr;
/**
* 仓库存储在order_ref4
*/
private String warehouseId;
}

46
src/main/java/com/gaotao/modules/check/service/impl/CountAdjustmentServiceImpl.java

@ -254,16 +254,16 @@ public class CountAdjustmentServiceImpl implements CountAdjustmentService {
// 创建trans_detail和trans_detail_sub - rqrq
int itemNo = 1;
for (CountAdjustmentItem item : items) {
// 创建trans_detail - rqrq
TransDetail detail = createTransDetail(transNo, itemNo, item, "OUT");
// 创建trans_detail盘亏direction='-'- rqrq
TransDetail detail = createTransDetail(transNo, itemNo, item, "-");
countAdjustmentMapper.insertTransDetail(detail);
// 创建trans_detail_sub按标签- rqrq
int subNo = 1;
// 创建trans_detail_sub按标签seq_no是序号sub_no是标签号- rqrq
int seqNo = 1;
for (CountAdjustmentLabelItem label : item.getLabelItems()) {
TransDetailSub sub = createTransDetailSub(transNo, itemNo, subNo, label, "OUT");
TransDetailSub sub = createTransDetailSub(transNo, itemNo, seqNo, label, "-");
countAdjustmentMapper.insertTransDetailSub(sub);
subNo++;
seqNo++;
}
// 减少库存 - rqrq
@ -318,16 +318,16 @@ public class CountAdjustmentServiceImpl implements CountAdjustmentService {
// 创建trans_detail和trans_detail_sub - rqrq
int itemNo = 1;
for (CountAdjustmentItem item : items) {
// 创建trans_detail - rqrq
TransDetail detail = createTransDetail(transNo, itemNo, item, "IN");
// 创建trans_detail盘盈direction='+'- rqrq
TransDetail detail = createTransDetail(transNo, itemNo, item, "+");
countAdjustmentMapper.insertTransDetail(detail);
// 创建trans_detail_sub按标签- rqrq
int subNo = 1;
// 创建trans_detail_sub按标签seq_no是序号sub_no是标签号- rqrq
int seqNo = 1;
for (CountAdjustmentLabelItem label : item.getLabelItems()) {
TransDetailSub sub = createTransDetailSub(transNo, itemNo, subNo, label, "IN");
TransDetailSub sub = createTransDetailSub(transNo, itemNo, seqNo, label, "+");
countAdjustmentMapper.insertTransDetailSub(sub);
subNo++;
seqNo++;
}
// 增加库存 - rqrq
@ -395,22 +395,34 @@ public class CountAdjustmentServiceImpl implements CountAdjustmentService {
/**
* 创建事务子明细 - rqrq
*
* <p><b>字段说明</b></p>
* <ul>
* <li>seq_no: 序号1,2,3...</li>
* <li>sub_no: 标签号handling_unit的unit_id</li>
* <li>direction: '+' 入库'-' 出库</li>
* <li>order_ref1: 栈板号</li>
* <li>order_ref3: WDR</li>
* <li>order_ref4: 仓库</li>
* </ul>
*/
private TransDetailSub createTransDetailSub(String transNo, int itemNo, int subNo,
private TransDetailSub createTransDetailSub(String transNo, int itemNo, int seqNo,
CountAdjustmentLabelItem label, String direction) {
TransDetailSub sub = new TransDetailSub();
sub.setSite(label.getSite());
sub.setTransNo(transNo);
sub.setItemNo((double) itemNo);
sub.setSubNo(String.valueOf(subNo));
sub.setSeqNo((double) seqNo); // seq_no是序号 - rqrq
sub.setSubNo(label.getUnitId()); // sub_no是标签号unit_id- rqrq
sub.setSubQty(label.getDiffQty().abs().doubleValue());
sub.setDirection(direction);
sub.setHandlingUnitId(label.getUnitId());
sub.setDirection(direction); // '+' '-' - rqrq
sub.setPartNo(label.getPartNo());
sub.setBatchNo(label.getBatchNo());
sub.setLocationId(label.getLocationId());
sub.setEngChgLevel(label.getEngChgLevel());
sub.setOrderRef1(label.getPalletId()); // 记录栈板号 - rqrq
sub.setOrderRef1(label.getPalletId()); // 栈板号 - rqrq
sub.setOrderRef3(label.getWdr()); // WDR - rqrq
sub.setOrderRef4(label.getWarehouseId()); // 仓库 - rqrq
return sub;
}

33
src/main/resources/mapper/check/CountAdjustmentMapper.xml

@ -54,14 +54,14 @@
)
</insert>
<!-- rqrq - 插入事务子明细 -->
<!-- rqrq - 插入事务子明细(sub_no是标签号,seq_no是序号,direction是+/--->
<insert id="insertTransDetailSub">
INSERT INTO trans_detail_sub (
site, trans_no, item_no, sub_no, sub_qty, direction,
handling_unit_id, part_no, batch_no, location_id, eng_chg_level, order_ref1
site, trans_no, item_no, seq_no, sub_no, sub_qty, direction,
part_no, batch_no, location_id, eng_chg_level, order_ref1, order_ref3, order_ref4
) VALUES (
#{site}, #{transNo}, #{itemNo}, #{subNo}, #{subQty}, #{direction},
#{handlingUnitId}, #{partNo}, #{batchNo}, #{locationId}, #{engChgLevel}, #{orderRef1}
#{site}, #{transNo}, #{itemNo}, #{seqNo}, #{subNo}, #{subQty}, #{direction},
#{partNo}, #{batchNo}, #{locationId}, #{engChgLevel}, #{orderRef1}, #{orderRef3}, #{orderRef4}
)
</insert>
@ -79,9 +79,8 @@
<!-- rqrq - 更新盘点结果处理标记 -->
<update id="updateCountResultHandleFlag">
UPDATE count_result
SET handle_flag = 'Y',
handle_time = GETDATE(),
handle_by = #{username}
SET handle_flag = 'Y'
WHERE id = #{countResultId}
</update>
@ -108,8 +107,8 @@
d.location_id AS locationId,
d.direction,
CASE d.direction
WHEN 'IN' THEN '入库'
WHEN 'OUT' THEN '出库'
WHEN '+' THEN '入库'
WHEN '-' THEN '出库'
ELSE d.direction
END AS directionDesc,
d.wdr_no AS wdrNo,
@ -122,30 +121,32 @@
ORDER BY h.trans_no, d.item_no
</select>
<!-- rqrq - 查询事务子明细 -->
<!-- rqrq - 查询事务子明细(sub_no就是标签号unit_id) -->
<select id="queryAdjustmentTransSubList" resultType="CountAdjustmentTransSubData">
SELECT
site,
trans_no AS transNo,
item_no AS itemNo,
seq_no AS seqNo,
sub_no AS subNo,
sub_qty AS subQty,
direction,
CASE direction
WHEN 'IN' THEN '入库'
WHEN 'OUT' THEN '出库'
WHEN '+' THEN '入库'
WHEN '-' THEN '出库'
ELSE direction
END AS directionDesc,
handling_unit_id AS handlingUnitId,
part_no AS partNo,
batch_no AS batchNo,
location_id AS locationId,
eng_chg_level AS engChgLevel,
order_ref1 AS palletId
order_ref1 AS palletId,
order_ref3 AS wdr,
order_ref4 AS warehouseId
FROM trans_detail_sub
WHERE site = #{site}
AND trans_no = #{transNo}
ORDER BY item_no, sub_no
ORDER BY item_no, seq_no
</select>
</mapper>

Loading…
Cancel
Save