智慧农业后台管理
tangzy
2022-06-06 ebf304a3ffc81ce275340e63667c99c5fa58897b
农资统计
5 files modified
365 ■■■■■ changed files
src/main/java/org/springblade/modules/stock/controller/StockController.java 253 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/stock/mapper/StockMapper.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/stock/mapper/StockMapper.xml 87 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/stock/service/IStockService.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/stock/service/impl/StockServiceImpl.java 13 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/stock/controller/StockController.java
@@ -41,7 +41,10 @@
import org.springblade.modules.stock.service.IStockService;
import org.springblade.core.boot.ctrl.BladeController;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * 农资库存表 控制器
@@ -131,34 +134,36 @@
        stockrecord.setSp2("stockSpecs2");
        //统计公斤
        Integer amount = stock.getAmount();
        String specs = stock.getSpecs();
        int i = Integer.parseInt(specs);
        Integer specsValue1 = stock.getSpecsValue1();
        double v = 0;
        //克
        if (specsValue1 == 0) {
            v = amount * 0.001;
            v = amount * i * 0.001;
        }
        //斤
        if (specsValue1 == 1) {
            v = amount * 0.5;
            v = amount * i * 0.5;
        }
        //公斤
        if (specsValue1 == 2) {
            v = amount;
            v = amount * i;
        }
        //吨
        if (specsValue1 == 3) {
            v = amount * 1000;
            v = amount * i * 1000;
        }
        //毫升
        if (specsValue1 == 4) {
            //毫升换成升
            double s = amount * 0.001;
            double s = amount * i * 0.001;
            //升换成公斤
            v = s;
        }
        //升
        if (specsValue1 == 5) {
            v = amount;
            v = amount * i;
        }
        stockrecord.setCensus(v);
        stockrecordService.save(stockrecord);
@@ -222,4 +227,240 @@
    }
    /**
     * 首页农资入库数量统计
     *
     * @return
     */
    @PostMapping("/StockCount")
    public R StockCount() {
        List<Map<String, Object>> maps = stockService.StockCount();
        //化肥0
        double hf = 0;
        //有机肥1
        double yjf = 0;
        //杀虫剂2
        double scj = 0;
        //杀菌剂3
        double sjj = 0;
        //饲料4
        double sl = 0;
        for (int i = 0; i < maps.size(); i++) {
            //规格
            String specs = maps.get(i).get("specs").toString();
            Integer specs1 = Integer.parseInt(specs);
            //数量
            String amount = maps.get(i).get("amount").toString();
            Integer amount1 = Integer.parseInt(amount);
            //规格类型
            String spe = maps.get(i).get("spe").toString();
            //类型
            String type = maps.get(i).get("type").toString();
            if (type.equals("0")) {
                //克
                if (spe.equals("0")) {
                    hf += amount1 * specs1 * 0.001;
                }
                //斤
                if (spe.equals("1")) {
                    hf += amount1 * specs1 * 0.5;
                }
                //公斤
                if (spe.equals("2")) {
                    hf += amount1 * specs1;
                }
                //吨
                if (spe.equals("3")) {
                    hf += amount1 * specs1 * 1000;
                }
                //毫升
                if (spe.equals("4")) {
                    //毫升换成升
                    double s = amount1 * specs1 * 0.001;
                    //升换成公斤
                    hf += s;
                }
                //升
                if (spe.equals("5")) {
                    hf += amount1 * specs1;
                }
            }
            if (type.equals("1")) {
                //克
                if (spe.equals("0")) {
                    yjf += amount1 * specs1 * 0.001;
                }
                //斤
                if (spe.equals("1")) {
                    yjf += amount1 * specs1 * 0.5;
                }
                //公斤
                if (spe.equals("2")) {
                    yjf += amount1 * specs1;
                }
                //吨
                if (spe.equals("3")) {
                    yjf += amount1 * specs1 * 1000;
                }
                //毫升
                if (spe.equals("4")) {
                    //毫升换成升
                    double s = amount1 * specs1 * 0.001;
                    //升换成公斤
                    yjf += s;
                }
                //升
                if (spe.equals("5")) {
                    yjf += amount1 * specs1;
                }
            }
            if (type.equals("2")) {
                //克
                if (spe.equals("0")) {
                    scj += amount1 * specs1 * 0.001;
                }
                //斤
                if (spe.equals("1")) {
                    scj += amount1 * specs1 * 0.5;
                }
                //公斤
                if (spe.equals("2")) {
                    scj += amount1 * specs1;
                }
                //吨
                if (spe.equals("3")) {
                    scj += amount1 * specs1 * 1000;
                }
                //毫升
                if (spe.equals("4")) {
                    //毫升换成升
                    double s = amount1 * specs1 * 0.001;
                    //升换成公斤
                    scj += s;
                }
                //升
                if (spe.equals("5")) {
                    scj += amount1 * specs1;
                }
            }
            if (type.equals("3")) {
                //克
                if (spe.equals("0")) {
                    sjj += amount1 * specs1 * 0.001;
                }
                //斤
                if (spe.equals("1")) {
                    sjj += amount1 * specs1 * 0.5;
                }
                //公斤
                if (spe.equals("2")) {
                    sjj += amount1 * specs1;
                }
                //吨
                if (spe.equals("3")) {
                    sjj += amount1 * specs1 * 1000;
                }
                //毫升
                if (spe.equals("4")) {
                    //毫升换成升
                    double s = amount1 * specs1 * 0.001;
                    //升换成公斤
                    sjj += s;
                }
                //升
                if (spe.equals("5")) {
                    sjj += amount1 * specs1;
                }
            }
            if (type.equals("4")) {
                //克
                if (spe.equals("0")) {
                    sl += amount1 * specs1 * 0.001;
                }
                //斤
                if (spe.equals("1")) {
                    sl += amount1 * specs1 * 0.5;
                }
                //公斤
                if (spe.equals("2")) {
                    sl += amount1 * specs1;
                }
                //吨
                if (spe.equals("3")) {
                    sl += amount1 * specs1 * 1000;
                }
                //毫升
                if (spe.equals("4")) {
                    //毫升换成升
                    double s = amount1 * specs1 * 0.001;
                    //升换成公斤
                    sl += s;
                }
                //升
                if (spe.equals("5")) {
                    sl += amount1 * specs1;
                }
            }
        }
        Map map = new HashMap();
        map.put("name", "化肥");
        map.put("val", hf);
        Map map1 = new HashMap();
        map1.put("name", "有机肥");
        map1.put("val", yjf);
        Map map2 = new HashMap();
        map2.put("name", "杀虫剂");
        map2.put("val", scj);
        Map map3 = new HashMap();
        map3.put("name", "杀菌剂");
        map3.put("val", sjj);
        Map map4 = new HashMap();
        map4.put("name", "饲料");
        map4.put("val", sl);
        List list = new ArrayList();
        list.add(map);
        list.add(map1);
        list.add(map2);
        list.add(map3);
        list.add(map4);
        return R.data(list);
    }
    /**
     * 小程序数据统计
     *
     * @return
     */
    @GetMapping("/pagenumx")
    public R pagenumx(String startTime, String endTime) {
        Double rknu = 0.0;
        Double cknu = 0.0;
        List<StocksVO> pages = stockService.slectNumx(startTime, endTime);
        for (int i = 0; i < pages.size(); i++) {
            Double cgnum = pages.get(i).getCgnum();
            Double dbrknum = pages.get(i).getDbrknum();
            double v = cgnum + dbrknum;
            pages.get(i).setRknum(v);
            Double lycknum = pages.get(i).getLycknum();
            Double dbcknum = pages.get(i).getDbcknum();
            Double bfcknum = pages.get(i).getBfcknum();
            double v1 = lycknum + dbcknum + bfcknum;
            pages.get(i).setCknum(v1);
        }
        for (int j = 0; j < pages.size(); j++) {
            Double rknum = pages.get(j).getRknum();
            Double cknum = pages.get(j).getCknum();
            rknu += rknum;
            cknu += cknum;
        }
        Map map= new HashMap();
        map.put("rknum",rknu);
        map.put("cknum",cknu);
        List list = new ArrayList();
        list.add(map);
        return R.data(list);
    }
}
src/main/java/org/springblade/modules/stock/mapper/StockMapper.java
@@ -43,8 +43,16 @@
     * @return
     */
    List<StockVO> selectStockPage(IPage page, StockVO stock);
    List<StockVO> selectLists(IPage page, StockVO stock);
    int UpdaeAmountc(@Param("stock") Stock stock);
    int Updaet(@Param("stock") Stock stock);
    List<StocksVO>slectNum(IPage page, StocksVO stock);
    List<StocksVO> slectNum(IPage page, StocksVO stock);
    List<StocksVO> slectNumx(String startTime, String endTime);
    List<Map<String, Object>> StockCount();
}
src/main/java/org/springblade/modules/stock/mapper/StockMapper.xml
@@ -160,4 +160,91 @@
        GROUP BY stock_id1) bfc ON bfc.stock_id1 = a.id
    </select>
    <select id="StockCount" resultType="java.util.Map">
        SELECT st.specs,
               st.amount,
               st.specs_value1 as spe,
               sto.type
        FROM `sys_stock` st
                 LEFT JOIN (SELECT id, type FROM sys_stockfactory) sto ON st.stock_id = sto.id
        WHERE st.is_deleted = 0
    </select>
    <!--小程序数据统计-->
    <select id="slectNumx" resultType="org.springblade.modules.stock.vo.StocksVO">
    SELECT id,
    a.agricultural_name as agrname,
    a.factory_name as facname,
    IFNULL(cg.cgnum, 0) AS cgnum,
    IFNULL(dbr.dbrknum, 0) AS dbrknum,
    IFNULL(lyc.lycknum, 0) AS lycknum,
    IFNULL(dbc.dbcknum, 0) AS dbcknum,
    IFNULL(bfc.bfcknum, 0) AS bfcknum
    FROM (
    SELECT stf.id,
    stf.agricultural_name,
    stf.factory_name
    FROM sys_stockrecord st
    LEFT JOIN (SELECT id, agricultural_name, factory_name FROM sys_stockfactory) stf
    ON st.stock_id1 = stf.id
    GROUP BY stf.id,
    stf.agricultural_name,
    stf.factory_name
    ) a
    LEFT JOIN (SELECT stock_id1, SUM(census) AS cgnum
    FROM sys_stockrecord
    WHERE stock_type1 = 1
    AND type1 = 0
    <if test="startTime!=null and startTime!=''">
        and time1 &gt;= #{stock.startTime}
    </if>
    <if test="endTime!=null and endTime!=''">
        and time1 &lt;= #{stock.endTime}
    </if>
    GROUP BY stock_id1) cg ON cg.stock_id1 = a.id
    LEFT JOIN (SELECT stock_id1, SUM(census) AS dbrknum
    FROM sys_stockrecord
    WHERE stock_type1 = 1
    AND type1 = 1
    <if test="startTime!=null and startTime!=''">
        and time1 &gt;= #{stock.startTime}
    </if>
    <if test="endTime!=null and endTime!=''">
        and time1 &lt;= #{stock.endTime}
    </if>
    GROUP BY stock_id1) dbr ON dbr.stock_id1 = a.id
    LEFT JOIN (SELECT stock_id1, SUM(census) AS lycknum
    FROM sys_stockrecord
    WHERE stock_type1 = 0
    AND type1 = 0
    <if test="startTime!=null and startTime!=''">
        and time1 &gt;= #{stock.startTime}
    </if>
    <if test="stock.endTime!=null and stock.endTime!=''">
        and time1 &lt;= #{stock.endTime}
    </if>
    GROUP BY stock_id1) lyc ON lyc.stock_id1 = a.id
    LEFT JOIN (SELECT stock_id1, SUM(census) AS dbcknum
    FROM sys_stockrecord
    WHERE stock_type1 = 0
    AND type1 = 1
    <if test="startTime!=null and startTime!=''">
        and time1 &gt;= #{stock.startTime}
    </if>
    <if test="endTime!=null and endTime!=''">
        and time1 &lt;= #{stock.endTime}
    </if>
    GROUP BY stock_id1) dbc ON dbc.stock_id1 = a.id
    LEFT JOIN (SELECT stock_id1, SUM(census) AS bfcknum
    FROM sys_stockrecord
    WHERE stock_type1 = 0
    AND type1 = 2
    <if test="startTime!=null and startTime!=''">
        and time1 &gt;= #{stock.startTime}
    </if>
    <if test="endTime!=null and endTime!=''">
        and time1 &lt;= #{stock.endTime}
    </if>
    GROUP BY stock_id1) bfc ON bfc.stock_id1 = a.id
    </select>
</mapper>
src/main/java/org/springblade/modules/stock/service/IStockService.java
@@ -46,4 +46,6 @@
    boolean UpdaeAmountc(Stock stock);
    boolean Updaet(Stock stock);
    IPage<StocksVO> slectNum(IPage<StocksVO> page, StocksVO stock);
    List<StocksVO> slectNumx(String startTime, String endTime);
    List<Map<String, Object>> StockCount();
}
src/main/java/org/springblade/modules/stock/service/impl/StockServiceImpl.java
@@ -25,6 +25,9 @@
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.List;
import java.util.Map;
/**
 * 农资库存表 服务实现类
 *
@@ -69,5 +72,15 @@
        return page.setRecords(baseMapper.slectNum(page,stock));
    }
    @Override
    public List<StocksVO> slectNumx(String startTime, String endTime) {
        return baseMapper.slectNumx(startTime,endTime);
    }
    @Override
    public List<Map<String, Object>> StockCount() {
        return baseMapper.StockCount();
    }
}