Bläddra i källkod

添加入库 入库确认 接口

阿伏兔 4 år sedan
förälder
incheckning
29d4a7adfc

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

@@ -44,7 +44,6 @@ public class TWarehouseInStockController extends BaseController {
         return getDataTable(list);
     }
 
-
     /**
      * 查询出库详情主表列表
      */
@@ -86,33 +85,7 @@ public class TWarehouseInStockController extends BaseController {
                           @RequestParam("tWarehousebillsfeesCr") String tWarehousebillsfeesCr,
                           @RequestParam("tWarehousebillsfeesDr") String tWarehousebillsfeesDr,
                           @RequestParam("tWarehousebillsitems") String tWarehousebillsitems) {
-        System.out.println("主表:" + tWarehouseBills);
-        System.out.println("附件:" + tWhgenleg);
-        System.out.println("付款:" + tWarehousebillsfeesCr);
-        System.out.println("收款:" + tWarehousebillsfeesDr);
-        System.out.println("明细:" + tWarehousebillsitems);
         String billsType = "SJRK";
-        /*if (StringUtils.isEmpty(tWarehouseBills)) {
-            return AjaxResult.error("提交失败:请检查主表数据");
-        }
-        if (tWarehousebillsitems.equals("[]")) {
-            return AjaxResult.error("提交失败:请检查库存明细数据");
-        }
-        if (tWhgenleg.equals("[]")) {
-            return AjaxResult.error("提交失败:请检查附件信息");
-        }
-        if (tWarehousebillsfeesDr.equals("[]")) {
-            return AjaxResult.error("提交失败:请检查收款明细数据");
-        }
-        if (tWarehousebillsfeesCr.equals("[]")) {
-            return AjaxResult.error("提交失败:请检查付款明细数据");
-        }*/
-        /*if (StringUtils.isEmpty(tWarehousebillsitems)) {
-            return AjaxResult.error("提交失败:请检货物明细数据");
-        }
-        if (StringUtils.isEmpty(tWarehousebillsfeesCr) || StringUtils.isEmpty(tWarehousebillsfeesDr)) {
-            return AjaxResult.error("提交失败:请检费用明细数据");
-        }*/
         // 获取当前的用户
         LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
         return itWarehouseBillsService.insertTWarehousebills(tWarehouseBills, tWarehousebillsfeesCr,
@@ -120,6 +93,21 @@ public class TWarehouseInStockController 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,
+                                @RequestParam("whgenleg") String whgenleg) {
+        String billsType = "SJRK";
+        // 获取当前的用户
+        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
+        return itWarehouseBillsService.addCredit(warehouseBills, warehousebillsitems, whgenleg, loginUser, billsType);
+    }
+
+    /**
      * 修改入库详情主表
      */
     @PreAuthorize("@ss.hasPermi('warehouseBusiness:inStock:edit')")
@@ -140,15 +128,15 @@ public class TWarehouseInStockController extends BaseController {
     }
 
     /**
-     *  撤销入库信息
+     * 撤销入库信息
      */
     @PreAuthorize("@ss.hasPermi('warehouseBusiness:inStock:revoke')")
     @Log(title = "详情主表", businessType = BusinessType.UPDATE)
     @GetMapping("/get/{fId}")
     public AjaxResult revoke(@PathVariable("fId") Long fId) {
-        String  billsType="SJRKRevoke";
+        String billsType = "SJRKRevoke";
         // 获取当前的用户
         LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
-        return itWarehouseBillsService.revokeTWarehousebillsById(fId,loginUser,billsType);
+        return itWarehouseBillsService.revokeTWarehousebillsById(fId, loginUser, billsType);
     }
 }

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

@@ -88,4 +88,6 @@ public interface ITWarehouseBillsService {
      * @return
      */
     public AjaxResult revokeTWarehousebillsById(Long fId, LoginUser loginUser, String billsType);
+
+    AjaxResult addCredit(String warehouseBills, String warehousebillsitems, String whgenleg, LoginUser loginUser, String billsType);
 }

+ 130 - 50
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/TWarehouseBillsServiceImpl.java

@@ -129,6 +129,19 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         List<Map<String, Object>> mapList = tWarehousebillsitemsMapper.selectGoodsTransferitemsList(tWarehousebillsitems);
         if (StringUtils.isNotEmpty(mapList)) {
             for (Map<String, Object> wb : mapList) {
+                TWhgenleg tWhgenleg = new TWhgenleg();
+                tWhgenleg.setfCorpid(tWarehousebills.getfCorpid());
+                if (StringUtils.isNotNull(wb.get("fGoodsid"))) {
+                    tWhgenleg.setfGoodsid(((Integer) wb.get("fGoodsid")).longValue());
+                }
+                if (StringUtils.isNotNull(wb.get("fWarehouselocid"))) {
+                    tWhgenleg.setfWarehouseLocationid(((Integer) wb.get("fWarehouselocid")).longValue());
+                }
+                tWhgenleg.setfTrademodeid(tWarehousebills.getfTrademodeid());
+                TWhgenleg whgenleg = tWhgenlegMapper.selectTWhgenleg(tWhgenleg);
+                if (StringUtils.isNotNull(whgenleg)) {
+                    wb.put("fQtyblc", whgenleg.getfQtyblc());
+                }
                 if (StringUtils.isNotNull(wb.get("fGoodsid"))) {
                     Integer fGoodsid = (Integer) wb.get("fGoodsid");
                     goodsId.add(fGoodsid.longValue());
@@ -342,7 +355,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
             warehouseBills.setfBilltype(billsType);
             warehouseBills.setfBsdeptid(loginUser.getUser().getDeptId());
             // 提交时:  生流水号
-            if ("6".equals(warehouseBills.getfBillstatus())) {
+            if ("6".equals(warehouseBills.getfBillstatus()) || "7".equals(warehouseBills.getfBillstatus())) {
                 // 业务编码
                 String billNo = billnoSerialServiceImpl.getBillNo(billsType, warehouseBills.getfBsdate());
                 warehouseBills.setfBillno(billNo);
@@ -376,28 +389,21 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         if (tWarehousebillsitems != null && !"2".equals(warehouseBills.getfBillstatus())) {
             JSONArray warehouseJSON = JSONArray.parseArray(tWarehousebillsitems);
             List<TWarehousebillsitems> warehousebillsitemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsitems.class);
-            int i=1;
+            int i = 1;
             for (TWarehousebillsitems wbItem : warehousebillsitemsList) {
                 // 查询总账是否存在
                 TWhgenleg tWhgenle = queryTWhgenleg(warehouseBills, wbItem);
-                if ("SJRK".equals(billsType)) { //  入库数 、结余数
-                    if (StringUtils.isNull(tWhgenle)) { // 为空添加库存总账
-                        instalTWhgenleg(warehouseBills, wbItem, loginUser.getUser());
-                    } else { // 非空修改库存总账
-                        if ("6".equals(warehouseBills.getfBillstatus())) {
-                            updateTWhgenlegData(wbItem, tWhgenle.getfId(), billsType);
-                        }
-                    }
-                } else if ("SJCK".equals(billsType)) { // 出库 查询
+                //  入库数特殊不判断入账
+                if ("SJCK".equals(billsType)) { // 出库 查询
                     if (StringUtils.isNull(tWhgenle)) { // 为空 提示没有库存
                         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                        return AjaxResult.error("库存明细第"+i+"行库存为空");
+                        return AjaxResult.error("库存明细第" + i + "行库存为空");
                     } else { // 非空修改库存总账
                         if ("6".equals(warehouseBills.getfBillstatus())) {
                             //  库存 <  出库件数  提示库存不足
                             if (tWhgenle.getfQtyblc() < wbItem.getfQty()) {
                                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                                return AjaxResult.error("库存明细第"+i+"行库存不足");
+                                return AjaxResult.error("库存明细第" + i + "行库存不足");
                             }
                             updateTWhgenlegData(wbItem, tWhgenle.getfId(), billsType);
                         }
@@ -405,12 +411,12 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                 } else if ("CKDB".equals(billsType)) { // 调拨查询
                     if (StringUtils.isNull(tWhgenle)) { // 为空 提示没有库存
                         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                        return AjaxResult.error("库存明细第"+i+"行库存为空");
+                        return AjaxResult.error("库存明细第" + i + "行库存为空");
                     } else { // 非空修改库存总账
                         if ("6".equals(warehouseBills.getfBillstatus())) {
                             if (tWhgenle.getfQtyblc() < wbItem.getfQty()) {  //  1、  库存 <  调拨件数  提示库存不足
                                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                                return AjaxResult.error("库存明细第"+i+"行库存不足");
+                                return AjaxResult.error("库存明细第" + i + "行库存不足");
                             } else {  // 2、 库存足够 先 进行出库操作
                                 updateTWhgenlegData(wbItem, tWhgenle.getfId(), "SJCK");
                             }
@@ -426,15 +432,15 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                             }
                         }
                     }
-                }  else if ("HQZY".equals(billsType)) { // 货转
+                } else if ("HQZY".equals(billsType)) { // 货转
                     if (StringUtils.isNull(tWhgenle)) { // 为空 提示没有库存
                         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                        return AjaxResult.error("库存明细第"+i+"行库存为空");
+                        return AjaxResult.error("库存明细第" + i + "行库存为空");
                     } else { // 非空修改库存总账
                         if ("6".equals(warehouseBills.getfBillstatus())) {
                             if (tWhgenle.getfQtyblc() < wbItem.getfQty()) {  //  1、  库存 <  调拨件数  提示库存不足
                                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                                return AjaxResult.error("库存明细第"+i+"行库存不足");
+                                return AjaxResult.error("库存明细第" + i + "行库存不足");
                             } else {  // 2、 库存足够 先 进行出库操作
                                 updateTWhgenlegData(wbItem, tWhgenle.getfId(), "SJCK");
                             }
@@ -504,6 +510,78 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         return AjaxResult.success();
     }
 
+    /**
+     * 入库详情入账
+     * @param warehouseBills        主表
+     * @param warehousebillsitems   明细
+     * @param whgenleg              附件
+     * @param loginUser             当前登录人
+     * @param billsType             状态
+     * @return  结果
+     */
+    @Override
+    @Transactional
+    public AjaxResult addCredit(String warehouseBills, String warehousebillsitems, String whgenleg, 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 {
+            tWarehouseBills.setCreateBy(loginUser.getUser().getUserName());
+            tWarehouseBills.setCreateTime(new Date());
+            tWarehouseBills.setfBsdeptid(loginUser.getUser().getDeptId());
+            // 已入账
+            tWarehouseBills.setfBillstatus("7");
+            tWarehouseBillsMapper.insertTWarehousebills(tWarehouseBills);
+            fPid = tWarehouseBills.getfId();
+        }
+        JSONArray warehouseJSON = JSONArray.parseArray(warehousebillsitems);
+        List<TWarehousebillsitems> warehousebillsitemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsitems.class);
+        for (TWarehousebillsitems item : warehousebillsitemsList) {
+            if (!"7".equals(item.getfBillstatus())) {
+                TWhgenleg tWhgenle = queryTWhgenleg(tWarehouseBills, item);
+                if (StringUtils.isNotNull(tWhgenle)) {
+                    updateTWhgenlegData(item, tWhgenle.getfId(), billsType);
+                    return AjaxResult.error("更新库存总账失败");
+                } else {
+                    if (instalTWhgenleg(tWarehouseBills, item, loginUser.getUser()) <= 0) {
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        return AjaxResult.error("新增库存总账失败");
+                    }
+                }
+                item.setfPid(fPid);
+                item.setfBillstatus("7");
+                item.setCreateBy(loginUser.getUser().getUserName());
+                item.setCreateTime(new Date());
+                if (tWarehousebillsitemsMapper.insertTWarehousebillsitems(item) <= 0) {
+                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    return AjaxResult.error("新增库存明细失败");
+                }
+            }
+        }
+        if (StringUtils.isNotNull(whgenleg) && !"[]".equals(whgenleg)) {
+            JSONArray jsonDrArray = JSONArray.parseArray(whgenleg);
+            List<TEnclosure> tEnclosureList = JSONObject.parseArray(jsonDrArray.toJSONString(), TEnclosure.class);
+            for (TEnclosure tEnclosure : tEnclosureList) {
+                tEnclosure.setfPid(fPid);
+                tEnclosure.setCreateBy(loginUser.getUser().getUserName());
+                tEnclosure.setCreateTime(new Date());
+                tEnclosureMapper.insertTEnclosure(tEnclosure);
+            }
+        }
+        return AjaxResult.success();
+    }
+
     // 入库 收费明细 校验
     public Long check(BigDecimal number, BigDecimal unitPrice) {
         BigDecimal result1 = number.multiply(unitPrice);
@@ -575,60 +653,60 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         List<TWarehousebillsitems> warehousebillsitems = tWarehousebillsitemsMapper.selectTWarehousebillsitemsList(tWarehousebillsitems);
         // 撤销 库存总账
         if (StringUtils.isNotEmpty(warehousebillsitems)) {
-            int i=1;
+            int i = 1;
             for (TWarehousebillsitems wb : warehousebillsitems) {
                 // 查询库存总账
-                TWhgenleg tWhgenle=queryTWhgenleg(tWarehousebills,wb);
-                if("SJRKRevoke".equals(billsType)){ // 撤销 入库
-                    if(StringUtils.isNotNull(tWhgenle) && (wb.getfQty() <= tWhgenle.getfQtyblc()) ){ // 非空 且 撤销数 <= 结余数
-                        updateTWhgenlegData(wb,tWhgenle.getfId(),billsType);
-                    } else{ // 撤销数>结余数
+                TWhgenleg tWhgenle = queryTWhgenleg(tWarehousebills, wb);
+                if ("SJRKRevoke".equals(billsType)) { // 撤销 入库
+                    if (StringUtils.isNotNull(tWhgenle) && (wb.getfQty() <= tWhgenle.getfQtyblc())) { // 非空 且 撤销数 <= 结余数
+                        updateTWhgenlegData(wb, tWhgenle.getfId(), billsType);
+                    } else { // 撤销数>结余数
                         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                        return AjaxResult.error("第"+i+"行撤销数大于库存结余数");
+                        return AjaxResult.error("第" + i + "行撤销数大于库存结余数");
                     }
-                } else if("SJCKRevoke".equals(billsType)){ // 撤销出库
-                    if(StringUtils.isNotNull(tWhgenle) ){ // 非空
-                        updateTWhgenlegData(wb,tWhgenle.getfId(),billsType);
-                    } else{
+                } else if ("SJCKRevoke".equals(billsType)) { // 撤销出库
+                    if (StringUtils.isNotNull(tWhgenle)) { // 非空
+                        updateTWhgenlegData(wb, tWhgenle.getfId(), billsType);
+                    } else {
                         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                        return AjaxResult.error("第"+i+"行未查询到库存信息");
+                        return AjaxResult.error("第" + i + "行未查询到库存信息");
                     }
-                } else if("CKDBRevoke".equals(billsType)){ // 调拨 撤销
-                    Long fCorpid=tWarehousebills.getfCorpid();// 原货权方
-                    Long fTocorpid=tWarehousebills.getfTocorpid(); // 新货权方
+                } else if ("CKDBRevoke".equals(billsType)) { // 调拨 撤销
+                    Long fCorpid = tWarehousebills.getfCorpid();// 原货权方
+                    Long fTocorpid = tWarehousebills.getfTocorpid(); // 新货权方
                     //  1、新货权方撤销入库
                     // 查询库存总账
                     tWarehousebills.setfCorpid(fTocorpid);
-                    TWhgenleg tWhgenle1=queryTWhgenleg(tWarehousebills,wb);
-                    if(StringUtils.isNotNull(tWhgenle1) && (wb.getfQty() <= tWhgenle1.getfQtyblc())){
-                        updateTWhgenlegData(wb,tWhgenle1.getfId(),"SJRKRevoke");
-                    }else{
+                    TWhgenleg tWhgenle1 = queryTWhgenleg(tWarehousebills, wb);
+                    if (StringUtils.isNotNull(tWhgenle1) && (wb.getfQty() <= tWhgenle1.getfQtyblc())) {
+                        updateTWhgenlegData(wb, tWhgenle1.getfId(), "SJRKRevoke");
+                    } else {
                         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                        return AjaxResult.error("第"+i+"行撤销数大于库存结余数");
+                        return AjaxResult.error("第" + i + "行撤销数大于库存结余数");
                     }
                     //  2、原货权方撤销出库
                     // 查询库存总账
                     tWarehousebills.setfCorpid(fCorpid);
-                    TWhgenleg tWhgenle2=queryTWhgenleg(tWarehousebills,wb);
-                    updateTWhgenlegData(wb,tWhgenle2.getfId(),"SJCKRevoke");
-                } else if("HQZYRevoke".equals(billsType)){ // 货转撤销 HQZYRevoke
-                    Long fCorpid=tWarehousebills.getfCorpid();// 原货权方
-                    Long fTocorpid=tWarehousebills.getfTocorpid(); // 新货权方
+                    TWhgenleg tWhgenle2 = queryTWhgenleg(tWarehousebills, wb);
+                    updateTWhgenlegData(wb, tWhgenle2.getfId(), "SJCKRevoke");
+                } else if ("HQZYRevoke".equals(billsType)) { // 货转撤销 HQZYRevoke
+                    Long fCorpid = tWarehousebills.getfCorpid();// 原货权方
+                    Long fTocorpid = tWarehousebills.getfTocorpid(); // 新货权方
                     //  1、新货权方撤销入库
                     // 查询库存总账
                     tWarehousebills.setfCorpid(fTocorpid);
-                    TWhgenleg tWhgenle1=queryTWhgenleg(tWarehousebills,wb);
-                    if(StringUtils.isNotNull(tWhgenle1) && (wb.getfQty() <= tWhgenle1.getfQtyblc())){
-                        updateTWhgenlegData(wb,tWhgenle1.getfId(),"SJRKRevoke");
-                    }else{
+                    TWhgenleg tWhgenle1 = queryTWhgenleg(tWarehousebills, wb);
+                    if (StringUtils.isNotNull(tWhgenle1) && (wb.getfQty() <= tWhgenle1.getfQtyblc())) {
+                        updateTWhgenlegData(wb, tWhgenle1.getfId(), "SJRKRevoke");
+                    } else {
                         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-                        return AjaxResult.error("第"+i+"行撤销数大于库存结余数");
+                        return AjaxResult.error("第" + i + "行撤销数大于库存结余数");
                     }
                     //  2、原货权方撤销出库
                     // 查询库存总账
                     tWarehousebills.setfCorpid(fCorpid);
-                    TWhgenleg tWhgenle2=queryTWhgenleg(tWarehousebills,wb);
-                    updateTWhgenlegData(wb,tWhgenle2.getfId(),"SJCKRevoke");
+                    TWhgenleg tWhgenle2 = queryTWhgenleg(tWarehousebills, wb);
+                    updateTWhgenlegData(wb, tWhgenle2.getfId(), "SJCKRevoke");
                 }
                 i++;
             }
@@ -637,4 +715,6 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 
     }
 
+
+
 }

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

@@ -75,6 +75,7 @@
 
     <select id="selectInventoryList" parameterType="TWhgenleg" resultType="Map">
         select
+        DISTINCT
             leg.f_id AS fId,
             corp.f_name AS fCorpid,
             area.f_name AS fWarehouseLocationids,

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

@@ -110,6 +110,7 @@
 
     <select id="selectWarehouseBusinessList" parameterType="TWarehousebills" resultType="Map">
         SELECT
+        DISTINCT
             bill.f_id AS fId,
             corp.f_name AS fCorpid,
             bill.f_mblno AS fMblno,

+ 1 - 0
ruoyi-warehouse/src/main/resources/mapper/warehouseBusiness/TWarehousebillsitemsMapper.xml

@@ -75,6 +75,7 @@
 
     <select id="selectGoodsTransferitemsList" parameterType="TWarehousebillsitems" resultType="Map">
         select
+        DISTINCT
             item.f_id AS fId,
             item.f_pid AS fPid,
             item.f_lineno AS fLineno,