Преглед на файлове

[CODE]: 仓储小程序接口:待办数、入出库(明细)列表、入出库详情、提交待入出库、提交确认入出库

maxianghua преди 4 години
родител
ревизия
a7bff82ed7

+ 101 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/warehouseBusiness/AppletsController.java

@@ -0,0 +1,101 @@
+package com.ruoyi.web.controller.warehouse.warehouseBusiness;
+
+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.utils.ServletUtils;
+import com.ruoyi.common.utils.spring.SpringUtils;
+import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.warehouseBusiness.domain.TWarehouseBills;
+import com.ruoyi.warehouseBusiness.domain.TWarehousebillsitems;
+import com.ruoyi.warehouseBusiness.service.ITWarehouseBillsService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 仓库详情主表Controller
+ *
+ * @author ruoyi
+ * @date 2020-12-11
+ */
+@RestController
+@RequestMapping("/warehouseBusiness/applets")
+public class AppletsController extends BaseController {
+    @Autowired
+    private ITWarehouseBillsService itWarehouseBillsService;
+
+    /**
+     *  待办数
+     */
+    @GetMapping("/number")
+    public AjaxResult list() {
+        List<Map<String, Object>> list = itWarehouseBillsService.selectWareHouseNumber();
+        return AjaxResult.success(list);
+    }
+
+    /**
+     *  入库数量
+     */
+    @GetMapping("/inStockList")
+    public TableDataInfo inList(TWarehouseBills tWarehouseBills) {
+        startPage();
+        tWarehouseBills.setfBilltype("SJRK");
+        List<Map<String, Object>> list = itWarehouseBillsService.selectWarehouseBusinessInStockList(tWarehouseBills);
+        return getDataTable(list);
+    }
+
+    /**
+     *  出库数量
+     */
+    @GetMapping("/outStockList")
+    public TableDataInfo outList(TWarehouseBills tWarehouseBills) {
+        startPage();
+        tWarehouseBills.setfBilltype("SJCK");
+        List<Map<String, Object>> list = itWarehouseBillsService.selectWarehouseBusinessInStockList(tWarehouseBills);
+        return getDataTable(list);
+    }
+
+    /**
+     *   待入出库
+     */
+    @PostMapping(value = "/ischargeCargo")
+    @RepeatSubmit
+    public AjaxResult ischargeCargo(@RequestBody TWarehousebillsitems tWarehousebillsitems) {
+        tWarehousebillsitems.setfBillstatus(30L);
+        return itWarehouseBillsService.waitWarehousingItems(tWarehousebillsitems);
+    }
+
+    /**
+     *  确认入库
+     */
+    @PostMapping(value = "/addCredit")
+    @RepeatSubmit
+    public AjaxResult addCredit( @RequestParam("tEnclosure") String tEnclosure,
+                                 @RequestParam("warehousebillsitems") String warehousebillsitems) {
+        String billsType = "SJRK";
+        // 获取当前的用户
+        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
+        return itWarehouseBillsService.addCreditItems(tEnclosure,warehousebillsitems,billsType,loginUser);
+    }
+
+    /**
+     *  确认出库
+     */
+    @PostMapping(value = "/outAddCredit")
+    @RepeatSubmit
+    public AjaxResult outAddCredit( @RequestParam("tEnclosure") String tEnclosure,
+                                 @RequestParam("warehousebillsitems") String warehousebillsitems) {
+        String billsType = "SJRCK";
+        // 获取当前的用户
+        LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
+        return itWarehouseBillsService.addCreditItems(tEnclosure,warehousebillsitems,billsType,loginUser);
+    }
+
+
+
+}

+ 24 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/mapper/TWarehousebillsitemsMapper.java

@@ -91,4 +91,28 @@ public interface TWarehousebillsitemsMapper extends BaseMapper<TWarehousebillsit
      * @return
      */
     int agreementApprovalRejected(TWarehousebillsitems billsItem);
+
+    /**
+     *  入库待办数
+     */
+    int inStock();
+
+    /**
+     *  出库待办数
+     */
+    int outStock();
+
+    /**
+     *  当月入库待办数
+     */
+    int monthInStock(@Param("timeInterval") List<String> timeInterval);
+
+    /**
+     *  当月出库待办数
+     */
+    int monthOutStock(@Param("timeInterval") List<String> timeInterval);
+
+    public List<Map<String, Object>> selectWarehouseBusinesInList(TWarehouseBills tWarehousebills);
+    public List<Map<String, Object>> selectWarehouseBusinesOutList(TWarehouseBills tWarehousebills);
+
 }

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

@@ -5,6 +5,7 @@ import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.reportManagement.domain.TWareHouseItemsExcel;
 import com.ruoyi.warehouseBusiness.domain.TWareHouseExcelItems;
 import com.ruoyi.warehouseBusiness.domain.TWarehouseBills;
+import com.ruoyi.warehouseBusiness.domain.TWarehousebillsitems;
 
 import java.util.List;
 import java.util.Map;
@@ -189,4 +190,13 @@ public interface ITWarehouseBillsService {
     AjaxResult serialNumber( String billsType);
 
     public int derecognition(Long fId);
+
+    List<Map<String, Object>> selectWareHouseNumber();
+
+    public List<Map<String, Object>> selectWarehouseBusinessInStockList(TWarehouseBills tWarehousebills);
+
+    AjaxResult waitWarehousingItems(TWarehousebillsitems tWarehousebillsitems);
+
+    AjaxResult addCreditItems(String tEnclosure ,String  tWarehousebillsitems, String billsType,LoginUser loginUser);
+
 }

+ 208 - 8
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/TWarehouseBillsServiceImpl.java

@@ -36,6 +36,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
 import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -826,6 +827,180 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         }
     }
 
+    @Override
+    public List<Map<String, Object>> selectWareHouseNumber() {
+        List<Map<String, Object>> map= new ArrayList<>();
+        Map<String, Object> maps = new HashMap<>();
+        // 入库待办数量
+        maps.put("inStock",tWarehousebillsitemsMapper.inStock());
+        // 出库待办数量
+        maps.put("outStock",tWarehousebillsitemsMapper.outStock());
+
+        List<String> timeInterval =new ArrayList<>();
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+        //获取当前月第一天:
+        Calendar c = Calendar.getInstance();
+        c.add(Calendar.MONTH, 0);
+        c.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天
+        timeInterval.add(format.format(c.getTime()));
+        //获取前月的最后一天
+        Calendar ca = Calendar.getInstance();
+        ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH));
+        timeInterval.add(format.format(ca.getTime()));
+        maps.put("monthInStock",tWarehousebillsitemsMapper.monthInStock(timeInterval));
+        // 当月出库待办数量
+        maps.put("monthOutStock",tWarehousebillsitemsMapper.monthOutStock(timeInterval));
+        map.add(maps);
+        return map;
+    }
+
+    @Override
+    public List<Map<String, Object>> selectWarehouseBusinessInStockList(TWarehouseBills tWarehousebills) {
+        if(tWarehousebills.getfBilltype().equals("SJRK")){
+            return tWarehousebillsitemsMapper.selectWarehouseBusinesInList(tWarehousebills);
+        }else {
+            return tWarehousebillsitemsMapper.selectWarehouseBusinesOutList(tWarehousebills);
+        }
+    }
+
+    @Override
+    @Transactional
+    public AjaxResult waitWarehousingItems(TWarehousebillsitems tWarehousebillsitems) {
+        // 先查询是否已经处理
+        TWarehousebillsitems tWarehousebillsitems1=tWarehousebillsitemsMapper.selectTWarehousebillsitemsById(tWarehousebillsitems.getfId());
+        if(tWarehousebillsitems1.getfBillstatus().equals(30)){
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return AjaxResult.error("更新库存明细失败,该信息已操作,请重新加载");
+        }
+        int  num = tWarehousebillsitemsMapper.updateTWarehousebillsitems(tWarehousebillsitems);
+        if (num <= 0) {
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return AjaxResult.error("更新库存明细失败");
+        }else{
+            return AjaxResult.success();
+        }
+    }
+
+    @Override
+    @Transactional
+    public AjaxResult addCreditItems(String tEnclosure ,String  tWarehousebillsitems, String billsType,LoginUser loginUser) {
+        TWarehouseBills tWarehouseBills =new TWarehouseBills();
+        JSONArray warehouseJSON = JSONArray.parseArray(tWarehousebillsitems);
+        List<TWarehousebillsitems> warehousebillsitemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsitems.class);
+        if(billsType.equals("SJRK")){
+            for(TWarehousebillsitems item : warehousebillsitemsList){
+                // 先查询是否已经处理
+                TWarehousebillsitems tWarehousebillsitems1=tWarehousebillsitemsMapper.selectTWarehousebillsitemsById(item.getfId());
+                if(tWarehousebillsitems1.getfBillstatus().equals(40)){
+                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    return AjaxResult.error("更新库存明细失败,该信息已操作,请重新加载");
+                }
+                // 查询主表
+                tWarehouseBills =  tWarehouseBillsMapper.selectTWarehousebillsById(item.getfPid());
+                // 查询库容量  是否可入库
+                int m = calculation(tWarehouseBills.getfWarehouseid(), item.getfGrossweight());
+                if (m == 0) {
+                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    return AjaxResult.error("更新库存总账失败-->入库毛重大于库容");
+                }
+                item.setfBillingway(tWarehouseBills.getfBillingway());
+                item.setfChargedate(tWarehouseBills.getfChargedate());
+                TWhgenleg tWhgenle = queryTWhgenleg(tWarehouseBills, item);
+                if (StringUtils.isNotNull(tWhgenle)) {
+                    int i = updateTWhgenlegData(item, tWhgenle.getfId(), billsType);
+                    if (i <= 0) {
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        return AjaxResult.error("更新库存总账失败");
+                    }
+                } else {
+                    if (instalTWhgenleg(tWarehouseBills, item, loginUser.getUser()) <= 0) {
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        return AjaxResult.error("新增库存总账失败");
+                    }
+                }
+                item.setfIsInventory(0L);
+                int num = 0;
+                if (StringUtils.isNotNull(item.getfId())) {
+                    item.setfBillstatus(40L);
+                    item.setUpdateBy(loginUser.getUser().getUserName());
+                    item.setUpdateTime(new Date());
+                    num = tWarehousebillsitemsMapper.updateTWarehousebillsitems(item);
+                    // 添加状态log
+                    insertTWarehousebillsLog(item, 40L, loginUser);
+                }
+                if (num <= 0) {
+                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    return AjaxResult.error("新增库存明细失败");
+                }
+            }
+        }else {
+            for (TWarehousebillsitems wbItem : warehousebillsitemsList) {
+                // 先查询是否已经处理
+                TWarehousebillsitems tWarehousebillsitems1=tWarehousebillsitemsMapper.selectTWarehousebillsitemsById(wbItem.getfId());
+                if(tWarehousebillsitems1.getfBillstatus().equals(40)){
+                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    return AjaxResult.error("更新库存明细失败,该信息已操作,请重新加载");
+                }
+                // 查询总账是否存在
+                TWhgenleg tWhgenle = queryTWhgenleg(tWarehouseBills, wbItem);
+                if (StringUtils.isNull(tWhgenle)) { // 为空 提示没有库存
+                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    return AjaxResult.error("库存明细库存为空");
+                } else { // 非空修改库存总账
+                    //  库存 <  出库件数
+                    if (tWhgenle.getfQtyblc() < wbItem.getfQty()) {
+                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                        return AjaxResult.error("库存明细库存不足");
+                    }
+                    // 更新库存总账
+                    updateTWhgenlegData(wbItem, tWhgenle.getfId(), billsType);
+                    if (StringUtils.isNull(tWarehouseBills.getfBsdate()) || StringUtils.isNull(wbItem.getfChargedate())) {
+                        return AjaxResult.error("库存明细请检查日期,操作终止");
+                    }
+                    if (StringUtils.isNull(tWarehouseBills.getfCorpid())) {
+                        return AjaxResult.error("库存明细请检查客户信息,操作终止");
+                    }
+                }
+                wbItem.setfBillstatus(40L);
+                int num = 0;
+                wbItem.setfPid(tWarehouseBills.getfId());
+                wbItem.setfBilltype(billsType);
+                wbItem.setfBillno(tWarehouseBills.getfBillno());
+                wbItem.setfBsdate(tWarehouseBills.getfBsdate());
+                if (StringUtils.isNotNull(wbItem.getfId())) {
+                    wbItem.setUpdateBy(loginUser.getUser().getUserName());
+                    wbItem.setUpdateTime(new Date());
+                    num = tWarehousebillsitemsMapper.updateTWarehousebillsitems(wbItem);
+                    // 添加状态log
+                    insertTWarehousebillsLog(wbItem, 40L, loginUser);
+                }
+                if (num <= 0) {
+                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                    return AjaxResult.error("库存明细更新失败");
+                }
+            }
+        }
+        //  主表修改
+        tWarehouseBills.setfItemsStatus(4L);
+        tWarehouseBills.setfBilltype(billsType);
+        tWarehouseBills.setUpdateBy(loginUser.getUser().getUserName());
+        tWarehouseBills.setUpdateTime(new Date());
+        tWarehouseBillsMapper.updateTWarehousebills(tWarehouseBills);
+        //  附件添加
+        if (StringUtils.isNotEmpty(tEnclosure) && !"[]".equals(tEnclosure)) {
+            JSONArray jsonDrArray = JSONArray.parseArray(tEnclosure);
+            List<TEnclosure> tEnclosureList = JSONObject.parseArray(jsonDrArray.toJSONString(), TEnclosure.class);
+            for (TEnclosure enclosure : tEnclosureList) {
+                enclosure.setfPid(tWarehouseBills.getfId());
+                enclosure.setCreateBy(loginUser.getUser().getUserName());
+                enclosure.setCreateTime(new Date());
+                tEnclosureMapper.insertTEnclosure(enclosure);
+            }
+        }
+        return AjaxResult.success();
+    }
+
+
     /**
      * 根据仓库主表id 更新对应明细表状态
      *
@@ -931,7 +1106,14 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         boolean businessStatus = "场地直装".equals(tWarehouseBills.getfBusinessType());
         JSONArray warehouseJSON = JSONArray.parseArray(warehousebillsitems);
         List<TWarehousebillsitems> warehousebillsitemsList = JSONObject.parseArray(warehouseJSON.toJSONString(), TWarehousebillsitems.class);
+        int i=1;
         for (TWarehousebillsitems item : warehousebillsitemsList) {
+            // 查询是否可以修改
+            TWarehousebillsitems tWarehousebillsitems = tWarehousebillsitemsMapper.selectTWarehousebillsitemsById(item.getfId());
+            if(tWarehousebillsitems.getfBillstatus().equals(40)){
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return AjaxResult.error("更新库存明细第"+i+"行失败,已处理,请刷新网页");
+            }
             if (!businessStatus) {
                 // 查询库容量  是否可入库
                 int m = calculation(tWarehouseBills.getfWarehouseid(), item.getfGrossweight());
@@ -943,8 +1125,8 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                 item.setfChargedate(tWarehouseBills.getfChargedate());
                 TWhgenleg tWhgenle = queryTWhgenleg(tWarehouseBills, item);
                 if (StringUtils.isNotNull(tWhgenle)) {
-                    int i = updateTWhgenlegData(item, tWhgenle.getfId(), billsType);
-                    if (i <= 0) {
+                    int i1 = updateTWhgenlegData(item, tWhgenle.getfId(), billsType);
+                    if (i1 <= 0) {
                         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                         return AjaxResult.error("更新库存总账失败");
                     }
@@ -971,6 +1153,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                 TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                 return AjaxResult.error("新增库存明细失败");
             }
+            i++;
         }
         //  附件添加
         if (StringUtils.isNotEmpty(tEnclosure) && !"[]".equals(tEnclosure)) {
@@ -1056,6 +1239,12 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         List<TFees> feesList = new ArrayList<>();
         List<TWarehousebillsfees> warehousebillsfees = new ArrayList<>();
         for (TWarehousebillsitems wbItem : warehousebillsitemsList) {
+            // 查询是否可以修改
+            TWarehousebillsitems tWarehousebillsitems = tWarehousebillsitemsMapper.selectTWarehousebillsitemsById(wbItem.getfId());
+            if(tWarehousebillsitems.getfBillstatus().equals(40)){
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return AjaxResult.error("更新库存明细第"+i+"行失败,已处理,请刷新网页");
+            }
             long warehouselocId = 0L;
             long transferWarehouselocid = 0L;
             if ("CKDB".equals(billsType)) {
@@ -1248,6 +1437,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
      * @return
      */
     @Override
+    @Transactional
     public AjaxResult waitWarehousing(String warehouseBills, String warehousebillsitems,
                                       String tEnclosure, String tWarehousebillsfeesCr, String tWarehousebillsfeesDr,
                                       LoginUser loginUser, Long status, String billtystatus) {
@@ -1280,14 +1470,23 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
          */
         Date time = new Date();
         String serialNumber = null;
-        if ("RK".equals(billtystatus)) {
-            serialNumber = billnoSerialServiceImpl.getSerialNumber("RK", time);
-        } else if ("CK".equals(billtystatus)) { //生成 出库 流水号
-            serialNumber = billnoSerialServiceImpl.getSerialNumber("CK", time);
-        } else if ("DB".equals(billtystatus)) { //生成 出库 流水号
-            serialNumber = billnoSerialServiceImpl.getSerialNumber("DB", time);
+        if(status==20){
+            if ("RK".equals(billtystatus)) {
+                serialNumber = billnoSerialServiceImpl.getSerialNumber("RK", time);
+            } else if ("CK".equals(billtystatus)) { //生成 出库 流水号
+                serialNumber = billnoSerialServiceImpl.getSerialNumber("CK", time);
+            } else if ("DB".equals(billtystatus)) { //生成 出库 流水号
+                serialNumber = billnoSerialServiceImpl.getSerialNumber("DB", time);
+            }
         }
+        int i=1;
         for (TWarehousebillsitems item : warehousebillsitemsList) {
+            // 查询是否可以修改
+            TWarehousebillsitems tWarehousebillsitems = tWarehousebillsitemsMapper.selectTWarehousebillsitemsById(item.getfId());
+            if(tWarehousebillsitems.getfBillstatus().equals(30)){
+                TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+                return AjaxResult.error("更新库存明细第"+i+"行失败,已处理,请刷新网页");
+            }
             if (item.getfBillstatus() < 30L) {
                 if(item.getfSerialNumber()==null ||  item.getfSerialNumber().equals("")){
                     item.setfSerialNumber(serialNumber);
@@ -1304,6 +1503,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                 }
             }
             mapList.add(item);
+            i++;
         }
         //  附件添加
         if (StringUtils.isNotEmpty(tEnclosure) && !"[]".equals(tEnclosure)) {

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

@@ -418,6 +418,119 @@
         WHERE
             f_warehouselocid = #{fWarehouselocid}
     </select>
+    <select id="inStock" resultType="java.lang.Integer">
+        SELECT
+            COUNT(f_id)
+        FROM
+            t_warehousebillsitems
+        WHERE
+            f_billtype = 'SJRK'
+          AND
+            f_billstatus in (20,30)
+    </select>
+    <select id="outStock" resultType="java.lang.Integer">
+        SELECT
+            COUNT(f_id)
+        FROM
+            t_warehousebillsitems
+        WHERE
+            f_billtype = 'SJCK'
+          AND
+            f_billstatus in (20,30)
+    </select>
+    <select id="monthInStock" resultType="java.lang.Integer">
+        SELECT
+        COUNT(f_id)
+        FROM
+            t_warehousebillsitems
+        WHERE
+            f_billtype = 'SJRK'
+            AND
+             f_billstatus =40
+            AND
+            f_bsdate &gt;= #{timeInterval[0]}
+            AND
+            f_bsdate &lt;=  #{timeInterval[1]}
+    </select>
+    <select id="monthOutStock" resultType="java.lang.Integer">
+        SELECT
+        COUNT(f_id)
+        FROM
+            t_warehousebillsitems
+        WHERE
+            f_billtype = 'SJCK'
+            AND
+            f_billstatus =40
+            AND
+            f_bsdate &gt;=  #{timeInterval[0]}
+            AND
+            f_bsdate &lt;=  #{timeInterval[1]}
+    </select>
+    <select id="selectWarehouseBusinesInList" resultType="java.util.Map">
+        SELECT
+            items.f_id AS fId,
+            items.f_pid AS  fPid,
+            c.f_name AS fName,
+            items.f_mblno AS fMblno,
+            items.f_bsdate AS fBsdate,
+            CASE
+                WHEN items.f_billstatus = 20 THEN
+                    '待入库'
+                WHEN items.f_billstatus = 30 THEN
+                    '入库中'
+                END AS fBillstatus,
+            g.f_name AS fGoodsid,
+            items.f_driver_tel AS fDriverTel,
+            dict.dict_label AS fBusinessType ,
+            items.f_marks AS fMarks,
+            items.f_warehouse_information AS fWarehouseInformation,
+            items.f_qty AS fQty,
+            items.f_grossweight AS fGrossweight,
+            items.f_netweight AS  fNetweight
+        FROM
+            t_warehousebillsitems items
+                LEFT JOIN t_warehousebills t ON items.f_pid = t.f_id
+                LEFT JOIN t_corps c ON t.f_corpid = c.f_id
+                LEFT JOIN t_goods g ON items.f_goodsid = g.f_id
+                LEFT JOIN sys_dict_data dict ON dict.dict_type = 'storage_type'
+                AND dict.dict_value = items.f_business_type
+        WHERE
+            items.f_billtype = 'SJRK'
+          AND items.f_billstatus IN ( 20, 30 )
+    </select>
+    <select id="selectWarehouseBusinesOutList" resultType="java.util.Map">
+        SELECT
+            items.f_id AS fId,
+            items.f_pid AS  fPid,
+            c.f_name AS fName,
+            items.f_mblno AS fMblno,
+            items.f_bsdate AS fBsdate,
+            CASE
+                WHEN items.f_billstatus = 20 THEN
+                    '待出库'
+                WHEN items.f_billstatus = 30 THEN
+                    '出库中'
+                END AS fBillstatus,
+            g.f_name AS fGoodsid,
+            items.f_driver_tel AS fDriverTel,
+            dict.dict_label AS fBusinessType ,
+            items.f_marks AS fMarks,
+            items.f_warehouse_information AS fWarehouseInformation,
+            items.f_qty AS fQty,
+            items.f_grossweight AS fGrossweight,
+            items.f_netweight AS  fNetweight
+        FROM
+            t_warehousebillsitems items
+                LEFT JOIN t_warehousebills t ON items.f_pid = t.f_id
+                LEFT JOIN t_corps c ON t.f_corpid = c.f_id
+                LEFT JOIN t_goods g ON items.f_goodsid = g.f_id
+                LEFT JOIN sys_dict_data dict ON dict.dict_type = 'storage_type'
+                AND dict.dict_value = items.f_business_type
+        WHERE
+            items.f_billtype = 'SJCK'
+          AND items.f_billstatus IN ( 20, 30 )
+    </select>
+
 
     <update id="warehouseItemFollowUpdate" parameterType="Long">
         update