Преглед изворни кода

[CODE]: 首页统计展示:仓库结余毛重/总库容 百分比、商品毛重/库容百分比(多个仓库)、客户毛重/库容百分比(多个仓库)

maxianghua пре 4 година
родитељ
комит
37bb2cb346

+ 9 - 13
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/reportManagement/TWhgenlegController.java

@@ -94,18 +94,16 @@ public class TWhgenlegController extends BaseController {
     }
 
     /**
-     *  统计图  商品 库存结余数 前五名
+     *  统计图  商品 库存 结余 毛重 / 总库容
      */
     @PreAuthorize("@ss.hasPermi('warehouseBusiness:whgenleg:list')")
-    @GetMapping("/goodsList")
-    public TableDataInfo goodsList() {
-        startPage();
-        List<Map<String, Object>> list = tWhgenlegService.selectGoodsList();
-        return getDataTable(list);
+    @GetMapping("/goodsList/{fId}")
+    public AjaxResult goodsList(@PathVariable("fId") Long fId) {
+        return AjaxResult.success(tWhgenlegService.selectGoodsList(fId));
     }
 
     /**
-     *  统计图  仓库 物品结余数量
+     *  统计图  仓库 毛重 / 库容
      */
     @PreAuthorize("@ss.hasPermi('warehouseBusiness:whgenleg:list')")
     @GetMapping("/wareHouseList")
@@ -116,14 +114,12 @@ public class TWhgenlegController extends BaseController {
     }
 
     /**
-     *  统计图  客户 库存结余数 前七名客户
+     *  统计图  客户   毛重 / 库容
      */
     @PreAuthorize("@ss.hasPermi('warehouseBusiness:whgenleg:list')")
-    @GetMapping("/corpsList")
-    public TableDataInfo corpsList() {
-        startPage();
-        List<Map<String, Object>> list = tWhgenlegService.selectCorpsList();
-        return getDataTable(list);
+    @GetMapping("/corpsList/{fId}")
+    public AjaxResult corpsList(@PathVariable("fId") Long fId) {
+        return AjaxResult.success(tWhgenlegService.selectCorpsList(fId));
     }
 
     /**

+ 2 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/reportManagement/mapper/TWhgenlegMapper.java

@@ -82,10 +82,12 @@ public interface TWhgenlegMapper {
     List<Map<String, Object>> selectInventoryList(TWhgenleg tWhgenleg);
 
     List<Map<String, Object>> selectGoodsList();
+    List<Map<String, Object>> selectGoodsListWhouse(Long fId);
 
     List<Map<String, Object>> selectWareHouseList();
 
     List<Map<String, Object>> selectCorpsList();
+    List<Map<String, Object>> selectCorpsListWhouse(Long fId);
 
     List<Map<String, Object>> selectDateFQtyblcListList(@Param("map") Map<String, Object> map);
 }

+ 2 - 2
ruoyi-warehouse/src/main/java/com/ruoyi/reportManagement/service/ITWhgenlegService.java

@@ -73,7 +73,7 @@ public interface ITWhgenlegService {
      *   商品 库存总量
      * @return
      */
-    List<Map<String, Object>> selectGoodsList();
+    Map<String, Object> selectGoodsList(Long fId);
 
     /**
      *  仓库 库存总量
@@ -85,7 +85,7 @@ public interface ITWhgenlegService {
      *  客户 库存总量
      * @return
      */
-    List<Map<String, Object>> selectCorpsList();
+    Map<String, Object> selectCorpsList(Long fId);
 
     /**
      *  一周库存总量

+ 113 - 9
ruoyi-warehouse/src/main/java/com/ruoyi/reportManagement/service/impl/TWhgenlegServiceImpl.java

@@ -10,6 +10,7 @@ import com.ruoyi.warehouseBusiness.mapper.TWarehouseBillsMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.*;
 
@@ -116,18 +117,104 @@ public class TWhgenlegServiceImpl implements ITWhgenlegService {
 
 
     @Override
-    public List<Map<String, Object>> selectGoodsList() {
-        return tWhgenlegMapper.selectGoodsList();
+    public Map<String, Object> selectGoodsList(Long fId) {
+        Map<String, Object> map = new HashMap<>();
+        List<Map<String, Object>> goodslist=tWhgenlegMapper.selectGoodsList();
+        map.put("goodslist", goodslist);
+        if(goodslist!=null){
+            Long fid = null;
+            for(Map<String, Object> m : goodslist){
+                for (String k : m.keySet()){
+                    if(k.equals("fGoodsid")){
+                        fid= (Long) m.get(k);
+                    }
+                    break;
+                }
+            }
+            List<Map<String, Object>> goodslistWhouse;
+            if(null!= fId ){
+                goodslistWhouse=tWhgenlegMapper.selectGoodsListWhouse(fId);
+            }else{
+                goodslistWhouse=tWhgenlegMapper.selectGoodsListWhouse(fid);
+            }
+            for (Map<String, Object> m : goodslistWhouse){
+                String  fTotalgross = null;
+                String fGrossweightblc = null;
+                for (String k : m.keySet()){
+                    // 获取毛重库容
+                    if(k.equals("fTotalgross")){
+                        fTotalgross= m.get(k).toString();
+                    }
+                    if(k.equals("fGrossweightD")){
+                        fGrossweightblc=  m.get(k).toString();
+                    }
+                }
+                m.put("percentage",calculation(fGrossweightblc,fTotalgross));
+            }
+            map.put("goodslistWhouse", goodslistWhouse);
+        }
+        return map;
     }
 
     @Override
     public List<Map<String, Object>> selectWareHouseList() {
-        return tWhgenlegMapper.selectWareHouseList();
+        List<Map<String, Object>> list = tWhgenlegMapper.selectWareHouseList();
+        for (Map<String, Object> m : list){
+            String  fTotalgross = null;
+            String fGrossweightblc = null;
+            for (String k : m.keySet()){
+                // 获取毛重库容
+                if(k.equals("fTotalgross")){
+                    fTotalgross= m.get(k).toString();
+                }
+                if(k.equals("fGrossweightD")){
+                    fGrossweightblc=  m.get(k).toString();
+                }
+            }
+            m.put("percentage",calculation(fGrossweightblc,fTotalgross));
+        }
+        return list;
     }
 
     @Override
-    public List<Map<String, Object>> selectCorpsList() {
-        return tWhgenlegMapper.selectCorpsList();
+    public Map<String, Object> selectCorpsList(Long fId) {
+        Map<String, Object> map = new HashMap<>();
+        // 查询所有 客户
+        List<Map<String, Object>> corpsList=tWhgenlegMapper.selectCorpsList();
+        map.put("corpsList", corpsList);
+        if(corpsList!=null){
+            Long fid = null;
+            for(Map<String, Object> m : corpsList){
+                for (String k : m.keySet()){
+                    if(k.equals("fCorpid")){
+                        fid= (Long) m.get(k);
+                    }
+                    break;
+                }
+            }
+            List<Map<String, Object>> corpsListWhouse;
+            if(null!= fId ){
+                corpsListWhouse=tWhgenlegMapper.selectCorpsListWhouse(fId);
+            }else{
+                corpsListWhouse=tWhgenlegMapper.selectCorpsListWhouse(fid);
+            }
+            for (Map<String, Object> m : corpsListWhouse){
+                String  fTotalgross = null;
+                String fGrossweightblc = null;
+                for (String k : m.keySet()){
+                    // 获取毛重库容
+                    if(k.equals("fTotalgross")){
+                        fTotalgross= m.get(k).toString();
+                    }
+                    if(k.equals("fGrossweightD")){
+                        fGrossweightblc=  m.get(k).toString();
+                    }
+                }
+                m.put("percentage",calculation(fGrossweightblc,fTotalgross));
+            }
+            map.put("corpsListWhouse", corpsListWhouse);
+        }
+        return map;
     }
 
     @Override
@@ -160,19 +247,19 @@ public class TWhgenlegServiceImpl implements ITWhgenlegService {
 
     /**
      *
-     * @param combineField 根据该字段进行合并
+     * @param fOriginalbilldate 根据该字段进行合并
      * @param dataList 原始数据
      * @return
      */
-    public static List<Map<String, Object>> combineMap(String combineField, List<Map<String, Object>> dataList){
+    public static List<Map<String, Object>> combineMap(String fOriginalbilldate, List<Map<String, Object>> dataList){
         //用于存放最后的结果
         List<Map<String, Object>> countList = new ArrayList<Map<String,Object>>();
         for (int i = 0; i < dataList.size(); i++) {
-            String oldCombineField = String.valueOf(dataList.get(i).get(combineField));
+            String oldCombineField = String.valueOf(dataList.get(i).get(fOriginalbilldate));
 
             int flag = 0;//0为新增数据,1为增加count
             for (int j = 0; j < countList.size(); j++) {
-                String newCombineField = String.valueOf(countList.get(j).get(combineField));
+                String newCombineField = String.valueOf(countList.get(j).get(fOriginalbilldate));
                 if (oldCombineField.equals(newCombineField)) {
                     //做累加的操作
                     Integer afterSaleProfit = Integer.parseInt(String.valueOf(dataList.get(i).get("fQtyblc"))) + Integer.parseInt(String.valueOf(countList.get(j).get("fQtyblc")));
@@ -216,4 +303,21 @@ public class TWhgenlegServiceImpl implements ITWhgenlegService {
         return result;
     }
 
+    /**
+     *    返回百分比
+     * @param fTotalgross
+     * @param fGrossweightblc
+     * @return
+     */
+    public static String  calculation(String  fTotalgross, String fGrossweightblc){
+        BigDecimal num1 = new BigDecimal(fTotalgross);
+        BigDecimal num2 = new BigDecimal(fGrossweightblc);
+        BigDecimal result = num1.divide(num2,2,BigDecimal.ROUND_HALF_UP);
+        int i = new Double(result.doubleValue()*100).intValue();
+        String str = i +  "%";
+        System.out.println(str);
+        return str;
+    }
+
+
 }

+ 61 - 14
ruoyi-warehouse/src/main/resources/mapper/reportManagement/TWhgenlegMapper.xml

@@ -325,66 +325,113 @@
         </foreach>
     </delete>
 
-
     <select id="selectGoodsList"  resultType="Map">
         SELECT
             t.f_goodsid AS fGoodsid,
+            g.f_name AS fName
+        FROM
+            t_goods g
+            RIGHT JOIN (
+            SELECT
+                f_goodsid AS f_goodsid
+            FROM
+                t_whgenleg
+            GROUP BY
+                f_goodsid
+            ) t ON g.f_id = t.f_goodsid
+    </select>
+    <select id="selectGoodsListWhouse"  resultType="Map">
+        SELECT
+            t.f_goodsid AS fGoodsid,
             g.f_name AS fName,
-            t.f_qtyblc AS fQtyblc
+			w.f_name AS fWarehouseName,
+			w.f_totalgross AS fTotalgross,
+            t.f_grossweightD  AS fGrossweightD
         FROM
             t_goods g
             RIGHT JOIN (
             SELECT
                 f_goodsid AS f_goodsid,
-                sum( f_qtyblc ) AS f_qtyblc
+				f_warehouseid AS f_warehouseid,
+                sum( f_grossweightD ) AS f_grossweightD
             FROM
                 t_whgenleg
             GROUP BY
-                f_goodsid
+                f_goodsid,
+				f_warehouseid
             ORDER BY
-                sum( f_qtyblc ) DESC
+                sum( f_grossweightD ) DESC
             ) t ON g.f_id = t.f_goodsid
+			LEFT JOIN  t_warehouse w ON w.f_id = t.f_warehouseid
+        <where>
+            <if test="fId != null ">and g.f_id = #{fId}</if>
+        </where>
     </select>
 
     <select id="selectWareHouseList"  resultType="Map">
         SELECT
             t.f_warehouseid AS fWarehouseid,
             w.f_name AS fName,
-            t.f_qtyblc AS fQtyblc
+            t.f_grossweightD AS fGrossweightD,
+	        w.f_totalgross AS fTotalgross
         FROM
             t_warehouse w
             LEFT JOIN (
             SELECT
                 f_warehouseid AS f_warehouseid,
-                sum( f_qtyblc ) AS f_qtyblc
+                sum( f_grossweightD ) AS f_grossweightD
             FROM
                 t_whgenleg
             GROUP BY
                 f_warehouseid
             ORDER BY
-                sum( f_qtyblc ) DESC
+                sum( f_grossweightD ) DESC
             ) t ON w.f_id = t.f_warehouseid
     </select>
 
     <select id="selectCorpsList"  resultType="Map">
         SELECT
             t.f_corpid AS fCorpid,
-            c.f_name AS fName,
-            t.f_qtyblc AS fQtyblc
+            c.f_name AS fName
         FROM
             t_corps c
             RIGHT JOIN (
             SELECT
-                f_corpid AS f_corpid,
-                sum( f_qtyblc ) AS f_qtyblc
+                f_corpid AS f_corpid
             FROM
                 t_whgenleg
             GROUP BY
                 f_corpid
-            ORDER BY
-                sum( f_qtyblc ) DESC
             ) t ON c.f_id = t.f_corpid
     </select>
+    <select id="selectCorpsListWhouse"  resultType="Map">
+        SELECT
+            t.f_corpid AS fCorpid,
+            g.f_name AS fName,
+            w.f_name AS fWarehouseName,
+            w.f_totalgross AS fTotalgross,
+            t.f_grossweightD  AS fGrossweightD
+        FROM
+            t_corps g
+        RIGHT JOIN (
+            SELECT
+            f_corpid AS f_corpid,
+            f_warehouseid AS f_warehouseid,
+            sum( f_grossweightD ) AS f_grossweightD
+            FROM
+            t_whgenleg
+            GROUP BY
+            f_corpid,
+            f_warehouseid
+            ORDER BY
+            sum( f_grossweightD ) DESC
+            ) t ON g.f_id = t.f_corpid
+        LEFT JOIN  t_warehouse w ON w.f_id = t.f_warehouseid
+        <where>
+            <if test="fId != null ">and g.f_id = #{fId}</if>
+        </where>
+    </select>
+
 
     <select id="selectDateFQtyblcListList"  resultType="Map">
         SELECT

+ 2 - 1
ruoyi-warehouse/src/main/resources/mapper/warehouseBusiness/TWarehouseAgreementMapper.xml

@@ -28,7 +28,7 @@
     </resultMap>
 
     <sql id="selectTWarehouseAgreementVo">
-        select f_id, f_billno,f_contractno, f_deptid, f_corpid, f_stltypeid, f_feetypeid, t_packages, f_trademodeid, f_freedays, f_begindate, f_enddate, f_billstatus, del_flag, create_by, create_time, update_by, update_time, remark from t_warehouse_agreement
+        select f_id, f_billno,f_contractno, f_deptid, f_corpid,f_goodsid, f_stltypeid, f_feetypeid, t_packages, f_trademodeid, f_freedays, f_begindate, f_enddate, f_billstatus, del_flag, create_by, create_time, update_by, update_time, remark from t_warehouse_agreement
     </sql>
 
     <select id="selectTWarehouseAgreementList" parameterType="TWarehouseAgreement"
@@ -58,6 +58,7 @@
                 corp.f_name AS fCorpid,
                 agre.f_contractno AS fContractno,
                 goods.f_name AS fGoodsid,
+                agre.t_packages AS tPackages,
                 agre.f_begindate AS fBegindate,
                 agre.f_enddate AS fEnddate,
                 agre.f_feetypeid AS fFeetypeid,