瀏覽代碼

[CODE]: 出库、货转 入账确认

maxianghua 4 年之前
父節點
當前提交
35f1b0bbdc

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

@@ -109,6 +109,20 @@ public class TWarehouseGoodsTransferController extends BaseController {
     }
 
     /**
+     * 新增出库详情入账
+     */
+    @PreAuthorize("@ss.hasPermi('warehouseBusiness:inStock:add')")
+    @Log(title = "详情主表", businessType = BusinessType.INSERT)
+    @PostMapping(value = "/addCredit")
+    public AjaxResult addCredit(@RequestParam("warehouseBills") String warehouseBills,
+                                @RequestParam("warehousebillsitems") String warehousebillsitems ) {
+        String billsType = "HQZY";
+        // 获取当前的用户
+        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
+        return itWarehouseBillsService.updateCredit(warehouseBills, warehousebillsitems, loginUser, billsType);
+    }
+
+    /**
      * 修改货转详情主表
      */
     @PreAuthorize("@ss.hasPermi('warehouseBusiness:goodsTransfer:edit')")

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

@@ -111,6 +111,21 @@ public class TWarehouseOutStockController extends BaseController {
     }
 
     /**
+     * 新增出库详情入账
+     */
+    @PreAuthorize("@ss.hasPermi('warehouseBusiness:inStock:add')")
+    @Log(title = "详情主表", businessType = BusinessType.INSERT)
+    @PostMapping(value = "/addCredit")
+    public AjaxResult addCredit(@RequestParam("warehouseBills") String warehouseBills,
+                                @RequestParam("warehousebillsitems") String warehousebillsitems ) {
+
+        String billsType = "SJCK";
+        // 获取当前的用户
+        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
+        return itWarehouseBillsService.updateCredit(warehouseBills, warehousebillsitems, loginUser, billsType);
+    }
+
+    /**
      * 修改出库详情主表
      */
     @PreAuthorize("@ss.hasPermi('warehouseBusiness:outStock:edit')")

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

@@ -90,4 +90,14 @@ public interface ITWarehouseBillsService {
     public AjaxResult revokeTWarehousebillsById(Long fId, LoginUser loginUser, String billsType);
 
     AjaxResult addCredit(String warehouseBills, String warehousebillsitems, String whgenleg, LoginUser loginUser, String billsType);
+
+    /**
+     *   出库 、调拨、 货转 确认
+     * @param warehouseBills
+     * @param warehousebillsitems
+     * @param loginUser
+     * @param billsType
+     * @return
+     */
+    AjaxResult updateCredit(String warehouseBills, String warehousebillsitems,  LoginUser loginUser, String billsType);
 }

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

@@ -135,6 +135,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                     tWhgenleg.setfWarehouseLocationid(((Integer) wb.get("fWarehouselocid")).longValue());
                 }
                 tWhgenleg.setfTrademodeid(tWarehousebills.getfTrademodeid());
+                tWhgenleg.setfMblno(tWarehousebills.getfMblno());
                 TWhgenleg whgenleg = tWhgenlegMapper.selectTWhgenleg(tWhgenleg);
                 if (StringUtils.isNotNull(whgenleg)) {
                     wb.put("fQtyblc", whgenleg.getfQtyblc());
@@ -559,6 +560,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
             tWarehouseBills.setUpdateTime(new Date());
             tWarehouseBillsMapper.updateTWarehousebills(tWarehouseBills);
             fPid = tWarehouseBills.getfId();
+            tWarehousebillsitemsMapper.deleteByFPid(fPid);
             tEnclosureMapper.deleteByFPid(fPid);
         } else {
             // 业务编码
@@ -579,7 +581,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         JSONArray warehouseJSON = JSONArray.parseArray(warehousebillsitems);
         List<TWarehousebillsitems> warehousebillsitemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsitems.class);
         for (TWarehousebillsitems item : warehousebillsitemsList) {
-            if (!"7".equals(item.getfBillstatus())) {
+            if (!"6".equals(item.getfBillstatus())) {
                 TWhgenleg tWhgenle = queryTWhgenleg(tWarehouseBills, item);
                 if (StringUtils.isNotNull(tWhgenle)) {
                     updateTWhgenlegData(item, tWhgenle.getfId(), billsType);
@@ -591,7 +593,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                     }
                 }
                 item.setfPid(fPid);
-                item.setfBillstatus("7");
+                item.setfBillstatus("6");
                 item.setCreateBy(loginUser.getUser().getUserName());
                 item.setCreateTime(new Date());
                 if (tWarehousebillsitemsMapper.insertTWarehousebillsitems(item) <= 0) {
@@ -610,7 +612,128 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                 tEnclosureMapper.insertTEnclosure(tEnclosure);
             }
         }
-        return AjaxResult.success();
+        // 添加成功 主键返回 前台
+        return AjaxResult.success("成功",fPid);
+    }
+
+    /**
+     *    出库、调拨、货转 确认
+     * @param warehouseBills
+     * @param warehousebillsitems
+     * @param loginUser
+     * @param billsType
+     * @return
+     */
+    @Override
+    public AjaxResult updateCredit(String warehouseBills, String warehousebillsitems, LoginUser loginUser, String billsType) {
+        Long fPid = null;
+        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);
+        if (StringUtils.isNotNull(tWarehouseBills.getfId())) {
+            tWarehouseBills.setUpdateBy(loginUser.getUser().getUserName());
+            tWarehouseBills.setUpdateTime(new Date());
+            tWarehouseBillsMapper.updateTWarehousebills(tWarehouseBills);
+            fPid = tWarehouseBills.getfId();
+            tEnclosureMapper.deleteByFPid(fPid);
+        } else {
+            // 业务编码
+            String billNo = billnoSerialServiceImpl.getBillNo(billsType, tWarehouseBills.getfBsdate());
+            tWarehouseBills.setfBillno(billNo);
+            // 存货编码
+            Date time = new Date();
+            String bscorpno = billnoSerialServiceImpl.getCorpNo(tWarehouseBills.getfCorpid(), time);
+            tWarehouseBills.setfBscorpno(bscorpno);
+            tWarehouseBills.setCreateBy(loginUser.getUser().getUserName());
+            tWarehouseBills.setCreateTime(new Date());
+            tWarehouseBills.setfBsdeptid(loginUser.getUser().getDeptId());
+            // 已入账
+            tWarehouseBills.setfBillstatus("7");
+            tWarehouseBills.setfBilltype(billsType);
+            tWarehouseBillsMapper.insertTWarehousebills(tWarehouseBills);
+            fPid = tWarehouseBills.getfId();
+        }
+        JSONArray warehouseJSON = JSONArray.parseArray(warehousebillsitems);
+        List<TWarehousebillsitems> warehousebillsitemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsitems.class);
+        int i = 1;
+        for (TWarehousebillsitems wbItem : warehousebillsitemsList) {
+            if (!"6".equals(wbItem.getfBillstatus())) {
+                // 查询总账是否存在
+                TWhgenleg tWhgenle = queryTWhgenleg(tWarehouseBills, wbItem);
+                //  入库数特殊不判断入账
+                if ("SJCK".equals(billsType)) { // 出库 查询
+                    if (StringUtils.isNull(tWhgenle)) { // 为空 提示没有库存
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        return AjaxResult.error("库存明细第" + i + "行库存为空");
+                    } else { // 非空修改库存总账
+                            //  库存 <  出库件数  、
+                            if (tWhgenle.getfQtyblc() < wbItem.getfQty()
+
+                               ) {
+                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                                return AjaxResult.error("库存明细第" + i + "行库存不足");
+                            }
+                            updateTWhgenlegData(wbItem, tWhgenle.getfId(), billsType);
+                    }
+                } else if ("CKDB".equals(billsType)) { // 调拨查询
+                    if (StringUtils.isNull(tWhgenle)) { // 为空 提示没有库存
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        return AjaxResult.error("库存明细第" + i + "行库存为空");
+                    } else { // 非空修改库存总账
+                            if (tWhgenle.getfQtyblc() < wbItem.getfQty()) {  //  1、  库存 <  调拨件数  提示库存不足
+                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                                return AjaxResult.error("库存明细第" + i + "行库存不足");
+                            } else {  // 2、 库存足够 先 进行出库操作
+                                updateTWhgenlegData(wbItem, tWhgenle.getfId(), "SJCK");
+                            }
+                            // 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");
+                            }
+                    }
+                } else if ("HQZY".equals(billsType)) { // 货转
+                    if (StringUtils.isNull(tWhgenle)) { // 为空 提示没有库存
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        return AjaxResult.error("库存明细第" + i + "行库存为空");
+                    } else { // 非空修改库存总账
+                            if (tWhgenle.getfQtyblc() < wbItem.getfQty()) {  //  1、  库存 <  调拨件数  提示库存不足
+                                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                                return AjaxResult.error("库存明细第" + i + "行库存不足");
+                            } else {  // 2、 库存足够 先 进行出库操作
+                                updateTWhgenlegData(wbItem, tWhgenle.getfId(), "SJCK");
+                            }
+                            // 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");
+                            }
+                    }
+                }
+                i++;
+                wbItem.setfPid(fPid);
+                wbItem.setfBillstatus("6");
+                wbItem.setCreateBy(loginUser.getUser().getUserName());
+                wbItem.setCreateTime(new Date());
+                if (tWarehousebillsitemsMapper.insertTWarehousebillsitems(wbItem) <= 0) {
+                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    return AjaxResult.error("库存明细更新失败");
+                }
+            }
+
+        }
+        // 添加成功 主键返回 前台
+        return AjaxResult.success("成功",fPid);
     }
 
     // 入库 收费明细 校验