소스 검색

新增销售分析功能接口(查询,新增、删除)

zhuoning 2 년 전
부모
커밋
e48448a5b6

+ 21 - 0
huimv-env-platform/huimv-env-produce/src/main/java/com/huimv/env/produce/controller/SalesController.java

@@ -0,0 +1,21 @@
+package com.huimv.env.produce.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author zn
+ * @since 2022-11-01
+ */
+@RestController
+@RequestMapping("/sales")
+public class SalesController {
+
+}
+

+ 49 - 0
huimv-env-platform/huimv-env-produce/src/main/java/com/huimv/env/produce/controller/SalesDetailController.java

@@ -0,0 +1,49 @@
+package com.huimv.env.produce.controller;
+
+
+import com.huimv.common.utils.Result;
+import com.huimv.env.produce.service.EliminateDetailService;
+import com.huimv.env.produce.service.SalesDetailService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+import java.text.ParseException;
+import java.util.Map;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author zn
+ * @since 2022-11-01
+ */
+@RestController
+@RequestMapping("/v1.0.0/sales")
+public class SalesDetailController {
+    @Autowired
+    private com.huimv.env.produce.service.SalesDetailService salesDetailService;
+
+    //查询
+    @PostMapping("/getSales")
+    public Result getSales(@RequestBody Map<String, String> paramsMap) throws ParseException {
+        return salesDetailService.getSales(paramsMap);
+    }
+
+    //新增
+    @PostMapping("/save")
+    public Result save(@RequestBody Map<String, String> paramsMap) throws ParseException {
+        return salesDetailService.save(paramsMap);
+    }
+
+    //删除
+    @PostMapping("/remove")
+    public Result remove(@RequestBody Map<String, String> paramsMap) throws ParseException {
+        return salesDetailService.remove(paramsMap);
+    }
+}
+

+ 39 - 0
huimv-env-platform/huimv-env-produce/src/main/java/com/huimv/env/produce/entity/Sales.java

@@ -0,0 +1,39 @@
+package com.huimv.env.produce.entity;
+
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.Version;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author zn
+ * @since 2022-11-01
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class Sales implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+      @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private BigDecimal thisSaleMoney;
+
+    private Integer thisSaleCount;
+
+    private BigDecimal lastSaleMoney;
+
+    private Integer lastSaleCount;
+
+    private String farmCode;
+
+
+}

+ 41 - 0
huimv-env-platform/huimv-env-produce/src/main/java/com/huimv/env/produce/entity/SalesDetail.java

@@ -0,0 +1,41 @@
+package com.huimv.env.produce.entity;
+
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.Version;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author zn
+ * @since 2022-11-01
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class SalesDetail implements Serializable {
+
+    private static final long serialVersionUID=1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private BigDecimal saleMoney;
+
+    private Integer saleCount;
+
+    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
+    private Date addDate;
+
+    private String farmCode;
+
+
+}

+ 16 - 0
huimv-env-platform/huimv-env-produce/src/main/java/com/huimv/env/produce/mapper/SalesDetailMapper.java

@@ -0,0 +1,16 @@
+package com.huimv.env.produce.mapper;
+
+import com.huimv.env.produce.entity.SalesDetail;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author zn
+ * @since 2022-11-01
+ */
+public interface SalesDetailMapper extends BaseMapper<SalesDetail> {
+
+}

+ 16 - 0
huimv-env-platform/huimv-env-produce/src/main/java/com/huimv/env/produce/mapper/SalesMapper.java

@@ -0,0 +1,16 @@
+package com.huimv.env.produce.mapper;
+
+import com.huimv.env.produce.entity.Sales;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author zn
+ * @since 2022-11-01
+ */
+public interface SalesMapper extends BaseMapper<Sales> {
+
+}

+ 19 - 0
huimv-env-platform/huimv-env-produce/src/main/java/com/huimv/env/produce/mapper/xml/SalesDetailMapper.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.huimv.env.produce.mapper.SalesDetailMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.huimv.env.produce.entity.SalesDetail">
+        <id column="id" property="id" />
+        <result column="sale_money" property="saleMoney" />
+        <result column="sale_count" property="saleCount" />
+        <result column="add_date" property="addDate" />
+        <result column="farm_code" property="farmCode" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, sale_money, sale_count, add_date, farm_code
+    </sql>
+
+</mapper>

+ 20 - 0
huimv-env-platform/huimv-env-produce/src/main/java/com/huimv/env/produce/mapper/xml/SalesMapper.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.huimv.env.produce.mapper.SalesMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.huimv.env.produce.entity.Sales">
+        <id column="id" property="id" />
+        <result column="this_sale_money" property="thisSaleMoney" />
+        <result column="this_sale_count" property="thisSaleCount" />
+        <result column="last_sale_money" property="lastSaleMoney" />
+        <result column="last_sale_count" property="lastSaleCount" />
+        <result column="farm_code" property="farmCode" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, this_sale_money, this_sale_count, last_sale_money, last_sale_count, farm_code
+    </sql>
+
+</mapper>

+ 25 - 0
huimv-env-platform/huimv-env-produce/src/main/java/com/huimv/env/produce/service/SalesDetailService.java

@@ -0,0 +1,25 @@
+package com.huimv.env.produce.service;
+
+import com.huimv.common.utils.Result;
+import com.huimv.env.produce.entity.SalesDetail;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.text.ParseException;
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author zn
+ * @since 2022-11-01
+ */
+public interface SalesDetailService extends IService<SalesDetail> {
+
+    Result getSales(Map<String, String> paramsMap);
+
+    Result save(Map<String, String> paramsMap) throws ParseException;
+
+    Result remove(Map<String, String> paramsMap);
+}

+ 16 - 0
huimv-env-platform/huimv-env-produce/src/main/java/com/huimv/env/produce/service/SalesService.java

@@ -0,0 +1,16 @@
+package com.huimv.env.produce.service;
+
+import com.huimv.env.produce.entity.Sales;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author zn
+ * @since 2022-11-01
+ */
+public interface SalesService extends IService<Sales> {
+
+}

+ 129 - 0
huimv-env-platform/huimv-env-produce/src/main/java/com/huimv/env/produce/service/impl/SalesDetailServiceImpl.java

@@ -0,0 +1,129 @@
+package com.huimv.env.produce.service.impl;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.huimv.common.utils.Result;
+import com.huimv.common.utils.ResultCode;
+import com.huimv.env.common.utils.DateUtil;
+import com.huimv.env.produce.entity.Sales;
+import com.huimv.env.produce.entity.SalesDetail;
+import com.huimv.env.produce.mapper.EliminateDetailMapper;
+import com.huimv.env.produce.mapper.EliminateMapper;
+import com.huimv.env.produce.mapper.SalesDetailMapper;
+import com.huimv.env.produce.mapper.SalesMapper;
+import com.huimv.env.produce.service.SalesDetailService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.text.ParseException;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author zn
+ * @since 2022-11-01
+ */
+@Service
+public class SalesDetailServiceImpl extends ServiceImpl<SalesDetailMapper, SalesDetail> implements SalesDetailService {
+    @Autowired
+    private SalesMapper salesMapper;
+    @Autowired
+    private SalesDetailMapper salesDetailMapper;
+
+    //默认牧场
+    private static final String DEFAULT_FARM_CODE = "14";
+
+    @Override
+    public Result getSales(Map<String, String> paramsMap) {
+        //
+        String farmCode = paramsMap.get("farmCode");
+        if(farmCode == null){
+            farmCode = DEFAULT_FARM_CODE;
+        }
+        JSONObject resultJo = new JSONObject();
+        //查询总表
+        QueryWrapper<Sales> totalQueryWrapper = new QueryWrapper();
+        totalQueryWrapper.eq("farm_code",farmCode);
+        Sales sales = salesMapper.selectOne(totalQueryWrapper);
+        if(sales == null){
+            resultJo.put("thisSaleMoney",0.0);
+            resultJo.put("thisSaleCount",0);
+            resultJo.put("lastSaleMoney",0.0);
+            resultJo.put("lastSaleCount",0);
+        }else{
+            resultJo.put("thisSaleMoney",sales.getThisSaleMoney());
+            resultJo.put("thisSaleCount",sales.getThisSaleCount());
+            resultJo.put("lastSaleMoney",sales.getLastSaleMoney());
+            resultJo.put("lastSaleCount",sales.getLastSaleCount());
+        }
+        //查询明细表
+        QueryWrapper<SalesDetail> detailQueryWrapper = new QueryWrapper<>();
+        detailQueryWrapper.eq("farm_code",farmCode);
+        List<SalesDetail> salesDetailList = salesDetailMapper.selectList(detailQueryWrapper);
+        resultJo.put("list",salesDetailList);
+        return new Result(ResultCode.SUCCESS,resultJo);
+    }
+
+    @Override
+    public Result save(Map<String, String> paramsMap) throws ParseException {
+        //
+        String farmCode = paramsMap.get("farmCode");
+        if(farmCode == null){
+            farmCode = DEFAULT_FARM_CODE;
+        }
+        //
+        String addDate = paramsMap.get("addDate");
+        //删除原先总表
+        QueryWrapper<Sales> totalQueryWrapper = new QueryWrapper();
+        totalQueryWrapper.eq("farm_code",farmCode);
+        salesMapper.delete(totalQueryWrapper);
+
+        //删除原先明细表
+        QueryWrapper<SalesDetail> detailQueryWrapper = new QueryWrapper<>();
+        detailQueryWrapper.eq("farm_code",farmCode);
+        salesDetailMapper.delete(detailQueryWrapper);
+
+        //新增明细表
+        DateUtil dateUtil = new DateUtil();
+        String lastSaleMoney = paramsMap.get("lastSaleMoney");
+        String lastSaleCount = paramsMap.get("lastSaleCount");
+        String list = paramsMap.get("list");
+        JSONArray listJa = JSONArray.parseArray(list);
+        BigDecimal moneyBd = new BigDecimal(0);
+        int count = 0;
+        for(int a=0;a<listJa.size();a++){
+            JSONObject listJo = listJa.getJSONObject(a);
+            SalesDetail salesDetail = new SalesDetail();
+            salesDetail.setSaleMoney(new BigDecimal(listJo.getString("saleMoney")));
+            salesDetail.setSaleCount(listJo.getInteger("saleCount"));
+            salesDetail.setAddDate(dateUtil.parseDate(addDate));
+            salesDetail.setFarmCode(farmCode);
+            salesDetailMapper.insert(salesDetail);
+            moneyBd = moneyBd.add(new BigDecimal(listJo.getString("saleMoney")));
+            count+=listJo.getInteger("saleCount");
+        }
+        //新增总表
+        Sales Sales = new Sales();
+        Sales.setThisSaleMoney(moneyBd);
+        Sales.setThisSaleCount(count);
+        Sales.setLastSaleMoney(new BigDecimal(lastSaleMoney));
+        Sales.setLastSaleCount(Integer.parseInt(lastSaleCount));
+        Sales.setFarmCode(farmCode);
+        salesMapper.insert(Sales);
+        return new Result(ResultCode.SUCCESS);
+    }
+
+    @Override
+    public Result remove(Map<String, String> paramsMap) {
+        String id = paramsMap.get("id");
+        salesDetailMapper.deleteById(id);
+        return new Result(ResultCode.SUCCESS);
+    }
+}

+ 20 - 0
huimv-env-platform/huimv-env-produce/src/main/java/com/huimv/env/produce/service/impl/SalesServiceImpl.java

@@ -0,0 +1,20 @@
+package com.huimv.env.produce.service.impl;
+
+import com.huimv.env.produce.entity.Sales;
+import com.huimv.env.produce.mapper.SalesMapper;
+import com.huimv.env.produce.service.SalesService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author zn
+ * @since 2022-11-01
+ */
+@Service
+public class SalesServiceImpl extends ServiceImpl<SalesMapper, Sales> implements SalesService {
+
+}