瀏覽代碼

解决仓储费不开启审批流更新异常问题

caifc 3 年之前
父節點
當前提交
151e97aed8

+ 3 - 3
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/warehouseBusiness/TWarehouseStockTransferController.java

@@ -44,11 +44,11 @@ public class TWarehouseStockTransferController extends BaseController {
     @GetMapping("/list")
     public TableDataInfo list(TWarehouseBills tWarehouseBills) {
         startPage();
-        if(tWarehouseBills.getType().equals("1")){
+        /*if(tWarehouseBills.getType().equals("1")){
             tWarehouseBills.setfBilltype("CKDB");
         }else{
-            tWarehouseBills.setfBilltype("HWTG");
-        }
+        }*/
+        tWarehouseBills.setfBilltype("HWTG");
         List<Map<String, Object>> list = itWarehouseBillsService.selectWarehouseBusinessList(tWarehouseBills);
         return getDataTable(list);
     }

+ 2 - 2
ruoyi-warehouse/src/main/java/com/ruoyi/reportManagement/domain/TWhgenleg.java

@@ -63,16 +63,16 @@ public class TWhgenleg extends BaseEntity {
     /**
      * 业务日期
      */
+    @JsonFormat(pattern = "yyyy-MM-dd")
     @DateTimeFormat(pattern = "yyyy-MM-dd")
-    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
     @Excel(name = "仓储计费日期", width = 30, dateFormat = "yyyy-MM-dd")
     private Date fBsdate;
 
     /**
      * 仓储计费日期
      */
+    @JsonFormat(pattern = "yyyy-MM-dd")
     @DateTimeFormat(pattern = "yyyy-MM-dd")
-    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
     @Excel(name = "仓储计费日期", width = 30, dateFormat = "yyyy-MM-dd")
     private Date fChargedate;
 

+ 33 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/component/QueryWhgenlegService.java

@@ -0,0 +1,33 @@
+package com.ruoyi.warehouseBusiness.component;
+
+import com.ruoyi.reportManagement.domain.TWhgenleg;
+import com.ruoyi.warehouseBusiness.domain.TWarehouseBills;
+import com.ruoyi.warehouseBusiness.domain.TWarehousebillsitems;
+
+/**
+ * @author caifc
+ * @date 2021-11-11 9:14
+ */
+public interface QueryWhgenlegService {
+
+    /**
+     * 仓库查询库存总帐
+     *
+     * @param warehouseBills 主表信息
+     * @param item           明细表信息
+     * @param ifCntrno       是否判断箱号
+     * @return 库存总帐
+     */
+    TWhgenleg stockWhgenleg(TWarehouseBills warehouseBills, TWarehousebillsitems item, String ifCntrno, String operate);
+
+    /**
+     * 仓库查询库存总帐
+     *
+     * @param warehouseBills 主表信息
+     * @param item           明细表信息
+     * @param ifCntrno       是否判断箱号
+     * @return 库存总帐
+     */
+    TWhgenleg secondStockWhgenleg(TWarehouseBills warehouseBills, TWarehousebillsitems item, String ifCntrno, String operate);
+
+}

+ 243 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/component/impl/QueryWhgenlegServiceImpl.java

@@ -0,0 +1,243 @@
+package com.ruoyi.warehouseBusiness.component.impl;
+
+import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.reportManagement.domain.TWhgenleg;
+import com.ruoyi.reportManagement.mapper.TWhgenlegMapper;
+import com.ruoyi.warehouseBusiness.component.QueryWhgenlegService;
+import com.ruoyi.warehouseBusiness.domain.TWarehouseBills;
+import com.ruoyi.warehouseBusiness.domain.TWarehousebillsitems;
+import com.ruoyi.warehouseBusiness.domain.enums.WarehouseTypeEnum;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+/**
+ * @author caifc
+ * @date 2021-11-11 9:15
+ */
+@Slf4j
+@Component
+@AllArgsConstructor
+public class QueryWhgenlegServiceImpl implements QueryWhgenlegService {
+
+    private final TWhgenlegMapper tWhgenlegMapper;
+
+    private static final String FIRST = "one";
+
+    private static final String SECOND = "two";
+
+    /**
+     * 仓库查询库存总帐
+     *
+     * @param warehouseBills 主表信息
+     * @param item           明细表信息
+     * @param ifCntrno       是否判断箱号
+     * @param operate        操作(确认、撤回)
+     * @return 库存总帐
+     */
+    @Override
+    public TWhgenleg stockWhgenleg(TWarehouseBills warehouseBills, TWarehousebillsitems item, String ifCntrno, String operate) {
+        TWhgenleg whgenleg = new TWhgenleg();
+        // 提单号
+        whgenleg.setfMblno(item.getfMblno());
+        // 业务类型
+        whgenleg.setfBusinessType(item.getfBusinessType());
+        // 是否判断箱号
+        if (WarehouseTypeEnum.JUDGE_BOX.getType().equals(ifCntrno)) {
+            whgenleg.setfCntrno(item.getfCntrno());
+        }
+        // 货物品名
+        whgenleg.setfGoodsid(item.getfGoodsid());
+        if (WarehouseTypeEnum.SJRK.getType().equals(warehouseBills.getfBilltype())) {
+            inStock(whgenleg, warehouseBills, item);
+        }
+        if (WarehouseTypeEnum.SJCK.getType().equals(warehouseBills.getfBilltype())) {
+            outStock(whgenleg, warehouseBills, item);
+        }
+        if (WarehouseTypeEnum.HQZY.getType().equals(warehouseBills.getfBilltype())) {
+            goodsTransfer(whgenleg, warehouseBills, item, operate, FIRST);
+        }
+        if (WarehouseTypeEnum.CKDB.getType().equals(warehouseBills.getfBilltype())) {
+            stockTransfer(whgenleg, warehouseBills, item, operate, FIRST);
+        }
+        if (WarehouseTypeEnum.HWTG.getType().equals(warehouseBills.getfBilltype())) {
+            cargoClearance(whgenleg, warehouseBills, item, operate, FIRST);
+        }
+
+        TWhgenleg tWhgenleg = tWhgenlegMapper.selectTWhgenleg(whgenleg);
+
+        return tWhgenleg;
+    }
+
+    /**
+     * 被货转查询库存总帐
+     *
+     * @param warehouseBills 主表信息
+     * @param item           明细表信息
+     * @param ifCntrno       是否判断箱号
+     * @param operate        操作(确认、撤回)
+     * @return 库存总帐
+     */
+    @Override
+    public TWhgenleg secondStockWhgenleg(TWarehouseBills warehouseBills, TWarehousebillsitems item, String ifCntrno, String operate) {
+        TWhgenleg whgenleg = new TWhgenleg();
+        // 提单号
+        whgenleg.setfMblno(item.getfMblno());
+        // 业务类型
+        whgenleg.setfBusinessType(item.getfBusinessType());
+        // 是否判断箱号
+        if (WarehouseTypeEnum.JUDGE_BOX.getType().equals(ifCntrno)) {
+            whgenleg.setfCntrno(item.getfCntrno());
+        }
+        // 货物品名
+        whgenleg.setfGoodsid(item.getfGoodsid());
+        if (WarehouseTypeEnum.HQZY.getType().equals(warehouseBills.getfBilltype())) {
+            goodsTransfer(whgenleg, warehouseBills, item, operate, SECOND);
+        }
+        if (WarehouseTypeEnum.CKDB.getType().equals(warehouseBills.getfBilltype())) {
+            stockTransfer(whgenleg, warehouseBills, item, operate, SECOND);
+        }
+        if (WarehouseTypeEnum.HWTG.getType().equals(warehouseBills.getfBilltype())) {
+            cargoClearance(whgenleg, warehouseBills, item, operate, SECOND);
+        }
+
+        TWhgenleg tWhgenleg = tWhgenlegMapper.selectTWhgenleg(whgenleg);
+
+        return tWhgenleg;
+    }
+
+
+    /**
+     * 入库查询库存总帐
+     *
+     * @param whgenleg       查询条件
+     * @param warehouseBills 主表信息
+     * @param item           明细表信息
+     * @return 库存总帐
+     */
+    private void inStock(TWhgenleg whgenleg, TWarehouseBills warehouseBills, TWarehousebillsitems item) {
+        // 客户
+        whgenleg.setfCorpid(warehouseBills.getfCorpid());
+        // 贸易方式
+        whgenleg.setfTrademodeid(warehouseBills.getfTrademodeid());
+        // 业务日期
+        whgenleg.setfBsdate(DateUtils.dateConversionMin(item.getfOriginalbilldate()));
+        // 业务类型详情
+        whgenleg.setfMarks(item.getfMarks());
+        // 库区
+        whgenleg.setfWarehouseLocationid(item.getfWarehouselocid());
+    }
+
+    /**
+     * 出库查询库存总帐
+     *
+     * @param whgenleg       查询条件
+     * @param warehouseBills 主表信息
+     * @param item           明细表信息
+     * @return 库存总帐
+     */
+    private void outStock(TWhgenleg whgenleg, TWarehouseBills warehouseBills, TWarehousebillsitems item) {
+        // 客户
+        whgenleg.setfCorpid(warehouseBills.getfCorpid());
+        // 贸易方式
+        whgenleg.setfTrademodeid(warehouseBills.getfTrademodeid());
+        // 业务日期
+        whgenleg.setfBsdate(DateUtils.dateConversionMin(item.getfOriginalbilldate()));
+        // 库区
+        whgenleg.setfWarehouseLocationid(item.getfWarehouselocid());
+    }
+
+    /**
+     * 货转查询库存总帐
+     *
+     * @param whgenleg       查询条件
+     * @param warehouseBills 主表信息
+     * @param item           明细表信息
+     * @param operate        操作(确认、撤回)
+     * @return 库存总帐
+     */
+    private void goodsTransfer(TWhgenleg whgenleg, TWarehouseBills warehouseBills, TWarehousebillsitems item, String operate, String frequency) {
+        // 客户
+        if (operate.equals(WarehouseTypeEnum.CONFIRM_OPERATION.getType()) && !frequency.equals(FIRST)) {
+            whgenleg.setfCorpid(warehouseBills.getfTocorpid());
+        } else {
+            whgenleg.setfCorpid(warehouseBills.getfCorpid());
+        }
+        // 贸易方式
+        whgenleg.setfTrademodeid(warehouseBills.getfTrademodeid());
+        // 业务日期
+        if (frequency.equals(FIRST)) {
+            whgenleg.setfBsdate(DateUtils.dateConversionMin(item.getfOriginalbilldate()));
+        } else {
+            whgenleg.setfBsdate(DateUtils.dateConversionMin(item.getfBsdate()));
+        }
+        // 库区
+        whgenleg.setfWarehouseLocationid(item.getfWarehouselocid());
+    }
+
+    /**
+     * 调拨查询库存总帐
+     *
+     * @param whgenleg       查询条件
+     * @param warehouseBills 主表信息
+     * @param item           明细表信息
+     * @param operate        操作(确认、撤回)
+     * @return 库存总帐
+     */
+    private void stockTransfer(TWhgenleg whgenleg, TWarehouseBills warehouseBills, TWarehousebillsitems item, String operate, String frequency) {
+        // 客户
+        whgenleg.setfCorpid(warehouseBills.getfCorpid());
+        // 贸易方式
+        whgenleg.setfTrademodeid(warehouseBills.getfTrademodeid());
+        // 提单号
+        whgenleg.setfMblno(item.getfMblno());
+        // 业务日期
+        if (frequency.equals(FIRST)) {
+            whgenleg.setfBsdate(DateUtils.dateConversionMin(item.getfOriginalbilldate()));
+        } else {
+            whgenleg.setfBsdate(DateUtils.dateConversionMin(item.getfBsdate()));
+        }
+        // 库区
+        if (operate.equals(WarehouseTypeEnum.CONFIRM_OPERATION.getType()) && !frequency.equals(FIRST)) {
+            whgenleg.setfWarehouseLocationid(item.getfTransferWarehouselocid());
+        } else {
+            whgenleg.setfWarehouseLocationid(item.getfWarehouselocid());
+        }
+    }
+
+    /**
+     * 货物通关查询库存总帐
+     *
+     * @param whgenleg       查询条件
+     * @param warehouseBills 主表信息
+     * @param item           明细表信息
+     * @param operate        操作(确认、撤回)
+     * @return 库存总帐
+     */
+    private void cargoClearance(TWhgenleg whgenleg, TWarehouseBills warehouseBills, TWarehousebillsitems item, String operate, String frequency) {
+        // 客户
+        whgenleg.setfCorpid(warehouseBills.getfCorpid());
+        // 贸易方式
+        if (operate.equals(WarehouseTypeEnum.CONFIRM_OPERATION.getType()) && !frequency.equals(FIRST)) {
+            whgenleg.setfTrademodeid(warehouseBills.getfNewTrademodeid());
+        } else {
+            whgenleg.setfTrademodeid(warehouseBills.getfTrademodeid());
+        }
+        // 提单号
+        whgenleg.setfMblno(item.getfMblno());
+        // 业务日期
+        if (frequency.equals(FIRST)) {
+            whgenleg.setfBsdate(DateUtils.dateConversionMin(item.getfOriginalbilldate()));
+        } else {
+            whgenleg.setfBsdate(DateUtils.dateConversionMin(item.getfBsdate()));
+        }
+        // 库区
+        if (operate.equals(WarehouseTypeEnum.CONFIRM_OPERATION.getType()) && !frequency.equals(FIRST)) {
+            whgenleg.setfWarehouseLocationid(item.getfTransferWarehouselocid());
+        } else {
+            whgenleg.setfWarehouseLocationid(item.getfWarehouselocid());
+        }
+    }
+
+
+}

+ 19 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/domain/enums/WarehouseTypeEnum.java

@@ -30,6 +30,16 @@ public enum WarehouseTypeEnum {
 
     HWTG("HWTG", "货物通关"),
 
+    SJRK_REVOKE("SJRKRevoke", "撤销入库"),
+
+    SJCK_REVOKE("SJCKRevoke", "撤销出库"),
+
+    CKDB_REVOKE("CKDBRevoke", "撤销调拨"),
+
+    HWTG_REVOKE("HWTGRevoke", "撤销通关"),
+
+    HQZY_REVOKE("HQZYRevoke", "撤销货权转移"),
+
 
     //是否已计算仓储费
 
@@ -70,6 +80,15 @@ public enum WarehouseTypeEnum {
     // 统一
     FIXED("5", "吨"),
 
+    // 查询库存帐操作
+    CONFIRM_OPERATION("0", "确认入库、出库、货转、调拨"),
+    UNDO_OPERATION("1", "撤回入库、出库、货转、调拨"),
+
+    // 是否判断箱型
+    JUDGE_BOX("1", "判断箱型"),
+    NOT_JUDGE_BOX("0", "非判断箱型"),
+
+
     ;
 
     private final String type;

+ 12 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/ITWarehouseBillsService.java

@@ -163,6 +163,18 @@ public interface ITWarehouseBillsService {
      */
     public AjaxResult revokeTWarehousebillsById(Long fId, LoginUser loginUser, String billsType);
 
+    /**
+     *  撤回 入库、 调拨
+     * @param warehouseBills
+     * @param warehousebillsitems
+     * @param tEnclosure
+     * @param warehousebillsfeesCr
+     * @param warehousebillsfeesDr
+     * @param loginUser
+     * @param tCntr
+     * @param billsType
+     * @return
+     */
     AjaxResult revokeTWarehousebillsById1(String warehouseBills, String warehousebillsitems, String tEnclosure,
                                           String warehousebillsfeesCr, String warehousebillsfeesDr,
                                           LoginUser loginUser, String tCntr, String billsType);

+ 126 - 103
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/TWarehouseBillsServiceImpl.java

@@ -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 ->