|
@@ -44,12 +44,16 @@ import com.ruoyi.system.domain.SysConfig;
|
|
|
import com.ruoyi.system.mapper.*;
|
|
|
import com.ruoyi.system.service.ISysConfigService;
|
|
|
import com.ruoyi.system.service.impl.SysConfigServiceImpl;
|
|
|
+import com.ruoyi.warehouseBusiness.component.impl.QueryWhgenlegServiceImpl;
|
|
|
import com.ruoyi.warehouseBusiness.domain.*;
|
|
|
import com.ruoyi.warehouseBusiness.domain.dto.CalculateStorageFeesDTO;
|
|
|
import com.ruoyi.warehouseBusiness.domain.enums.FeesTypeEnum;
|
|
|
import com.ruoyi.warehouseBusiness.domain.enums.WarehouseActIdEnum;
|
|
|
import com.ruoyi.warehouseBusiness.domain.enums.WarehouseTypeEnum;
|
|
|
-import com.ruoyi.warehouseBusiness.domain.vo.*;
|
|
|
+import com.ruoyi.warehouseBusiness.domain.vo.AppWarehouseInfoVO;
|
|
|
+import com.ruoyi.warehouseBusiness.domain.vo.CalculateStorageFeesInfoVO;
|
|
|
+import com.ruoyi.warehouseBusiness.domain.vo.StorageFeeCalculationResultVO;
|
|
|
+import com.ruoyi.warehouseBusiness.domain.vo.WarehouseBillsVO;
|
|
|
import com.ruoyi.warehouseBusiness.excel.*;
|
|
|
import com.ruoyi.warehouseBusiness.mapper.*;
|
|
|
import com.ruoyi.warehouseBusiness.service.ITWarehouseBillsService;
|
|
@@ -138,7 +142,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
private SysDictDataMapper sysDictDataMapper;
|
|
|
|
|
|
@Autowired
|
|
|
- private ISysConfigService sysConfigService;
|
|
|
+ private QueryWhgenlegServiceImpl queryWhgenlegService;
|
|
|
|
|
|
@Autowired
|
|
|
private SysConfigServiceImpl sysConfigServiceImpl;
|
|
@@ -430,33 +434,75 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
*
|
|
|
* @param warehouseBills 仓库主表
|
|
|
* @param warehousebillsitems 仓库明细表
|
|
|
- * @param ifCntrno
|
|
|
+ * @param ifCntrno 是否判断箱号
|
|
|
+ * @param operate 操作(确认、撤回)
|
|
|
* @return 库存总账
|
|
|
*/
|
|
|
- public TWhgenleg queryTWhgenleg(TWarehouseBills warehouseBills, TWarehousebillsitems warehousebillsitems, String ifCntrno) {
|
|
|
+ public TWhgenleg queryTWhgenleg(TWarehouseBills warehouseBills, TWarehousebillsitems warehousebillsitems, String ifCntrno, String operate) {
|
|
|
// 货转时如果调出操作是10-1且计费日期10-1那么调入的时候也要判断计费日期10-1业务日期10-1,调入之后吧id赋值给费用明细新加字段中
|
|
|
// 调拨同理
|
|
|
-
|
|
|
TWhgenleg tWhgenleg = new TWhgenleg();
|
|
|
// 客户
|
|
|
tWhgenleg.setfCorpid(warehouseBills.getfCorpid());
|
|
|
// 提单号
|
|
|
- if (WarehouseTypeEnum.HQZY.getType().equals(warehouseBills.getfBilltype()) || WarehouseTypeEnum.CKDB.getType().equals(warehouseBills.getfBilltype()) ||
|
|
|
- WarehouseTypeEnum.HWTG.getType().equals(warehouseBills.getfBilltype()) || "SJCK".equals(warehouseBills.getfBilltype())) {
|
|
|
+ if (WarehouseTypeEnum.HQZY.getType().equals(warehouseBills.getfBilltype()) ||
|
|
|
+ WarehouseTypeEnum.CKDB.getType().equals(warehouseBills.getfBilltype()) ||
|
|
|
+ WarehouseTypeEnum.HWTG.getType().equals(warehouseBills.getfBilltype()) ||
|
|
|
+ WarehouseTypeEnum.SJCK.getType().equals(warehouseBills.getfBilltype())) {
|
|
|
tWhgenleg.setfMblno(warehousebillsitems.getfMblno());
|
|
|
} else {
|
|
|
tWhgenleg.setfMblno(warehouseBills.getfMblno());
|
|
|
}
|
|
|
+ // 业务日期
|
|
|
+ if (WarehouseTypeEnum.CKDB.getType().equals(warehouseBills.getfBilltype()) ||
|
|
|
+ WarehouseTypeEnum.HWTG.getType().equals(warehouseBills.getfBilltype())) {
|
|
|
+ // 转换日期最小值
|
|
|
+ tWhgenleg.setfBsdate(DateUtils.dateConversionMin(warehousebillsitems.getfBsdate()));
|
|
|
+ } else {
|
|
|
+ tWhgenleg.setfBsdate(warehousebillsitems.getfOriginalbilldate());
|
|
|
+ }
|
|
|
// 业务类型
|
|
|
tWhgenleg.setfBusinessType(warehousebillsitems.getfBusinessType());
|
|
|
// 业务类型详情
|
|
|
tWhgenleg.setfMarks(warehousebillsitems.getfMarks());
|
|
|
+ if ("1".equals(ifCntrno)) {
|
|
|
+ tWhgenleg.setfCntrno(warehousebillsitems.getfCntrno());
|
|
|
+ }
|
|
|
+ // 库区
|
|
|
+ tWhgenleg.setfWarehouseLocationid(warehousebillsitems.getfWarehouselocid());
|
|
|
+ // 货物品名
|
|
|
+ tWhgenleg.setfGoodsid(warehousebillsitems.getfGoodsid());
|
|
|
+ // 贸易方式
|
|
|
+ tWhgenleg.setfTrademodeid(warehouseBills.getfTrademodeid());
|
|
|
+ return tWhgenlegMapper.selectTWhgenleg(tWhgenleg);
|
|
|
+ }
|
|
|
+ /*public TWhgenleg queryTWhgenleg1(TWarehouseBills warehouseBills, TWarehousebillsitems warehousebillsitems, String ifCntrno, String operate) {
|
|
|
+ // 货转时如果调出操作是10-1且计费日期10-1那么调入的时候也要判断计费日期10-1业务日期10-1,调入之后吧id赋值给费用明细新加字段中
|
|
|
+ // 调拨同理
|
|
|
+ TWhgenleg tWhgenleg = new TWhgenleg();
|
|
|
+ // 客户
|
|
|
+ tWhgenleg.setfCorpid(warehouseBills.getfCorpid());
|
|
|
+ // 提单号
|
|
|
+ if (WarehouseTypeEnum.HQZY.getType().equals(warehouseBills.getfBilltype()) ||
|
|
|
+ WarehouseTypeEnum.CKDB.getType().equals(warehouseBills.getfBilltype()) ||
|
|
|
+ WarehouseTypeEnum.HWTG.getType().equals(warehouseBills.getfBilltype()) ||
|
|
|
+ WarehouseTypeEnum.SJCK.getType().equals(warehouseBills.getfBilltype())) {
|
|
|
+ tWhgenleg.setfMblno(warehousebillsitems.getfMblno());
|
|
|
+ } else {
|
|
|
+ tWhgenleg.setfMblno(warehouseBills.getfMblno());
|
|
|
+ }
|
|
|
// 业务日期
|
|
|
- if (!WarehouseTypeEnum.SJRK.getType().equals(warehousebillsitems.getfBilltype())) {
|
|
|
- tWhgenleg.setfBsdate(warehousebillsitems.getfOriginalbilldate());
|
|
|
+ if (!WarehouseTypeEnum.SJRK.getType().equals(warehouseBills.getfBilltype()) &&
|
|
|
+ !WarehouseTypeEnum.SJCK.getType().equals(warehouseBills.getfBilltype())) {
|
|
|
+ // 转换日期最小值
|
|
|
+ tWhgenleg.setfBsdate(DateUtils.dateConversionMin(warehousebillsitems.getfBsdate()));
|
|
|
} else {
|
|
|
- tWhgenleg.setfBsdate(warehousebillsitems.getfBsdate());
|
|
|
+ tWhgenleg.setfBsdate(warehousebillsitems.getfOriginalbilldate());
|
|
|
}
|
|
|
+ // 业务类型
|
|
|
+ tWhgenleg.setfBusinessType(warehousebillsitems.getfBusinessType());
|
|
|
+ // 业务类型详情
|
|
|
+ tWhgenleg.setfMarks(warehousebillsitems.getfMarks());
|
|
|
if ("1".equals(ifCntrno)) {
|
|
|
tWhgenleg.setfCntrno(warehousebillsitems.getfCntrno());
|
|
|
}
|
|
@@ -467,7 +513,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
// 贸易方式
|
|
|
tWhgenleg.setfTrademodeid(warehouseBills.getfTrademodeid());
|
|
|
return tWhgenlegMapper.selectTWhgenleg(tWhgenleg);
|
|
|
- }
|
|
|
+ }*/
|
|
|
|
|
|
/**
|
|
|
* 新增库存总账
|
|
@@ -479,7 +525,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
@Transactional
|
|
|
public int instalTWhgenleg(TWarehouseBills warehouseBills, TWarehousebillsitems warehousebillsitems, SysUser user) {
|
|
|
TWhgenleg tWhgenleg = new TWhgenleg();
|
|
|
- if ("SJRK".equals(warehouseBills.getfBilltype())) {
|
|
|
+ if (WarehouseTypeEnum.SJRK.getType().equals(warehouseBills.getfBilltype())) {
|
|
|
tWhgenleg.setfOriginalbilldate(warehousebillsitems.getfBsdate());
|
|
|
if (StringUtils.isNotEmpty(warehouseBills.getfCustomno())) {
|
|
|
tWhgenleg.setfCustomno(warehouseBills.getfCustomno());
|
|
@@ -513,7 +559,8 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
if (StringUtils.isNotEmpty(warehousebillsitems.getfLocalcntrno())) {
|
|
|
tWhgenleg.setfLocalcntrno(warehousebillsitems.getfLocalcntrno());
|
|
|
}
|
|
|
- if (WarehouseTypeEnum.HQZY.getType().equals(warehouseBills.getfBilltype()) || WarehouseTypeEnum.CKDB.getType().equals(warehouseBills.getfBilltype())) {
|
|
|
+ if (WarehouseTypeEnum.HQZY.getType().equals(warehouseBills.getfBilltype()) || WarehouseTypeEnum.CKDB.getType().equals(warehouseBills.getfBilltype()) ||
|
|
|
+ WarehouseTypeEnum.HWTG.getType().equals(warehouseBills.getfBilltype())) {
|
|
|
// 仓储计费日期
|
|
|
tWhgenleg.setfChargedate(warehousebillsitems.getfBsdate());
|
|
|
} else {
|
|
@@ -527,13 +574,21 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
// 仓库
|
|
|
tWhgenleg.setfWarehouseid(warehouseBills.getfWarehouseid());
|
|
|
// 库区
|
|
|
- tWhgenleg.setfWarehouseLocationid(warehousebillsitems.getfWarehouselocid());
|
|
|
+ if (WarehouseTypeEnum.CKDB.getType().equals(warehouseBills.getfBilltype()) || WarehouseTypeEnum.HWTG.getType().equals(warehouseBills.getfBilltype())) {
|
|
|
+ tWhgenleg.setfWarehouseLocationid(warehousebillsitems.getfTransferWarehouselocid());
|
|
|
+ } else {
|
|
|
+ tWhgenleg.setfWarehouseLocationid(warehousebillsitems.getfWarehouselocid());
|
|
|
+ }
|
|
|
// 货物品名
|
|
|
tWhgenleg.setfGoodsid(warehousebillsitems.getfGoodsid());
|
|
|
// 计费方式
|
|
|
tWhgenleg.setfBillingway(warehousebillsitems.getfBillingway());
|
|
|
// 贸易方式
|
|
|
- tWhgenleg.setfTrademodeid(warehouseBills.getfTrademodeid());
|
|
|
+ if (WarehouseTypeEnum.HWTG.getType().equals(warehouseBills.getfBilltype())) {
|
|
|
+ tWhgenleg.setfTrademodeid(warehouseBills.getfNewTrademodeid());
|
|
|
+ } else {
|
|
|
+ tWhgenleg.setfTrademodeid(warehouseBills.getfTrademodeid());
|
|
|
+ }
|
|
|
// 入库数
|
|
|
tWhgenleg.setfQtyd(warehousebillsitems.getfQty());
|
|
|
// 入库尺码
|
|
@@ -2949,7 +3004,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
String billsType = warehousebillsitems.getfBilltype();
|
|
|
if ("SJRK".equals(billsType) && "0".equals(warehouseBills.getfChargetype()) && tWarehousebillsitems.getBsdate() != null) {
|
|
|
boolean fchargedate = this.getFchargedate(warehousebillsitems.getfPid(), tWarehousebillsitems.getBsdate());
|
|
|
- if (fchargedate == false) {
|
|
|
+ if (!fchargedate) {
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
return AjaxResult.error("入库日期不能小于最小仓储费计算日期");
|
|
|
}
|
|
@@ -2985,7 +3040,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
return AjaxResult.error("更新库存总账失败-->入库毛重大于库容");
|
|
|
}
|
|
|
- TWhgenleg tWhgenle = queryTWhgenleg(warehouseBills, warehousebillsitems, goods.getIfCntrno());
|
|
|
+ TWhgenleg tWhgenle = queryTWhgenleg(warehouseBills, warehousebillsitems, goods.getIfCntrno(), WarehouseTypeEnum.CONFIRM_OPERATION.getType());
|
|
|
if (StringUtils.isNotNull(tWhgenle)) {
|
|
|
int i = updateTWhgenlegData(tWarehousebillsitems, tWhgenle.getfId(), billsType);
|
|
|
if (i <= 0) {
|
|
@@ -3016,7 +3071,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
}
|
|
|
} else if ("SJCK".equals(billsType)) {
|
|
|
// 查询总账是否存在
|
|
|
- TWhgenleg tWhgenle = queryTWhgenleg(warehouseBills, warehousebillsitems, goods.getIfCntrno());
|
|
|
+ TWhgenleg tWhgenle = queryTWhgenleg(warehouseBills, warehousebillsitems, goods.getIfCntrno(), WarehouseTypeEnum.CONFIRM_OPERATION.getType());
|
|
|
if (StringUtils.isNull(tWhgenle)) { // 为空 提示没有库存
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
return AjaxResult.error("库存明细库存为空");
|
|
@@ -3307,7 +3362,8 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
return AjaxResult.error("仓库明细第" + i + "行未找到箱号");
|
|
|
}
|
|
|
- TWhgenleg tWhgenle = queryTWhgenleg(tWarehouseBills, item, goods.getIfCntrno());
|
|
|
+ // 查询库存总帐
|
|
|
+ TWhgenleg tWhgenle = queryWhgenlegService.stockWhgenleg(tWarehouseBills, item, goods.getIfCntrno(), WarehouseTypeEnum.CONFIRM_OPERATION.getType());
|
|
|
//复制报关单号和备注
|
|
|
if ("SJRK".equals(billsType)) {
|
|
|
if (StringUtils.isNotEmpty(tWarehouseBills.getfCustomno())) {
|
|
@@ -3550,6 +3606,10 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
int i = 1;
|
|
|
List<TFees> feesList = new ArrayList<>();
|
|
|
List<TWarehousebillsfees> warehousebillsfees = new ArrayList<>();
|
|
|
+ // 判断原贸易与新贸易是否一致,如果一致则抛出异常
|
|
|
+ if (Objects.equals(tWarehouseBills.getfTrademodeid(), tWarehouseBills.getfNewTrademodeid())) {
|
|
|
+ throw new WarehouseException("贸易方式不得与原贸易方式一致");
|
|
|
+ }
|
|
|
for (TWarehousebillsitems wbItem : warehousebillsitemsList) {
|
|
|
if (StringUtils.isNull(wbItem.getfSrcid())) {
|
|
|
throw new WarehouseException("仓储明细找不对库存总帐信息");
|
|
@@ -3561,32 +3621,19 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
// 查询是否可以修改
|
|
|
TWarehousebillsitems tWarehousebillsitems = tWarehousebillsitemsMapper.selectTWarehousebillsitemsById(wbItem.getfId());
|
|
|
if (tWarehousebillsitems.getfBillstatus() == 40) {
|
|
|
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
- return AjaxResult.error("更新库存明细第" + i + "行失败,已处理,请刷新网页");
|
|
|
+ throw new WarehouseException("更新库存明细第" + i + "行失败,已处理,请刷新网页");
|
|
|
}
|
|
|
if (StringUtils.isNull(wbItem.getfWarehouselocid())) {
|
|
|
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
- return AjaxResult.error("库存明细第" + i + "行,未找到仓库信息");
|
|
|
+ throw new WarehouseException("库存明细第" + i + "行,未找到仓库信息");
|
|
|
}
|
|
|
TGoods goods = tGoodsMapper.selectTGoodsById(wbItem.getfGoodsid());
|
|
|
- if ("1".equals(goods.getIfCntrno()) && StringUtils.isNull(wbItem.getfCntrno())) {
|
|
|
- return AjaxResult.error("仓库明细第" + i + "行未找到箱号");
|
|
|
- }
|
|
|
- long warehouselocId = 0L;
|
|
|
- long transferWarehouselocid = 0L;
|
|
|
- if (WarehouseTypeEnum.CKDB.getType().equals(billsType) || WarehouseTypeEnum.HWTG.getType().equals(billsType)) {
|
|
|
- warehouselocId = wbItem.getfWarehouselocid();
|
|
|
- transferWarehouselocid = wbItem.getfTransferWarehouselocid();
|
|
|
-// wbItem.setfWarehouselocid(transferWarehouselocid);
|
|
|
+ // 如果需要判断箱号则需要校验必填
|
|
|
+ if (WarehouseTypeEnum.JUDGE_BOX.getType().equals(goods.getIfCntrno()) && StringUtils.isNull(wbItem.getfCntrno())) {
|
|
|
+ throw new WarehouseException("仓库明细第" + i + "行未找到箱号");
|
|
|
}
|
|
|
+ wbItem.setfBilltype(billsType);
|
|
|
// 查询总账是否存在
|
|
|
- TWhgenleg tWhgenle;
|
|
|
- if (StringUtils.isNotNull(wbItem.getfSrcid())) {
|
|
|
- // 根据来源编号查出库存总账的信息
|
|
|
- tWhgenle = tWhgenlegMapper.selectTWhgenlegById(wbItem.getfSrcid());
|
|
|
- } else {
|
|
|
- tWhgenle = queryTWhgenleg(tWarehouseBills, wbItem, goods.getIfCntrno());
|
|
|
- }
|
|
|
+ TWhgenleg tWhgenle = queryWhgenlegService.stockWhgenleg(tWarehouseBills, wbItem, goods.getIfCntrno(), WarehouseTypeEnum.CONFIRM_OPERATION.getType());
|
|
|
// 查询总账是否存在
|
|
|
if (Objects.isNull(tWhgenle)) {
|
|
|
throw new WarehouseException("库存明细第" + i + "行找不到库存信息");
|
|
@@ -3597,44 +3644,38 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
// 入库数特殊不判断入账
|
|
|
if (WarehouseTypeEnum.SJCK.getType().equals(billsType)) { // 出库 查询
|
|
|
if (StringUtils.isNull(tWarehouseBills.getfBsdate()) || StringUtils.isNull(wbItem.getfChargedate())) {
|
|
|
- return AjaxResult.error("库存明细第" + i + "行请检查日期,操作终止");
|
|
|
+ throw new WarehouseException("库存明细第" + i + "行请检查日期,操作终止");
|
|
|
}
|
|
|
if (StringUtils.isNull(tWarehouseBills.getfCorpid())) {
|
|
|
- return AjaxResult.error("库存明细第" + i + "行请检查客户信息,操作终止");
|
|
|
+ throw new WarehouseException("库存明细第" + i + "行请检查客户信息,操作终止");
|
|
|
}
|
|
|
//校验计费日期是等于库存总帐计费日,如果不相等则报错
|
|
|
checkWhgenleg(wbItem, tWhgenle);
|
|
|
// 库存 < 出库件数
|
|
|
if (tWhgenle.getfQtyblc() < wbItem.getfQty()) {
|
|
|
- return AjaxResult.error("库存明细第" + i + "行库存不足");
|
|
|
+ throw new WarehouseException("库存明细第" + i + "行库存不足");
|
|
|
}
|
|
|
// 更新库存总账
|
|
|
updateTWhgenlegData(wbItem, tWhgenle.getfId(), billsType);
|
|
|
wbItem.setfBillstatus(40L);
|
|
|
} else if (WarehouseTypeEnum.CKDB.getType().equals(billsType) || WarehouseTypeEnum.HWTG.getType().equals(billsType)) { // 调拨查询
|
|
|
+ if (Objects.equals(wbItem.getfWarehouselocid(), wbItem.getfTransferWarehouselocid())) {
|
|
|
+ throw new WarehouseException("库存明细第" + i + "行调入调出仓库不能一致");
|
|
|
+ }
|
|
|
//校验计费日期是等于库存总帐计费日,如果不相等则报错
|
|
|
checkWhgenleg(wbItem, tWhgenle);
|
|
|
if (tWhgenle.getfQtyblc() < wbItem.getfQty()) { // 1、 库存 < 调拨件数 提示库存不足
|
|
|
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
throw new WarehouseException("库存明细第" + i + "行库存不足");
|
|
|
} else { // 2、 库存足够 先 进行出库操作
|
|
|
- wbItem.setfWarehouselocid(warehouselocId);
|
|
|
updateTWhgenlegData(wbItem, tWhgenle.getfId(), WarehouseTypeEnum.SJCK.getType());
|
|
|
}
|
|
|
- if (WarehouseTypeEnum.HWTG.getType().equals(billsType)) {
|
|
|
- tWarehouseBills.setfTrademodeid(tWarehouseBills.getfNewTrademodeid());
|
|
|
- }
|
|
|
// 3、 进行入库操作 查询是否存在库存
|
|
|
- wbItem.setfWarehouselocid(transferWarehouselocid); // 新库区
|
|
|
- // todo:: 需要完善的地方 缺一个字段用来存储 货转新总帐查询
|
|
|
- TWhgenleg tWhgenle1 = queryTWhgenleg(tWarehouseBills, wbItem, goods.getIfCntrno());
|
|
|
-
|
|
|
+ TWhgenleg tWhgenle1 = queryWhgenlegService.secondStockWhgenleg(tWarehouseBills, wbItem, goods.getIfCntrno(), WarehouseTypeEnum.NOT_JUDGE_BOX.getType());
|
|
|
if (StringUtils.isNull(tWhgenle1)) { // 5、 不存在 进行新增库存
|
|
|
instalTWhgenleg(tWarehouseBills, wbItem, loginUser.getUser());
|
|
|
} else { // 4、 存在 进行跟新库存
|
|
|
updateTWhgenlegData(wbItem, tWhgenle1.getfId(), WarehouseTypeEnum.SJRK.getType());
|
|
|
}
|
|
|
- wbItem.setfWarehouselocid(warehouselocId);
|
|
|
wbItem.setfBillstatus(40L);
|
|
|
} else if (WarehouseTypeEnum.HQZY.getType().equals(billsType)) { // 货转
|
|
|
wbItem.setfBillstatus(6L);
|
|
@@ -3649,7 +3690,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
long corpId = tWarehouseBills.getfCorpid();
|
|
|
tWarehouseBills.setfCorpid(tWarehouseBills.getfTocorpid());
|
|
|
// 3、 进行入库操作 查询是否存在库存
|
|
|
- TWhgenleg tWhgenle1 = queryTWhgenleg(tWarehouseBills, wbItem, goods.getIfCntrno());
|
|
|
+ TWhgenleg tWhgenle1 = queryWhgenlegService.secondStockWhgenleg(tWarehouseBills, wbItem, goods.getIfCntrno(), WarehouseTypeEnum.NOT_JUDGE_BOX.getType());
|
|
|
if (StringUtils.isNull(tWhgenle1)) { // 5、 不存在 进行新增库存
|
|
|
instalTWhgenleg(tWarehouseBills, wbItem, loginUser.getUser());
|
|
|
} else { // 4、 存在 进行跟新库存
|
|
@@ -3660,7 +3701,6 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
i++;
|
|
|
int num = 0;
|
|
|
wbItem.setfPid(fPid);
|
|
|
- wbItem.setfBilltype(billsType);
|
|
|
wbItem.setfBillno(tWarehouseBills.getfBillno());
|
|
|
// wbItem.setfBsdate(tWarehouseBills.getfBsdate());
|
|
|
if (StringUtils.isNotNull(wbItem.getfId())) {
|
|
@@ -4858,10 +4898,11 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 计算仓储费审核通过
|
|
|
- * @param warehouseId 主表id
|
|
|
- * @param fettle 状态
|
|
|
- * @param date 审核时间
|
|
|
+ * 计算仓储费审核通过
|
|
|
+ *
|
|
|
+ * @param warehouseId 主表id
|
|
|
+ * @param fettle 状态
|
|
|
+ * @param date 审核时间
|
|
|
*/
|
|
|
public void approvedStorageFee(Long warehouseId, Long fettle, Date date) {
|
|
|
tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(warehouseId, fettle, date);
|
|
@@ -6075,83 +6116,66 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
if (StringUtils.isNotNull(wb.getfSerialNumber())) {
|
|
|
serialNumberList.add(wb.getfSerialNumber()); // 流水号回收
|
|
|
}
|
|
|
- // 查询库存总账
|
|
|
- TWhgenleg tWhgenle = queryTWhgenleg(tWarehousebills, wb, goods.getIfCntrno());
|
|
|
- if ("SJRKRevoke".equals(billsType)) { // 撤销 入库
|
|
|
+ if (WarehouseTypeEnum.SJRK_REVOKE.getType().equals(billsType)) { // 撤销 入库
|
|
|
+ // 查询库存总账
|
|
|
+ TWhgenleg tWhgenle = queryWhgenlegService.stockWhgenleg(tWarehousebills, wb, goods.getIfCntrno(), WarehouseTypeEnum.UNDO_OPERATION.getType());
|
|
|
if (wb.getfIsInventory().equals(0L)) {
|
|
|
if (StringUtils.isNotNull(tWhgenle) && (wb.getfQty() <= tWhgenle.getfQtyblc())) { // 非空 且 撤销数 <= 结余数
|
|
|
updateTWhgenlegData(wb, tWhgenle.getfId(), billsType);
|
|
|
} else { // 撤销数>结余数
|
|
|
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
- return AjaxResult.error("第" + i + "行撤销数大于库存结余数");
|
|
|
+ throw new WarehouseException("第" + i + "行撤销数大于库存结余数");
|
|
|
}
|
|
|
}
|
|
|
wb.setfBillstatus(10L);
|
|
|
- } else if ("SJCKRevoke".equals(billsType)) { // 撤销出库
|
|
|
+ } else if (WarehouseTypeEnum.SJCK_REVOKE.getType().equals(billsType)) { // 撤销出库
|
|
|
TWarehousebillsitems item = tWarehousebillsitemsMapper.selectTWarehousebillsitemsById(wb.getfId());
|
|
|
if (Objects.nonNull(item.getfStorageFeeDeadline())) {
|
|
|
throw new WarehouseException("明细信息已计算仓储费不允许撤销");
|
|
|
}
|
|
|
+ // 查询库存总账
|
|
|
+ TWhgenleg tWhgenle = queryWhgenlegService.stockWhgenleg(tWarehousebills, wb, goods.getIfCntrno(), WarehouseTypeEnum.UNDO_OPERATION.getType());
|
|
|
if (StringUtils.isNotNull(tWhgenle)) { // 非空
|
|
|
updateTWhgenlegData(wb, tWhgenle.getfId(), billsType);
|
|
|
} else {
|
|
|
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
- return AjaxResult.error("第" + i + "行未查询到库存信息");
|
|
|
+ throw new WarehouseException("第" + i + "行未查询到库存信息");
|
|
|
}
|
|
|
wb.setfBillstatus(10L);
|
|
|
- } else if ("CKDBRevoke".equals(billsType)) { // 调拨 撤销
|
|
|
- Long warehouselocid = wb.getfWarehouselocid();// 原货仓库
|
|
|
- Long transferWarehouselocid = wb.getfTransferWarehouselocid(); // 新仓库
|
|
|
+ } else if (WarehouseTypeEnum.CKDB_REVOKE.getType().equals(billsType)) { // 调拨 撤销
|
|
|
// 1、新货权方撤销入库
|
|
|
- // 查询库存总账
|
|
|
- wb.setfWarehouselocid(transferWarehouselocid);
|
|
|
- TWhgenleg tWhgenle1 = queryTWhgenleg(tWarehousebills, wb, goods.getIfCntrno());
|
|
|
- if (StringUtils.isNotNull(tWhgenle1) && (wb.getfQty() <= tWhgenle1.getfQtyblc())) {
|
|
|
- updateTWhgenlegData(wb, tWhgenle1.getfId(), "SJRKRevoke");
|
|
|
+ TWhgenleg tWhgenle = queryWhgenlegService.secondStockWhgenleg(tWarehousebills, wb, goods.getIfCntrno(), WarehouseTypeEnum.CONFIRM_OPERATION.getType());
|
|
|
+ if (StringUtils.isNotNull(tWhgenle) && (wb.getfQty() <= tWhgenle.getfQtyblc())) {
|
|
|
+ updateTWhgenlegData(wb, tWhgenle.getfId(), WarehouseTypeEnum.SJRK_REVOKE.getType());
|
|
|
} else {
|
|
|
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
- return AjaxResult.error("第" + i + "行撤销数大于库存结余数");
|
|
|
+ throw new WarehouseException("第" + i + "行撤销数大于库存结余数");
|
|
|
}
|
|
|
// 2、原货权方撤销出库
|
|
|
- // 查询库存总账
|
|
|
- wb.setfWarehouselocid(warehouselocid);
|
|
|
- TWhgenleg tWhgenle2 = queryTWhgenleg(tWarehousebills, wb, goods.getIfCntrno());
|
|
|
- updateTWhgenlegData(wb, tWhgenle2.getfId(), "SJCKRevoke");
|
|
|
+ TWhgenleg whgenleg = queryWhgenlegService.stockWhgenleg(tWarehousebills, wb, goods.getIfCntrno(), WarehouseTypeEnum.UNDO_OPERATION.getType());
|
|
|
+ updateTWhgenlegData(wb, whgenleg.getfId(), WarehouseTypeEnum.SJCK_REVOKE.getType());
|
|
|
wb.setfBillstatus(10L);
|
|
|
- } else if ("HWTGRevoke".equals(billsType)) { // 调拨 撤销
|
|
|
- // 贸易方式
|
|
|
- Long oldfTrademodeid = tWarehousebills.getfTrademodeid();
|
|
|
- // 新贸易方式
|
|
|
- Long newfTrademodeid = tWarehousebills.getfNewTrademodeid();
|
|
|
- Long warehouselocid = wb.getfWarehouselocid();// 原货仓库
|
|
|
- Long transferWarehouselocid = wb.getfTransferWarehouselocid(); // 新仓库
|
|
|
+ } else if (WarehouseTypeEnum.HWTG_REVOKE.getType().equals(billsType)) { // 调拨 撤销
|
|
|
// 1、新货权方撤销入库
|
|
|
// 查询库存总账
|
|
|
- wb.setfWarehouselocid(transferWarehouselocid);
|
|
|
- tWarehousebills.setfTrademodeid(newfTrademodeid); // 查询用新的
|
|
|
- TWhgenleg tWhgenle1 = queryTWhgenleg(tWarehousebills, wb, goods.getIfCntrno());
|
|
|
- if (StringUtils.isNotNull(tWhgenle1) && (wb.getfQty() <= tWhgenle1.getfQtyblc())) {
|
|
|
- updateTWhgenlegData(wb, tWhgenle1.getfId(), "SJRKRevoke");
|
|
|
+ TWhgenleg tWhgenle = queryWhgenlegService.secondStockWhgenleg(tWarehousebills, wb, goods.getIfCntrno(), WarehouseTypeEnum.CONFIRM_OPERATION.getType());
|
|
|
+ if (StringUtils.isNotNull(tWhgenle) && (wb.getfQty() <= tWhgenle.getfQtyblc())) {
|
|
|
+ updateTWhgenlegData(wb, tWhgenle.getfId(), WarehouseTypeEnum.SJRK_REVOKE.getType());
|
|
|
} else {
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
return AjaxResult.error("第" + i + "行撤销数大于库存结余数");
|
|
|
}
|
|
|
// 2、原货权方撤销出库
|
|
|
// 查询库存总账
|
|
|
- wb.setfWarehouselocid(warehouselocid);
|
|
|
- tWarehousebills.setfTrademodeid(oldfTrademodeid); // 撤销回到旧的
|
|
|
- TWhgenleg tWhgenle2 = queryTWhgenleg(tWarehousebills, wb, goods.getIfCntrno());
|
|
|
- updateTWhgenlegData(wb, tWhgenle2.getfId(), "SJCKRevoke");
|
|
|
+ TWhgenleg whgenleg = queryWhgenlegService.stockWhgenleg(tWarehousebills, wb, goods.getIfCntrno(), WarehouseTypeEnum.UNDO_OPERATION.getType());
|
|
|
+ updateTWhgenlegData(wb, whgenleg.getfId(), WarehouseTypeEnum.SJCK_REVOKE.getType());
|
|
|
wb.setfBillstatus(10L);
|
|
|
- } else if ("HQZYRevoke".equals(billsType)) { // 货转撤销
|
|
|
+ } else if (WarehouseTypeEnum.HQZY_REVOKE.getType().equals(billsType)) { // 货转撤销
|
|
|
Long fCorpid = tWarehousebills.getfCorpid();// 原货权方
|
|
|
Long fTocorpid = tWarehousebills.getfTocorpid(); // 新货权方
|
|
|
// 1、新货权方撤销入库
|
|
|
// 查询库存总账
|
|
|
tWarehousebills.setfCorpid(fTocorpid);
|
|
|
- TWhgenleg tWhgenle1 = queryTWhgenleg(tWarehousebills, wb, goods.getIfCntrno());
|
|
|
+ TWhgenleg tWhgenle1 = queryWhgenlegService.secondStockWhgenleg(tWarehousebills, wb, goods.getIfCntrno(), WarehouseTypeEnum.CONFIRM_OPERATION.getType());
|
|
|
if (StringUtils.isNotNull(tWhgenle1) && (wb.getfQty() <= tWhgenle1.getfQtyblc())) {
|
|
|
- updateTWhgenlegData(wb, tWhgenle1.getfId(), "SJRKRevoke");
|
|
|
+ updateTWhgenlegData(wb, tWhgenle1.getfId(), WarehouseTypeEnum.SJRK_REVOKE.getType());
|
|
|
} else {
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
return AjaxResult.error("第" + i + "行撤销数大于库存结余数");
|
|
@@ -6159,8 +6183,8 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
// 2、原货权方撤销出库
|
|
|
// 查询库存总账
|
|
|
tWarehousebills.setfCorpid(fCorpid);
|
|
|
- TWhgenleg tWhgenle2 = queryTWhgenleg(tWarehousebills, wb, goods.getIfCntrno());
|
|
|
- updateTWhgenlegData(wb, tWhgenle2.getfId(), "SJCKRevoke");
|
|
|
+ TWhgenleg tWhgenle2 = queryWhgenlegService.stockWhgenleg(tWarehousebills, wb, goods.getIfCntrno(), WarehouseTypeEnum.UNDO_OPERATION.getType());
|
|
|
+ updateTWhgenlegData(wb, tWhgenle2.getfId(), WarehouseTypeEnum.SJCK_REVOKE.getType());
|
|
|
wb.setfBillstatus(1L);
|
|
|
}
|
|
|
i++;
|
|
@@ -6173,7 +6197,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- if (!"HQZYRevoke".equals(billsType)) {
|
|
|
+ if (!WarehouseTypeEnum.HQZY_REVOKE.getType().equals(billsType)) {
|
|
|
/**
|
|
|
* 流水号回收
|
|
|
* 2、 流水号去重
|
|
@@ -6307,7 +6331,6 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
newList.add(wb.getfId())
|
|
|
);
|
|
|
}
|
|
|
-
|
|
|
// 删除多余的ID
|
|
|
List<Long> reduce1 = oldList.stream().filter(item -> !newList.contains(item)).collect(toList());
|
|
|
reduce1.forEach(id ->
|