|
|
|
@ -2,6 +2,7 @@ package com.galaxis.rcs.inv; |
|
|
|
|
|
|
|
import com.galaxis.rcs.common.entity.LccInvLpn; |
|
|
|
import com.querydsl.core.util.StringUtils; |
|
|
|
import org.clever.core.id.SnowFlake; |
|
|
|
import org.clever.data.jdbc.DaoFactory; |
|
|
|
import org.clever.data.jdbc.QueryDSL; |
|
|
|
|
|
|
|
@ -15,15 +16,16 @@ public class InvManager { |
|
|
|
|
|
|
|
/** |
|
|
|
* 记录库存 |
|
|
|
* @param envId 环境ID |
|
|
|
* @param lpn 容器号 |
|
|
|
* @param locCode 库位号 |
|
|
|
* |
|
|
|
* @param envId 环境ID |
|
|
|
* @param lpn 容器号 |
|
|
|
* @param locCode 库位号 |
|
|
|
* @param layerIndex 堆叠层 |
|
|
|
* @param qty 数量 >0 增加数量 <0 减数量 |
|
|
|
* @param qtyIn 入库数量 >0 减数量 <0 减数量 |
|
|
|
* @param qtyOut 出库数量 >0 减数量 <0 减数量 |
|
|
|
* @param qty 数量 >0 增加数量 <0 减数量 |
|
|
|
* @param qtyIn 入库数量 >0 减数量 <0 减数量 |
|
|
|
* @param qtyOut 出库数量 >0 减数量 <0 减数量 |
|
|
|
*/ |
|
|
|
public static void invSave(Long envId, String lpn, String locCode, Integer layerIndex, int qty, int qtyIn, int qtyOut) { |
|
|
|
public static void invSave(Long envId, Long bizTaskId, String lpn, String locCode, Integer layerIndex, int qty, int qtyIn, int qtyOut) { |
|
|
|
if (envId == null || envId <= 0 |
|
|
|
|| lpn == null || StringUtils.isNullOrEmpty(lpn) || lpn.equals("N/A") |
|
|
|
|| locCode == null || StringUtils.isNullOrEmpty(locCode) || locCode.equals("N/A") |
|
|
|
@ -73,98 +75,117 @@ public class InvManager { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
queryDSL.beginTX(status -> { |
|
|
|
if (lccInvLpnData != null) { |
|
|
|
queryDSL.update(lccInvLpn) |
|
|
|
.set(lccInvLpn.qty, lccInvLpn.qty.add(qty)) |
|
|
|
.set(lccInvLpn.qtyIn, lccInvLpn.qtyIn.add(qtyIn)) |
|
|
|
.set(lccInvLpn.qtyOut, lccInvLpn.qtyOut.add(qtyOut)) |
|
|
|
.set(lccInvLpn.layerIndex, layerIndex) |
|
|
|
// .set(lccInvLpn.updateAt, )
|
|
|
|
.where(lccInvLpn.envId.eq(envId).and(lccInvLpn.locCode.eq(locCode)).and(lccInvLpn.lpn.eq(lpn))) |
|
|
|
.execute(); |
|
|
|
// 记录账页
|
|
|
|
queryDSL.insert(lccInvLedger) |
|
|
|
.set(lccInvLedger.envId, envId) |
|
|
|
.set(lccInvLedger.lpn, lpn) |
|
|
|
.set(lccInvLedger.locCode, locCode) |
|
|
|
.set(lccInvLedger.layerIndex, layerIndex) |
|
|
|
.set(lccInvLedger.qtyChange, qty) |
|
|
|
.set(lccInvLedger.qtyInChange, qtyIn) |
|
|
|
.set(lccInvLedger.qtyOutChange, qtyOut) |
|
|
|
.set(lccInvLedger.qty, lccInvLpnData.getQty() + qty) |
|
|
|
.set(lccInvLedger.qtyIn, lccInvLpnData.getQtyIn() + qtyIn) |
|
|
|
.set(lccInvLedger.qtyOut, lccInvLpnData.getQtyOut() + qtyOut) |
|
|
|
.set(lccInvLedger.ledgerType, "记账") |
|
|
|
.set(lccInvLedger.ledgerRemark, "N/A") |
|
|
|
.execute(); |
|
|
|
} else { |
|
|
|
queryDSL.insert(lccInvLpn) |
|
|
|
.set(lccInvLpn.envId, envId) |
|
|
|
.set(lccInvLpn.lpn, lpn) |
|
|
|
.set(lccInvLpn.locCode, locCode) |
|
|
|
.set(lccInvLpn.layerIndex, layerIndex) |
|
|
|
.set(lccInvLpn.qty, qty) |
|
|
|
.set(lccInvLpn.qtyIn, qtyIn) |
|
|
|
.set(lccInvLpn.qtyOut, qtyOut) |
|
|
|
.execute(); |
|
|
|
// 记录账页
|
|
|
|
queryDSL.insert(lccInvLedger) |
|
|
|
.set(lccInvLedger.envId, envId) |
|
|
|
.set(lccInvLedger.lpn, lpn) |
|
|
|
.set(lccInvLedger.locCode, locCode) |
|
|
|
.set(lccInvLedger.layerIndex, layerIndex) |
|
|
|
.set(lccInvLedger.qtyChange, qty) |
|
|
|
.set(lccInvLedger.qtyInChange, qtyIn) |
|
|
|
.set(lccInvLedger.qtyOutChange, qtyOut) |
|
|
|
.set(lccInvLedger.qty, qty) |
|
|
|
.set(lccInvLedger.qtyIn, qtyIn) |
|
|
|
.set(lccInvLedger.qtyOut, qtyOut) |
|
|
|
.set(lccInvLedger.ledgerType, "记账") |
|
|
|
.set(lccInvLedger.ledgerRemark, "N/A") |
|
|
|
.execute(); |
|
|
|
} |
|
|
|
// 删除所有数量预占预扣都为0的库存
|
|
|
|
queryDSL.delete(lccInvLpn).where(lccInvLpn.qty.eq(0).and(lccInvLpn.qtyIn.eq(0)).and(lccInvLpn.qtyOut.eq(0))).execute(); |
|
|
|
}); |
|
|
|
|
|
|
|
if (lccInvLpnData != null) { |
|
|
|
queryDSL.update(lccInvLpn) |
|
|
|
.set(lccInvLpn.qty, lccInvLpn.qty.add(qty)) |
|
|
|
.set(lccInvLpn.qtyIn, lccInvLpn.qtyIn.add(qtyIn)) |
|
|
|
.set(lccInvLpn.qtyOut, lccInvLpn.qtyOut.add(qtyOut)) |
|
|
|
.set(lccInvLpn.layerIndex, layerIndex) |
|
|
|
.set(lccInvLpn.updateAt, new Date(System.currentTimeMillis())) |
|
|
|
.set(lccInvLpn.updateBy, "system") |
|
|
|
.where(lccInvLpn.envId.eq(envId).and(lccInvLpn.locCode.eq(locCode)).and(lccInvLpn.lpn.eq(lpn))) |
|
|
|
.execute(); |
|
|
|
// 记录账页
|
|
|
|
queryDSL.insert(lccInvLedger) |
|
|
|
.set(lccInvLedger.ledgerId, SnowFlake.SNOW_FLAKE.nextId()) |
|
|
|
.set(lccInvLedger.envId, envId) |
|
|
|
.set(lccInvLedger.lpn, lpn) |
|
|
|
.set(lccInvLedger.bizTaskId, bizTaskId) |
|
|
|
.set(lccInvLedger.locCode, locCode) |
|
|
|
.set(lccInvLedger.layerIndex, layerIndex) |
|
|
|
.set(lccInvLedger.qtyChange, qty) |
|
|
|
.set(lccInvLedger.qtyInChange, qtyIn) |
|
|
|
.set(lccInvLedger.qtyOutChange, qtyOut) |
|
|
|
.set(lccInvLedger.qty, lccInvLpnData.getQty() + qty) |
|
|
|
.set(lccInvLedger.qtyIn, lccInvLpnData.getQtyIn() + qtyIn) |
|
|
|
.set(lccInvLedger.qtyOut, lccInvLpnData.getQtyOut() + qtyOut) |
|
|
|
.set(lccInvLedger.ledgerType, "记账") |
|
|
|
.set(lccInvLedger.ledgerRemark, "N/A") |
|
|
|
.set(lccInvLedger.createAt, new Date(System.currentTimeMillis())) |
|
|
|
.set(lccInvLedger.createBy, "system") |
|
|
|
.set(lccInvLedger.updateAt, new Date(System.currentTimeMillis())) |
|
|
|
.set(lccInvLedger.updateBy, "system") |
|
|
|
.execute(); |
|
|
|
} else { |
|
|
|
queryDSL.insert(lccInvLpn) |
|
|
|
.set(lccInvLpn.envId, envId) |
|
|
|
.set(lccInvLpn.lpn, lpn) |
|
|
|
.set(lccInvLpn.locCode, locCode) |
|
|
|
.set(lccInvLpn.layerIndex, layerIndex) |
|
|
|
.set(lccInvLpn.qty, qty) |
|
|
|
.set(lccInvLpn.qtyIn, qtyIn) |
|
|
|
.set(lccInvLpn.qtyOut, qtyOut) |
|
|
|
.set(lccInvLpn.createAt, new Date(System.currentTimeMillis())) |
|
|
|
.set(lccInvLpn.createBy, "system") |
|
|
|
.set(lccInvLpn.updateAt, new Date(System.currentTimeMillis())) |
|
|
|
.set(lccInvLpn.updateBy, "system") |
|
|
|
.execute(); |
|
|
|
// 记录账页
|
|
|
|
queryDSL.insert(lccInvLedger) |
|
|
|
.set(lccInvLedger.ledgerId, SnowFlake.SNOW_FLAKE.nextId()) |
|
|
|
.set(lccInvLedger.envId, envId) |
|
|
|
.set(lccInvLedger.lpn, lpn) |
|
|
|
.set(lccInvLedger.bizTaskId, bizTaskId) |
|
|
|
.set(lccInvLedger.locCode, locCode) |
|
|
|
.set(lccInvLedger.layerIndex, layerIndex) |
|
|
|
.set(lccInvLedger.qtyChange, qty) |
|
|
|
.set(lccInvLedger.qtyInChange, qtyIn) |
|
|
|
.set(lccInvLedger.qtyOutChange, qtyOut) |
|
|
|
.set(lccInvLedger.qty, qty) |
|
|
|
.set(lccInvLedger.qtyIn, qtyIn) |
|
|
|
.set(lccInvLedger.qtyOut, qtyOut) |
|
|
|
.set(lccInvLedger.ledgerType, "记账") |
|
|
|
.set(lccInvLedger.ledgerRemark, "N/A") |
|
|
|
.set(lccInvLedger.createAt, new Date(System.currentTimeMillis())) |
|
|
|
.set(lccInvLedger.createBy, "system") |
|
|
|
.set(lccInvLedger.updateAt, new Date(System.currentTimeMillis())) |
|
|
|
.set(lccInvLedger.updateBy, "system") |
|
|
|
.execute(); |
|
|
|
} |
|
|
|
// 删除所有数量预占预扣都为0的库存
|
|
|
|
queryDSL.delete(lccInvLpn).where(lccInvLpn.qty.eq(0).and(lccInvLpn.qtyIn.eq(0)).and(lccInvLpn.qtyOut.eq(0))).execute(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* 记录库存 |
|
|
|
* @param envId 环境ID |
|
|
|
* @param lpn 容器号 |
|
|
|
* |
|
|
|
* @param envId 环境ID |
|
|
|
* @param lpn 容器号 |
|
|
|
* @param locCode 库位号 |
|
|
|
* @param qty 数量 >0 减数量 <0 减数量 |
|
|
|
* @param qtyIn 入库数量 >0 减数量 <0 减数量 |
|
|
|
* @param qtyOut 出库数量 >0 减数量 <0 减数量 |
|
|
|
* @param qty 数量 >0 减数量 <0 减数量 |
|
|
|
* @param qtyIn 入库数量 >0 减数量 <0 减数量 |
|
|
|
* @param qtyOut 出库数量 >0 减数量 <0 减数量 |
|
|
|
*/ |
|
|
|
public static void invSave(Long envId, String lpn, String locCode, int qty, int qtyIn, int qtyOut) { |
|
|
|
invSave(envId, lpn, locCode, 0, qty, qtyIn, qtyOut); |
|
|
|
public static void invSave(Long envId, Long bizTaskId, String lpn, String locCode, int qty, int qtyIn, int qtyOut) { |
|
|
|
invSave(envId, bizTaskId, lpn, locCode, 0, qty, qtyIn, qtyOut); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 保存库存 |
|
|
|
* @param envId 环境ID |
|
|
|
* @param lpn 容器号 |
|
|
|
* @param locCode 库位号 |
|
|
|
* |
|
|
|
* @param envId 环境ID |
|
|
|
* @param lpn 容器号 |
|
|
|
* @param locCode 库位号 |
|
|
|
* @param layerIndex 堆叠层 |
|
|
|
* @param qty 数量 >0 减数量 <0 减数量 |
|
|
|
* @param qty 数量 >0 减数量 <0 减数量 |
|
|
|
*/ |
|
|
|
public static void invSave(Long envId, String lpn, String locCode, int layerIndex, int qty) { |
|
|
|
invSave(envId, lpn, locCode, layerIndex, qty, 0, 0); |
|
|
|
public static void invSave(Long envId, Long bizTaskId, String lpn, String locCode, int layerIndex, int qty) { |
|
|
|
invSave(envId, bizTaskId, lpn, locCode, layerIndex, qty, 0, 0); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 保存库存 |
|
|
|
* @param envId 环境ID |
|
|
|
* @param lpn 容器号 |
|
|
|
* |
|
|
|
* @param envId 环境ID |
|
|
|
* @param lpn 容器号 |
|
|
|
* @param locCode 库位号 |
|
|
|
* @param qty 数量 >0 减数量 <0 减数量 |
|
|
|
* @param qty 数量 >0 减数量 <0 减数量 |
|
|
|
*/ |
|
|
|
public static void invSave(Long envId, String lpn, String locCode, int qty) { |
|
|
|
invSave(envId, lpn, locCode, 0, qty, 0, 0); |
|
|
|
public static void invSave(Long envId, Long bizTaskId, String lpn, String locCode, int qty) { |
|
|
|
invSave(envId, bizTaskId, lpn, locCode, 0, qty, 0, 0); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|