wwh 2 месяцев назад
Родитель
Сommit
a5a5a4df44

+ 7 - 5
huimv-farm/src/main/java/vip/xiaonuo/production/service/impl/ProductionWorkstopPlanServiceImpl.java

@@ -288,12 +288,14 @@ public class ProductionWorkstopPlanServiceImpl extends ServiceImpl<ProductionWor
         queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId).groupBy("location_name");
         IPage<ProductionWorkstopPlan> planMapperTop = planMapper.getTop(queryWrapper, page);
         List<ProductionWorkstopPlan> records = planMapperTop.getRecords();
-        List<ProductionWorkstopPlan> plans = jsonArraySort(records, true);
-        for (int i = 0; i < pageSize; i++) {
-            ProductionWorkstopPlan workstopPlan = plans.get(i);
-            workstopPlan.setId((pageNum-1) *pageSize + i+ 1 );
+        if (records.size() != 0) {
+            List<ProductionWorkstopPlan> plans = jsonArraySort(records, true);
+            for (int i = 0; i < pageSize; i++) {
+                ProductionWorkstopPlan workstopPlan = plans.get(i);
+                workstopPlan.setId((pageNum-1) *pageSize + i+ 1 );
+            }
+            planMapperTop.setRecords(plans);
         }
-        planMapperTop.setRecords(plans);
         return planMapperTop;
     }
 

+ 1 - 6
huimv-farm/src/main/java/vip/xiaonuo/production/service/impl/ProductionYieldServiceImpl.java

@@ -47,7 +47,7 @@ public class ProductionYieldServiceImpl extends ServiceImpl<ProductionYieldMappe
         QueryWrapper<ProductionYield> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId)
                 .eq(StringUtils.isNotBlank(locationName),"location_name",locationName);
-        if (StringUtils.isNotBlank(locationName)) {
+        if (StringUtils.isNotBlank(produceName)) {
             queryWrapper.like(StringUtils.isNotBlank(produceName), "produce_name", produceName);
         }
 
@@ -58,14 +58,9 @@ public class ProductionYieldServiceImpl extends ServiceImpl<ProductionYieldMappe
             queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y-%m')");
         }
         queryWrapper.orderByAsc("create_time");
-//        List<ProductionWritePlan> writePlans = writePlanMapper.selectList(queryWrapper);
         List<ProductionYield> productionYields = yieldMapper.selectList(queryWrapper);
-        BigDecimal math = new BigDecimal("10000");
 
         for (ProductionYield productionYield : productionYields) {
-//            BigDecimal bg = new BigDecimal(productionYield.getActualProduction());
-//            productionYield.setActualProduction(bg.divide(math, 2, RoundingMode.HALF_UP).toString());
-
             QueryWrapper<ProductionWritePlan> queryWrapper1 = new QueryWrapper<>();
             if (0 == timeType) {
                 SimpleDateFormat sdf = new SimpleDateFormat("yyyy");

+ 9 - 0
huimv-farm/src/main/java/vip/xiaonuo/risk/controller/RiskSupplierController.java

@@ -1,6 +1,7 @@
 package vip.xiaonuo.risk.controller;
 
 
+import com.alibaba.fastjson.JSONArray;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import com.github.xiaoymin.knife4j.annotations.ApiSupport;
 import io.swagger.annotations.Api;
@@ -20,6 +21,7 @@ import vip.xiaonuo.risk.param.RiskSupplierParam;
 import vip.xiaonuo.risk.service.IRiskSupplierService;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -44,4 +46,11 @@ public class RiskSupplierController {
     public CommonResult<List<RiskSupplier>> getList(@RequestBody RiskSupplierParam riskSupplierParam) {
         return CommonResult.data(supplierService.getList(riskSupplierParam));
     }
+
+    @ApiOperationSupport(order = 2)
+    @ApiOperation("供应商列表")
+    @PostMapping("/risk-supplier/listSupplier")
+    public CommonResult<JSONArray> listSupplier(@RequestBody Map<String, String> paramsMap) {
+        return CommonResult.data(supplierService.listSupplier(paramsMap));
+    }
 }

+ 5 - 0
huimv-farm/src/main/java/vip/xiaonuo/risk/service/IRiskSupplierService.java

@@ -1,11 +1,13 @@
 package vip.xiaonuo.risk.service;
 
+import com.alibaba.fastjson.JSONArray;
 import vip.xiaonuo.risk.entity.RiskSupplier;
 import com.baomidou.mybatisplus.extension.service.IService;
 import vip.xiaonuo.risk.param.RiskParam;
 import vip.xiaonuo.risk.param.RiskSupplierParam;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -20,4 +22,7 @@ public interface IRiskSupplierService extends IService<RiskSupplier> {
     //供应商交货准确率
     List<RiskSupplier> getList(RiskSupplierParam riskSupplierParam);
 
+    //供应商列表
+    JSONArray listSupplier(Map<String, String> paramsMap);
+
 }

+ 23 - 5
huimv-farm/src/main/java/vip/xiaonuo/risk/service/impl/RiskSaleServiceImpl.java

@@ -11,7 +11,12 @@ import vip.xiaonuo.risk.param.RiskSaleParam;
 import vip.xiaonuo.risk.service.IRiskSaleService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
+import vip.xiaonuo.sale.entity.SaleDetail;
+import vip.xiaonuo.sale.mapper.SaleDetailMapper;
 
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -28,22 +33,35 @@ public class RiskSaleServiceImpl extends ServiceImpl<RiskSaleMapper, RiskSale> i
 
     @Autowired
     private RiskSaleMapper saleMapper;
+    @Autowired
+    private SaleDetailMapper saleDetailMapper;
 
     @Override
     public List<RiskSale> getList(RiskSaleParam riskSaleParam) {
         String orgId = riskSaleParam.getOrgId();
         Integer timeType = riskSaleParam.getTimeType();
-        QueryWrapper<RiskSale> queryWrapper = new QueryWrapper<>();
+        QueryWrapper<SaleDetail> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
-        queryWrapper.select(" IFNULL(sum(sale_money),'0') saleMoney,IFNULL(sum(back_money),'0') backMoney,create_time createTime");
+        queryWrapper.select(" IFNULL(sum(sale_money),'0') saleMoney,create_time createTime");
         if (1 == timeType) {
-            DateTime dateTime = DateUtil.beginOfYear(new Date());
-            queryWrapper.ge("create_time", dateTime);
             queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y-%m')");
         } else {
             queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y')");
         }
         queryWrapper.orderByAsc("create_time");
-        return saleMapper.selectList(queryWrapper);
+        List<SaleDetail> saleDetails = saleDetailMapper.selectList(queryWrapper);
+        List<RiskSale> list = new ArrayList<>();
+        BigDecimal math = new BigDecimal("10000");
+        if (saleDetails.size() != 0) {
+            for (SaleDetail saleDetail : saleDetails) {
+                RiskSale riskSale = new RiskSale();
+                BigDecimal bg = new BigDecimal(saleDetail.getSaleMoney());
+                riskSale.setSaleMoney(bg.divide(math, 2, RoundingMode.HALF_UP).toString());
+                riskSale.setBackMoney(bg.divide(math, 2, RoundingMode.HALF_UP).toString());
+                riskSale.setCreateTime(saleDetail.getCreateTime());
+                list.add(riskSale);
+            }
+        }
+        return list;
     }
 }

+ 50 - 15
huimv-farm/src/main/java/vip/xiaonuo/risk/service/impl/RiskSupplierServiceImpl.java

@@ -2,9 +2,13 @@ package vip.xiaonuo.risk.service.impl;
 
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import vip.xiaonuo.purchase.entity.PurchaseOrder;
+import vip.xiaonuo.purchase.mapper.PurchaseOrderMapper;
 import vip.xiaonuo.risk.entity.RiskSupplier;
 import vip.xiaonuo.risk.mapper.RiskSupplierMapper;
 import vip.xiaonuo.risk.param.RiskParam;
@@ -13,8 +17,10 @@ import vip.xiaonuo.risk.service.IRiskSupplierService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -29,31 +35,60 @@ public class RiskSupplierServiceImpl extends ServiceImpl<RiskSupplierMapper, Ris
 
     @Autowired
     private RiskSupplierMapper supplierMapper;
+    @Autowired
+    private PurchaseOrderMapper orderMapper;
 
     @Override
     public List<RiskSupplier> getList(RiskSupplierParam riskSupplierParam) {
         String orgId = riskSupplierParam.getOrgId();
         Integer timeType = riskSupplierParam.getTimeType();
         String supplier = riskSupplierParam.getSupplier();
-        QueryWrapper<RiskSupplier> queryWrapper = new QueryWrapper<>();
+        QueryWrapper<PurchaseOrder> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
-        queryWrapper.select(" CONVERT(IFNULL(avg(rank),'0'),decimal(10,2)) 'rank',create_time createTime");
+        queryWrapper.select(" IFNULL(sum(purchase_money),'0') 'purchaseMoney',create_time createTime");
+        queryWrapper.eq(StringUtils.isNotBlank(supplier), "supplier", supplier);
         if (1 == timeType) {
-            DateTime dateTime = DateUtil.beginOfYear(new Date());
-            queryWrapper.ge("create_time", dateTime);
-            if ("".equals(supplier) || null == supplier) {
-                queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y-%m')");
-            } else {
-                queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y-%m')" /*+ "," + supplier*/);
-            }
+            queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y-%m')");
         } else {
-            if ("".equals(supplier) || null == supplier) {
-                queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y')");
-            } else {
-                queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y')" /*+ "," + supplier*/);
-            }
+            queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y')");
         }
         queryWrapper.orderByAsc("create_time");
-        return supplierMapper.selectList(queryWrapper);
+        List<PurchaseOrder> orders = orderMapper.selectList(queryWrapper);
+        List<RiskSupplier> list = new ArrayList<>();
+        if (orders.size() != 0) {
+            for (PurchaseOrder order : orders) {
+                RiskSupplier supplier1 = new RiskSupplier();
+                if ("0".equals(order.getPurchaseMoney())) {
+                    supplier1.setRank("0");
+                } else {
+                    supplier1.setRank("100");
+                }
+                supplier1.setCreateTime(order.getCreateTime());
+                list.add(supplier1);
+            }
+        }
+        return list;
+    }
+
+    @Override
+    public JSONArray listSupplier(Map<String, String> paramsMap) {
+        String orgId = paramsMap.get("orgId");
+        QueryWrapper<PurchaseOrder> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
+        queryWrapper.groupBy("supplier");
+        List<PurchaseOrder> orders = orderMapper.selectList(queryWrapper);
+        JSONArray jsonArray = new JSONArray();
+        if (orders.size() != 0) {
+            for (PurchaseOrder order : orders) {
+                if (order.getSupplier()!=null) {
+                    JSONObject jsonObject = new JSONObject();
+                    jsonObject.put("supplier", order.getSupplier());
+                    jsonObject.put("orgId", order.getOrgId());
+                    jsonArray.add(jsonObject);
+                }
+            }
+        }
+        return jsonArray;
     }
+
 }

+ 2 - 1
huimv-farm/src/main/java/vip/xiaonuo/sale/controller/SaleDetailController.java

@@ -1,6 +1,7 @@
 package vip.xiaonuo.sale.controller;
 
 
+import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import com.github.xiaoymin.knife4j.annotations.ApiSupport;
@@ -44,7 +45,7 @@ public class SaleDetailController {
     @PostMapping("/sale-detail/getList")
     @ApiOperationSupport(order = 1)
     @ApiOperation("客户销售额占比")
-    public CommonResult<List<SaleDetail>> getList(@RequestBody SaleDetailParam detailParam) {
+    public CommonResult<JSONArray> getList(@RequestBody SaleDetailParam detailParam) {
         return CommonResult.data(detailService.getList(detailParam));
     }
 

+ 2 - 1
huimv-farm/src/main/java/vip/xiaonuo/sale/service/ISaleDetailService.java

@@ -1,5 +1,6 @@
 package vip.xiaonuo.sale.service;
 
+import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import vip.xiaonuo.sale.entity.SaleDetail;
 import com.baomidou.mybatisplus.extension.service.IService;
@@ -20,7 +21,7 @@ import java.util.List;
 public interface ISaleDetailService extends IService<SaleDetail> {
 
     //客户销售额占比
-    List<SaleDetail> getList(SaleDetailParam detailParam);
+    JSONArray getList(SaleDetailParam detailParam);
 
     //客户销售额明显表
     Page<SaleDetail> getList2(SaleDetailPageParam detailPageParam);

+ 27 - 3
huimv-farm/src/main/java/vip/xiaonuo/sale/service/impl/SaleDetailServiceImpl.java

@@ -1,6 +1,8 @@
 package vip.xiaonuo.sale.service.impl;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONException;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -17,6 +19,7 @@ import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.text.DecimalFormat;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
@@ -37,15 +40,36 @@ public class SaleDetailServiceImpl extends ServiceImpl<SaleDetailMapper, SaleDet
     private SaleDetailMapper detailMapper;
 
     @Override
-    public List<SaleDetail> getList(SaleDetailParam detailParam) {
+    public JSONArray getList(SaleDetailParam detailParam) {
         String orgId = detailParam.getOrgId();
         String produceName = detailParam.getProduceName();
         QueryWrapper<SaleDetail> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId)
                 .eq(StringUtils.isNotBlank(produceName), "produce_name", produceName);
-        queryWrapper.select(" IFNULL(sum(sale_money),'0') saleMoney,customer customer");
+        queryWrapper.select(" convert(IFNULL(sum(sale_money),'0'),decimal(10,2)) saleMoney,customer customer");
+        queryWrapper.orderByDesc("sale_money");
         queryWrapper.groupBy("customer");
-        return detailMapper.selectList(queryWrapper);
+        List<SaleDetail> saleDetails = detailMapper.selectList(queryWrapper);
+        JSONArray jsonArray = new JSONArray();
+        Double count=0.00;
+        if (saleDetails.size() != 0) {
+            for (int i = 0; i < saleDetails.size(); i++) {
+                if (i < 5) {
+                    JSONObject jsonObject = new JSONObject();
+                    jsonObject.put("name", saleDetails.get(i).getCustomer());
+                    jsonObject.put("value", saleDetails.get(i).getSaleMoney());
+                    jsonArray.add(jsonObject);
+                } else {
+                    count = count + Double.valueOf(saleDetails.get(i).getSaleMoney());
+                }
+            }
+        }
+        DecimalFormat def = new DecimalFormat("0.00");
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("name", "others");
+        jsonObject.put("value", def.format(count));
+        jsonArray.add(jsonObject);
+        return jsonArray;
     }
 
     @Override

+ 2 - 2
huimv-farm/src/main/resources/mapper/ProductionWorkstopPlanMapper.xml

@@ -6,8 +6,8 @@
 
         SELECT
         COALESCE(curr.produceName, prev.produceName) AS produceName,
-        IFNULL(curr.actualProduction,'0') AS monthValue,
-        IFNULL(prev.actualProduction,'0') AS lastMonthValue
+        convert(IFNULL(curr.actualProduction,'0'),decimal(10,2)) AS monthValue,
+        convert(IFNULL(prev.actualProduction,'0'),decimal(10,2)) AS lastMonthValue
         FROM
         (SELECT produce_name produceName, IFNULL(sum(actual_production),'0') actualProduction
         FROM production_workstop_plan