Sfoglia il codice sorgente

[CODE]: 入库、出库、调拨、货转 撤销功能

maxianghua 4 anni fa
parent
commit
e2ffd9fb69

+ 13 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/warehouseBusiness/TWarehouseGoodsTransferController.java

@@ -133,4 +133,17 @@ public class TWarehouseGoodsTransferController extends BaseController {
         return toAjax(itWarehouseBillsService.deleteTWarehousebillsByIds(fIds));
     }
 
+    /**
+     *  撤销货转信息
+     */
+    @PreAuthorize("@ss.hasPermi('warehouseBusiness:transfer:revoke')")
+    @Log(title = "详情主表", businessType = BusinessType.UPDATE)
+    @GetMapping("/get/{fId}")
+    public AjaxResult revoke(@PathVariable("fId") Long fId) {
+        String  billsType="HQZYRevoke";
+        // 获取当前的用户
+        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
+        return itWarehouseBillsService.revokeTWarehousebillsById(fId,loginUser,billsType);
+    }
+
 }

+ 1 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/warehouseBusiness/TWarehouseInStockController.java

@@ -149,6 +149,6 @@ public class TWarehouseInStockController extends BaseController {
         String  billsType="SJRKRevoke";
         // 获取当前的用户
         LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
-        return toAjax(itWarehouseBillsService.revokeTWarehousebillsById(fId,loginUser,billsType));
+        return itWarehouseBillsService.revokeTWarehousebillsById(fId,loginUser,billsType);
     }
 }

+ 1 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/warehouseBusiness/TWarehouseOutStockController.java

@@ -140,6 +140,6 @@ public class TWarehouseOutStockController extends BaseController {
         String  billsType="SJCKRevoke";
         // 获取当前的用户
         LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
-        return toAjax(itWarehouseBillsService.revokeTWarehousebillsById(fId,loginUser,billsType));
+        return itWarehouseBillsService.revokeTWarehousebillsById(fId,loginUser,billsType);
     }
 }

+ 13 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/warehouseBusiness/TWarehouseTransferController.java

@@ -133,4 +133,17 @@ public class TWarehouseTransferController extends BaseController {
         return toAjax(itWarehouseBillsService.deleteTWarehousebillsByIds(fIds));
     }
 
+    /**
+     *  撤销调拨信息
+     */
+    @PreAuthorize("@ss.hasPermi('warehouseBusiness:transfer:revoke')")
+    @Log(title = "详情主表", businessType = BusinessType.UPDATE)
+    @GetMapping("/get/{fId}")
+    public AjaxResult revoke(@PathVariable("fId") Long fId) {
+        String  billsType="CKDBRevoke";
+        // 获取当前的用户
+        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
+        return itWarehouseBillsService.revokeTWarehousebillsById(fId,loginUser,billsType);
+    }
+
 }

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

@@ -87,5 +87,5 @@ public interface ITWarehouseBillsService {
      * @param billsType
      * @return
      */
-    public int revokeTWarehousebillsById(Long fId, LoginUser loginUser, String billsType);
+    public AjaxResult revokeTWarehousebillsById(Long fId, LoginUser loginUser, String billsType);
 }

+ 60 - 8
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/TWarehouseBillsServiceImpl.java

@@ -547,28 +547,80 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 
 
     @Override
-    public int revokeTWarehousebillsById(Long fId, LoginUser loginUser, String billsType) {
+    public AjaxResult revokeTWarehousebillsById(Long fId, LoginUser loginUser, String billsType) {
         // 查询 仓库主表信息、库存明细信息
         TWarehouseBills tWarehousebills = tWarehouseBillsMapper.selectTWarehousebillsById(fId);
+        // 修改主表信息
+        tWarehousebills.setUpdateBy(loginUser.getUser().getUserName());
+        tWarehousebills.setUpdateTime(new Date());
+        tWarehousebills.setfBillstatus("3"); //撤销状态
+        tWarehouseBillsMapper.updateTWarehousebills(tWarehousebills);
         // 查询库存明细从表数据
         TWarehousebillsitems tWarehousebillsitems = new TWarehousebillsitems();
         tWarehousebillsitems.setfPid(fId);
         List<TWarehousebillsitems> warehousebillsitems = tWarehousebillsitemsMapper.selectTWarehousebillsitemsList(tWarehousebillsitems);
         // 撤销 库存总账
         if (StringUtils.isNotEmpty(warehousebillsitems)) {
+            int i=1;
             for (TWarehousebillsitems wb : warehousebillsitems) {
                 // 查询库存总账
                 TWhgenleg tWhgenle=queryTWhgenleg(tWarehousebills,wb);
-                if(!StringUtils.isNull(tWhgenle)){ // 非空修改
-                    updateTWhgenlegData(wb,tWhgenle.getfId(),billsType);
+                if("SJRKRevoke".equals(billsType)){ // 撤销 入库
+                    if(StringUtils.isNotNull(tWhgenle) && (wb.getfQty() <= tWhgenle.getfQtyblc()) ){ // 非空 且 撤销数 <= 结余数
+                        updateTWhgenlegData(wb,tWhgenle.getfId(),billsType);
+                    } else{ // 撤销数>结余数
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        return AjaxResult.error("第"+i+"行撤销数大于库存结余数");
+                    }
+                } else if("SJCKRevoke".equals(billsType)){ // 撤销出库
+                    if(StringUtils.isNotNull(tWhgenle) ){ // 非空
+                        updateTWhgenlegData(wb,tWhgenle.getfId(),billsType);
+                    } else{
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        return AjaxResult.error("第"+i+"行未查询到库存信息");
+                    }
+                } else if("CKDBRevoke".equals(billsType)){ // 调拨 撤销
+                    Long fCorpid=tWarehousebills.getfCorpid();// 原货权方
+                    Long fTocorpid=tWarehousebills.getfTocorpid(); // 新货权方
+                    //  1、新货权方撤销入库
+                    // 查询库存总账
+                    tWarehousebills.setfCorpid(fTocorpid);
+                    TWhgenleg tWhgenle1=queryTWhgenleg(tWarehousebills,wb);
+                    if(StringUtils.isNotNull(tWhgenle1) && (wb.getfQty() <= tWhgenle1.getfQtyblc())){
+                        updateTWhgenlegData(wb,tWhgenle1.getfId(),"SJRKRevoke");
+                    }else{
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        return AjaxResult.error("第"+i+"行撤销数大于库存结余数");
+                    }
+                    //  2、原货权方撤销出库
+                    // 查询库存总账
+                    tWarehousebills.setfCorpid(fCorpid);
+                    TWhgenleg tWhgenle2=queryTWhgenleg(tWarehousebills,wb);
+                    updateTWhgenlegData(wb,tWhgenle2.getfId(),"SJCKRevoke");
+                } else if("HQZYRevoke".equals(billsType)){ // 货转撤销 HQZYRevoke
+                    Long fCorpid=tWarehousebills.getfCorpid();// 原货权方
+                    Long fTocorpid=tWarehousebills.getfTocorpid(); // 新货权方
+                    //  1、新货权方撤销入库
+                    // 查询库存总账
+                    tWarehousebills.setfCorpid(fTocorpid);
+                    TWhgenleg tWhgenle1=queryTWhgenleg(tWarehousebills,wb);
+                    if(StringUtils.isNotNull(tWhgenle1) && (wb.getfQty() <= tWhgenle1.getfQtyblc())){
+                        updateTWhgenlegData(wb,tWhgenle1.getfId(),"SJRKRevoke");
+                    }else{
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        return AjaxResult.error("第"+i+"行撤销数大于库存结余数");
+                    }
+                    //  2、原货权方撤销出库
+                    // 查询库存总账
+                    tWarehousebills.setfCorpid(fCorpid);
+                    TWhgenleg tWhgenle2=queryTWhgenleg(tWarehousebills,wb);
+                    updateTWhgenlegData(wb,tWhgenle2.getfId(),"SJCKRevoke");
                 }
+                i++;
             }
         }
-        // 修改主表信息
-        tWarehousebills.setUpdateBy(loginUser.getUser().getUserName());
-        tWarehousebills.setUpdateTime(new Date());
-        tWarehousebills.setfBillstatus("3"); //撤销状态
-        return tWarehouseBillsMapper.updateTWarehousebills(tWarehousebills);
+        return AjaxResult.success();
+
     }
 
 }