Browse Source

优化仓库业务审批流,修改货转后端接口

阿伏兔 4 years ago
parent
commit
a54aea82a2

+ 2 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java

@@ -25,6 +25,7 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -62,6 +63,7 @@ public class SysUserController extends BaseController {
         Map<String, Object> map = new HashMap<>();
         SysUser user = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest()).getUser();
         map.put("user", user);
+        map.put("date", new Date());
         map.put("dept", deptService.selectDeptById(user.getDeptId()));
         return map;
     }

+ 5 - 12
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/approvalFlow/AuditPathsActsController.java

@@ -1,4 +1,4 @@
-package com.ruoyi.warehouse.controller;
+package com.ruoyi.web.controller.warehouse.approvalFlow;
 
 import java.util.List;
 import java.util.Map;
@@ -9,14 +9,7 @@ import com.ruoyi.approvalFlow.service.IAuditPathsActsService;
 import com.ruoyi.common.utils.StringUtils;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
@@ -83,9 +76,9 @@ public class AuditPathsActsController extends BaseController {
      */
     @PreAuthorize("@ss.hasPermi('warehouse:pathsActs:add')")
     @Log(title = "审批流配置明细", businessType = BusinessType.INSERT)
-    @PostMapping
-    public AjaxResult add(@RequestBody List<AuditPathsActs> auditPathsActs) {
-        if (StringUtils.isNull(auditPathsActs)) {
+    @PostMapping(value = "/add")
+    public AjaxResult add(@RequestParam("auditPathsActs") String auditPathsActs) {
+        if (StringUtils.isEmpty(auditPathsActs) || "[]".equals(auditPathsActs)) {
             return AjaxResult.error("未找到内容,请确认");
         }
         return auditPathsActsService.insertAuditPathsActs(auditPathsActs);

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

@@ -139,7 +139,7 @@ public class AuditPathsController extends BaseController {
      */
     @PreAuthorize("@ss.hasPermi('warehouse:paths:add')")
     @Log(title = "审批流配置主", businessType = BusinessType.INSERT)
-    @PostMapping
+    @PostMapping(value = "/add")
     @RepeatSubmit
     public AjaxResult add(@RequestParam("auditPaths") String auditPaths,
                           @RequestParam("auditPathsLevels") String auditPathsLevels) {

+ 18 - 11
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/warehouseBusiness/TWarehouseGoodsTransferController.java

@@ -1,17 +1,20 @@
 package com.ruoyi.web.controller.warehouse.warehouseBusiness;
 
 import com.ruoyi.common.annotation.Log;
+import com.ruoyi.common.annotation.RepeatSubmit;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.ServletUtils;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.common.utils.spring.SpringUtils;
 import com.ruoyi.framework.web.service.TokenService;
 import com.ruoyi.warehouseBusiness.domain.TWarehouseBills;
 import com.ruoyi.warehouseBusiness.service.ITWarehouseBillsService;
+import org.aspectj.weaver.loadtime.Aj;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
@@ -60,6 +63,7 @@ public class TWarehouseGoodsTransferController extends BaseController {
     @PreAuthorize("@ss.hasPermi('warehouseBusiness:goodsTransfer:export')")
     @Log(title = "详情主表", businessType = BusinessType.EXPORT)
     @GetMapping("/export")
+    @RepeatSubmit
     public AjaxResult export(TWarehouseBills tWarehouseBills) {
         List<TWarehouseBills> list = itWarehouseBillsService.selectTWarehousebillsList(tWarehouseBills);
         ExcelUtil<TWarehouseBills> util = new ExcelUtil<TWarehouseBills>(TWarehouseBills.class);
@@ -81,27 +85,19 @@ public class TWarehouseGoodsTransferController extends BaseController {
     @PreAuthorize("@ss.hasPermi('warehouseBusiness:goodsTransfer:add')")
     @Log(title = "详情主表", businessType = BusinessType.INSERT)
     @PostMapping(value = "/add")
+    @RepeatSubmit
     public AjaxResult add(@RequestParam("tWarehouseBills") String tWarehouseBills,
                           @RequestParam("tWhgenleg") String tWhgenleg,
                           @RequestParam("tWarehousebillsfeesCr") String tWarehousebillsfeesCr,
                           @RequestParam("tWarehousebillsfeesDr") String tWarehousebillsfeesDr,
                           @RequestParam("tWarehousebillsitems") String tWarehousebillsitems) {
         String billsType = "HQZY";
-        /*if (StringUtils.isEmpty(tWarehouseBills)) {
+        if (StringUtils.isEmpty(tWarehouseBills) || "{}".equals(tWarehouseBills)) {
             return AjaxResult.error("提交失败:请检查主表数据");
         }
-        if (tWarehousebillsitems.equals("[]")) {
+        if (StringUtils.isEmpty(tWarehousebillsitems) || "[]".equals(tWarehousebillsitems)) {
             return AjaxResult.error("提交失败:请检查库存明细数据");
         }
-        if (tWhgenleg.equals("[]")) {
-            return AjaxResult.error("提交失败:请检查附件信息");
-        }
-        if (tWarehousebillsfeesDr.equals("[]")) {
-            return AjaxResult.error("提交失败:请检查收款明细数据");
-        }
-        if (tWarehousebillsfeesCr.equals("[]")) {
-            return AjaxResult.error("提交失败:请检查付款明细数据");
-        }*/
         // 获取当前的用户
         LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
         return itWarehouseBillsService.insertTWarehousebills(tWarehouseBills, tWarehousebillsfeesCr,
@@ -114,9 +110,16 @@ public class TWarehouseGoodsTransferController extends BaseController {
     @PreAuthorize("@ss.hasPermi('warehouseBusiness:inStock:add')")
     @Log(title = "详情主表", businessType = BusinessType.INSERT)
     @PostMapping(value = "/addCredit")
+    @RepeatSubmit
     public AjaxResult addCredit(@RequestParam("warehouseBills") String warehouseBills,
                                 @RequestParam("warehousebillsitems") String warehousebillsitems ) {
         String billsType = "HQZY";
+        if (StringUtils.isNull(warehouseBills) || "{}".equals(warehouseBills)) {
+            return AjaxResult.error("未找到主表信息,请确认");
+        }
+        if (StringUtils.isNull(warehousebillsitems) || "[]".equals(warehousebillsitems)) {
+            return AjaxResult.error("未找到明细信息,请确认");
+        }
         // 获取当前的用户
         LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
         return itWarehouseBillsService.updateCredit(warehouseBills, warehousebillsitems, loginUser, billsType);
@@ -128,6 +131,7 @@ public class TWarehouseGoodsTransferController extends BaseController {
     @PreAuthorize("@ss.hasPermi('warehouseBusiness:goodsTransfer:edit')")
     @Log(title = "详情主表", businessType = BusinessType.UPDATE)
     @PutMapping
+    @RepeatSubmit
     public AjaxResult edit(@RequestBody TWarehouseBills tWarehouseBills) {
         return toAjax(itWarehouseBillsService.updateTWarehousebills(tWarehouseBills));
     }
@@ -138,6 +142,7 @@ public class TWarehouseGoodsTransferController extends BaseController {
     @PreAuthorize("@ss.hasPermi('warehouseBusiness:goodsTransfer:remove')")
     @Log(title = "详情主表", businessType = BusinessType.DELETE)
     @DeleteMapping("/{fIds}")
+    @RepeatSubmit
     public AjaxResult remove(@PathVariable Long[] fIds) {
         return toAjax(itWarehouseBillsService.deleteTWarehousebillsByIds(fIds));
     }
@@ -148,6 +153,7 @@ public class TWarehouseGoodsTransferController extends BaseController {
     @PreAuthorize("@ss.hasPermi('warehouseBusiness:goodsTransfer:revoke')")
     @Log(title = "详情主表", businessType = BusinessType.UPDATE)
     @GetMapping("/get/{fId}")
+    @RepeatSubmit
     public AjaxResult revoke(@PathVariable("fId") Long fId) {
         String  billsType="HQZYRevoke";
         // 获取当前的用户
@@ -161,6 +167,7 @@ public class TWarehouseGoodsTransferController extends BaseController {
     @PreAuthorize("@ss.hasPermi('warehouseBusiness:goodsTransfer:add')")
     @Log(title = "详情主表", businessType = BusinessType.INSERT)
     @PostMapping(value = "/updateCredit")
+    @RepeatSubmit
     public AjaxResult deleteCredit(@RequestParam("warehouseBills") String warehouseBills,
                                    @RequestParam("warehousebillsitems") String warehousebillsitems,
                                    @RequestParam("whgenleg") String whgenleg) {

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

@@ -218,6 +218,12 @@ public class TWarehouseInStockController extends BaseController {
     public AjaxResult addCredit(@RequestParam("warehouseBills") String warehouseBills,
                                 @RequestParam("warehousebillsitems") String warehousebillsitems) {
         String billsType = "SJRK";
+        if (StringUtils.isNull(warehouseBills) || "{}".equals(warehouseBills)) {
+            return AjaxResult.error("未找到主表信息,请确认");
+        }
+        if (StringUtils.isNull(warehousebillsitems) || "[]".equals(warehousebillsitems)) {
+            return AjaxResult.error("未找到明细信息,请确认");
+        }
         // 获取当前的用户
         LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
         return itWarehouseBillsService.addCredit(warehouseBills, warehousebillsitems, loginUser, billsType);

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

@@ -8,6 +8,7 @@ import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.ServletUtils;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.common.utils.spring.SpringUtils;
 import com.ruoyi.framework.web.service.TokenService;
@@ -204,6 +205,12 @@ public class TWarehouseOutStockController extends BaseController {
     public AjaxResult addCredit(@RequestParam("warehouseBills") String warehouseBills,
                                 @RequestParam("warehousebillsitems") String warehousebillsitems ) {
         String billsType = "SJCK";
+        if (StringUtils.isNull(warehouseBills) || "{}".equals(warehouseBills)) {
+            return AjaxResult.error("未找到主表信息,请确认");
+        }
+        if (StringUtils.isNull(warehousebillsitems) || "[]".equals(warehousebillsitems)) {
+            return AjaxResult.error("未找到明细信息,请确认");
+        }
         // 获取当前的用户
         LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
         return itWarehouseBillsService.updateCredit(warehouseBills, warehousebillsitems, loginUser, billsType);

+ 1 - 1
ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml

@@ -58,7 +58,7 @@
 			role_id AS userId,
 			role_name AS actualname
 		from
-			from sys_role
+			sys_role
 		where
 			status = '0'
 			AND del_flag = '0'

+ 1 - 1
ruoyi-warehouse/src/main/java/com/ruoyi/approvalFlow/service/IAuditPathsActsService.java

@@ -37,7 +37,7 @@ public interface IAuditPathsActsService {
      * @param auditPathsActs 审批流配置明细
      * @return 结果
      */
-    public AjaxResult insertAuditPathsActs(List<AuditPathsActs> auditPathsActs);
+    public AjaxResult insertAuditPathsActs(String auditPathsActs);
 
     /**
      * 修改审批流配置明细

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

@@ -4,12 +4,15 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.ruoyi.approvalFlow.domain.AuditPaths;
 import com.ruoyi.approvalFlow.domain.AuditPathsActs;
 import com.ruoyi.approvalFlow.mapper.AuditPathsActsMapper;
 import com.ruoyi.approvalFlow.mapper.AuditPathsMapper;
 import com.ruoyi.approvalFlow.service.IAuditPathsActsService;
 import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.warehouseBusiness.domain.TWarehousebillsitems;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -56,7 +59,6 @@ public class AuditPathsActsServiceImpl implements IAuditPathsActsService {
         Map<String, Object> map = new HashMap<>();
         AuditPathsActs auditPathsActs = new AuditPathsActs();
         List<AuditPathsActs> actsList = auditPathsActsMapper.selectAuditPathsActsList(auditPathsActs);
-        map.put("auditPathAct", actsList);
         AuditPaths paths = new AuditPaths();
         paths.setStatus("A");
         List<AuditPaths> pathsList = auditPathsMapper.selectAuditPathsList(paths);
@@ -73,9 +75,11 @@ public class AuditPathsActsServiceImpl implements IAuditPathsActsService {
      */
     @Override
     @Transactional
-    public AjaxResult insertAuditPathsActs(List<AuditPathsActs> auditPathsActs) {
+    public AjaxResult insertAuditPathsActs(String auditPathsActs) {
+        JSONArray auditPathsActsJSON = JSONArray.parseArray(auditPathsActs);
+        List<AuditPathsActs> auditPathsActsList = JSONObject.parseArray(auditPathsActsJSON.toJSONString(), AuditPathsActs.class);
         int lin = 0;
-        for (AuditPathsActs act : auditPathsActs) {
+        for (AuditPathsActs act : auditPathsActsList) {
             lin ++;
             int i = auditPathsActsMapper.updateAuditPathsActs(act);
             if (i <= 0) {

+ 76 - 16
ruoyi-warehouse/src/main/java/com/ruoyi/approvalFlow/service/impl/AuditPathsServiceImpl.java

@@ -4,20 +4,17 @@ import java.util.*;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
-import com.ruoyi.approvalFlow.domain.AuditItems;
-import com.ruoyi.approvalFlow.domain.AuditPaths;
-import com.ruoyi.approvalFlow.domain.AuditPathsActs;
-import com.ruoyi.approvalFlow.domain.AuditPathsLevels;
-import com.ruoyi.approvalFlow.mapper.AuditItemsMapper;
-import com.ruoyi.approvalFlow.mapper.AuditPathsActsMapper;
-import com.ruoyi.approvalFlow.mapper.AuditPathsLevelsMapper;
-import com.ruoyi.approvalFlow.mapper.AuditPathsMapper;
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
+import com.ruoyi.approvalFlow.domain.*;
+import com.ruoyi.approvalFlow.mapper.*;
 import com.ruoyi.approvalFlow.service.IAuditPathsService;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.system.mapper.SysUserMapper;
+import com.ruoyi.warehouseBusiness.domain.TWarehouseBills;
+import com.ruoyi.warehouseBusiness.mapper.TWarehouseBillsMapper;
 import com.ruoyi.warehouseBusiness.service.impl.TWarehouseBillsServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -42,12 +39,18 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
     private AuditItemsMapper auditItemsMapper;
 
     @Autowired
+    private AuditItemsUsersMapper auditItemsUsersMapper;
+
+    @Autowired
     private AuditPathsActsMapper auditPathsActsMapper;
 
     @Autowired
     private AuditPathsLevelsMapper auditPathsLevelsMapper;
 
     @Autowired
+    private TWarehouseBillsMapper tWarehouseBillsMapper;
+
+    @Autowired
     private TWarehouseBillsServiceImpl tWarehouseBillsService;
 
     /**
@@ -124,7 +127,7 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
             AuditPaths paths = new AuditPaths();
             paths.setPathName(apath.getPathName());
             List<AuditPaths> audiList = auditPathsMapper.selectAuditPathsList(paths);
-            if (StringUtils.isNotNull(audiList)) {
+            if (audiList.size() > 0) {
                 return AjaxResult.error("审核路径名已存在,请确认");
             }
             apath.setOpUserId(loginUser.getUser().getUserId());
@@ -240,19 +243,76 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
      * @return 结果
      */
     @Override
+    @Transactional
     public AjaxResult approved(AuditItems auditItems) {
         long fettle = 6L;
+        int number = 0;
         if (auditItems.getActId() >= 110 && auditItems.getActId() <= 140) {
-            // 仓库模块
-            AjaxResult ajaxResult = tWarehouseBillsService.warehouseFollow(auditItems.getBillId(), fettle);
-            String code = (String) ajaxResult.get("code");
-            if ("500".equals(code)) {
-                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            TWarehouseBills tWarehouseBills = tWarehouseBillsMapper.selectTWarehousebillsById(auditItems.getId());
+            AuditItems item = new AuditItems();
+            item.setBillId(tWarehouseBills.getfId());
+            item.setActId(auditItems.getActId());
+            List<AuditItems> auditItemsList = auditItemsMapper.selectAuditItemsList(item);
+            if (auditItemsList.size() <= 0) {
+                return AjaxResult.error("未找到审批信息,请确认");
+            }
+            for (AuditItems at : auditItemsList) {
+                if (!"S".equals(at.getAuditStatus())) {
+                    continue;
+                }
+                AuditItemsUsers itemsUsers = new AuditItemsUsers();
+                itemsUsers.setPid(at.getId());
+                List<AuditItemsUsers> auditItemsUsers = auditItemsUsersMapper.selectAuditItemsUsersList(itemsUsers);
+                for (AuditItemsUsers au : auditItemsUsers) {
+                    if (au.getUserId().equals(auditItems.getSendUserId()) && "S".equals(au.getAuditStatus())) {
+                        number++;
+                        if (StringUtils.isEmpty(auditItems.getAuditMsg())) {
+                            at.setAuditMsg("同意");
+                        } else {
+                            at.setAuditMsg(auditItems.getAuditMsg());
+                        }
+                        at.setAuditStatus("A");
+                        at.setAuditItem(new Date());
+                        at.setAuditUserId(au.getUserId());
+                        int updateAuditItems = auditItemsMapper.updateAuditItems(at);
+                        if (updateAuditItems <= 0) {
+                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                            return AjaxResult.error("审批通过失败: 更新审批状态失败");
+                        }
+                        au.setAuditStatus("A");
+                        int updateAuditItemsUsers = auditItemsUsersMapper.updateAuditItemsUsers(au);
+                        if (updateAuditItemsUsers <= 0) {
+                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                            return AjaxResult.error("审批通过失败: 更新审批状态失败");
+                        }
+                        if ("T".equals(at.getIffinalItem())) {
+                            // 仓库模块
+                            AjaxResult ajaxResult = tWarehouseBillsService.warehouseFollow(auditItems.getBillId(), fettle);
+                            String code = (String) ajaxResult.get("code");
+                            if ("500".equals(code)) {
+                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                            }
+                            return ajaxResult;
+                        } else if ("F".equals(at.getIffinalItem())) {
+                            fettle = 5L;
+                        }
+                        // 仓库模块
+                        AjaxResult ajaxResult = tWarehouseBillsService.warehouseFollow(auditItems.getBillId(), fettle);
+                        String code = (String) ajaxResult.get("code");
+                        if ("500".equals(code)) {
+                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                            return ajaxResult;
+                        }
+                        break;
+                    }
+                }
             }
-            return ajaxResult;
         } else if (auditItems.getActId() >= 210 && auditItems.getActId() <= 230) {
             // 财务模块
-
+        }
+        if (number <= 0) {
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return AjaxResult.error("该审批已被操作");
         }
         return AjaxResult.success();
     }

+ 52 - 20
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/TWarehouseBillsServiceImpl.java

@@ -306,12 +306,21 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         if ("SJRK".equals(warehouseBills.getfBilltype()) || "HQZY".equals(warehouseBills.getfBilltype())) {
             tWhgenleg.setfOriginalbilldate(new Date());
         }
-        // 客户
-        tWhgenleg.setfCorpid(warehouseBills.getfCorpid());
-        // 提单号
-        tWhgenleg.setfMblno(warehouseBills.getfMblno());
-        // 原始单号
-        tWhgenleg.setfOriginalbillno(warehouseBills.getfMblno());
+        if ("HQZY".equals(warehouseBills.getfBilltype())) {
+            // 客户
+            tWhgenleg.setfCorpid(warehouseBills.getfTocorpid());
+            // 提单号
+            tWhgenleg.setfMblno(warehousebillsitems.getfMblno());
+            // 原始单号
+            tWhgenleg.setfOriginalbillno(warehousebillsitems.getfMblno());
+        } else {
+            // 客户
+            tWhgenleg.setfCorpid(warehouseBills.getfCorpid());
+            // 提单号
+            tWhgenleg.setfMblno(warehouseBills.getfMblno());
+            // 原始单号
+            tWhgenleg.setfOriginalbillno(warehouseBills.getfMblno());
+        }
         // 仓库
         tWhgenleg.setfWarehouseid(warehouseBills.getfWarehouseid());
         // 库区
@@ -405,7 +414,6 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
             deleteBillsitems(fPid, tWarehousebillsitems);
         }
         // 库存明细添加
-        List<TWarehousebillsitems> tWarehousebillsitemsList = new ArrayList<>();
         if (StringUtils.isNotNull(tWarehousebillsitems) && !"[]".equals(tWarehousebillsitems)) {
             JSONArray warehouseJSON = JSONArray.parseArray(tWarehousebillsitems);
             List<TWarehousebillsitems> warehousebillsitemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsitems.class);
@@ -420,7 +428,9 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                 } else {
                     // 添加主表 业务单号
                     wbItem.setfBillno(warehouseBills.getfBillno());
-                    wbItem.setfMblno(warehouseBills.getfMblno());
+                    if (!"HQZY".equals(billsType)) {
+                        wbItem.setfMblno(warehouseBills.getfMblno());
+                    }
                     wbItem.setfPid(fPid);
                     wbItem.setCreateBy(loginUser.getUser().getUserName());
                     wbItem.setCreateTime(new Date());
@@ -431,7 +441,6 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                         insertTWarehousebillsLog(wbItem, 10L, loginUser);
                     }
                 }
-                tWarehousebillsitemsList.add(wbItem);
             }
             // 录入库存明细整体状态 --> 更新主表 入账状态
             updateWarehousebillsItemsStatus(warehouseBills);
@@ -472,8 +481,10 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                 tWarehousebillsfeesMapper.insertTWarehousebillsfees(wbCr);
             }
         }
+        TWarehousebillsitems warehousebillsitems = new TWarehousebillsitems();
+        warehousebillsitems.setfPid(fPid);
         map.put("warehouseBills", warehouseBills);
-        map.put("warehousebillsitems", tWarehousebillsitemsList);
+        map.put("warehousebillsitems", tWarehousebillsitemsMapper.selectGoodsTransferitemsList(warehousebillsitems));
         return AjaxResult.success("成功", map);
     }
 
@@ -753,19 +764,23 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
     public AjaxResult updateCredit(String warehouseBills, String warehousebillsitems, LoginUser loginUser, String billsType) {
         Long fPid = null;
         Map<String, Object> map = new HashMap<>();
-        if (StringUtils.isNull(warehouseBills) || "[]".equals(warehouseBills)) {
-            return AjaxResult.error("未找到主表信息");
-        }
-        if (StringUtils.isNull(warehousebillsitems) || "[]".equals(warehousebillsitems)) {
-            return AjaxResult.error("未找到入账信息");
-        }
         TWarehouseBills tWarehouseBills = JSONArray.parseObject(warehouseBills, TWarehouseBills.class);
+        tWarehouseBills.setfBilltype(billsType);
         if (StringUtils.isNotNull(tWarehouseBills.getfId())) {
             tWarehouseBills.setUpdateBy(loginUser.getUser().getUserName());
             tWarehouseBills.setUpdateTime(new Date());
             tWarehouseBillsMapper.updateTWarehousebills(tWarehouseBills);
             fPid = tWarehouseBills.getfId();
+        } else {
+            tWarehouseBills.setfBsdeptid(loginUser.getUser().getDeptId());
+            tWarehouseBills.setCreateBy(loginUser.getUser().getUserName());
+            tWarehouseBills.setCreateTime(new Date());
+            String billNo = billnoSerialServiceImpl.getBillNo(billsType, tWarehouseBills.getfBsdate());
+            tWarehouseBills.setfBillno(billNo);
+            tWarehouseBillsMapper.insertTWarehousebills(tWarehouseBills);
+            fPid = tWarehouseBills.getfId();
         }
+        System.out.println(warehousebillsitems);
         JSONArray warehouseJSON = JSONArray.parseArray(warehousebillsitems);
         List<TWarehousebillsitems> warehousebillsitemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsitems.class);
         int i = 1;
@@ -794,6 +809,9 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                     if (StringUtils.isNull(tWarehouseBills.getfCorpid())) {
                         return AjaxResult.error("库存明细第" + i + "行请检查客户信息,操作终止");
                     }
+
+
+
                     /*long fCorpid = tWarehouseBills.getfCorpid();
                     TGoods tGoods = tGoodsMapper.selectTGoodsById(wbItem.getfGoodsid());
                     long fGoodsid = tGoods.getfTypeid();
@@ -824,6 +842,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                     fees.setRemark(dateDay + "天" + tFees.getfName());
                     warehousebillsfees.add(fees);*/
                 }
+                wbItem.setfBillstatus(40L);
             } else if ("CKDB".equals(billsType)) { // 调拨查询
                 if (StringUtils.isNull(tWhgenle)) { // 为空 提示没有库存
                     TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -845,6 +864,9 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                     }
                 }
             } else if ("HQZY".equals(billsType)) { // 货转
+                wbItem.setfBillstatus(6L);
+                wbItem.setfChargedate(tWarehouseBills.getfChargedate());
+                wbItem.setfBillingway(tWarehouseBills.getfBillingway());
                 if (StringUtils.isNull(tWhgenle)) { // 为空 提示没有库存
                     TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                     return AjaxResult.error("库存明细第" + i + "行库存为空");
@@ -855,21 +877,25 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                     } else {  // 2、 库存足够 先 进行出库操作
                         updateTWhgenlegData(wbItem, tWhgenle.getfId(), "SJCK");
                     }
+                    long corpId = tWarehouseBills.getfCorpid();
+                    tWarehouseBills.setfCorpid(tWarehouseBills.getfTocorpid());
                     // 3、 进行入库操作 查询是否存在库存
-                    tWarehouseBills.setfCorpid(tWarehouseBills.getfTocorpid()); // 新货权方
                     TWhgenleg tWhgenle1 = queryTWhgenleg(tWarehouseBills, wbItem);
                     if (StringUtils.isNull(tWhgenle1)) {   // 5、 不存在 进行新增库存
                         instalTWhgenleg(tWarehouseBills, wbItem, loginUser.getUser());
                     } else { // 4、 存在 进行跟新库存
                         updateTWhgenlegData(wbItem, tWhgenle1.getfId(), "SJRK");
                     }
+                    tWarehouseBills.setfCorpid(corpId);
                 }
             }
             i++;
             int num = 0;
+            wbItem.setfPid(fPid);
+            wbItem.setfBilltype(billsType);
+            wbItem.setfBillno(tWarehouseBills.getfBillno());
+            wbItem.setfBsdate(tWarehouseBills.getfBsdate());
             if (StringUtils.isNotNull(wbItem.getfId())) {
-                wbItem.setfBillstatus(40L);
-                wbItem.setfBsdate(tWarehouseBills.getfBsdate());
                 wbItem.setUpdateBy(loginUser.getUser().getUserName());
                 wbItem.setUpdateTime(new Date());
                 num = tWarehousebillsitemsMapper.updateTWarehousebillsitems(wbItem);
@@ -877,6 +903,10 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                     // 添加状态log
                     insertTWarehousebillsLog(wbItem, 40L, loginUser);
                 }
+            } else {
+                wbItem.setCreateTime(new Date());
+                wbItem.setCreateBy(loginUser.getUsername());
+                num = tWarehousebillsitemsMapper.insertTWarehousebillsitems(wbItem);
             }
             if (num <= 0) {
                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -886,6 +916,8 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         // 查询所有库存明细 修改仓库主表状态
         updateWarehousebillsItemsStatus(tWarehouseBills);
         map.put("fPid", fPid);
+        map.put("warehouse", tWarehouseBills);
+        map.put("warehouseItem", warehousebillsitemsList);
         map.put("fees", feesList);
         map.put("warehousebillsfees", warehousebillsfees);
         // 添加成功 主键返回 前台
@@ -1482,9 +1514,9 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                     }
                     //  2、原货权方撤销出库
                     // 查询库存总账
-                    tWarehousebills.setfCorpid(fCorpid);
                     TWhgenleg tWhgenle2 = queryTWhgenleg(tWarehousebills, wb);
                     updateTWhgenlegData(wb, tWhgenle2.getfId(), "SJCKRevoke");
+                    tWarehousebills.setfCorpid(fCorpid);
                 }
                 i++;
                 wb.setfBillstatus(10L);

+ 8 - 1
ruoyi-warehouse/src/main/resources/mapper/approvalFlow/AuditPathsActsMapper.xml

@@ -80,7 +80,14 @@
     </delete>
 
     <delete id="deleteAuditPathsActsByIds" parameterType="String">
-        delete from audit_paths_acts where id in
+        delete
+            act.*,
+            leve.*
+         from
+          audit_paths_acts act
+          left JOIN audit_paths_levels leve ON leve.path_id = act.id
+         where
+            act.id in
         <foreach item="id" collection="array" open="(" separator="," close=")">
             #{id}
         </foreach>

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

@@ -85,7 +85,7 @@
             levels.*
          from
             audit_paths audit
-            LEFT audit_paths_levels levels ON levels.path_id = audit.id
+            LEFT JOIN audit_paths_levels levels ON levels.path_id = audit.id
          where
             audit.id = #{id}
     </delete>
@@ -96,7 +96,7 @@
             levels.*
         from
             audit_paths audit
-            LEFT audit_paths_levels levels ON levels.path_id = audit.id
+            LEFT JOIN audit_paths_levels levels ON levels.path_id = audit.id
         where
             audit.id in
         <foreach item="id" collection="array" open="(" separator="," close=")">

+ 8 - 0
ruoyi-warehouse/src/main/resources/mapper/reportManagement/TWhgenlegMapper.xml

@@ -85,6 +85,7 @@
             leg.f_warehouse_locationid AS fWarehouseLocationid,
             leg.f_trademodeid AS fTrademodeid,
             goods.f_name AS fGoodsids,
+            goods.f_packagespecs AS fPackagespecs,
             leg.f_goodsid AS fGoodsid,
             leg.f_volumnD AS fVolumnD,
             leg.f_qtyD AS fQtyD,
@@ -317,6 +318,13 @@
                 f_grossweightC = f_grossweightC - #{map.warehousebillsitems.fGrossweight},
                 f_qtyblc = f_qtyblc + #{map.warehousebillsitems.fQty}
             </if>
+            /*判断是否撤销货转*/
+            <if test="map.billType == 'HQZYRevoke'">
+                f_qtyC = f_qtyC - #{map.warehousebillsitems.fQty},
+                f_volumnC = f_volumnC - #{map.warehousebillsitems.fVolumn},
+                f_netweightC = f_netweightC - #{map.warehousebillsitems.fNetweight},
+                f_grossweightC = f_grossweightC - #{map.warehousebillsitems.fGrossweight}
+            </if>
             -- update_by = NOW()
         </trim>
         where f_id = #{map.whgenlegId}