浏览代码

优化审批流

阿伏兔 4 年之前
父节点
当前提交
78d4228fbd

+ 4 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/approvalFlow/AuditPathsController.java

@@ -84,7 +84,7 @@ public class AuditPathsController extends BaseController {
     }
 
     /**
-     * 审批撤销
+     * 审批撤销(我提交的 没人审核)
      */
     @RepeatSubmit
     @PostMapping("/revoke")
@@ -95,6 +95,9 @@ public class AuditPathsController extends BaseController {
         if (StringUtils.isNull(auditItems.getBillId())) {
             return AjaxResult.error("操作失败 未找到表单信息,请确认");
         }
+        if (StringUtils.isNull(auditItems.getFidStatus())) {
+            return AjaxResult.error("操作失败 未找到更新字段信息,请确认");
+        }
         LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
         auditItems.setSendName(loginUser.getUsername());
         auditItems.setSendUserId(loginUser.getUser().getUserId());

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

@@ -130,13 +130,13 @@ public class TWarehouseInStockController extends BaseController {
     }
 
     /**
-     * 仓库主表审批
+     * 提交仓库主表审批
      */
-    /*@PreAuthorize("@ss.hasPermi('warehouseBusiness:inStock:add')")
+    @PreAuthorize("@ss.hasPermi('warehouseBusiness:inStock:add')")
     @Log(title = "详情主表", businessType = BusinessType.INSERT)
-    @PostMapping(value = "/warehouseSubmission")
+    @PostMapping(value = "/submitWarehousingApproval")
     @RepeatSubmit
-    public AjaxResult warehouseSubmission(@RequestParam("tWarehouseBills") String tWarehouseBills,
+    public AjaxResult submitWarehousingApproval(@RequestParam("tWarehouseBills") String tWarehouseBills,
                                           @RequestParam("tEnclosure") String tEnclosure,
                                           @RequestParam("tCntr") String tCntr,
                                           @RequestParam("tWarehousebillsfeesCr") String tWarehousebillsfeesCr,
@@ -146,13 +146,9 @@ public class TWarehouseInStockController extends BaseController {
         if (StringUtils.isNull(tWarehouseBills) || "{}".equals(tWarehouseBills)) {
             return AjaxResult.error("未找到仓库主表数据,请确认");
         }
-        if (StringUtils.isNull(tWarehousebillsitems) || "[]".equals(tWarehousebillsitems)) {
-            return AjaxResult.error("未找到仓库明细数据,请确认");
-        }
-        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
-        return itWarehouseBillsService.warehouseSubmission(tWarehouseBills, tWarehousebillsfeesCr,
-                tWarehousebillsfeesDr, tWarehousebillsitems, tEnclosure, loginUser, tCntr, billsType);
-    }*/
+        return itWarehouseBillsService.submitWarehousingApproval(tWarehouseBills, tWarehousebillsfeesCr,
+                tWarehousebillsfeesDr, tWarehousebillsitems, tEnclosure, tCntr, billsType);
+    }
 
     /**
      * 修改入库详情主表
@@ -183,7 +179,7 @@ public class TWarehouseInStockController extends BaseController {
     }
 
     /**
-     * 撤销入库信息
+     * 撤销已审核通过的入库信息
      */
     @PreAuthorize("@ss.hasPermi('warehouseBusiness:inStock:revoke')")
     @Log(title = "详情主表", businessType = BusinessType.UPDATE)
@@ -206,6 +202,16 @@ public class TWarehouseInStockController extends BaseController {
     }
 
     /**
+     * 撤销已审核通过的接单入库信息
+     */
+    @Log(title = "详情主表", businessType = BusinessType.UPDATE)
+    @GetMapping("/withdrawOrdersById/{fId}")
+    @RepeatSubmit
+    public AjaxResult withdrawOrdersById(@PathVariable("fId") Long fId) {
+        return itWarehouseBillsService.withdrawOrdersById(fId);
+    }
+
+    /**
      * 撤销入库
      */
     @PreAuthorize("@ss.hasPermi('warehouseBusiness:inStock:add')")

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

@@ -84,6 +84,37 @@ public class TWarehouseOutStockController extends BaseController {
     }
 
     /**
+     * 提交仓库主表审批
+     */
+    @PreAuthorize("@ss.hasPermi('warehouseBusiness:inStock:add')")
+    @Log(title = "详情主表", businessType = BusinessType.INSERT)
+    @PostMapping(value = "/submitWarehousingApproval")
+    @RepeatSubmit
+    public AjaxResult submitWarehousingApproval(@RequestParam("tWarehouseBills") String tWarehouseBills,
+                                                @RequestParam("tEnclosure") String tEnclosure,
+                                                @RequestParam("tCntr") String tCntr,
+                                                @RequestParam("tWarehousebillsfeesCr") String tWarehousebillsfeesCr,
+                                                @RequestParam("tWarehousebillsfeesDr") String tWarehousebillsfeesDr,
+                                                @RequestParam("tWarehousebillsitems") String tWarehousebillsitems) {
+        String billsType = "SJCK";
+        if (StringUtils.isNull(tWarehouseBills) || "{}".equals(tWarehouseBills)) {
+            return AjaxResult.error("未找到仓库主表数据,请确认");
+        }
+        return itWarehouseBillsService.submitWarehousingApproval(tWarehouseBills, tWarehousebillsfeesCr,
+                tWarehousebillsfeesDr, tWarehousebillsitems, tEnclosure, tCntr, billsType);
+    }
+
+    /**
+     * 撤销已审核通过的接单出库信息
+     */
+    @Log(title = "详情主表", businessType = BusinessType.UPDATE)
+    @GetMapping("/withdrawOrdersById/{fId}")
+    @RepeatSubmit
+    public AjaxResult withdrawOrdersById(@PathVariable("fId") Long fId) {
+        return itWarehouseBillsService.withdrawOrdersById(fId);
+    }
+
+    /**
      * 导出出库详情主表列表
      */
     @PreAuthorize("@ss.hasPermi('warehouseBusiness:outStock:export')")

+ 0 - 8
ruoyi-warehouse/src/main/java/com/ruoyi/approvalFlow/mapper/AuditItemsMapper.java

@@ -72,14 +72,6 @@ public interface AuditItemsMapper {
     List<Map<String, Object>> selectAuditItems(AuditItems auditItems);
 
     /**
-     * 查询审批流配置列表
-     *
-     * @param auditItems 审批流配置
-     * @return 审批流配置主集合
-     */
-    public List<AuditItems> selectAuditItemsByList(AuditItems auditItems);
-
-    /**
      * 删除后续审批
      * @param auditItems 条件
      * @return

+ 3 - 2
ruoyi-warehouse/src/main/java/com/ruoyi/approvalFlow/mapper/AuditPathsLevelsMapper.java

@@ -1,6 +1,7 @@
 package com.ruoyi.approvalFlow.mapper;
 
 
+import com.ruoyi.approvalFlow.domain.AuditItems;
 import com.ruoyi.approvalFlow.domain.AuditPathsLevels;
 
 import java.util.List;
@@ -72,8 +73,8 @@ public interface AuditPathsLevelsMapper {
 
     /**
      *  查询审批流级次信息
-     * @param actId
+     * @param auditItems
      * @return
      */
-    List<AuditPathsLevels> queryAuditLevels(Long actId);
+    List<AuditPathsLevels> queryAuditLevels(AuditItems auditItems);
 }

+ 7 - 3
ruoyi-warehouse/src/main/java/com/ruoyi/approvalFlow/service/impl/AuditItemsServiceImpl.java

@@ -79,7 +79,7 @@ public class AuditItemsServiceImpl implements IAuditItemsService {
      */
     @Transactional
     public AjaxResult createApprovalFlow(AuditItems auditItems) {
-        List<AuditPathsLevels> auditPathsLevelsList = auditPathsLevelsMapper.queryAuditLevels(auditItems.getActId());
+        List<AuditPathsLevels> auditPathsLevelsList = auditPathsLevelsMapper.queryAuditLevels(auditItems);
         if (auditPathsLevelsList.size() <= 0) {
             return AjaxResult.error("未找到审批流, 请确认");
         }
@@ -92,11 +92,13 @@ public class AuditItemsServiceImpl implements IAuditItemsService {
             AuditItems auditItem = new AuditItems();
             auditItem.setBillNo(auditItems.getBillNo());
             auditItem.setActId(auditItems.getActId());
+            auditItem.setLevelId(levels.getLevelId());
+            auditItem.setTimes(auditItems.getTimes());
             auditItem.setBillId(auditItems.getBillId());
             auditItem.setRefno1(auditItems.getRefno1());
             auditItem.setRefno2(auditItems.getRefno2());
             auditItem.setRefno3(auditItems.getRefno3());
-            auditItem.setLevelId(levels.getLevelId());
+            auditItem.setFidStatus(auditItems.getFidStatus());
             auditItem.setIffinalItem(levels.getIffinalItem());
             auditItem.setSendUserId(auditItems.getSendUserId());
             auditItem.setSendName(auditItems.getSendName());
@@ -163,8 +165,10 @@ public class AuditItemsServiceImpl implements IAuditItemsService {
         AuditItemsUsers auditItemsUsers = new AuditItemsUsers();
         auditItemsUsers.setUserId(userId);
         auditItemsUsers.setPid(auditItem.getId());
-        auditItemsUsers.setBillNo(auditItem.getBillNo());
+        auditItemsUsers.setTimes(auditItem.getTimes());
         auditItemsUsers.setActId(auditItem.getActId());
+        auditItemsUsers.setBillNo(auditItem.getBillNo());
+        auditItemsUsers.setFidStatus(auditItem.getFidStatus());
         if (Objects.equals(num, 1)) {
             auditItemsUsers.setAuditStatus("S");
         } else {

+ 24 - 42
ruoyi-warehouse/src/main/java/com/ruoyi/approvalFlow/service/impl/AuditPathsServiceImpl.java

@@ -251,37 +251,8 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
      */
     @Override
     public AjaxResult projectEndQueryPendingVal(AuditItems auditItems) {
-        if (auditItems.getActId() >= 110 && auditItems.getActId() <= 160) {
-            List<Map<String, Object>> mapList = auditItemsMapper.selectWarehouseApprover(auditItems);
-            return AjaxResult.success(mapList);
-        } else if (auditItems.getActId() >= 210 && auditItems.getActId() <= 230) {
-            // 财务审批
-            List<Map<String, Object>> mapList = auditItemsMapper.selectWarehouseApprover(auditItems);
-            return AjaxResult.success(mapList);
-        } else if (auditItems.getActId() >= 310 && auditItems.getActId() <= 320) {
-            // 协议审批
-            List<Map<String, Object>> mapList = auditItemsMapper.selectWarehouseApprover(auditItems);
-            return AjaxResult.success(mapList);
-        } else if (auditItems.getActId() == 410 ) {
-            // 协议审批
-            List<Map<String, Object>> mapList = auditItemsMapper.selectWarehouseApprover(auditItems);
-            return AjaxResult.success(mapList);
-        } else if (auditItems.getActId() == 420 ) {
-            // 协议审批
-            List<Map<String, Object>> mapList = auditItemsMapper.selectWarehouseApprover(auditItems);
-            return AjaxResult.success(mapList);
-        } else if (auditItems.getActId() == 460 ) {
-            // 协议审批
-            List<Map<String, Object>> mapList = auditItemsMapper.selectWarehouseApprover(auditItems);
-            return AjaxResult.success(mapList);
-        }else if (auditItems.getActId() == 470 ){
-            List<Map<String, Object>> mapList = auditItemsMapper.selectWarehouseApprover(auditItems);
-            return AjaxResult.success(mapList);
-        }else if (auditItems.getActId() >= 430 && auditItems.getActId() <= 450 ){
-            List<Map<String, Object>> mapList = auditItemsMapper.selectWarehouseApprover(auditItems);
-            return AjaxResult.success(mapList);
-        }
-        return AjaxResult.success();
+        List<Map<String, Object>> mapList = auditItemsMapper.selectWarehouseApprover(auditItems);
+        return AjaxResult.success(mapList);
     }
 
     /**
@@ -320,6 +291,7 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
         AuditItems item = new AuditItems();
         item.setBillId(auditItems.getId());
         item.setActId(auditItems.getActId());
+        item.setFidStatus(auditItems.getFidStatus());
         List<AuditItems> auditItemsList = auditItemsMapper.selectAuditItemsList(item);
         if (auditItemsList.size() <= 0) {
             return AjaxResult.error("未找到审批信息,请确认");
@@ -362,7 +334,11 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
                             fettle = 5L;
                         }
                         // 仓库模块
-                        tWarehouseBillsMapper.warehouseFollowUpdate(auditItems.getBillId(), fettle, at.getAuditItem());
+                        if ("warehouse_status".equals(auditItems.getFidStatus())) {
+                            tWarehouseBillsMapper.warehouseApprovalUpdate(auditItems, fettle);
+                        } else {
+                            tWarehouseBillsMapper.warehouseFollowUpdate(auditItems.getBillId(), fettle, at.getAuditItem());
+                        }
                         tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(auditItems.getBillId(), fettle, at.getAuditItem());
                         if (Objects.equals(auditItems.getActId(), 150)) {
                             List<TWarehousebillsfees> feesList = tWarehousebillsfeesMapper.selectWarehousebillsfeesByPId(auditItems.getBillId());
@@ -445,7 +421,6 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
                             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                             return orderMessage;
                         }
-
                     }else if (auditItems.getActId()== 420 ){
                         if ("T".equals(at.getIffinalItem())) {
                             fettle = 11L;
@@ -553,7 +528,11 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
         long fettle = 0L;
         if (auditItems.getActId() >= 110 && auditItems.getActId() <= 160) {
             fettle = 3L;
-            tWarehouseBillsMapper.warehouseFollowUpdate(auditItems.getBillId(), fettle, auditItems.getAuditItem());
+            if ("f_billstatus".equals(auditItems.getFidStatus())) {
+                tWarehouseBillsMapper.warehouseFollowUpdate(auditItems.getBillId(), fettle, auditItems.getAuditItem());
+            } else {
+                tWarehouseBillsMapper.warehouseApprovalUpdate(auditItems, fettle);
+            }
             tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(auditItems.getBillId(), fettle, auditItems.getAuditItem());
             if (Objects.equals(auditItems.getActId(), 150)) {
                 List<TWarehousebillsfees> feesList = tWarehousebillsfeesMapper.selectWarehousebillsfeesByPId(auditItems.getBillId());
@@ -648,6 +627,7 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
         AuditItems item = new AuditItems();
         item.setBillId(auditItems.getId());
         item.setActId(auditItems.getActId());
+        item.setFidStatus(auditItems.getFidStatus());
         List<AuditItems> auditItem = auditItemsMapper.selectAuditItemsList(item);
         int number = 0;
         for (AuditItems at : auditItem) {
@@ -710,11 +690,16 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
             fettle = 2L;
             // 查询仓库状态
             TWarehouseBills tWarehouseBills = tWarehouseBillsMapper.selectTWarehousebillsById(auditItems.getBillId());
-            if (!tWarehouseBills.getfBillstatus().equals(4L)) {
-                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                return AjaxResult.error("审批撤销失败: 已经过审批");
+            if ("f_billstatus".equals(auditItems.getFidStatus())) {
+                if (!tWarehouseBills.getfBillstatus().equals(4L)) {
+                    return AjaxResult.error("审批撤销失败: 已经过审批");
+                }
+            } else {
+                if (!tWarehouseBills.getWarehouseStatus().equals(4L)) {
+                    return AjaxResult.error("审批撤销失败: 已经过审批");
+                }
             }
-            tWarehouseBillsMapper.warehouseFollowUpdate(auditItems.getBillId(), fettle, auditItems.getAuditItem());
+            tWarehouseBillsMapper.warehouseApprovalUpdate(auditItems, fettle);
             tWarehousebillsfeesMapper.warehouseFeesFollowUpdate(auditItems.getBillId(), fettle, auditItems.getAuditItem());
         } else if (auditItems.getActId() >= 210 && auditItems.getActId() <= 230) {
             fettle = 2L;
@@ -817,10 +802,7 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
                 return AjaxResult.error("审批撤销失败: 更新审批状态失败");
             }
         }
-        AuditItems item = new AuditItems();
-        item.setBillId(auditItems.getId());
-        item.setActId(auditItems.getActId());
-        int deleteNum = auditItemsMapper.deletePurchaseApproval(item);
+        int deleteNum = auditItemsMapper.deletePurchaseApproval(auditItems);
         if (deleteNum == 0) {
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             return AjaxResult.error("审批撤销失败: 更新审批状态失败");

+ 10 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/mapper/TWarehouseBillsMapper.java

@@ -2,6 +2,7 @@ package com.ruoyi.warehouseBusiness.mapper;
 
 
 import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.ruoyi.approvalFlow.domain.AuditItems;
 import com.ruoyi.common.core.domain.entity.TWarehouse;
 import com.ruoyi.reportManagement.domain.SingleAnalysisExcel;
 import com.ruoyi.reportManagement.domain.SingleAnalysisFeesExcel;
@@ -105,6 +106,14 @@ public interface TWarehouseBillsMapper extends BaseMapper<TWarehouseBills> {
     int warehouseFollowUpdate(@Param("fPid") Long fPid, @Param("fettle") Long fettle, @Param("auditItem") Date auditItem);
 
     /**
+     *  根据主表id 更新库存主表对应状态
+     *
+     * @param auditItems
+     * @return  结果
+     */
+    int warehouseApprovalUpdate(@Param("auditItem")AuditItems auditItems, @Param("fettle") long fettle);
+
+    /**
      * 查询详情主表列表
      * @param fid
      * @return 详情主表集合
@@ -112,6 +121,7 @@ public interface TWarehouseBillsMapper extends BaseMapper<TWarehouseBills> {
     public List<TWareHouseExcelItems> selectTWarehousebillsItemsList(@Param("fId") Long fid);
 
     List<Map<String, Object>> selectInventorySJRKList(TWarehouseBills tWarehousebills);
+
     List<Map<String, Object>> selectInventorySJCKList(TWarehouseBills tWarehousebills);
 
     public List<TWareHouseItemsExcel> selectTWarehousebillsItemList(TWarehouseBills tWarehouseBills);

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

@@ -406,4 +406,24 @@ public interface ITWarehouseBillsService {
      * @return  结果
      */
     public AjaxResult importCreateCompanyMsg(MultipartFile file) throws Exception;
+
+    /**
+     * 提交仓库主表审批
+     * @param tWarehouseBills       主表信息
+     * @param tWarehousebillsfeesCr 付款信息
+     * @param tWarehousebillsfeesDr 收款信息
+     * @param tWarehousebillsitems  仓储明细
+     * @param tEnclosure            附件信息
+     * @param tCntr                 箱型箱量
+     * @param billsType             类型
+     * @return  结果
+     */
+    public AjaxResult submitWarehousingApproval(String tWarehouseBills, String tWarehousebillsfeesCr, String tWarehousebillsfeesDr, String tWarehousebillsitems, String tEnclosure, String tCntr, String billsType);
+
+    /**
+     * 撤销已审核通过的接单入库信息
+     * @param fId
+     * @return
+     */
+    public AjaxResult withdrawOrdersById(Long fId);
 }

+ 304 - 7
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/TWarehouseBillsServiceImpl.java

@@ -656,7 +656,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         }
         TWarehousebillsitems warehousebillsitems = new TWarehousebillsitems();
         warehousebillsitems.setfPid(fPid);
-        map.put("warehouseBills", warehouseBills);
+        map.put("warehouseBills", tWarehouseBillsMapper.selectTWarehousebillsById(warehouseBills.getfId()));
         map.put("warehousebillsitems", tWarehousebillsitemsMapper.selectGoodsTransferitemsList(warehousebillsitems));
         return AjaxResult.success("成功", map);
     }
@@ -1011,22 +1011,17 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                                           String tWarehousebillsitems, String tEnclosure, LoginUser loginUser, String tCntr, String billsType) {
         Long fPid = null;
         boolean isApprove = false;
+        Long actId = queryWarehouseActId(billsType);
         String key = "";
-        long actId = 0L;
         if ("SJRK".equals(billsType)) {
-            actId = 110L;
             key = "warehouse.inStock.ApprovalFlow";
         } else if ("SJCK".equals(billsType)) {
-            actId = 120L;
             key = "warehouse.outStock.ApprovalFlow";
         } else if ("CKDB".equals(billsType)) {
-            actId = 140L;
             key = "warehouse.stockTransfer.ApprovalFlow";
         } else if ("HQZY".equals(billsType)) {
-            actId = 130L;
             key = "warehouse.transfer.ApprovalFlow";
         } else if ("HWTG".equals(billsType)) {
-            actId = 160L;
             key = "warehouse.cargoClearance.ApprovalFlow";
         }
         SysConfig sysConfig = sysConfigMapper.checkConfigKeyUnique(key);
@@ -1057,6 +1052,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
             Date time = new Date();
             String bscorpno = billnoSerialServiceImpl.getCorpNo(warehouseBills.getfCorpid(), time);
             warehouseBills.setfBscorpno(bscorpno);
+            warehouseBills.setfTimes(1L);
             tWarehouseBillsMapper.insertTWarehousebills(warehouseBills);
             fPid = warehouseBills.getfId();
         } else {
@@ -1067,6 +1063,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                 warehouseBills.setfBillstatus(6L);
                 warehouseBills.setfReviewDate(new Date());
             }
+            warehouseBills.setfTimes(warehouseBills.getfTimes() + 1);
             warehouseBills.setUpdateTime(new Date());
             if (!"SJRK".equals(billsType)) {
                 warehouseBills.setfChargedate(warehouseBills.getfBsdate());
@@ -1213,6 +1210,8 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
             auditItems.setAuditOpTime(new Date());
             auditItems.setAuditMsg("提交");
             auditItems.setAuditStatus("O");
+            auditItems.setFidStatus("f_billstatus");
+            auditItems.setTimes(warehouseBills.getfTimes());
             AjaxResult approvalFlow = auditItemsService.createApprovalFlow(auditItems);
 //            Long code = Long.valueOf(String.valueOf(approvalFlow.get("code"))).longValue();
             String code = approvalFlow.get("code").toString();
@@ -1722,6 +1721,196 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
     }
 
     /**
+     * 提交仓库主表审批
+     * @param tWarehouseBills       主表信息
+     * @param tWarehousebillsfeesCr 付款信息
+     * @param tWarehousebillsfeesDr 收款信息
+     * @param tWarehousebillsitems  仓储明细
+     * @param tEnclosure            附件信息
+     * @param tCntr                 箱型箱量
+     * @param billsType             类型
+     * @return  结果
+     */
+    @Override
+    @Transactional
+    public AjaxResult submitWarehousingApproval(String tWarehouseBills, String tWarehousebillsfeesCr, String tWarehousebillsfeesDr,
+                                                String tWarehousebillsitems, String tEnclosure, String tCntr, String billsType) {
+        Long fPid = null;
+        boolean isApprove = false;
+        SysUser user = SecurityUtils.getLoginUser().getUser();
+        Long actId = queryWarehouseActId(billsType);
+        SysConfig sysConfig = queryWarehouseConfig(billsType);
+        if (StringUtils.isNull(sysConfig)) {
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return AjaxResult.error("系统参数异常,未找到开启审批流参数");
+        }
+        if ("0".equals(sysConfig.getConfigValue())) {
+            isApprove = true;
+        }
+        TWarehouseBills warehouseBills = JSONArray.parseObject(tWarehouseBills, TWarehouseBills.class);
+        if (isApprove) {
+            warehouseBills.setWarehouseStatus(4L);
+        } else {
+            warehouseBills.setWarehouseStatus(6L);
+        }
+        // 仓库主表
+        if (StringUtils.isNull(warehouseBills.getfId())) {
+            return AjaxResult.error("请确认仓库信息是否保存");
+        }
+        fPid = warehouseBills.getfId();
+        if (!"SJRK".equals(billsType)) {
+            warehouseBills.setfChargedate(warehouseBills.getfBsdate());
+        }
+        warehouseBills.setfTimes(warehouseBills.getfTimes() + 1);
+        warehouseBills.setUpdateTime(new Date());
+        warehouseBills.setUpdateBy(user.getUserName());
+        tEnclosureMapper.deleteByFPid(fPid);
+        tWarehousebillsfeesMapper.deleteByFPid(fPid);
+        tWarehousebillsitemsMapper.deleteByFPid(fPid);
+        tWarehouseBillsMapper.updateTWarehousebills(warehouseBills);
+        tWarehousebillsCntrMapper.deleteTWarehousebillsCntrfPid(fPid);
+        // 仓储明细
+        if (StringUtils.isNotEmpty(tWarehousebillsitems) && "[]".equals(tWarehousebillsitems)) {
+            JSONArray warehouseJSON = JSONArray.parseArray(tWarehousebillsitems);
+            List<TWarehousebillsitems> warehousebillsitemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsitems.class);
+            int line = 0;
+            for (TWarehousebillsitems wbItem : warehousebillsitemsList) {
+                line++;
+                if ("SJRK".equals(billsType) || "SJCK".equals(billsType) || "CKDB".equals(billsType) || "HWTG".equals(billsType)) {
+                    if (StringUtils.isNull(wbItem.getfChargedate())) {
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        return AjaxResult.error("库存明细第" + line + "行未找到仓储费计费日期,请确认");
+                    }
+                    if (StringUtils.isNull(wbItem.getfBillingway())) {
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        return AjaxResult.error("库存明细第" + line + "行未找到计费方式,请确认");
+                    }
+                    if (StringUtils.isNull(wbItem.getfOriginalbilldate())) {
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        return AjaxResult.error("库存明细第" + line + "行未找到原始入库日期,请确认");
+                    }
+                    // 除了入库其他模块不需要更新主表的 仓储费计费日期到明细表,其他模块 应从库存总账把仓储费计费日期 赋给明细表
+                    if ("SJRK".equals(billsType)) {
+                        wbItem.setfMblno(warehouseBills.getfMblno());
+                        wbItem.setfBillingway(warehouseBills.getfBillingway());
+                        wbItem.setfChargedate(warehouseBills.getfChargedate());
+                        wbItem.setfOriginalbilldate(warehouseBills.getfBsdate());
+                        wbItem.setfMblno(warehouseBills.getfMblno());// 入库更新库存前执行update更新明细的提单号等于主表的提单号
+                    }
+                }
+                wbItem.setfPid(fPid);
+                wbItem.setfBilltype(billsType);
+                wbItem.setCreateTime(new Date());
+                wbItem.setfBillno(warehouseBills.getfBillno());
+                wbItem.setCreateBy(user.getUserName());
+                tWarehousebillsitemsMapper.insertTWarehousebillsitems(wbItem);
+            }
+        }
+        //  箱型数据
+        if (StringUtils.isNotNull(tCntr) && !"[]".equals(tCntr)) {
+            JSONArray jsonDrArray = JSONArray.parseArray(tCntr);
+            List<TWarehousebillsCntr> tWarehousebillsCntrs = JSONObject.parseArray(jsonDrArray.toJSONString(), TWarehousebillsCntr.class);
+            int cntrLine = 0;
+            for (TWarehousebillsCntr cntr : tWarehousebillsCntrs) {
+                cntrLine++;
+                if (StringUtils.isNull(cntr.getfCntrid()) || StringUtils.isNull(cntr.getfCntrcount()) || cntr.getfCntrcount() == 0) {
+                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    return AjaxResult.error("箱型数据第" + cntrLine + "行数据缺少必填数据");
+                }
+                cntr.setfPid(fPid);
+                cntr.setfGoodsid(0L);
+                cntr.setfPackageid("0");
+                cntr.setCreateTime(new Date());
+                cntr.setCreateBy(user.getUserName());
+                cntr.setfCntrweight(new BigDecimal(0));
+                tWarehousebillsCntrMapper.insertTWarehousebillsCntr(cntr);
+            }
+        }
+        if (StringUtils.isNotNull(tWarehousebillsfeesCr) && !"[]".equals(tWarehousebillsfeesCr)) {
+            JSONArray jsonCrArray = JSONArray.parseArray(tWarehousebillsfeesCr);
+            List<TWarehousebillsfees> warehousebillsfeesCrList = JSONObject.parseArray(jsonCrArray.toJSONString(), TWarehousebillsfees.class);
+            for (TWarehousebillsfees wbCr : warehousebillsfeesCrList) {
+                wbCr.setfPid(fPid);
+                wbCr.setfDc("C");
+                wbCr.setfBilltype(billsType);
+                wbCr.setCreateTime(new Date());
+                wbCr.setSrcBillNo(warehouseBills.getfBillno());
+                wbCr.setCreateBy(user.getUserName());
+                wbCr.setfChargedate(warehouseBills.getfChargedate());
+                wbCr.setfBillingDeadline(warehouseBills.getfChargedate());
+                if (StringUtils.isNotNull(warehouseBills.getfBsdate())) {
+                    wbCr.setfBsdate(warehouseBills.getfBsdate());
+                }
+                tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbCr);
+            }
+        }
+        if (StringUtils.isNotNull(tWarehousebillsfeesDr) && !"[]".equals(tWarehousebillsfeesDr)) {
+            JSONArray jsonCrArray = JSONArray.parseArray(tWarehousebillsfeesDr);
+            List<TWarehousebillsfees> warehousebillsfeesDrList = JSONObject.parseArray(jsonCrArray.toJSONString(), TWarehousebillsfees.class);
+            for (TWarehousebillsfees wbDr : warehousebillsfeesDrList) {
+                wbDr.setfPid(fPid);
+                wbDr.setfDc("D");
+                wbDr.setfBillstatus(4L);
+                wbDr.setfBilltype(billsType);
+                wbDr.setCreateTime(new Date());
+                wbDr.setSrcBillNo(warehouseBills.getfBillno());
+                wbDr.setCreateBy(user.getUserName());
+                wbDr.setfChargedate(warehouseBills.getfChargedate());
+                wbDr.setfBillingDeadline(warehouseBills.getfChargedate());
+                if (StringUtils.isNotNull(warehouseBills.getfBsdate())) {
+                    wbDr.setfBsdate(warehouseBills.getfBsdate());
+                }
+                tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbDr);
+            }
+        }
+        if (StringUtils.isNotNull(tEnclosure) && !"[]".equals(tEnclosure)) {
+            JSONArray jsonEnclosureArray = JSONArray.parseArray(tEnclosure);
+            List<TEnclosure> enclosuresList = JSONObject.parseArray(jsonEnclosureArray.toJSONString(), TEnclosure.class);
+            long lineNo = 0L;
+            for (TEnclosure enclosure : enclosuresList) {
+                lineNo++;
+                enclosure.setfPid(fPid);
+                enclosure.setfLineno(lineNo);
+                enclosure.setCreateTime(new Date());
+                enclosure.setCreateBy(user.getUserName());
+                tEnclosureMapper.insertTEnclosure(enclosure);
+            }
+        }
+        // 这里加个判断取系统参数来确定是否需要启用审批流
+        if (isApprove) {
+            AuditItems auditItems = new AuditItems();
+            auditItems.setLevelId(0L);
+            auditItems.setBillId(fPid);
+            auditItems.setActId(actId);
+            auditItems.setIffinalItem("F");
+            auditItems.setBillNo(warehouseBills.getfBillno());
+            // 存储委托方(货权方)
+            auditItems.setRefno1(warehouseBills.getfCorpid() + "");
+            // 存储业务类型(业务类型)
+            auditItems.setRefno2(warehouseBills.getfBilltype());
+            // 存储提单号(提单号)
+            auditItems.setRefno3(warehouseBills.getfMblno());
+            auditItems.setSendUserId(user.getUserId());
+            auditItems.setSendName(user.getUserName());
+            auditItems.setSendTime(new Date());
+            auditItems.setAuditUserId(user.getUserId());
+            auditItems.setAuditItem(new Date());
+            auditItems.setAuditOpTime(new Date());
+            auditItems.setAuditMsg("提交");
+            auditItems.setAuditStatus("O");
+            auditItems.setFidStatus("warehouse_status");
+            auditItems.setTimes(warehouseBills.getfTimes() + 1);
+            AjaxResult approvalFlow = auditItemsService.createApprovalFlow(auditItems);
+            String code = approvalFlow.get("code").toString();
+            if ("500".equals(code)) {
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            }
+            return approvalFlow;
+        }
+        return AjaxResult.success();
+    }
+
+    /**
      * app仓储新行提交业务
      *
      * @param item    仓库明细数据
@@ -3687,6 +3876,26 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
     }
 
     /**
+     * 撤销已审核通过的接单入库信息
+     * @param fId
+     * @return
+     */
+    @Override
+    @Transactional
+    public AjaxResult withdrawOrdersById(Long fId) {
+        // 查询 仓库主表信息、库存明细信息
+        TWarehouseBills tWarehousebills = tWarehouseBillsMapper.selectTWarehousebillsById(fId);
+        if (tWarehousebills.getWarehouseStatus() != 6L) {
+            return AjaxResult.error("主单据状态异常,请确认单据状态是否已审核通过");
+        }
+        tWarehousebills.setUpdateTime(new Date());
+        tWarehousebills.setWarehouseStatus(2L); //撤销状态
+        tWarehousebills.setUpdateBy(SecurityUtils.getUsername());
+        tWarehouseBillsMapper.updateTWarehousebills(tWarehousebills);
+        return AjaxResult.success();
+    }
+
+    /**
      * 撤销入账
      *
      * @param warehouseBills      主表
@@ -4048,4 +4257,92 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         return tWarehouseBillsMapper.selectTWarehousebillsById(fid);
     }
 
+    /**
+     *  查询是否开启审批流
+     * @param billsType
+     * @return
+     */
+    public SysConfig queryWarehouseConfig (String billsType) {
+        String key = "";
+        if ("SJRK".equals(billsType)) {
+            key = "instock.orders.approval";
+        } else if ("SJCK".equals(billsType)) {
+            key = "outStock.orders.approvalFlow";
+        } else if ("CKDB".equals(billsType)) {
+            key = "stockTransfer.orders.approvalFlow";
+        } else if ("HQZY".equals(billsType)) {
+            key = "transfer.orders.approvalFlow";
+        } else if ("HWTG".equals(billsType)) {
+            key = "cargoClearance.orders.approvalFlow";
+        }
+        return sysConfigMapper.checkConfigKeyUnique(key);
+    }
+
+    /**
+     *  查询是对应仓储类型活动号
+     * @param billsType
+     * @return
+     */
+    public Long queryWarehouseActId (String billsType) {
+        long actId = 0L;
+        if ("SJRK".equals(billsType)) {
+            actId = 110L;
+        } else if ("SJCK".equals(billsType)) {
+            actId = 120L;
+        } else if ("CKDB".equals(billsType)) {
+            actId = 140L;
+        } else if ("HQZY".equals(billsType)) {
+            actId = 130L;
+        } else if ("HWTG".equals(billsType)) {
+            actId = 160L;
+        }
+        return actId;
+    }
+
+    /**
+     *  校验仓储主表字段是否为空
+     *  后续优化进入系统
+     * @param warehousebill
+     * @return
+     */
+    public String checkWarehouse (TWarehouseBills warehousebill) {
+        if (StringUtils.isNull(warehousebill.getfCorpid())) {
+            return "请维护主表客户信息";
+        }
+        if (StringUtils.isNull(warehousebill.getfBsdate())) {
+            return "请维护主表业务日期";
+        }
+        if (StringUtils.isNull(warehousebill.getfWarehouseid())) {
+            return "请维护主表仓库信息";
+        }
+        if (("SJRK".equals(warehousebill.getfBilltype()) || "SJCK".equals(warehousebill.getfBilltype()))
+                && StringUtils.isNull(warehousebill.getfFeetunit())) {
+            return "请维护主表业务计费单位";
+        }
+        if (("SJRK".equals(warehousebill.getfBilltype()) || "HQZY".equals(warehousebill.getfBilltype()))
+                && StringUtils.isNull(warehousebill.getfChargedate())) {
+            return "请维护主表仓储费计费日期";
+        }
+        if ("SJRK".equals(warehousebill.getfBilltype()) && StringUtils.isNull(warehousebill.getfGoodsid())) {
+            return "请维护主表商品信息";
+        }
+        if (!"HQZY".equals(warehousebill.getfBilltype()) && StringUtils.isNull(warehousebill.getfStorekeeper())) {
+            return "请维护主表仓管员信息";
+        }
+        if ("SJRK".equals(warehousebill.getfBilltype()) && StringUtils.isEmpty(warehousebill.getfMblno())) {
+            return "请维护主表提单号";
+        }
+        if ("CKDB".equals(warehousebill.getfBilltype()) && StringUtils.isEmpty(warehousebill.getfBusinessType())) {
+            return "请维护主表作业类型";
+        }
+        if (("HQZY".equals(warehousebill.getfBilltype()) || "HWTG".equals(warehousebill.getfBilltype()))
+                && StringUtils.isNull(warehousebill.getfTrademodeid())) {
+            return "请维护主表贸易方式";
+        }
+        if ("HWTG".equals(warehousebill.getfBilltype()) && StringUtils.isNull(warehousebill.getfNewTrademodeid())) {
+            return "请维护主表新贸易方式";
+        }
+        return null;
+    }
+
 }

+ 71 - 64
ruoyi-warehouse/src/main/resources/mapper/approvalFlow/AuditItemsMapper.xml

@@ -164,76 +164,78 @@
     <select id="selectCountAuditItems" resultType="java.lang.Integer">
         SELECT count(*)
         FROM
-        audit_items item
-        LEFT JOIN t_corps corp ON corp.f_id = item.refno1
-        LEFT JOIN audit_items_users us ON us.pid = item.id
-        LEFT JOIN sys_user usr ON usr.user_id = item.audit_user_id
+            audit_items item
+            LEFT JOIN t_corps corp ON corp.f_id = item.refno1
+            LEFT JOIN audit_items_users us ON us.pid = item.id
+            LEFT JOIN sys_user usr ON usr.user_id = item.audit_user_id
         where
-        us.audit_status = 'S'
-        AND item.audit_status = 'S'
-        <if test="billNo != null  and billNo != ''"> and item.bill_no = #{billNo}</if>
-        <if test="actId != null  and actId != ''"> and item.act_id = #{actId}</if>
-        <if test="refno2 != null  and refno2 != ''"> and item.refno2 = #{refno2}</if>
-        <if test="billId != null  and billId != ''"> and item.bill_id like concat('%', #{billId}, '%')</if>
-        <if test="refno1 != null  and refno1 != ''"> and corp.f_name like concat('%', #{refno1}, '%')</if>
-        <if test="sendUserId != null  and sendUserId != ''"> and item.send_user_id like concat('%', #{sendUserId}, '%')</if>
-        <if test="billTime != null  and billTime != ''"> and item.bill_time = #{billTime}</if>
-        <if test="auditUserId != null  and auditUserId != ''"> AND us.user_id = #{auditUserId}</if>
-        <if test='sendTime != null and sendTime[0] != null and sendTime[0]!= ""'>
-            and item.send_time &gt;= #{sendTime[0]}
-        </if>
-        <if test='sendTime != null and sendTime[1] != null and sendTime[1]!= ""'>
-            and item.send_time &lt;= #{sendTime[1]}
-        </if>
-        <if test='auditOpTime != null and auditOpTime[0] != null and auditOpTime[0]!= ""'>
-            and item.audit_op_time &gt;= #{auditOpTime[0]}
-        </if>
-        <if test='auditOpTime != null and auditOpTime[1] != null and auditOpTime[1]!= ""'>
-            and item.audit_op_time &lt;= #{auditOpTime[1]}
-        </if>
+            us.audit_status = 'S'
+            AND item.audit_status = 'S'
+            <if test="billNo != null  and billNo != ''"> and item.bill_no = #{billNo}</if>
+            <if test="actId != null  and actId != ''"> and item.act_id = #{actId}</if>
+            <if test="refno2 != null  and refno2 != ''"> and item.refno2 = #{refno2}</if>
+            <if test="billId != null  and billId != ''"> and item.bill_id like concat('%', #{billId}, '%')</if>
+            <if test="refno1 != null  and refno1 != ''"> and corp.f_name like concat('%', #{refno1}, '%')</if>
+            <if test="sendUserId != null  and sendUserId != ''"> and item.send_user_id like concat('%', #{sendUserId}, '%')</if>
+            <if test="billTime != null  and billTime != ''"> and item.bill_time = #{billTime}</if>
+            <if test="fidStatus != null  and fidStatus != ''"> and item.fid_status = #{fidStatus}</if>
+            <if test="auditUserId != null  and auditUserId != ''"> AND us.user_id = #{auditUserId}</if>
+            <if test='sendTime != null and sendTime[0] != null and sendTime[0]!= ""'>
+                and item.send_time &gt;= #{sendTime[0]}
+            </if>
+            <if test='sendTime != null and sendTime[1] != null and sendTime[1]!= ""'>
+                and item.send_time &lt;= #{sendTime[1]}
+            </if>
+            <if test='auditOpTime != null and auditOpTime[0] != null and auditOpTime[0]!= ""'>
+                and item.audit_op_time &gt;= #{auditOpTime[0]}
+            </if>
+            <if test='auditOpTime != null and auditOpTime[1] != null and auditOpTime[1]!= ""'>
+                and item.audit_op_time &lt;= #{auditOpTime[1]}
+            </if>
         ORDER BY
         item.send_time DESC
     </select>
 
     <select id="selectAuditItems" parameterType="AuditItems" resultType="Map">
         SELECT
-        item.id,
-        CASE
-        item.act_id
-        WHEN 410 THEN
-        '下单审批'
-        WHEN 420 THEN
-        '配船审批'
-        END actId,
-        item.bill_id AS billId,
-        corp.f_name AS refno1,
-        item.refno2,
-        item.refno3,
-        item.refno2 AS refno4,
-        item.bill_no AS billNo,
-        us.user_id AS userId,
-        item.audit_item,
-        item.audit_user_id AS auditUserId,
-        CASE
-        item.audit_status
-        WHEN 'O' THEN
-        '提交'
-        WHEN 'N' THEN
-        '未知状态'
-        WHEN 'S' THEN
-        '待审'
-        WHEN 'B' THEN
-        '审核退回'
-        WHEN 'A' THEN
-        '审核通过'
-        END audit,
-        item.send_user_id AS sendUserId,
-        usr.user_name AS auditUserName,
-        usr.nick_name AS nickName,
-        item.send_time AS sendTime,
-        item.audit_op_time AS auditOpTime,
-        item.bill_time AS billTime,
-        item.audit_msg AS auditMsg
+            item.id,
+            CASE
+            item.act_id
+            WHEN 410 THEN
+            '下单审批'
+            WHEN 420 THEN
+            '配船审批'
+            END actId,
+            item.bill_id AS billId,
+            corp.f_name AS refno1,
+            item.refno2,
+            item.refno3,
+            item.refno2 AS refno4,
+            item.bill_no AS billNo,
+            us.user_id AS userId,
+            item.audit_item,
+            item.audit_user_id AS auditUserId,
+            CASE
+            item.audit_status
+            WHEN 'O' THEN
+            '提交'
+            WHEN 'N' THEN
+            '未知状态'
+            WHEN 'S' THEN
+            '待审'
+            WHEN 'B' THEN
+            '审核退回'
+            WHEN 'A' THEN
+            '审核通过'
+            END audit,
+            item.send_user_id AS sendUserId,
+            usr.user_name AS auditUserName,
+            usr.nick_name AS nickName,
+            item.send_time AS sendTime,
+            item.audit_op_time AS auditOpTime,
+            item.bill_time AS billTime,
+            item.fid_status AS fidStatus,
+            item.audit_msg AS auditMsg
         FROM
             audit_items item
             LEFT JOIN t_corps corp ON corp.f_id = item.refno1
@@ -248,6 +250,7 @@
         <if test="refno1 != null  and refno1 != ''"> and corp.f_name like concat('%', #{refno1}, '%')</if>
         <if test="sendUserId != null  and sendUserId != ''"> and item.send_user_id like concat('%', #{sendUserId}, '%')</if>
         <if test="billTime != null  and billTime != ''"> and item.bill_time = #{billTime}</if>
+        <if test="fidStatus != null  and fidStatus != ''"> AND item.fid_status = #{fidStatus}</if>
         <if test="auditUserId != null  and auditUserId != ''"> AND us.user_id = #{auditUserId}</if>
         <if test='sendTime != null and sendTime[0] != null and sendTime[0]!= ""'>
             and item.send_time &gt;= #{sendTime[0]}
@@ -277,6 +280,7 @@
             item.id &gt; #{id}
             AND item.bill_id = #{billId}
             AND item.level_id &gt; #{levelId}
+            AND item.warehouse_status = #{warehouseStatus}
     </delete>
 
     <select id="selectWarehouseApprover" parameterType="com.ruoyi.approvalFlow.domain.AuditItems" resultType="Map">
@@ -295,6 +299,7 @@
         WHERE
             aud.act_id = #{actId}
             AND aud.bill_id = #{id}
+            AND aud.fid_status = #{fidStatus}
     </select>
 
     <delete id="deletePurchaseApproval" parameterType="com.ruoyi.approvalFlow.domain.AuditItems">
@@ -305,7 +310,8 @@
         WHERE
             item.act_id = #{actId}
         AND item.level_id &gt;= 0
-        AND item.bill_id = #{billId}
+        AND item.bill_id = #{id}
+        AND item.fid_status = #{fidStatus}
     </delete>
 
     <update id="updateAuditStatus" parameterType="com.ruoyi.approvalFlow.domain.AuditItems">
@@ -318,6 +324,7 @@
         AND it.bill_id = #{billId}
         AND it.act_id = #{actId}
         AND it.audit_status = "N"
+        AND it.fid_status = #{fidStatus}
     </update>
 
 </mapper>

+ 2 - 1
ruoyi-warehouse/src/main/resources/mapper/approvalFlow/AuditPathsLevelsMapper.xml

@@ -20,7 +20,7 @@
     </sql>
 
 
-    <select id="queryAuditLevels" parameterType="Long" resultMap="AuditPathsLevelsResult">
+    <select id="queryAuditLevels" parameterType="AuditItems" resultMap="AuditPathsLevelsResult">
         SELECT
             lev.id,
             lev.level_id,
@@ -33,6 +33,7 @@
             LEFT JOIN audit_paths_levels lev ON act.path_id = lev.path_id
         where
             act.act_id = #{actId}
+            AND act.fid_status = #{fidStatus}
     </select>
 
     <select id="selectAuditPathsLevelsList" parameterType="AuditPathsLevels" resultMap="AuditPathsLevelsResult">

+ 7 - 0
ruoyi-warehouse/src/main/resources/mapper/warehouseBusiness/TWarehousebillsMapper.xml

@@ -1222,6 +1222,13 @@
         where f_id = #{fPid}
     </update>
 
+    <update id="warehouseApprovalUpdate">
+        update
+        t_warehousebills
+        SET ${auditItem.fidStatus} = #{fettle}
+        where f_id = #{auditItem.billId}
+    </update>
+
     <select id="selectDetailedList" resultType="java.util.Map">
         SELECT
             t.f_id AS fId,