Explorar o código

[CODE]:审批撤回

maxianghua %!s(int64=4) %!d(string=hai) anos
pai
achega
ad4dff2750

+ 18 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/approvalFlow/AuditPathsController.java

@@ -81,6 +81,24 @@ public class AuditPathsController extends BaseController {
     }
 
     /**
+     * 审批撤销
+     */
+    @RepeatSubmit
+        @PostMapping("/revoke")
+    public AjaxResult revoke(@RequestBody AuditItems auditItems) {
+        if (StringUtils.isNull(auditItems.getActId())) {
+            return AjaxResult.error("操作失败 未找到活动号,请确认");
+        }
+        if (StringUtils.isNull(auditItems.getBillId())) {
+            return AjaxResult.error("操作失败 未找到表单信息,请确认");
+        }
+        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
+        auditItems.setSendName(loginUser.getUsername());
+        auditItems.setSendUserId(loginUser.getUser().getUserId());
+        return auditPathsService.revoke(auditItems);
+    }
+
+    /**
      * 导出审批流配置主列表
      */
     @PreAuthorize("@ss.hasPermi('warehouse:paths:export')")

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

@@ -83,4 +83,11 @@ public interface AuditItemsMapper {
      * @return
      */
     List<Map<String, Object>> selectWarehouseApprover(AuditItems auditItems);
+
+    /**
+     *  撤回审批
+     * @param auditItems
+     * @return
+     */
+    public int deletePurchaseApproval(AuditItems auditItems);
 }

+ 7 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/approvalFlow/service/IAuditPathsService.java

@@ -91,4 +91,11 @@ public interface IAuditPathsService {
      * @return 结果
      */
     AjaxResult approvalRejected(AuditItems auditItems);
+
+    /**
+     *  审批撤销
+     * @param auditItems 审核人、单据信息
+     * @return 结果
+     */
+    AjaxResult revoke(AuditItems auditItems);
 }

+ 49 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/approvalFlow/service/impl/AuditPathsServiceImpl.java

@@ -358,6 +358,7 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
      * @return 结果
      */
     @Override
+    @Transactional
     public AjaxResult approvalRejected(AuditItems auditItems) {
         long fettle = 0L;
         if (auditItems.getActId() >= 110 && auditItems.getActId() <= 140) {
@@ -438,4 +439,52 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
         return AjaxResult.success();
     }
 
+    /**
+     *   审批撤销
+     * @param auditItems 审核人、单据信息
+     * @return
+     */
+    @Override
+    @Transactional
+    public AjaxResult revoke(AuditItems auditItems) {
+        long fettle = 0L;
+        if (auditItems.getActId() >= 110 && auditItems.getActId() <= 140) {
+            fettle = 2L;
+            // 仓库模块
+            AjaxResult ajaxResult = tWarehouseBillsService.warehouseFollow(auditItems.getBillId(), fettle);
+            String code = (String) ajaxResult.get("code");
+            if ("500".equals(code)) {
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            }
+            return ajaxResult;
+        } else if (auditItems.getActId() >= 210 && auditItems.getActId() <= 230) {
+            fettle = 2L;
+            // 财务模块
+            AjaxResult ajaxResult = tFeeServiceImpl.tfeeFollow(auditItems.getBillId(), fettle);
+            String code = (String) ajaxResult.get("code");
+            if ("500".equals(code)) {
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            }
+            return ajaxResult;
+        } else if (auditItems.getActId() >= 310 && auditItems.getActId() <= 320) {
+            fettle = 2L;
+            // 协议模块
+            AjaxResult ajaxResult = tWarehouseAgreementService.agreementFollow(auditItems.getBillId(), fettle);
+            String code = (String) ajaxResult.get("code");
+            if ("500".equals(code)) {
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            }
+            return ajaxResult;
+        }
+        AuditItems item = new AuditItems();
+        item.setBillId(auditItems.getId());
+        item.setActId(auditItems.getActId());
+        int deleteNum = auditItemsMapper.deletePurchaseApproval(item);
+        if (deleteNum == 0) {
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return AjaxResult.error("审批撤销失败: 更新审批状态失败");
+        }
+        return AjaxResult.success();
+    }
+
 }

+ 11 - 0
ruoyi-warehouse/src/main/resources/mapper/approvalFlow/AuditItemsMapper.xml

@@ -195,4 +195,15 @@
             AND aud.bill_id = #{id}
     </select>
 
+    <delete id="deletePurchaseApproval" parameterType="com.ruoyi.approvalFlow.domain.AuditItems">
+        DELETE item, userItem
+        FROM
+            audit_items item
+            LEFT JOIN audit_items_users userItem ON userItem.pid = item.id
+        WHERE
+            item.act_id = #{actId}
+        AND item.level_id &gt;= 0
+        AND item.bill_id = #{billId}
+    </delete>
+
 </mapper>