wwh пре 3 месеци
родитељ
комит
cebe9bd123
41 измењених фајлова са 1098 додато и 172 уклоњено
  1. 1 1
      huimv-farm/src/main/java/vip/xiaonuo/erp/service/impl/ErpCaiGouServiceImpl.java
  2. 31 0
      huimv-farm/src/main/java/vip/xiaonuo/money/controller/MoneyBorrowWarningController.java
  3. 30 0
      huimv-farm/src/main/java/vip/xiaonuo/money/controller/MoneyCostController.java
  4. 7 0
      huimv-farm/src/main/java/vip/xiaonuo/money/controller/MoneyIncomeController.java
  5. 7 0
      huimv-farm/src/main/java/vip/xiaonuo/money/entity/MoneyCost.java
  6. 1 1
      huimv-farm/src/main/java/vip/xiaonuo/money/entity/MoneyOverdue.java
  7. 1 2
      huimv-farm/src/main/java/vip/xiaonuo/money/entity/vo/MoneyProduceVo.java
  8. 15 0
      huimv-farm/src/main/java/vip/xiaonuo/money/service/IMoneyBorrowWarningService.java
  9. 13 0
      huimv-farm/src/main/java/vip/xiaonuo/money/service/IMoneyCostService.java
  10. 5 1
      huimv-farm/src/main/java/vip/xiaonuo/money/service/IMoneyIncomeService.java
  11. 43 12
      huimv-farm/src/main/java/vip/xiaonuo/money/service/impl/MoneyBorrowWarningServiceImpl.java
  12. 47 4
      huimv-farm/src/main/java/vip/xiaonuo/money/service/impl/MoneyCostServiceImpl.java
  13. 68 10
      huimv-farm/src/main/java/vip/xiaonuo/money/service/impl/MoneyForecastServiceImpl.java
  14. 163 33
      huimv-farm/src/main/java/vip/xiaonuo/money/service/impl/MoneyIncomeServiceImpl.java
  15. 27 4
      huimv-farm/src/main/java/vip/xiaonuo/money/service/impl/MoneyOverdueServiceImpl.java
  16. 55 13
      huimv-farm/src/main/java/vip/xiaonuo/money/service/impl/MoneyProducePriceServiceImpl.java
  17. 5 5
      huimv-farm/src/main/java/vip/xiaonuo/money/service/impl/MoneyProduceServiceImpl.java
  18. 10 1
      huimv-farm/src/main/java/vip/xiaonuo/production/service/impl/ProductionTargetServiceImpl.java
  19. 9 1
      huimv-farm/src/main/java/vip/xiaonuo/production/service/impl/ProductionYieldServiceImpl.java
  20. 5 0
      huimv-farm/src/main/java/vip/xiaonuo/purchase/param/PurchaseOrderParam.java
  21. 86 26
      huimv-farm/src/main/java/vip/xiaonuo/purchase/service/impl/PurchaseOrderServiceImpl.java
  22. 3 0
      huimv-farm/src/main/java/vip/xiaonuo/risk/param/RiskParam.java
  23. 2 2
      huimv-farm/src/main/java/vip/xiaonuo/risk/service/impl/RiskSupplierServiceImpl.java
  24. 79 4
      huimv-farm/src/main/java/vip/xiaonuo/risk/service/impl/RiskTargetServiceImpl.java
  25. 2 0
      huimv-farm/src/main/java/vip/xiaonuo/sale/param/SaleSalesmanParam.java
  26. 1 1
      huimv-farm/src/main/java/vip/xiaonuo/sale/service/impl/SaleDeliverServiceImpl.java
  27. 10 2
      huimv-farm/src/main/java/vip/xiaonuo/sale/service/impl/SaleOrderServiceImpl.java
  28. 63 5
      huimv-farm/src/main/java/vip/xiaonuo/sale/service/impl/SaleSalesmanServiceImpl.java
  29. 76 17
      huimv-farm/src/main/java/vip/xiaonuo/sale/service/impl/SaleTargetServiceImpl.java
  30. 2 1
      huimv-farm/src/main/java/vip/xiaonuo/warehouse/controller/WarehouseStockController.java
  31. 3 0
      huimv-farm/src/main/java/vip/xiaonuo/warehouse/param/WarehouseStockDetailParam.java
  32. 1 1
      huimv-farm/src/main/java/vip/xiaonuo/warehouse/param/WarehouseStockParam.java
  33. 3 0
      huimv-farm/src/main/java/vip/xiaonuo/warehouse/param/WarehouseStockSecondParam.java
  34. 2 1
      huimv-farm/src/main/java/vip/xiaonuo/warehouse/service/IWarehouseStockService.java
  35. 2 0
      huimv-farm/src/main/java/vip/xiaonuo/warehouse/service/impl/WarehouseStockDetailServiceImpl.java
  36. 62 16
      huimv-farm/src/main/java/vip/xiaonuo/warehouse/service/impl/WarehouseStockServiceImpl.java
  37. 50 0
      huimv-farm/src/main/java/vip/xiaonuo/write/controller/WriteCheckController.java
  38. 21 8
      huimv-farm/src/main/java/vip/xiaonuo/write/entity/WriteCheck.java
  39. 14 0
      huimv-farm/src/main/java/vip/xiaonuo/write/service/IWriteCheckService.java
  40. 72 0
      huimv-farm/src/main/java/vip/xiaonuo/write/service/impl/WriteCheckServiceImpl.java
  41. 1 0
      huimv-farm/src/main/resources/mapper/MoneyOverdueMapper.xml

+ 1 - 1
huimv-farm/src/main/java/vip/xiaonuo/erp/service/impl/ErpCaiGouServiceImpl.java

@@ -9,7 +9,7 @@ import org.springframework.http.HttpMethod;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
 import org.springframework.web.client.RestTemplate;
-import vip.xiaonuo.common.annotation.Test;
+//import vip.xiaonuo.common.annotation.Test;
 import vip.xiaonuo.erp.entity.ErpBdOrg;
 import vip.xiaonuo.erp.entity.caigou.*;
 import vip.xiaonuo.erp.entity.kucun.YangMaoZhiGongYingShang;

+ 31 - 0
huimv-farm/src/main/java/vip/xiaonuo/money/controller/MoneyBorrowWarningController.java

@@ -27,6 +27,7 @@ import vip.xiaonuo.money.service.IMoneyBorrowWarningService;
 import vip.xiaonuo.money.service.IMoneyBusinessService;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -81,4 +82,34 @@ public class MoneyBorrowWarningController {
     public CommonResult<Page<MoneyBorrowWarning>> listBorrowDetail(@RequestBody MoneyBorrowDetailParam detailParam) {
         return CommonResult.data(borrowWarningService.listBorrowDetail(detailParam));
     }
+
+    @ApiOperationSupport(order = 6)
+    @ApiOperation("借款添加")
+    @PostMapping("/money-borrow-warning/add")
+    public CommonResult add(@RequestBody MoneyBorrowWarning moneyBorrowWarning) {
+        return borrowWarningService.add(moneyBorrowWarning);
+    }
+
+    @ApiOperationSupport(order = 7)
+    @ApiOperation("借款修改")
+    @PostMapping("/money-borrow-warning/edit")
+    public CommonResult edit(@RequestBody MoneyBorrowWarning moneyBorrowWarning) {
+        borrowWarningService.update(moneyBorrowWarning);
+        return CommonResult.ok();
+    }
+
+    @ApiOperationSupport(order = 8)
+    @ApiOperation("借款删除")
+    @PostMapping("/money-borrow-warning/delete")
+    public CommonResult remove(@RequestBody Map<String, String> paramsMap) {
+        borrowWarningService.remove(paramsMap);
+        return CommonResult.ok();
+    }
+
+    @ApiOperationSupport(order = 9)
+    @ApiOperation("借款银行列表")
+    @PostMapping("/money-borrow-warning/listBank")
+    public CommonResult<List<MoneyBorrowWarning>> listBank(@RequestBody Map<String, String> paramsMap) {
+        return CommonResult.data(borrowWarningService.listBank(paramsMap));
+    }
 }

+ 30 - 0
huimv-farm/src/main/java/vip/xiaonuo/money/controller/MoneyCostController.java

@@ -16,10 +16,12 @@ import vip.xiaonuo.common.pojo.CommonResult;
 import vip.xiaonuo.money.entity.MoneyCost;
 import vip.xiaonuo.money.entity.MoneyProduce;
 import vip.xiaonuo.money.param.MoneyAnalysisParam;
+import vip.xiaonuo.money.param.MoneyInOutPageParam;
 import vip.xiaonuo.money.param.MoneyInOutParam;
 import vip.xiaonuo.money.service.IMoneyCostService;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -44,4 +46,32 @@ public class MoneyCostController {
         return CommonResult.data(costService.listCost(outParam));
     }
 
+    @ApiOperationSupport(order = 2)
+    @ApiOperation("费用分析添加")
+    @PostMapping("/money-cost/add")
+    public CommonResult add(@RequestBody MoneyCost moneyCost) {
+        return costService.add(moneyCost);
+    }
+
+    @ApiOperationSupport(order = 3)
+    @ApiOperation("费用分析修改")
+    @PostMapping("/money-cost/update")
+    public CommonResult update(@RequestBody MoneyCost moneyCost) {
+        return costService.update(moneyCost);
+    }
+
+    @ApiOperationSupport(order = 4)
+    @ApiOperation("费用分析删除")
+    @PostMapping("/money-cost/delete")
+    public CommonResult delete(@RequestBody Map<String,String> paramsMap) {
+        return costService.delete(paramsMap);
+    }
+
+    @ApiOperationSupport(order = 5)
+    @ApiOperation("费用分析分页")
+    @PostMapping("/money-cost/page")
+    public CommonResult page(@RequestBody MoneyInOutPageParam pageParam) {
+        return costService.page(pageParam);
+    }
+
 }

+ 7 - 0
huimv-farm/src/main/java/vip/xiaonuo/money/controller/MoneyIncomeController.java

@@ -16,6 +16,7 @@ import org.springframework.web.bind.annotation.RestController;
 import vip.xiaonuo.common.pojo.CommonResult;
 import vip.xiaonuo.money.entity.MoneyIncome;
 import vip.xiaonuo.money.entity.vo.MoneyIncomeVo;
+import vip.xiaonuo.money.param.MoneyIncomeAddParam;
 import vip.xiaonuo.money.param.MoneyIncomeParam;
 import vip.xiaonuo.money.param.MoneyOverdueParam;
 import vip.xiaonuo.money.service.IMoneyIncomeService;
@@ -54,4 +55,10 @@ public class MoneyIncomeController {
         return CommonResult.data(incomeService.MoneyIncomeList(incomeParam));
     }
 
+    @ApiOperationSupport(order = 3)
+    @ApiOperation("添加")
+    @PostMapping("/money-overdue/add")
+    public CommonResult add(@RequestBody MoneyIncomeAddParam addParam) {
+        return incomeService.add(addParam);
+    }
 }

+ 7 - 0
huimv-farm/src/main/java/vip/xiaonuo/money/entity/MoneyCost.java

@@ -64,4 +64,11 @@ public class MoneyCost implements Serializable {
     private String finance;
 
 
+    /**
+     * 公司名称
+     */
+    @ApiModelProperty(value = "公司名称", position = 6)
+    private String company;
+
+
 }

+ 1 - 1
huimv-farm/src/main/java/vip/xiaonuo/money/entity/MoneyOverdue.java

@@ -73,7 +73,7 @@ public class MoneyOverdue implements Serializable {
      * 日期
      */
     @ApiModelProperty(value = "日期", position = 6)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private Date dateTime;
 
     /**

+ 1 - 2
huimv-farm/src/main/java/vip/xiaonuo/money/entity/vo/MoneyProduceVo.java

@@ -17,6 +17,5 @@ public class MoneyProduceVo {
     private String income;
 
     @ApiModelProperty(value = "时间", position = 3)
-    @JsonFormat(pattern = "yyyy-MM", timezone = "GMT+8")
-    private Date time;
+    private String time;
 }

+ 15 - 0
huimv-farm/src/main/java/vip/xiaonuo/money/service/IMoneyBorrowWarningService.java

@@ -1,7 +1,9 @@
 package vip.xiaonuo.money.service;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import vip.xiaonuo.common.pojo.CommonResult;
 import vip.xiaonuo.money.entity.MoneyBorrowWarning;
 import com.baomidou.mybatisplus.extension.service.IService;
 import vip.xiaonuo.money.entity.vo.MoneyBankNameVo;
@@ -11,6 +13,7 @@ import vip.xiaonuo.money.param.MoneyBorrowParam;
 import vip.xiaonuo.money.param.MoneyInOutParam;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -35,4 +38,16 @@ public interface IMoneyBorrowWarningService extends IService<MoneyBorrowWarning>
 
     //借款明细表
     Page<MoneyBorrowWarning> listBorrowDetail(MoneyBorrowDetailParam detailParam);
+
+    //新增借款
+    CommonResult add(MoneyBorrowWarning moneyBorrowWarning);
+
+    //新增修改
+    void update(MoneyBorrowWarning moneyBorrowWarning);
+
+    //新增删除
+    void remove(Map<String, String> paramsMap);
+
+    //借款银行列表
+    List<MoneyBorrowWarning> listBank(Map<String, String> paramsMap);
 }

+ 13 - 0
huimv-farm/src/main/java/vip/xiaonuo/money/service/IMoneyCostService.java

@@ -1,11 +1,14 @@
 package vip.xiaonuo.money.service;
 
+import vip.xiaonuo.common.pojo.CommonResult;
 import vip.xiaonuo.money.entity.MoneyCost;
 import com.baomidou.mybatisplus.extension.service.IService;
 import vip.xiaonuo.money.entity.MoneyProducePrice;
+import vip.xiaonuo.money.param.MoneyInOutPageParam;
 import vip.xiaonuo.money.param.MoneyInOutParam;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -20,5 +23,15 @@ public interface IMoneyCostService extends IService<MoneyCost> {
     //费用分析
     List<MoneyCost> listCost(MoneyInOutParam outParam);
 
+    //费用分析添加
+    CommonResult add(MoneyCost moneyCost);
 
+    //费用分析修改
+    CommonResult update(MoneyCost moneyCost);
+
+    //费用分析删除
+    CommonResult delete(Map<String,String> paramsMap);
+
+
+    CommonResult page(MoneyInOutPageParam pageParam);
 }

+ 5 - 1
huimv-farm/src/main/java/vip/xiaonuo/money/service/IMoneyIncomeService.java

@@ -1,8 +1,10 @@
 package vip.xiaonuo.money.service;
 
+import vip.xiaonuo.common.pojo.CommonResult;
 import vip.xiaonuo.money.entity.MoneyIncome;
 import com.baomidou.mybatisplus.extension.service.IService;
 import vip.xiaonuo.money.entity.vo.MoneyIncomeVo;
+import vip.xiaonuo.money.param.MoneyIncomeAddParam;
 import vip.xiaonuo.money.param.MoneyIncomeParam;
 
 import java.util.List;
@@ -23,6 +25,8 @@ public interface IMoneyIncomeService extends IService<MoneyIncome> {
     //图表
     List<MoneyIncome> MoneyIncomeList(MoneyIncomeParam incomeParam);
 
-    //各组织实际收入份额
+    //新增年度收入
+    CommonResult add(MoneyIncomeAddParam addParam);
+
 
 }

+ 43 - 12
huimv-farm/src/main/java/vip/xiaonuo/money/service/impl/MoneyBorrowWarningServiceImpl.java

@@ -1,10 +1,12 @@
 package vip.xiaonuo.money.service.impl;
 
+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 com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.springframework.beans.factory.annotation.Autowired;
+import vip.xiaonuo.common.pojo.CommonResult;
 import vip.xiaonuo.money.entity.MoneyBorrowWarning;
 import vip.xiaonuo.money.entity.vo.MoneyBankNameVo;
 import vip.xiaonuo.money.entity.vo.MoneyBorrowPriceVo;
@@ -16,10 +18,13 @@ import vip.xiaonuo.money.service.IMoneyBorrowWarningService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.text.DecimalFormat;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -64,17 +69,14 @@ public class MoneyBorrowWarningServiceImpl extends ServiceImpl<MoneyBorrowWarnin
     public JSONObject getMoneyCount(MoneyBorrowParam borrowParam) {
         QueryWrapper<MoneyBorrowWarning> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq(StringUtils.isNotBlank(borrowParam.getOrgId()), "org_id", borrowParam.getOrgId());
-        queryWrapper.eq(StringUtils.isNotBlank(borrowParam.getOrgId()), "bank_name", borrowParam.getBankName());
-        List<MoneyBorrowWarning> list = borrowWarningMapper.selectList(queryWrapper);
-        double value = 0.000;
-        if (list.size() != 0) {
-            for (MoneyBorrowWarning moneyBorrowWarning : list) {
-                value = value + Double.valueOf(moneyBorrowWarning.getBorrowPrice());
-            }
-        }
-        DecimalFormat def = new DecimalFormat("0.000");
+        queryWrapper.eq(StringUtils.isNotBlank(borrowParam.getBankName()), "bank_name", borrowParam.getBankName());
+        queryWrapper.select(" IFNULL(sum(borrow_price),'0') borrowPrice");
+        MoneyBorrowWarning borrowWarning = borrowWarningMapper.selectOne(queryWrapper);
+        BigDecimal math = new BigDecimal("10000");
+        BigDecimal bg = new BigDecimal(borrowWarning.getBorrowPrice());
+        bg = bg.divide(math, 2, RoundingMode.HALF_UP);
         JSONObject jsonObject = new JSONObject();
-        jsonObject.put("money", def.format(value));
+        jsonObject.put("money", bg.toString());
         return jsonObject;
     }
 
@@ -90,7 +92,7 @@ public class MoneyBorrowWarningServiceImpl extends ServiceImpl<MoneyBorrowWarnin
     public List<MoneyBorrowPriceVo> borrowMoney(MoneyBorrowParam borrowParam) {
         QueryWrapper<MoneyBorrowWarning> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq(StringUtils.isNotBlank(borrowParam.getOrgId()), "org_id", borrowParam.getOrgId());
-        queryWrapper.eq(StringUtils.isNotBlank(borrowParam.getOrgId()), "bank_name", borrowParam.getBankName());
+        queryWrapper.eq(StringUtils.isNotBlank(borrowParam.getBankName()), "bank_name", borrowParam.getBankName());
         List<MoneyBorrowPriceVo> list = new ArrayList<>();
         List<MoneyBorrowPriceVo> borrowPrice = borrowWarningMapper.getBorrowPrice(queryWrapper);
         for (int i = 1; i < 13; i++) {
@@ -104,6 +106,8 @@ public class MoneyBorrowWarningServiceImpl extends ServiceImpl<MoneyBorrowWarnin
             }
             for (MoneyBorrowPriceVo priceVo : borrowPrice) {
                 if (i == Integer.parseInt(priceVo.getBorrowTime().substring(5, 7))) {
+                    String price = priceVo.getBorrowPrice();
+
                     vo.setBorrowPrice(priceVo.getBorrowPrice());
                 }
             }
@@ -116,9 +120,36 @@ public class MoneyBorrowWarningServiceImpl extends ServiceImpl<MoneyBorrowWarnin
     public Page<MoneyBorrowWarning> listBorrowDetail(MoneyBorrowDetailParam detailParam) {
         QueryWrapper<MoneyBorrowWarning> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq(StringUtils.isNotBlank(detailParam.getOrgId()), "org_id", detailParam.getOrgId());
-        queryWrapper.eq(StringUtils.isNotBlank(detailParam.getOrgId()), "bank_name", detailParam.getBankName());
+        queryWrapper.eq(StringUtils.isNotBlank(detailParam.getBankName()), "bank_name", detailParam.getBankName());
         Page page = new Page<MoneyBorrowWarning>(detailParam.getPageNum(), detailParam.getPageSize());
         return this.page(page, queryWrapper);
     }
 
+    @Override
+    public CommonResult add(MoneyBorrowWarning moneyBorrowWarning) {
+        if (moneyBorrowWarning.getOrgId() == null || "".equals(moneyBorrowWarning.getOrgId())) {
+            return CommonResult.error("公司不能为空");
+        }
+        borrowWarningMapper.insert(moneyBorrowWarning);
+        return CommonResult.ok();
+    }
+
+    @Override
+    public void update(MoneyBorrowWarning moneyBorrowWarning) {
+        borrowWarningMapper.updateById(moneyBorrowWarning);
+    }
+
+    @Override
+    public void remove(Map<String, String> paramsMap) {
+        String id = paramsMap.get("id");
+        borrowWarningMapper.deleteById(id);
+    }
+
+    @Override
+    public List<MoneyBorrowWarning> listBank(Map<String, String> paramsMap) {
+        QueryWrapper<MoneyBorrowWarning> queryWrapper = new QueryWrapper<>();
+        queryWrapper.groupBy("bank_name");
+        return borrowWarningMapper.selectList(queryWrapper);
+    }
+
 }

+ 47 - 4
huimv-farm/src/main/java/vip/xiaonuo/money/service/impl/MoneyCostServiceImpl.java

@@ -2,20 +2,24 @@ package vip.xiaonuo.money.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.springframework.beans.factory.annotation.Autowired;
+import vip.xiaonuo.common.pojo.CommonResult;
 import vip.xiaonuo.money.entity.MoneyCost;
 import vip.xiaonuo.money.entity.MoneyProducePrice;
 import vip.xiaonuo.money.mapper.MoneyCostMapper;
+import vip.xiaonuo.money.param.MoneyInOutPageParam;
 import vip.xiaonuo.money.param.MoneyInOutParam;
 import vip.xiaonuo.money.service.IMoneyCostService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
+import vip.xiaonuo.sys.modular.org.entity.SysOrg;
+import vip.xiaonuo.sys.modular.org.mapper.SysOrgMapper;
 
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 
 /**
  * <p>
@@ -30,6 +34,8 @@ public class MoneyCostServiceImpl extends ServiceImpl<MoneyCostMapper, MoneyCost
 
     @Autowired
     private MoneyCostMapper costMapper;
+    @Autowired
+    private SysOrgMapper orgMapper;
 
     @Override
     public List<MoneyCost> listCost(MoneyInOutParam outParam) {
@@ -48,7 +54,44 @@ public class MoneyCostServiceImpl extends ServiceImpl<MoneyCostMapper, MoneyCost
 
     }
 
+    @Override
+    public CommonResult add(MoneyCost moneyCost) {
+        String orgId = moneyCost.getOrgId();
+        if ("".equals(orgId) || null == orgId) {
+            return CommonResult.error("公司不能为空");
+        }
+        SysOrg sysOrg = orgMapper.selectById(orgId);
+        moneyCost.setCompany(sysOrg.getName());
+        costMapper.insert(moneyCost);
+        return CommonResult.ok();
+    }
 
+    @Override
+    public CommonResult update(MoneyCost moneyCost) {
+        costMapper.updateById(moneyCost);
+        return CommonResult.ok();
+    }
 
+    @Override
+    public CommonResult delete(Map<String, String> paramsMap) {
+        String id = paramsMap.get("id");
+        costMapper.deleteById(id);
+        return CommonResult.ok();
+    }
+
+    @Override
+    public CommonResult page(MoneyInOutPageParam pageParam) {
+        QueryWrapper<MoneyCost> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(StringUtils.isNotBlank(pageParam.getOrgId()), "org_id", pageParam.getOrgId());
+        Page<MoneyCost> page = new Page<>(pageParam.getPageNum(), pageParam.getPageSize());
+        Page<MoneyCost> page1 = costMapper.selectPage(page, queryWrapper);
+        List<MoneyCost> records = page1.getRecords();
+        for (MoneyCost record : records) {
+            record.setFinance(record.getFinance());
+            record.setManage(record.getManage());
+            record.setSale(record.getSale());
+        }
+        return CommonResult.data(page1);
+    }
 
 }

+ 68 - 10
huimv-farm/src/main/java/vip/xiaonuo/money/service/impl/MoneyForecastServiceImpl.java

@@ -11,7 +11,15 @@ import vip.xiaonuo.money.param.MoneyInOutParam;
 import vip.xiaonuo.money.service.IMoneyForecastService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
+import vip.xiaonuo.sale.entity.SaleCost;
+import vip.xiaonuo.sale.entity.SaleDetail;
+import vip.xiaonuo.sale.mapper.SaleCostMapper;
+import vip.xiaonuo.sale.mapper.SaleDetailMapper;
 
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.text.DecimalFormat;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -28,19 +36,69 @@ public class MoneyForecastServiceImpl extends ServiceImpl<MoneyForecastMapper, M
 
     @Autowired
     private MoneyForecastMapper forecastMapper;
+    @Autowired
+    private SaleDetailMapper detailMapper;
+    @Autowired
+    private SaleCostMapper costMapper;
 
     @Override
     public List<MoneyForecast> listForecast(MoneyInOutParam outParam) {
-        QueryWrapper<MoneyForecast> queryWrapper = new QueryWrapper<>();
-        if ("".equals(outParam.getOrgId()) || null == outParam.getOrgId()) {
-            queryWrapper.select(" IFNULL(sum(sale_number),'0') saleNumber,IFNULL(sum(sale_profit),'0') saleProfit,IFNULL(sum(sale_cost),'0') saleCost," +
-                    "create_time createTime,type type");
-        } else {
-            queryWrapper.eq( "org_id", outParam.getOrgId());
-        }
-        DateTime dateTime = DateUtil.beginOfMonth(new Date());
-        queryWrapper.ge("create_time", dateTime);
-        List<MoneyForecast> list = forecastMapper.selectList(queryWrapper);
+        String orgId = outParam.getOrgId();
+        DateTime time = DateUtil.beginOfMonth(new Date());
+        DateTime dateTime2 = DateUtil.offsetMonth(time, -1);
+        QueryWrapper<SaleCost> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
+        queryWrapper.ge("create_time", time);
+        queryWrapper.select(" IFNULL(sum(sale_cost_money),'0') saleCostMoney");
+        SaleCost saleCost = costMapper.selectOne(queryWrapper);//本月销售成本
+        queryWrapper.clear();
+        queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
+        queryWrapper.between("create_time", dateTime2, time);
+        queryWrapper.select(" IFNULL(sum(sale_cost_money),'0') saleCostMoney");
+        SaleCost saleCost1 = costMapper.selectOne(queryWrapper);//上月销售成本
+
+        QueryWrapper<SaleDetail> queryWrapper1 = new QueryWrapper<>();
+        queryWrapper1.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
+        queryWrapper1.ge("create_time", time);
+        queryWrapper1.select(" IFNULL(sum(sale_money),'0') saleMoney");
+        SaleDetail saleDetail = detailMapper.selectOne(queryWrapper1);//本月销售额
+        queryWrapper1.clear();
+        queryWrapper1.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
+        queryWrapper1.between("create_time", dateTime2, time);
+        queryWrapper1.select(" IFNULL(sum(sale_money),'0') saleMoney");
+        SaleDetail saleDetail1 = detailMapper.selectOne(queryWrapper1);//上月销售额
+
+        List<MoneyForecast> list = new ArrayList<>();
+        BigDecimal math = new BigDecimal("10000");
+
+
+        MoneyForecast moneyForecast = new MoneyForecast();
+        moneyForecast.setType(0);
+        BigDecimal bg = new BigDecimal(saleDetail.getSaleMoney());
+        bg = bg.divide(math, 2, RoundingMode.HALF_UP);
+        moneyForecast.setSaleNumber(bg.toString());
+        BigDecimal bg1 =new BigDecimal(saleCost.getSaleCostMoney());
+        bg1 = bg1.divide(math, 2, RoundingMode.HALF_UP);
+        moneyForecast.setSaleCost(bg1.toString());
+        double v = Double.valueOf(saleDetail.getSaleMoney()) - Double.valueOf(saleCost.getSaleCostMoney());
+        BigDecimal fit = new BigDecimal(String.valueOf(v));
+        moneyForecast.setSaleProfit(fit.divide(math, 2, RoundingMode.HALF_UP).toString());
+
+        MoneyForecast moneyForecast1 = new MoneyForecast();
+        moneyForecast1.setType(1);
+        BigDecimal bg2 = new BigDecimal(saleDetail1.getSaleMoney());
+        bg2 = bg2.divide(math, 2, RoundingMode.HALF_UP);
+        moneyForecast1.setSaleNumber(bg2.toString());
+        BigDecimal bg3 = new BigDecimal(saleCost1.getSaleCostMoney());
+        bg3 = bg3.divide(math, 2, RoundingMode.HALF_UP);
+        moneyForecast1.setSaleCost(bg3.toString());
+        double v1 = Double.valueOf(saleDetail1.getSaleMoney()) - Double.valueOf(saleCost1.getSaleCostMoney());
+        BigDecimal profit = new BigDecimal(String.valueOf(v1));
+        moneyForecast.setSaleProfit(profit.divide(math, 2, RoundingMode.HALF_UP).toString());
+
+        list.add(moneyForecast);
+        list.add(moneyForecast1);
+
         return list;
     }
 }

+ 163 - 33
huimv-farm/src/main/java/vip/xiaonuo/money/service/impl/MoneyIncomeServiceImpl.java

@@ -1,17 +1,25 @@
 package vip.xiaonuo.money.service.impl;
 
+import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import org.springframework.beans.factory.annotation.Autowired;
+import vip.xiaonuo.common.pojo.CommonResult;
+import vip.xiaonuo.money.entity.MoneyBusiness;
 import vip.xiaonuo.money.entity.MoneyIncome;
 import vip.xiaonuo.money.entity.vo.MoneyIncomeVo;
+import vip.xiaonuo.money.mapper.MoneyBusinessMapper;
 import vip.xiaonuo.money.mapper.MoneyIncomeMapper;
+import vip.xiaonuo.money.param.MoneyIncomeAddParam;
 import vip.xiaonuo.money.param.MoneyIncomeParam;
 import vip.xiaonuo.money.service.IMoneyIncomeService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.text.DecimalFormat;
 import java.text.SimpleDateFormat;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -28,47 +36,77 @@ public class MoneyIncomeServiceImpl extends ServiceImpl<MoneyIncomeMapper, Money
 
     @Autowired
     private MoneyIncomeMapper incomeMapper;
+    @Autowired
+    private MoneyBusinessMapper businessMapper;
+
 
     @Override
     public MoneyIncomeVo getMoneyIncome(MoneyIncomeParam incomeParam) {
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
         String year = "";
         if ("".equals(incomeParam.getTime()) || null == incomeParam.getTime()) {
-             year = sdf.format(new Date());
+            year = sdf.format(new Date());
         } else {
-             year = incomeParam.getTime();
+            year = incomeParam.getTime();
         }
-        QueryWrapper<MoneyIncome> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("year", year).groupBy("company_type");
-        queryWrapper.select(" IFNULL(sum(year_target),'0') yearTarget,IFNULL(sum(year_actual),'0') yearActual,company_name companyName," +
-                "company_type companyType");
-        List<MoneyIncome> moneyIncomes = incomeMapper.selectList(queryWrapper);
-        DecimalFormat def = new DecimalFormat("0.00");
         MoneyIncomeVo incomeVo = new MoneyIncomeVo();
-        double target = 0.00;
+
+        QueryWrapper<MoneyIncome> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("year", year);
+        queryWrapper.select(" IFNULL(sum(year_target),'0') yearTarget");
+        MoneyIncome income = incomeMapper.selectOne(queryWrapper);//
+        BigDecimal math = new BigDecimal("10000");
+        BigDecimal bg = new BigDecimal(income.getYearTarget());
+        bg = bg.divide(math, 2, RoundingMode.HALF_UP);
+        incomeVo.setYearTarget(bg.toString());
+
+        QueryWrapper<MoneyBusiness> queryWrapper1 = new QueryWrapper<>();
+        queryWrapper1.between("create_time", year + "-01-01 00:00:00", year + "-12-31 23:59:59");
+        queryWrapper1.select(" IFNULL(sum(business_income),'0') businessIncome,org_id orgId").groupBy("org_id");
+        List<MoneyBusiness> businesses = businessMapper.selectList(queryWrapper1);//
         double actual = 0.00;
-        if (moneyIncomes.size() != 0) {
-            for (MoneyIncome moneyIncome : moneyIncomes) {
-                target = target + Double.valueOf(moneyIncome.getYearTarget());
-                actual = actual + Double.valueOf(moneyIncome.getYearActual());
-                if (moneyIncome.getCompanyType() == 1) {
-                    incomeVo.setShengWu(moneyIncome.getYearActual());
-                } else if (moneyIncome.getCompanyType() == 2) {
-                    incomeVo.setYingYang(moneyIncome.getYearActual());
-                } else if (moneyIncome.getCompanyType() == 3) {
-                    incomeVo.setXiaSha(moneyIncome.getYearActual());
-                }
-            }
-            incomeVo.setYearTarget(def.format(target));
-            incomeVo.setYearActual(def.format(actual));
-            incomeVo.setRank(def.format(actual / target));
-        } else {
-            incomeVo.setRank("0");
+
+        if (businesses.size() == 0) {
             incomeVo.setYearActual("0");
-            incomeVo.setYearTarget("0");
-            incomeVo.setShengWu("0");
-            incomeVo.setYingYang("0");
             incomeVo.setXiaSha("0");
+            incomeVo.setYingYang("0");
+            incomeVo.setShengWu("0");
+        } else {
+            for (MoneyBusiness business : businesses) {
+                if (business.getOrgId() != null) {
+                    if (business.getOrgId().equals("1543842934270394368")) {
+                        BigDecimal bg1 = new BigDecimal(business.getBusinessIncome());
+                        bg1 = bg1.divide(math, 2, RoundingMode.HALF_UP);
+                        incomeVo.setShengWu(bg1.toString());
+                        actual = actual + Double.valueOf(business.getBusinessIncome());
+                    } else if (business.getOrgId().equals("1856160630562635777")) {
+                        BigDecimal bg2 = new BigDecimal(business.getBusinessIncome());
+                        bg2 = bg2.divide(math, 2, RoundingMode.HALF_UP);
+                        incomeVo.setYingYang(bg2.toString());
+                        actual = actual + Double.valueOf(business.getBusinessIncome());
+                    } else if (business.getOrgId().equals("1856160687106048001")) {
+                        BigDecimal bg3 = new BigDecimal(business.getBusinessIncome());
+                        bg3 = bg3.divide(math, 2, RoundingMode.HALF_UP);
+                        incomeVo.setXiaSha(bg3.toString());
+                        actual = actual + Double.valueOf(business.getBusinessIncome());
+                    }
+                }
+            }
+            BigDecimal bg4 = new BigDecimal(String.valueOf(actual));
+            bg4 = bg4.divide(math, 2, RoundingMode.HALF_UP);
+            incomeVo.setYearActual(bg4.toString());
+        }
+
+        DecimalFormat def = new DecimalFormat("0.00");
+        if (Double.valueOf(income.getYearTarget()) == 0) {
+            incomeVo.setRank("100");
+        }else{
+            double v = actual / Double.valueOf(incomeVo.getYearTarget());
+            if (v > 100) {
+                incomeVo.setRank("100");
+            } else {
+                incomeVo.setRank(def.format(v));
+            }
         }
 
         return incomeVo;
@@ -83,12 +121,104 @@ public class MoneyIncomeServiceImpl extends ServiceImpl<MoneyIncomeMapper, Money
         } else {
             year = incomeParam.getTime();
         }
+        List<MoneyIncome> moneyIncomes = new ArrayList<>();
+        BigDecimal math = new BigDecimal("10000");
+
+        MoneyIncome income = new MoneyIncome();
+        MoneyIncome income1 = new MoneyIncome();
+        MoneyIncome income2 = new MoneyIncome();
+
+
         QueryWrapper<MoneyIncome> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq("year", year).groupBy("company_type");
-        queryWrapper.select(" IFNULL(sum(year_target),'0') yearTarget,IFNULL(sum(year_actual),'0') yearActual,company_name companyName," +
-                "company_type companyType");
-        List<MoneyIncome> moneyIncomes = incomeMapper.selectList(queryWrapper);
+        queryWrapper.eq("year", year);
+        queryWrapper.select(" IFNULL(sum(year_target),'0') yearTarget,org_id,company_name companyName").groupBy("org_id");
+        List<MoneyIncome> incomes = incomeMapper.selectList(queryWrapper);//
+        if (incomes.size() == 0) {
+            income.setYearTarget("0");
+            income1.setYearTarget("0");
+            income2.setYearTarget("0");
+        } else {
+            for (MoneyIncome moneyIncome : incomes) {
+                if (moneyIncome.getOrgId().equals("1543842934270394368")) {
+                    BigDecimal bg1 = new BigDecimal(moneyIncome.getYearTarget());
+                    bg1 = bg1.divide(math, 2, RoundingMode.HALF_UP);
+                    income.setYearTarget(bg1.toString());
+                    income.setCompanyName(moneyIncome.getCompanyName());
+                    income.setCompanyType(1);
+                } else if (moneyIncome.getOrgId().equals("1856160630562635777")) {
+                    BigDecimal bg2 = new BigDecimal(moneyIncome.getYearTarget());
+                    bg2 = bg2.divide(math, 2, RoundingMode.HALF_UP);
+                    income1.setYearTarget(bg2.toString());
+                    income1.setCompanyName(moneyIncome.getCompanyName());
+                    income1.setCompanyType(2);
+                } else if (moneyIncome.getOrgId().equals("1856160687106048001")) {
+                    BigDecimal bg3 = new BigDecimal(moneyIncome.getYearTarget());
+                    bg3 = bg3.divide(math, 2, RoundingMode.HALF_UP);
+                    income2.setYearTarget(bg3.toString());
+                    income2.setCompanyName(moneyIncome.getCompanyName());
+                    income2.setCompanyType(3);
+                }
+            }
+        }
+        QueryWrapper<MoneyBusiness> queryWrapper1 = new QueryWrapper<>();
+        queryWrapper1.between("create_time", year + "-01-01 00:00:00", year + "-12-31 23:59:59");
+        queryWrapper1.select(" IFNULL(sum(business_income),'0') businessIncome,org_id orgId").groupBy("org_id");
+        List<MoneyBusiness> businesses = businessMapper.selectList(queryWrapper1);//
+        if (businesses.size() == 0) {
+            income.setYearActual("0");
+            income1.setYearActual("0");
+            income2.setYearActual("0");
+        } else {
+            for (MoneyBusiness business : businesses) {
+                if (business.getOrgId() != null) {
+                    if (business.getOrgId().equals("1543842934270394368")) {
+                        BigDecimal bg1 = new BigDecimal(business.getBusinessIncome());
+                        bg1 = bg1.divide(math, 2, RoundingMode.HALF_UP);
+                        income.setYearActual(bg1.toString());
+                    } else if (business.getOrgId().equals("1856160630562635777")) {
+                        BigDecimal bg2 = new BigDecimal(business.getBusinessIncome());
+                        bg2 = bg2.divide(math, 2, RoundingMode.HALF_UP);
+                        income1.setYearActual(bg2.toString());
+                    } else if (business.getOrgId().equals("1856160687106048001")) {
+                        BigDecimal bg3 = new BigDecimal(business.getBusinessIncome());
+                        bg3 = bg3.divide(math, 2, RoundingMode.HALF_UP);
+                        income2.setYearActual(bg3.toString());
+                    }
+                }
+            }
+        }
+        income.setCompanyName("花园生物");
+        income1.setCompanyName("花园营养");
+        income2.setCompanyName("花园下沙");
+
+        moneyIncomes.add(income);
+        moneyIncomes.add(income1);
+        moneyIncomes.add(income2);
+
         return moneyIncomes;
     }
 
+    @Override
+    public CommonResult add(MoneyIncomeAddParam addParam) {
+        String orgId = addParam.getOrgId();
+        String time = addParam.getTime();
+        QueryWrapper<MoneyIncome> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("year", time).eq("org_id", orgId);
+        MoneyIncome moneyIncome = incomeMapper.selectOne(queryWrapper);
+        if (ObjectUtil.isNotEmpty(moneyIncome)) {
+            moneyIncome.setCompanyName(addParam.getCompany());
+            moneyIncome.setYear(addParam.getTime());
+            moneyIncome.setYearTarget(addParam.getYearTarget());
+            incomeMapper.updateById(moneyIncome);
+        } else {
+            MoneyIncome income = new MoneyIncome();
+            income.setCompanyName(addParam.getCompany());
+            income.setYear(addParam.getTime());
+            income.setYearTarget(addParam.getYearTarget());
+            income.setOrgId(orgId);
+            incomeMapper.insert(income);
+        }
+        return CommonResult.ok();
+    }
+
 }

+ 27 - 4
huimv-farm/src/main/java/vip/xiaonuo/money/service/impl/MoneyOverdueServiceImpl.java

@@ -1,5 +1,6 @@
 package vip.xiaonuo.money.service.impl;
 
+import cn.hutool.core.date.DateUtil;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONException;
 import com.alibaba.fastjson.JSONObject;
@@ -16,6 +17,8 @@ import vip.xiaonuo.money.service.IMoneyOverdueService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.text.DecimalFormat;
 import java.util.*;
 
@@ -100,14 +103,26 @@ public class MoneyOverdueServiceImpl extends ServiceImpl<MoneyOverdueMapper, Mon
     public JSONArray userRank(MoneyOverdueParam overdueParam) {
         String orgId = overdueParam.getOrgId();
         QueryWrapper<MoneyOverdue> queryWrapper = new QueryWrapper<>();
+        String time = overdueParam.getTime();
+        if ("".equals(time) || null == time) {
+            queryWrapper.ge("date_time", DateUtil.beginOfMonth(new Date()));
+        } else {
+            queryWrapper.between("date_time", time + "-01 00:00:00", time + "-31 23:59:59");
+        }
         queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
+        queryWrapper.eq(StringUtils.isNotBlank(overdueParam.getUserName()), "user_name", overdueParam.getUserName());
         JSONArray jsonArray = new JSONArray();
         List<MoneyBorrowUserVo> userRank = overdueMapper.getUserRank(queryWrapper);
+        BigDecimal math = new BigDecimal("10000");
         if (userRank.size() != 0) {
             for (MoneyBorrowUserVo moneyBorrowUserVo : userRank) {
                 JSONObject jsonObject = new JSONObject();
-                jsonObject.put("collectPrice", moneyBorrowUserVo.getCollectPrice());
-                jsonObject.put("overduePrice", moneyBorrowUserVo.getOverduePrice());
+                BigDecimal bg = new BigDecimal(moneyBorrowUserVo.getCollectPrice());
+                bg = bg.divide(math, 2, RoundingMode.HALF_UP);
+                BigDecimal bg1 = new BigDecimal( moneyBorrowUserVo.getOverduePrice());
+                bg1 = bg1.divide(math, 2, RoundingMode.HALF_UP);
+                jsonObject.put("collectPrice",bg.toString());
+                jsonObject.put("overduePrice", bg1.toString());
                 jsonObject.put("userName", moneyBorrowUserVo.getUserName());
                 jsonArray.add(jsonObject);
             }
@@ -122,9 +137,17 @@ public class MoneyOverdueServiceImpl extends ServiceImpl<MoneyOverdueMapper, Mon
         Integer pageNum = overduePageParam.getPageNum();
         Integer pageSize = overduePageParam.getPageSize();
         QueryWrapper<MoneyOverdue> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
+        queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId).orderByDesc("date_time");
         Page page = new Page<MoneyOverdue>(pageNum, pageSize);
-        return this.page(page, queryWrapper);
+        Page selectPage = overdueMapper.selectPage(page, queryWrapper);
+        List<MoneyOverdue> records = selectPage.getRecords();
+        BigDecimal math = new BigDecimal("10000");
+        for (MoneyOverdue record : records) {
+            BigDecimal bg = new BigDecimal(record.getCollectPrice());
+            bg = bg.divide(math, 2, RoundingMode.HALF_UP);
+            record.setCollectPrice(bg.toString());
+        }
+        return overdueMapper.selectPage(page, queryWrapper);
     }
 
     /*数组排序*/

+ 55 - 13
huimv-farm/src/main/java/vip/xiaonuo/money/service/impl/MoneyProducePriceServiceImpl.java

@@ -2,17 +2,26 @@ package vip.xiaonuo.money.service.impl;
 
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ObjectUtil;
 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.money.entity.MoneyProducePrice;
+import vip.xiaonuo.money.entity.vo.MoneyBorrowPriceVo;
 import vip.xiaonuo.money.entity.vo.MoneyProduceVo;
 import vip.xiaonuo.money.mapper.MoneyProducePriceMapper;
 import vip.xiaonuo.money.param.MoneyInOutParam;
 import vip.xiaonuo.money.service.IMoneyProducePriceService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
+import vip.xiaonuo.sale.entity.SaleCost;
+import vip.xiaonuo.sale.entity.SaleDetail;
+import vip.xiaonuo.sale.mapper.SaleCostMapper;
+import vip.xiaonuo.sale.mapper.SaleDetailMapper;
 
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -30,6 +39,13 @@ public class MoneyProducePriceServiceImpl extends ServiceImpl<MoneyProducePriceM
 
     @Autowired
     private MoneyProducePriceMapper producePriceMapper;
+
+    @Autowired
+    private SaleDetailMapper detailMapper;
+    @Autowired
+    private SaleCostMapper costMapper;
+
+
     @Override
     public List<MoneyProducePrice> listProduceProfit(MoneyInOutParam outParam) {
         QueryWrapper<MoneyProducePrice> queryWrapper = new QueryWrapper<>();
@@ -42,22 +58,48 @@ public class MoneyProducePriceServiceImpl extends ServiceImpl<MoneyProducePriceM
 
     @Override
     public List<MoneyProduceVo> listProduce(MoneyInOutParam outParam) {
-        DateTime dateTime = DateUtil.beginOfYear(new Date());
-        QueryWrapper<MoneyProducePrice> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq(StringUtils.isNotBlank(outParam.getOrgId()), "org_id", outParam.getOrgId());
-        queryWrapper.ge("create_time",dateTime).groupBy("produce_name,DATE_FORMAT(create_time,'%Y-%m')");
-        queryWrapper.orderByAsc("create_time");
-        List<MoneyProducePrice> prices = producePriceMapper.selectList(queryWrapper);
+        String orgId = outParam.getOrgId();
+        DateTime year = DateUtil.beginOfYear(new Date());
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
+        String format = sdf.format(year);
         List<MoneyProduceVo> list = new ArrayList<>();
-        if (prices.size() != 0) {
-            for (MoneyProducePrice price : prices) {
-                MoneyProduceVo vo = new MoneyProduceVo();
-                vo.setCost(price.getCost());
-                vo.setIncome(price.getIncome());
-                vo.setTime(price.getCreateTime());
-                list.add(vo);
+        BigDecimal math = new BigDecimal("10000");
+        for (int i = 1; i < 13; i++) {
+            MoneyProduceVo vo = new MoneyProduceVo();
+            QueryWrapper<SaleCost> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
+            queryWrapper.select(" IFNULL(sum(sale_cost_money),'0') saleCostMoney");
+            QueryWrapper<SaleDetail> queryWrapper1 = new QueryWrapper<>();
+            queryWrapper1.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
+            queryWrapper1.select(" IFNULL(sum(sale_money),'0') saleMoney");
+            if (i < 10) {
+                vo.setTime(format+"-0"+i);
+                queryWrapper.between("create_time", format + "-0" + i + "-01 00:00:00", format + "-0" + i + "-31 23:59:59");
+                queryWrapper1.between("create_time", format + "-0" + i + "-01 00:00:00", format + "-0" + i + "-31 23:59:59");
+            } else {
+                vo.setTime(format+"-"+i);
+                queryWrapper.between("create_time", format + "-" + i + "-01 00:00:00", format + "-" + i + "-31 23:59:59");
+                queryWrapper1.between("create_time", format + "-" + i + "-01 00:00:00", format + "-" + i + "-31 23:59:59");
+            }
+            SaleCost saleCost = costMapper.selectOne(queryWrapper);//销售成本
+            SaleDetail saleDetail = detailMapper.selectOne(queryWrapper1);//销售额
+            if (ObjectUtil.isEmpty(saleCost)) {
+                vo.setCost("0");
+            } else {
+                BigDecimal bg = new BigDecimal(saleCost.getSaleCostMoney());
+                bg = bg.divide(math, 2, RoundingMode.HALF_UP);
+                vo.setCost(bg.toString());
             }
+            if (ObjectUtil.isEmpty(saleDetail)) {
+                vo.setCost("0");
+            } else {
+                BigDecimal bg = new BigDecimal(saleDetail.getSaleMoney());
+                bg = bg.divide(math, 2, RoundingMode.HALF_UP);
+                vo.setCost(bg.toString());
+            }
+            list.add(vo);
         }
+
         return list;
     }
 

+ 5 - 5
huimv-farm/src/main/java/vip/xiaonuo/money/service/impl/MoneyProduceServiceImpl.java

@@ -123,31 +123,31 @@ public class MoneyProduceServiceImpl extends ServiceImpl<MoneyProduceMapper, Mon
                     jsonObject.put("createTime", produce.getCreateTime());
                     break;
                 case 1:
-                    BigDecimal bg1=new BigDecimal(produce.getNfCholesterol());
+                    BigDecimal bg1=new BigDecimal(produce.getBreedCholesterol());
                     bg1 = bg1.divide(math, 2, RoundingMode.HALF_UP);
                     jsonObject.put("value", bg1.toString());
                     jsonObject.put("createTime", produce.getCreateTime());
                     break;
                 case 2:
-                    BigDecimal bg2=new BigDecimal(produce.getNfCholesterol());
+                    BigDecimal bg2=new BigDecimal(produce.getSheepAlcohol());
                     bg2 = bg2.divide(math, 2, RoundingMode.HALF_UP);
                     jsonObject.put("value", bg2.toString());
                     jsonObject.put("createTime", produce.getCreateTime());
                     break;
                 case 3:
-                    BigDecimal bg3=new BigDecimal(produce.getNfCholesterol());
+                    BigDecimal bg3=new BigDecimal(produce.getSheepSour());
                     bg3 = bg3.divide(math, 2, RoundingMode.HALF_UP);
                     jsonObject.put("value", bg3.toString());
                     jsonObject.put("createTime", produce.getCreateTime());
                     break;
                 case 4:
-                    BigDecimal bg4=new BigDecimal(produce.getNfCholesterol());
+                    BigDecimal bg4=new BigDecimal(produce.getSheepSourBing());
                     bg4 = bg4.divide(math, 2, RoundingMode.HALF_UP);
                     jsonObject.put("value",bg4.toString());
                     jsonObject.put("createTime", produce.getCreateTime());
                     break;
                 case 5:
-                    BigDecimal bg5=new BigDecimal(produce.getNfCholesterol());
+                    BigDecimal bg5=new BigDecimal(produce.getOther());
                     bg5 = bg5.divide(math, 2, RoundingMode.HALF_UP);
                     jsonObject.put("value", bg5.toString());
                     jsonObject.put("createTime", produce.getCreateTime());

+ 10 - 1
huimv-farm/src/main/java/vip/xiaonuo/production/service/impl/ProductionTargetServiceImpl.java

@@ -10,6 +10,9 @@ import vip.xiaonuo.production.service.IProductionTargetService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+
 /**
  * <p>
  * 生产管控指标 服务实现类
@@ -27,14 +30,20 @@ public class ProductionTargetServiceImpl extends ServiceImpl<ProductionTargetMap
     @Override
     public ProductionTarget getTarget(ProductionParam productionParam) {
         String orgId = productionParam.getOrgId();
+        String time = productionParam.getTime();
         String locationName = productionParam.getLocationName();
         QueryWrapper<ProductionTarget> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
+        queryWrapper.between("create_time", time + "-01 00:00:00", time + "-31 23:59:59");
         queryWrapper.select(" IFNULL(sum(plan_production),'0') planProduction," +
                 "convert(IFNULL(avg(plan_complete_rate),'0'),decimal(10,2)) planCompleteRate,IFNULL(sum(actual_production),'0') actualProduction," +
                 "convert(IFNULL(avg(receive_rate),'0'),decimal(10,2)) receiveRate,IFNULL(sum(production_energy),'0') productionEnergy");
         queryWrapper.eq(StringUtils.isNotBlank(locationName), "location_name", locationName);
-        return targetMapper.selectOne(queryWrapper);
+        ProductionTarget productionTarget = targetMapper.selectOne(queryWrapper);
+        BigDecimal math = new BigDecimal("10000");
+        BigDecimal bg = new BigDecimal(productionTarget.getActualProduction());
+        productionTarget.setActualProduction(bg.divide(math, 2, RoundingMode.HALF_UP).toString());
+        return productionTarget;
     }
 
 }

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

@@ -11,6 +11,8 @@ import vip.xiaonuo.production.service.IProductionYieldService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.Date;
 import java.util.List;
 
@@ -47,7 +49,13 @@ public class ProductionYieldServiceImpl extends ServiceImpl<ProductionYieldMappe
             queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y-%m')");
         }
         queryWrapper.orderByAsc("create_time");
-        return yieldMapper.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());
+        }
+        return productionYields;
     }
 
 }

+ 5 - 0
huimv-farm/src/main/java/vip/xiaonuo/purchase/param/PurchaseOrderParam.java

@@ -36,4 +36,9 @@ public class PurchaseOrderParam {
     @ApiModelProperty(value = "采购材料类型", required = true)
     private String orderType;
 
+
+    @ApiModelProperty(value = "时间'2024-10'", required = true)
+    private String time;
+
+
 }

+ 86 - 26
huimv-farm/src/main/java/vip/xiaonuo/purchase/service/impl/PurchaseOrderServiceImpl.java

@@ -8,6 +8,7 @@ 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 io.swagger.models.auth.In;
 import org.springframework.beans.factory.annotation.Autowired;
 import vip.xiaonuo.purchase.entity.PurchaseOrder;
 import vip.xiaonuo.purchase.entity.vo.*;
@@ -23,6 +24,7 @@ import java.math.RoundingMode;
 import java.text.DecimalFormat;
 import java.text.SimpleDateFormat;
 import java.time.LocalDate;
+import java.time.YearMonth;
 import java.time.temporal.ChronoUnit;
 import java.util.*;
 
@@ -43,17 +45,62 @@ public class PurchaseOrderServiceImpl extends ServiceImpl<PurchaseOrderMapper, P
     @Override
     public PurchaseOrderVo getOrder(PurchaseParam purchaseParam) {
         String orgId = purchaseParam.getOrgId();
+        PurchaseOrderVo vo = new PurchaseOrderVo();
         QueryWrapper<PurchaseOrder> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId).orderByAsc("create_time");
         String time = purchaseParam.getTime();
         DateTime dateTime = DateUtil.beginOfYear(new Date());
         if ("".equals(time) || null == time) {
             queryWrapper.ge("create_time", dateTime);
+            DateTime time1 = DateUtil.beginOfMonth(new Date());
+            DateTime last = DateUtil.lastMonth();
+            DateTime beginOfMonth = DateUtil.beginOfMonth(last);
+            DateTime endOfMonth = DateUtil.endOfMonth(last);
+            QueryWrapper<PurchaseOrder> queryWrapper1 = new QueryWrapper<>();
+            queryWrapper1.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
+            queryWrapper1.ge("create_time", time1);
+            queryWrapper1.select(" IFNULL(sum(invoice_price),'0') invoicePrice");
+            PurchaseOrder order = purchaseOrderMapper.selectOne(queryWrapper1);//本月发票金额
+            queryWrapper1.clear();
+            queryWrapper1.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
+            queryWrapper1.select(" IFNULL(sum(invoice_price),'0') invoicePrice");
+            queryWrapper1.between("create_time", beginOfMonth, endOfMonth);
+            PurchaseOrder order1 = purchaseOrderMapper.selectOne(queryWrapper1);//上月发票金额
+            if (Double.valueOf(order.getInvoicePrice()).equals(0)) {
+                vo.setMonthRank("0");
+            } else if (Double.valueOf(order1.getInvoicePrice()).equals(0)||order1.getInvoicePrice()==null) {
+                vo.setMonthRank("100");
+            } else {
+                DecimalFormat def = new DecimalFormat("0.00");
+                vo.setMonthRank(def.format((Double.valueOf(order.getInvoicePrice()) / Double.valueOf(order1.getInvoicePrice()))));
+            }
         } else {
-            queryWrapper.between("create_time", time+"-01 00:00:00", time+"-31 23:59:59");
+            queryWrapper.between("create_time", time + "-01 00:00:00", time + "-31 23:59:59");
+            String year = time.substring(0, 4);
+            String month = time.substring(5, 7);
+            YearMonth yearMonth = YearMonth.of(Integer.parseInt(year), Integer.parseInt(month));
+            YearMonth previousMonth = yearMonth.minusMonths(1);
+            QueryWrapper<PurchaseOrder> queryWrapper1 = new QueryWrapper<>();
+            queryWrapper1.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
+            queryWrapper1.between("create_time", time + "-01 00:00:00", time + "-31 23:59:59");
+            queryWrapper1.select(" sum(invoice_price) invoicePrice");
+            PurchaseOrder order = purchaseOrderMapper.selectOne(queryWrapper1);//本月发票金额
+            queryWrapper1.clear();
+            queryWrapper1.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
+            queryWrapper1.select(" sum(invoice_price) invoicePrice");
+            queryWrapper1.between("create_time", previousMonth + "-01 00:00:00", previousMonth + "-31 23:59:59");
+            PurchaseOrder order1 = purchaseOrderMapper.selectOne(queryWrapper1);//上月发票金额
+            if (ObjectUtil.isEmpty(order)) {
+                vo.setMonthRank("0");
+            } else if (ObjectUtil.isEmpty(order1)||order1.getInvoicePrice().equals("0")) {
+                vo.setMonthRank("100");
+            } else {
+                DecimalFormat def = new DecimalFormat("0.00");
+                vo.setMonthRank(def.format((Double.valueOf(order.getInvoicePrice()) - Double.valueOf(order1.getInvoicePrice()))/Double.valueOf(order1.getInvoicePrice())*100));
+            }
         }
         List<PurchaseOrder> purchaseOrders = purchaseOrderMapper.selectList(queryWrapper);
-        PurchaseOrderVo vo = new PurchaseOrderVo();
+
         double money = 0.00;
         double acceptNumber = 0.00;
         double acceptMoney = 0.00;
@@ -89,7 +136,6 @@ public class PurchaseOrderServiceImpl extends ServiceImpl<PurchaseOrderMapper, P
             }
 
         } else {
-            vo.setMonthRank("0");
             vo.setRank("0");
             vo.setOrderNumber("0");
         }
@@ -98,32 +144,34 @@ public class PurchaseOrderServiceImpl extends ServiceImpl<PurchaseOrderMapper, P
         if ("".equals(time) || null == time) {
             queryWrapper2.ge("create_time", dateTime);
         } else {
-            queryWrapper2.between("create_time", time+"-01 00:00:00", time+"-31 23:59:59");
+            queryWrapper2.between("create_time", time + "-01 00:00:00", time + "-31 23:59:59");
         }
         queryWrapper2.select(" CONVERT(IFNULL(avg(rank),'0'),decimal(10,2)) 'rank',CONVERT(IFNULL(avg(month_rank),'0'),decimal(10,2)) 'monthRank'");
         PurchaseOrder order = purchaseOrderMapper.selectOne(queryWrapper2);
 
         vo.setRank(order.getRank());
-        vo.setMonthRank(order.getMonthRank());
         vo.setOrderNumber(String.valueOf(purchaseOrders.size()));
 
-        vo.setPurchaseMoney(def.format(money/10000));
-        vo.setMaterialAcceptPrice(def.format(acceptMoney/10000));
+        vo.setPurchaseMoney(def.format(money / 10000));
+        vo.setMaterialAcceptPrice(def.format(acceptMoney / 10000));
         vo.setMaterialAcceptNumber(def.format(acceptNumber));
         vo.setEnterNumber(def.format(enterNumber));
-        vo.setEnterPrice(def.format(enterMoney/10000));
+        vo.setEnterPrice(def.format(enterMoney / 10000));
         vo.setInvoiceNumber(purchaseOrders.size());
-        vo.setInvoicePrice(def.format(invoiceMoney/10000));
+        vo.setInvoicePrice(def.format(invoiceMoney / 10000));
+
 
+        String year = time.substring(0, 4);
+        int i = Integer.parseInt(year);
         LocalDate currentDate = LocalDate.now();
         int lastYear = currentDate.getYear() - 1;
         QueryWrapper<PurchaseOrder> queryWrapper1 = new QueryWrapper<>();
-        queryWrapper1.eq(StringUtils.isNotBlank(orgId), "org_id", orgId).orderByAsc("create_time");
-        queryWrapper1.between("create_time", lastYear + "-01-01 00:00:00", lastYear + "-12-31 23:59:59");
+        queryWrapper1.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
+        queryWrapper1.between("create_time", i-1 + "-01-01 00:00:00", i-1 + "-12-31 23:59:59");
         queryWrapper1.select(" CONVERT(IFNULL(avg(purchase_money),'0'),decimal(10,2)) 'purchaseMoney'");
         PurchaseOrder purchaseOrder = purchaseOrderMapper.selectOne(queryWrapper1);
         if (ObjectUtil.isNotEmpty(purchaseOrder)) {
-            vo.setLastAvgPrice(def.format(Double.valueOf(purchaseOrder.getPurchaseMoney())/10000));
+            vo.setLastAvgPrice(def.format(Double.valueOf(purchaseOrder.getPurchaseMoney()) / 10000));
         } else {
             vo.setLastAvgPrice("0.00");
         }
@@ -133,16 +181,22 @@ public class PurchaseOrderServiceImpl extends ServiceImpl<PurchaseOrderMapper, P
     @Override
     public List<PurchaseOrderMoneyVo> listOrderMoney(PurchaseOrderParam orderParam) {
         String orgId = orderParam.getOrgId();
+        String time = orderParam.getTime();
         QueryWrapper<PurchaseOrder> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId).orderByAsc("create_time");
-        queryWrapper.select(" IFNULL(sum(purchase_money),'0') purchaseMoney,create_time createTime,count(*) invoiceNumber");
-
+        queryWrapper.select(" IFNULL(sum(purchase_money),'0') purchaseMoney,create_time createTime,IFNULL(count(*),'0') invoiceNumber");
+        BigDecimal math = new BigDecimal("10000");
         List<PurchaseOrderMoneyVo> list = new ArrayList<>();
-        if ("".equals(orderParam.getTimeType()) || null == orderParam.getTimeType()||"0".equals(orderParam.getTimeType())) {
+
+        if ( null == orderParam.getTimeType() || 0==(orderParam.getTimeType())) {
+//            if (StringUtils.isNotBlank(time)) {
+//                String year = time.substring(0, 4);
+//                queryWrapper.between("create_time", year + "-01-01 00:00:00", year + "-12-31 23:59:59");
+//            }
             if ("".equals(orderParam.getOrderType()) || null == orderParam.getOrderType()) {
                 queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y')");
             } else {
-                queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y')" + "," + orderParam.getOrderType());
+                queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y')");
             }
 
             List<PurchaseOrder> orders = purchaseOrderMapper.selectList(queryWrapper);
@@ -151,7 +205,9 @@ public class PurchaseOrderServiceImpl extends ServiceImpl<PurchaseOrderMapper, P
                 for (PurchaseOrder order : orders) {
                     PurchaseOrderMoneyVo vo = new PurchaseOrderMoneyVo();
                     vo.setTime(sdf.format(order.getCreateTime()));
-                    vo.setOrderMoney(order.getPurchaseMoney());
+                    BigDecimal bd = new BigDecimal(order.getPurchaseMoney());
+                    bd = bd.divide(math, 2, RoundingMode.HALF_UP);
+                    vo.setOrderMoney(bd.toString());
                     vo.setOrderNumber(order.getInvoiceNumber());
                     list.add(vo);
                 }
@@ -162,7 +218,7 @@ public class PurchaseOrderServiceImpl extends ServiceImpl<PurchaseOrderMapper, P
             if ("".equals(orderParam.getOrderType()) || null == orderParam.getOrderType()) {
                 queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y-%m')");
             } else {
-                queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y-%m')"/* + "," + orderParam.getOrderType()*/);
+                queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y-%m')");
             }
             List<PurchaseOrder> orders = purchaseOrderMapper.selectList(queryWrapper);
             if (orders.size() != 0) {
@@ -170,7 +226,9 @@ public class PurchaseOrderServiceImpl extends ServiceImpl<PurchaseOrderMapper, P
                 for (PurchaseOrder order : orders) {
                     PurchaseOrderMoneyVo vo = new PurchaseOrderMoneyVo();
                     vo.setTime(sdf.format(order.getCreateTime()));
-                    vo.setOrderMoney(order.getPurchaseMoney());
+                    BigDecimal bd = new BigDecimal(order.getPurchaseMoney());
+                    bd = bd.divide(math, 2, RoundingMode.HALF_UP);
+                    vo.setOrderMoney(bd.toString());
                     vo.setOrderNumber(order.getInvoiceNumber());
                     list.add(vo);
                 }
@@ -201,18 +259,20 @@ public class PurchaseOrderServiceImpl extends ServiceImpl<PurchaseOrderMapper, P
 
     @Override
     public List<PurchaseMoneyVo> listMoney(PurchaseParam param) {
+        String time = param.getTime();
+        String substring = time.substring(0, 4);
         QueryWrapper<PurchaseOrder> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq(StringUtils.isNotBlank(param.getOrgId()), "org_id", param.getOrgId());
-        DateTime year = DateUtil.beginOfYear(new Date());
-        queryWrapper.ge("create_time", year);
+
+        queryWrapper.between("create_time", Integer.parseInt(substring)+"-01-01 00:00:00",Integer.parseInt(substring) + "-12-31 23:59:59");
         queryWrapper.select(" IFNULL(sum(purchase_money),'0') purchaseMoney,create_time createTime");
         queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y-%m')");
         List<PurchaseOrder> orders = purchaseOrderMapper.selectList(queryWrapper);
         queryWrapper.clear();
         queryWrapper.eq(StringUtils.isNotBlank(param.getOrgId()), "org_id", param.getOrgId());
-        LocalDate currentDate = LocalDate.now();
-        int lastYear = currentDate.getYear() - 1;
-        queryWrapper.between("create_time", lastYear + "-01-01 00:00:00", lastYear + "-12-31 23:59:59");
+
+
+        queryWrapper.between("create_time", Integer.parseInt(substring)-1 + "-01-01 00:00:00", Integer.parseInt(substring)-1 + "-12-31 23:59:59");
         queryWrapper.select(" IFNULL(sum(purchase_money),'0') purchaseMoney,create_time createTime");
         queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y-%m')");
         List<PurchaseOrder> orders1 = purchaseOrderMapper.selectList(queryWrapper);
@@ -255,7 +315,7 @@ public class PurchaseOrderServiceImpl extends ServiceImpl<PurchaseOrderMapper, P
         if ("".equals(time) || null == time) {
             queryWrapper.ge("create_time", dateTime);
         } else {
-            queryWrapper.between("create_time", time+"-01 00:00:00", time+"-31 23:59:59");
+            queryWrapper.between("create_time", time + "-01 00:00:00", time + "-31 23:59:59");
         }
         queryWrapper.eq(StringUtils.isNotBlank(param.getOrgId()), "org_id", param.getOrgId());
         BigDecimal math = new BigDecimal("10000");
@@ -269,7 +329,7 @@ public class PurchaseOrderServiceImpl extends ServiceImpl<PurchaseOrderMapper, P
             }
         }
         JSONArray jsonArray = new JSONArray(list);
-        System.out.println("数组的大小"+jsonArray.size());
+        System.out.println("数组的大小" + jsonArray.size());
         JSONArray array = jsonArraySort(jsonArray, "value", true);
         return array;
     }

+ 3 - 0
huimv-farm/src/main/java/vip/xiaonuo/risk/param/RiskParam.java

@@ -30,5 +30,8 @@ public class RiskParam {
     @ApiModelProperty(value = "orgId", required = true)
     private String orgId;
 
+    @ApiModelProperty(value = "时间", required = true)
+    private String time;
+
 
 }

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

@@ -44,13 +44,13 @@ public class RiskSupplierServiceImpl extends ServiceImpl<RiskSupplierMapper, Ris
             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')" /*+ "," + supplier*/);
             }
         } 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')" /*+ "," + supplier*/);
             }
         }
         queryWrapper.orderByAsc("create_time");

+ 79 - 4
huimv-farm/src/main/java/vip/xiaonuo/risk/service/impl/RiskTargetServiceImpl.java

@@ -3,12 +3,21 @@ package vip.xiaonuo.risk.service.impl;
 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.RiskTarget;
 import vip.xiaonuo.risk.mapper.RiskTargetMapper;
 import vip.xiaonuo.risk.param.RiskParam;
 import vip.xiaonuo.risk.service.IRiskTargetService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
+import vip.xiaonuo.sale.entity.SaleDeliver;
+import vip.xiaonuo.sale.entity.SaleDetail;
+import vip.xiaonuo.sale.mapper.SaleDeliverMapper;
+import vip.xiaonuo.sale.mapper.SaleDetailMapper;
+
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 
 /**
  * <p>
@@ -23,14 +32,80 @@ public class RiskTargetServiceImpl extends ServiceImpl<RiskTargetMapper, RiskTar
 
     @Autowired
     private RiskTargetMapper riskTargetMapper;
+    @Autowired
+    private PurchaseOrderMapper orderMapper;
+    @Autowired
+    private SaleDetailMapper detailMapper;
+    @Autowired
+    private SaleDeliverMapper deliverMapper;
 
     @Override
     public RiskTarget getOneRisk(RiskParam riskParam) {
         String orgId = riskParam.getOrgId();
-        QueryWrapper<RiskTarget> queryWrapper = new QueryWrapper<>();
-        queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId)
-                .orderByDesc("create_time").last(" limit 1");
-        return riskTargetMapper.selectOne(queryWrapper);
+        String time = riskParam.getTime();//2025-01
+        String year = time.substring(0, 4);
+        RiskTarget target = new RiskTarget();
+        QueryWrapper<PurchaseOrder> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
+        queryWrapper.between("create_time", time + "-01 00:00:00", time + "-31 23:59:59");
+        queryWrapper.select(" IFNULL(sum(purchase_money),'0') purchaseMoney,IFNULL(sum(material_accept_price),'0') materialAcceptPrice" +
+                ",IFNULL(sum(enter_price),'0') enterPrice");
+        PurchaseOrder purchaseOrder = orderMapper.selectOne(queryWrapper);//yue
+        queryWrapper.clear();
+        queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
+        queryWrapper.between("create_time", Integer.parseInt(year) + "-01-01 00:00:00", Integer.parseInt(year) + "-12-31 23:59:59");
+        queryWrapper.select(" IFNULL(sum(purchase_money),'0') purchaseMoney,IFNULL(sum(material_accept_price),'0') materialAcceptPrice" +
+                ",IFNULL(sum(enter_price),'0') enterPrice");
+        PurchaseOrder purchaseOrder1 = orderMapper.selectOne(queryWrapper);//nian
+
+
+
+        QueryWrapper<SaleDetail> queryWrapper1 = new QueryWrapper<>();
+        queryWrapper1.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
+        queryWrapper1.between("create_time", time + "-01 00:00:00", time + "-31 23:59:59");
+        queryWrapper1.select(" IFNULL(sum(sale_money),'0') saleMoney,IFNULL(count(*),'0') saleNumber");
+        SaleDetail saleDetail = detailMapper.selectOne(queryWrapper1);//yue
+        queryWrapper1.clear();
+        queryWrapper1.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
+        queryWrapper1.between("create_time", Integer.parseInt(year) + "-01-01 00:00:00", Integer.parseInt(year) + "-12-31 23:59:59");
+        queryWrapper1.select(" IFNULL(sum(sale_money),'0') saleMoney,IFNULL(count(*),'0') saleNumber");
+        SaleDetail saleDetail1 = detailMapper.selectOne(queryWrapper1);
+
+        QueryWrapper<SaleDeliver> queryWrapper2 = new QueryWrapper<>();
+        queryWrapper2.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
+        queryWrapper2.between("create_time", time + "-01 00:00:00", time + "-31 23:59:59");
+        queryWrapper2.select(" IFNULL(sum(sale_deliver_money),'0') saleDeliverMoney");
+        SaleDeliver saleDeliver = deliverMapper.selectOne(queryWrapper2);
+        queryWrapper2.clear();
+        queryWrapper2.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
+        queryWrapper2.between("create_time", Integer.parseInt(year) + "-01-01 00:00:00", Integer.parseInt(year) + "-12-31 23:59:59");
+        queryWrapper2.select(" IFNULL(sum(sale_deliver_money),'0') saleDeliverMoney");
+        SaleDeliver saleDeliver1 = deliverMapper.selectOne(queryWrapper2);
+
+        BigDecimal math = new BigDecimal("10000");
+        BigDecimal bg = new BigDecimal(purchaseOrder.getPurchaseMoney());
+        target.setMonthOrderMoney(bg.divide(math, 2, RoundingMode.HALF_UP).toString());
+        BigDecimal bg1 = new BigDecimal(purchaseOrder1.getPurchaseMoney());
+        target.setYearOrderMoney(bg1.divide(math, 2, RoundingMode.HALF_UP).toString());
+        BigDecimal bg2 = new BigDecimal(purchaseOrder.getMaterialAcceptPrice());
+        target.setMonthMaterialMoney(bg2.divide(math, 2, RoundingMode.HALF_UP).toString());
+        BigDecimal bg3 = new BigDecimal(purchaseOrder1.getMaterialAcceptPrice());
+        target.setYearMaterialMoney(bg3.divide(math, 2, RoundingMode.HALF_UP).toString());
+        BigDecimal bg4 = new BigDecimal(purchaseOrder.getEnterPrice());
+        target.setMonthIncomeMoney(bg4.divide(math, 2, RoundingMode.HALF_UP).toString());
+        BigDecimal bg5 = new BigDecimal(purchaseOrder1.getEnterPrice());
+        target.setYearIncomeMoney(bg5.divide(math, 2, RoundingMode.HALF_UP).toString());
+        target.setMonthSaleNumber(saleDetail.getSaleNumber());
+        target.setYearSaleNumber(saleDetail1.getSaleNumber());
+        BigDecimal bg6 = new BigDecimal(saleDetail.getSaleMoney());
+        target.setMonthSaleMoney(bg6.divide(math, 2, RoundingMode.HALF_UP).toString());
+        BigDecimal bg7 = new BigDecimal(saleDetail1.getSaleMoney());
+        target.setYearSaleMoney(bg7.divide(math, 2, RoundingMode.HALF_UP).toString());
+        BigDecimal bg8 = new BigDecimal(saleDeliver.getSaleDeliverMoney());
+        target.setMonthDeliverMoney(bg8.divide(math, 2, RoundingMode.HALF_UP).toString());
+        BigDecimal bg9 = new BigDecimal(saleDeliver1.getSaleDeliverMoney());
+        target.setYearDeliverMoney(bg9.divide(math, 2, RoundingMode.HALF_UP).toString());
+        return target;
     }
 
 }

+ 2 - 0
huimv-farm/src/main/java/vip/xiaonuo/sale/param/SaleSalesmanParam.java

@@ -31,4 +31,6 @@ public class SaleSalesmanParam {
     private String orgId;
 
 
+    @ApiModelProperty(value = "time", required = true)
+    private String time;
 }

+ 1 - 1
huimv-farm/src/main/java/vip/xiaonuo/sale/service/impl/SaleDeliverServiceImpl.java

@@ -35,7 +35,7 @@ public class SaleDeliverServiceImpl extends ServiceImpl<SaleDeliverMapper, SaleD
         Integer timeType = deliverParam.getTimeType();
         QueryWrapper<SaleDeliver> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
-        queryWrapper.select(" IFNULL(sum(sale_deliver_number),'0') saleDeliverNumber,create_time createTime,IFNULL(sum(sale_deliver_money),'0') saleDeliverMoney");
+        queryWrapper.select(" CONVERT(IFNULL(sum(sale_deliver_number),'0'),decimal(10,2)) saleDeliverNumber,create_time createTime,IFNULL(sum(sale_deliver_money),'0') saleDeliverMoney");
         if (0 == timeType) {
             queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y')");
         } else {

+ 10 - 2
huimv-farm/src/main/java/vip/xiaonuo/sale/service/impl/SaleOrderServiceImpl.java

@@ -11,6 +11,8 @@ import vip.xiaonuo.sale.service.ISaleOrderService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.List;
 
 /**
@@ -33,14 +35,20 @@ public class SaleOrderServiceImpl extends ServiceImpl<SaleOrderMapper, SaleOrder
         Integer timeType = saleOrderParam.getTimeType();
         QueryWrapper<SaleOrder> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
-        queryWrapper.select(" IFNULL(sum(sale_number),'0') saleNumber,create_time createTime,IFNULL(sum(sale_money),'0') saleMoney");
+        queryWrapper.select(" CONVERT(IFNULL(sum(sale_number),'0'),decimal(10,2)) saleNumber,create_time createTime,IFNULL(sum(sale_money),'0') saleMoney");
         if (0 == timeType) {
             queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y')");
         } else {
             queryWrapper.groupBy("DATE_FORMAT(create_time,'%Y-%m')");
         }
         queryWrapper.orderByAsc("create_time");
-        return orderMapper.selectList(queryWrapper);
+        List<SaleOrder> saleOrders = orderMapper.selectList(queryWrapper);
+        BigDecimal math = new BigDecimal("10000");
+        for (SaleOrder saleOrder : saleOrders) {
+            BigDecimal bg = new BigDecimal(saleOrder.getSaleMoney());
+            saleOrder.setSaleMoney(bg.divide(math, 2, RoundingMode.HALF_UP).toString());
+        }
+        return saleOrders;
     }
 
 }

+ 63 - 5
huimv-farm/src/main/java/vip/xiaonuo/sale/service/impl/SaleSalesmanServiceImpl.java

@@ -1,6 +1,9 @@
 package vip.xiaonuo.sale.service.impl;
 
 import cn.hutool.core.date.DateUtil;
+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 org.springframework.beans.factory.annotation.Autowired;
@@ -11,8 +14,9 @@ import vip.xiaonuo.sale.service.ISaleSalesmanService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
-import java.util.Date;
-import java.util.List;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.*;
 
 /**
  * <p>
@@ -31,12 +35,66 @@ public class SaleSalesmanServiceImpl extends ServiceImpl<SaleSalesmanMapper, Sal
     @Override
     public List<SaleSalesman> getList(SaleSalesmanParam salesmanParam) {
         String orgId = salesmanParam.getOrgId();
+//        String time = salesmanParam.getTime();
         QueryWrapper<SaleSalesman> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
-        queryWrapper.ge("create_time", DateUtil.beginOfYear(new Date()));
+        queryWrapper.le("create_time", DateUtil.beginOfYear(new Date()));
         queryWrapper.select(" salesman_name salesmanName,IFNULL(sum(salesman_money),'0') salesmanMoney");
-        queryWrapper.groupBy("salesman_name,DATE_FORMAT(create_time,'%Y-%m')");
-        return salesmanMapper.selectList(queryWrapper);
+        queryWrapper.groupBy("salesman_name");
+        List<SaleSalesman> saleSalesmens = salesmanMapper.selectList(queryWrapper);
+        BigDecimal math = new BigDecimal("10000");
+        for (SaleSalesman saleSalesman : saleSalesmens) {
+            BigDecimal bg = new BigDecimal(saleSalesman.getSalesmanMoney());
+            saleSalesman.setSalesmanMoney(bg.divide(math, 2, RoundingMode.HALF_UP).toString());
+            if (saleSalesman.getSalesmanName() == null) {
+                saleSalesman.setSalesmanName("无名");
+            }
+        }
+        List<SaleSalesman> list = jsonArraySort(saleSalesmens, false);
+        return list;
     }
 
+    /*数组排序*/
+    public static List<SaleSalesman> jsonArraySort(List<SaleSalesman> jsonArr, boolean is_desc) {
+        //存放排序结果json数组
+        List<SaleSalesman> salesmanList = new ArrayList<>();
+        //用于排序的list
+        List<SaleSalesman> list = new ArrayList<>();
+        //将参数json数组每一项取出,放入list
+
+        for (int i = 0; i <jsonArr.size() ; i++) {
+            list.add(jsonArr.get(i));
+        }
+
+        //快速排序,重写compare方法,完成按指定字段比较,完成排序
+        Collections.sort(list, new Comparator<SaleSalesman>() {
+            @Override
+            public int compare(SaleSalesman o1, SaleSalesman o2) {
+                //如果用String接会导致一位数和两位数混合比对的时候不能准确比出来,要用int类型接
+                //String valA = new String();
+                //String valB = new String();
+                Float valA = 0.00f;
+                Float valB = 0.00f;
+                try {
+                    valA = Float.parseFloat(o1.getSalesmanMoney());
+                    valB = Float.parseFloat(o2.getSalesmanMoney());
+                } catch (JSONException e) {
+                    e.printStackTrace();
+                }
+                //是升序还是降序
+                if (is_desc) {
+                    return -valA.compareTo(valB);
+                } else {
+                    return -valB.compareTo(valA);
+                }
+
+            }
+        });
+        //将排序后结果放入结果jsonArray
+        for (int i = 0; i < jsonArr.size(); i++) {
+            salesmanList.add(list.get(i));
+        }
+
+        return salesmanList;
+    }
 }

+ 76 - 17
huimv-farm/src/main/java/vip/xiaonuo/sale/service/impl/SaleTargetServiceImpl.java

@@ -6,13 +6,18 @@ 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.sale.entity.SaleDeliver;
+import vip.xiaonuo.sale.entity.SaleInvoice;
+import vip.xiaonuo.sale.entity.SaleOrder;
 import vip.xiaonuo.sale.entity.SaleTarget;
-import vip.xiaonuo.sale.mapper.SaleTargetMapper;
+import vip.xiaonuo.sale.mapper.*;
 import vip.xiaonuo.sale.param.SaleParam;
 import vip.xiaonuo.sale.service.ISaleTargetService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.Date;
 
 /**
@@ -28,30 +33,84 @@ public class SaleTargetServiceImpl extends ServiceImpl<SaleTargetMapper, SaleTar
 
     @Autowired
     private SaleTargetMapper targetMapper;
+    @Autowired
+    private SaleInvoiceMapper invoiceMapper;
+    @Autowired
+    private SaleDeliverMapper deliverMapper;
+    @Autowired
+    private SaleOrderMapper orderMapper;
 
     @Override
     public JSONArray getTarget(SaleParam saleParam) {
         String orgId = saleParam.getOrgId();
         String time = saleParam.getTime();
+        String year = time.substring(0, 4);
+
+        //销售发货金额
+        QueryWrapper<SaleDeliver> deliverQueryWrapper = new QueryWrapper<>();
+        deliverQueryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
+        deliverQueryWrapper.between("create_time", time + "-01 00:00:00", time + "-31 23:59:59");
+        deliverQueryWrapper.select(" IFNULL(sum(sale_deliver_money),'0') saleDeliverMoney");
+        SaleDeliver monthDeliver = deliverMapper.selectOne(deliverQueryWrapper);
+        deliverQueryWrapper.clear();
+        deliverQueryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
+        deliverQueryWrapper.between("create_time", year + "-01-01 00:00:00", year + "-12-31 23:59:59");
+        deliverQueryWrapper.select(" IFNULL(sum(sale_deliver_money),'0') saleDeliverMoney");
+        SaleDeliver yearDeliver = deliverMapper.selectOne(deliverQueryWrapper);
+        //销售发票金额
+        QueryWrapper<SaleInvoice> invoiceQueryWrapper = new QueryWrapper<>();
+        invoiceQueryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
+        invoiceQueryWrapper.between("create_time", time + "-01 00:00:00", time + "-31 23:59:59");
+        invoiceQueryWrapper.select(" IFNULL(sum(sale_invoice_money),'0') saleInvoiceMoney");
+        SaleInvoice monthInvoice = invoiceMapper.selectOne(invoiceQueryWrapper);
+        invoiceQueryWrapper.clear();
+        invoiceQueryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
+        invoiceQueryWrapper.between("create_time", year + "-01-01 00:00:00", year + "-12-31 23:59:59");
+        invoiceQueryWrapper.select(" IFNULL(sum(sale_invoice_money),'0') saleInvoiceMoney");
+        SaleInvoice yearInvoice = invoiceMapper.selectOne(invoiceQueryWrapper);
+        //销售订单金额和合同金额
+        QueryWrapper<SaleOrder> orderQueryWrapper = new QueryWrapper<>();
+        orderQueryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
+        orderQueryWrapper.between("create_time", time + "-01 00:00:00", time + "-31 23:59:59");
+        orderQueryWrapper.select(" IFNULL(sum(sale_money),'0') saleMoney");
+        SaleOrder monthOrder = orderMapper.selectOne(orderQueryWrapper);
+        orderQueryWrapper.clear();
+        orderQueryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
+        orderQueryWrapper.between("create_time", year + "-01-01 00:00:00", year + "-12-31 23:59:59");
+        orderQueryWrapper.select(" IFNULL(sum(sale_money),'0') saleMoney");
+        SaleOrder yearOrder = orderMapper.selectOne(orderQueryWrapper);
+
+
         QueryWrapper<SaleTarget> queryWrapper = new QueryWrapper<>();
-        QueryWrapper<SaleTarget> queryWrapper1 = new QueryWrapper<>();
         queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
-        queryWrapper1.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
-        queryWrapper.select(" convert(IFNULL(avg(complete_rate),'0'),decimal(10,2)) completeRate,IFNULL(sum(visit_number),'0') visitNumber," +
-                "IFNULL(sum(contract_money),'0') contractMoney,IFNULL(sum(sale_order_money),'0') saleOrderMoney,IFNULL(sum(sale_deliver_money),'0') saleDeliverMoney," +
-                "IFNULL(sum(sale_invoice_money),'0') saleInvoiceMoney");
-        queryWrapper1.select(" convert(IFNULL(avg(complete_rate),'0'),decimal(10,2)) completeRate,IFNULL(sum(visit_number),'0') visitNumber," +
-                "IFNULL(sum(contract_money),'0') contractMoney,IFNULL(sum(sale_order_money),'0') saleOrderMoney,IFNULL(sum(sale_deliver_money),'0') saleDeliverMoney," +
-                "IFNULL(sum(sale_invoice_money),'0') saleInvoiceMoney");
-        if (StringUtils.isNotBlank(time)) {
-            queryWrapper.between("create_time", time + "-01 00:00:00", time + "-31 23:59:59");
-            queryWrapper1.between("create_time", time+"-01 00:00:00", time + "-31 23:59:59");
-        } else {
-            queryWrapper.ge("create_time", DateUtil.beginOfMonth(new Date()));
-            queryWrapper1.ge("create_time", DateUtil.beginOfYear(new Date()));
-        }
+        queryWrapper.between("create_time", time + "-01 00:00:00", time + "-31 23:59:59");
+        queryWrapper.select(" IFNULL(sum(visit_number),'0') visitNumber");
         SaleTarget monthTarget = targetMapper.selectOne(queryWrapper);
-        SaleTarget yearTarget = targetMapper.selectOne(queryWrapper1);
+        queryWrapper.clear();
+        queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
+        queryWrapper.between("create_time", year + "-01-01 00:00:00", year + "-12-31 23:59:59");
+        queryWrapper.select(" IFNULL(sum(visit_number),'0') visitNumber");
+        SaleTarget yearTarget = targetMapper.selectOne(queryWrapper);
+
+
+        BigDecimal math = new BigDecimal("10000");
+        BigDecimal bg = new BigDecimal(monthOrder.getSaleMoney());
+        BigDecimal bg1 = new BigDecimal(yearOrder.getSaleMoney());
+        BigDecimal bg2 = new BigDecimal(monthDeliver.getSaleDeliverMoney());
+        BigDecimal bg3 = new BigDecimal(yearDeliver.getSaleDeliverMoney());
+        BigDecimal bg4 = new BigDecimal(monthInvoice.getSaleInvoiceMoney());
+        BigDecimal bg5 = new BigDecimal(yearInvoice.getSaleInvoiceMoney());
+
+        monthTarget.setCompleteRate("0");
+        yearTarget.setCompleteRate("0");
+        monthTarget.setContractMoney(bg.divide(math, 2, RoundingMode.HALF_UP).toString());
+        yearTarget.setContractMoney(bg1.divide(math, 2, RoundingMode.HALF_UP).toString());
+        monthTarget.setSaleOrderMoney(bg.divide(math, 2, RoundingMode.HALF_UP).toString());
+        yearTarget.setSaleOrderMoney(bg1.divide(math, 2, RoundingMode.HALF_UP).toString());
+        monthTarget.setSaleDeliverMoney(bg2.divide(math, 2, RoundingMode.HALF_UP).toString());
+        yearTarget.setSaleDeliverMoney(bg3.divide(math, 2, RoundingMode.HALF_UP).toString());
+        monthTarget.setSaleInvoiceMoney(bg4.divide(math, 2, RoundingMode.HALF_UP).toString());
+        yearTarget.setSaleInvoiceMoney(bg5.divide(math, 2, RoundingMode.HALF_UP).toString());
         JSONArray jsonArray = new JSONArray();
         JSONObject jsonObject = new JSONObject();
         jsonObject.put("type", "month");

+ 2 - 1
huimv-farm/src/main/java/vip/xiaonuo/warehouse/controller/WarehouseStockController.java

@@ -22,6 +22,7 @@ import vip.xiaonuo.warehouse.entity.WarehouseStockVo;
 import vip.xiaonuo.warehouse.entity.vo.WarehouseStockSecondVo;
 import vip.xiaonuo.warehouse.param.WarehouseStockParam;
 import vip.xiaonuo.warehouse.param.WarehouseStockSecondParam;
+import vip.xiaonuo.warehouse.param.WarehouseStockTailParam;
 import vip.xiaonuo.warehouse.service.IWarehouseStockService;
 
 import java.util.List;
@@ -48,7 +49,7 @@ public class WarehouseStockController {
     @ApiOperationSupport(order = 1)
     @ApiOperation("仓库指标")
     @PostMapping("/warehouse-stock/getOneTail")
-    public CommonResult<WarehouseStockVo> getList(@RequestBody WarehouseStockParam stockParam) {
+    public CommonResult<WarehouseStockVo> getList(@RequestBody WarehouseStockTailParam stockParam) {
         return CommonResult.data(stockService.getOneTail(stockParam));
     }
 

+ 3 - 0
huimv-farm/src/main/java/vip/xiaonuo/warehouse/param/WarehouseStockDetailParam.java

@@ -39,4 +39,7 @@ public class WarehouseStockDetailParam {
     @ApiModelProperty(value = "页大小", required = true)
     private Integer pageSize;
 
+    @ApiModelProperty(value = "time", required = true)
+    private String time;
+
 }

+ 1 - 1
huimv-farm/src/main/java/vip/xiaonuo/warehouse/param/WarehouseStockParam.java

@@ -31,6 +31,6 @@ public class WarehouseStockParam {
     private String orgId;
 
 //    @ApiModelProperty(value = "时间类型 0为本年 1为本月", required = true)
-//    private Integer timeType;
+////    private Integer timeType;
 
 }

+ 3 - 0
huimv-farm/src/main/java/vip/xiaonuo/warehouse/param/WarehouseStockSecondParam.java

@@ -33,4 +33,7 @@ public class WarehouseStockSecondParam {
     @ApiModelProperty(value = "物料类型0原材料1成品2半成品3低值易耗品4包材5羊毛脂6鱼油", required = true)
     private Integer materialType;
 
+    @ApiModelProperty(value = "时间", required = true)
+    private String time;
+
 }

+ 2 - 1
huimv-farm/src/main/java/vip/xiaonuo/warehouse/service/IWarehouseStockService.java

@@ -8,6 +8,7 @@ import vip.xiaonuo.warehouse.entity.WarehouseStockVo;
 import vip.xiaonuo.warehouse.entity.vo.WarehouseStockSecondVo;
 import vip.xiaonuo.warehouse.param.WarehouseStockParam;
 import vip.xiaonuo.warehouse.param.WarehouseStockSecondParam;
+import vip.xiaonuo.warehouse.param.WarehouseStockTailParam;
 
 import java.util.List;
 
@@ -22,7 +23,7 @@ import java.util.List;
 public interface IWarehouseStockService extends IService<WarehouseStock> {
 
     //仓库指标
-    WarehouseStockVo getOneTail(WarehouseStockParam stockParam);
+    WarehouseStockVo getOneTail(WarehouseStockTailParam stockParam);
 
     //库存趋势分析
     List<WarehouseStock> listStockChange(WarehouseStockParam stockParam);

+ 2 - 0
huimv-farm/src/main/java/vip/xiaonuo/warehouse/service/impl/WarehouseStockDetailServiceImpl.java

@@ -29,7 +29,9 @@ public class WarehouseStockDetailServiceImpl extends ServiceImpl<WarehouseStockD
     @Override
     public Page<WarehouseStockDetail> listDetail(WarehouseStockDetailParam detailParam) {
         String orgId = detailParam.getOrgId();
+        String time = detailParam.getTime();
         QueryWrapper<WarehouseStockDetail> queryWrapper = new QueryWrapper<>();
+        queryWrapper.le("create_time", time + "-31 23:59:59");
         queryWrapper.eq(StringUtils.isNotBlank(orgId),"org_id", orgId);
         if (null == detailParam.getMaterialType()) {
         } else {

+ 62 - 16
huimv-farm/src/main/java/vip/xiaonuo/warehouse/service/impl/WarehouseStockServiceImpl.java

@@ -9,16 +9,16 @@ import org.springframework.beans.factory.annotation.Autowired;
 import vip.xiaonuo.warehouse.entity.*;
 
 import vip.xiaonuo.warehouse.entity.vo.WarehouseStockSecondVo;
-import vip.xiaonuo.warehouse.mapper.WarehouseIncomStockMapper;
-import vip.xiaonuo.warehouse.mapper.WarehouseOutStockMapper;
-import vip.xiaonuo.warehouse.mapper.WarehouseStockMapper;
-import vip.xiaonuo.warehouse.mapper.WarehouseStockSecondMapper;
+import vip.xiaonuo.warehouse.mapper.*;
 import vip.xiaonuo.warehouse.param.WarehouseStockParam;
 import vip.xiaonuo.warehouse.param.WarehouseStockSecondParam;
+import vip.xiaonuo.warehouse.param.WarehouseStockTailParam;
 import vip.xiaonuo.warehouse.service.IWarehouseStockService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.Date;
 import java.util.List;
 
@@ -41,23 +41,43 @@ public class WarehouseStockServiceImpl extends ServiceImpl<WarehouseStockMapper,
     private WarehouseOutStockMapper outStockMapper;
     @Autowired
     private WarehouseStockSecondMapper secondMapper;
+    @Autowired
+    private WarehouseStockDetailMapper detailMapper;
 
     @Override
-    public WarehouseStockVo getOneTail(WarehouseStockParam stockParam) {
+    public WarehouseStockVo getOneTail(WarehouseStockTailParam stockParam) {
         String orgId = stockParam.getOrgId();
         DateTime day = DateUtil.beginOfDay(new Date());
         QueryWrapper<WarehouseStock> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
-        queryWrapper.ge("create_time", day);
+        if ("".equals(stockParam.getTime()) || null == stockParam.getTime()) {
+            queryWrapper.ge("create_time", day);
+        } else {
+            queryWrapper.between("create_time", stockParam.getTime()+"-01 00:00:00",stockParam.getTime()+"-01 23:59:59");
+        }
+        queryWrapper.select(" IFNULL(sum(lanolin),'0') lanolin,IFNULL(sum(fish_oil),'0') fishOil");
         WarehouseStock warehouseStock = stockMapper.selectOne(queryWrapper);
-
         QueryWrapper<WarehouseIncomStock> incomQueryWrapper = new QueryWrapper<>();
         incomQueryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
-        incomQueryWrapper.ge("create_time", day);
+        if ("".equals(stockParam.getTime()) || null == stockParam.getTime()) {
+            incomQueryWrapper.ge("create_time", day);
+        } else {
+            incomQueryWrapper.between("create_time", stockParam.getTime()+"-01 00:00:00",stockParam.getTime()+"-01 23:59:59");
+        }
+        incomQueryWrapper.select(" IFNULL(sum(material),'0') material,IFNULL(sum(finish_produce),'0') finishProduce,IFNULL(sum(half_produce),'0') halfProduce" +
+                ",IFNULL(sum(low_value),'0') lowValue,IFNULL(sum(package_material),'0') packageMaterial,IFNULL(sum(lanolin),'0') lanolin" +
+                ",IFNULL(sum(fish_oil),'0') fishOil");
         WarehouseIncomStock incomeStock = incomStockMapper.selectOne(incomQueryWrapper);
         QueryWrapper<WarehouseOutStock> outQueryWrapper = new QueryWrapper<>();
         outQueryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
-        outQueryWrapper.ge("create_time", day);
+        if ("".equals(stockParam.getTime()) || null == stockParam.getTime()) {
+            outQueryWrapper.ge("create_time", day);
+        } else {
+            outQueryWrapper.between("create_time", stockParam.getTime()+"-01 00:00:00",stockParam.getTime()+"-01 23:59:59");
+        }
+        outQueryWrapper.select(" IFNULL(sum(material),'0') material,IFNULL(sum(finish_produce),'0') finishProduce,IFNULL(sum(half_produce),'0') halfProduce" +
+                ",IFNULL(sum(low_value),'0') lowValue,IFNULL(sum(package_material),'0') packageMaterial,IFNULL(sum(lanolin),'0') lanolin" +
+                ",IFNULL(sum(fish_oil),'0') fishOil");
         WarehouseOutStock outStock = outStockMapper.selectOne(outQueryWrapper);
         WarehouseStockVo vo = new WarehouseStockVo();
         if (ObjectUtil.isNotEmpty(warehouseStock)) {
@@ -121,10 +141,18 @@ public class WarehouseStockServiceImpl extends ServiceImpl<WarehouseStockMapper,
         outQueryWrapper.clear();
         incomQueryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
         incomQueryWrapper.select(" IFNULL(sum(lanolin),'0') lanolin,IFNULL(sum(fish_oil),'0') fishOil");
-        incomQueryWrapper.ge("create_time", month);
+        if ("".equals(stockParam.getTime()) || null == stockParam.getTime()) {
+            incomQueryWrapper.ge("create_time", month);
+        } else {
+            incomQueryWrapper.between("create_time", stockParam.getTime()+"-01 00:00:00",stockParam.getTime()+"-31 23:59:59");
+        }
         outQueryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
         outQueryWrapper.select(" IFNULL(sum(lanolin),'0') lanolin,IFNULL(sum(fish_oil),'0') fishOil");
-        outQueryWrapper.ge("create_time", month);
+        if ("".equals(stockParam.getTime()) || null == stockParam.getTime()) {
+            outQueryWrapper.ge("create_time", month);
+        } else {
+            outQueryWrapper.between("create_time", stockParam.getTime()+"-01 00:00:00",stockParam.getTime()+"-31 23:59:59");
+        }
         WarehouseIncomStock stock = incomStockMapper.selectOne(incomQueryWrapper);
         WarehouseOutStock outStock1 = outStockMapper.selectOne(outQueryWrapper);
         if (ObjectUtil.isNotEmpty(stock)) {
@@ -173,24 +201,42 @@ public class WarehouseStockServiceImpl extends ServiceImpl<WarehouseStockMapper,
     @Override
     public WarehouseStockSecondVo getSecond(WarehouseStockSecondParam param) {
         String orgId = param.getOrgId();
+        String time = param.getTime();
         Integer materialName = param.getMaterialType();
         QueryWrapper<WarehouseStockSecond> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
         queryWrapper.eq("material_type", materialName);
-        DateTime month = DateUtil.beginOfMonth(new Date());
-        queryWrapper.ge("create_time", month);
+        queryWrapper.between("create_time", time + "-01 00:00:00", time + "-31 23:59:59");
         queryWrapper.select(" IFNULL(sum(income_money),'0') incomeMoney,IFNULL(stock,'0') stock,IFNULL(sum(income_number),'0') incomeNumber");
         WarehouseStockSecond stockSecond = secondMapper.selectOne(queryWrapper);
         queryWrapper.clear();
         queryWrapper.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
         queryWrapper.eq("material_type", materialName);
+        queryWrapper.le("create_time", time + "-31 23:59:59");
         queryWrapper.select(" IFNULL(sum(income_money),'0') incomeMoney");
         WarehouseStockSecond second = secondMapper.selectOne(queryWrapper);
+
         WarehouseStockSecondVo vo = new WarehouseStockSecondVo();
-        vo.setIncomeMoney(stockSecond.getIncomeMoney());
+        BigDecimal math = new BigDecimal("10000");
+        BigDecimal bg = new BigDecimal(stockSecond.getIncomeMoney());
+        vo.setIncomeMoney(bg.divide(math, 2, RoundingMode.HALF_UP).toString());
         vo.setIncomeNumber(stockSecond.getIncomeNumber());
-        vo.setMoneyCount(second.getIncomeMoney());
-        vo.setStock(stockSecond.getStock());
+
+        BigDecimal bg1 = new BigDecimal(second.getIncomeMoney());
+        vo.setMoneyCount(bg1.divide(math, 2, RoundingMode.HALF_UP).toString());
+
+        QueryWrapper<WarehouseStockDetail> queryWrapper1 = new QueryWrapper<>();
+        queryWrapper1.eq(StringUtils.isNotBlank(orgId), "org_id", orgId);
+        queryWrapper1.eq("material_code", materialName);
+        queryWrapper.le("create_time", time + "-31 23:59:59");
+        queryWrapper1.select(" CONVERT(IFNULL(sum(material_number),'0'),decimal(10,2)) materialNumber");
+        WarehouseStockDetail stockDetail = detailMapper.selectOne(queryWrapper1);
+        if (ObjectUtil.isNotEmpty(stockDetail)) {
+            vo.setStock(stockDetail.getMaterialNumber());
+        } else {
+            vo.setStock("0");
+        }
+
 
         return vo;
     }

+ 50 - 0
huimv-farm/src/main/java/vip/xiaonuo/write/controller/WriteCheckController.java

@@ -1,9 +1,22 @@
 package vip.xiaonuo.write.controller;
 
 
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import com.github.xiaoymin.knife4j.annotations.ApiSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+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 vip.xiaonuo.common.pojo.CommonResult;
+import vip.xiaonuo.write.param.*;
+import vip.xiaonuo.write.service.IWriteCheckService;
+
+import java.util.Map;
 
 /**
  * <p>
@@ -15,6 +28,43 @@ import org.springframework.web.bind.annotation.RestController;
  */
 @RestController
 @RequestMapping("/write-check")
+@Api(tags = "检验记录发放收回台账")
+@ApiSupport(author = "wang", order = 1)
+@Validated
 public class WriteCheckController {
 
+    @Autowired
+    private IWriteCheckService checkService;
+
+    @ApiOperationSupport(order = 1)
+    @ApiOperation("检验记录发放收回台账添加")
+    @PostMapping("/write-check/add")
+    public CommonResult add(@RequestBody WriteCheckAddParam param) {
+        checkService.add(param);
+        return CommonResult.ok();
+    }
+
+    @ApiOperationSupport(order = 2)
+    @ApiOperation("检验记录发放收回台账修改")
+    @PostMapping("/write-check/update")
+    public CommonResult update(@RequestBody WriteCheckEditParam editParam) {
+        checkService.update(editParam);
+        return CommonResult.ok();
+    }
+
+    @ApiOperationSupport(order = 3)
+    @ApiOperation("检验记录发放收回台账分页")
+    @PostMapping("/write-check/page")
+    public CommonResult page(@RequestBody WriteUnqualifiedPageParam pageParam) {
+        return checkService.page(pageParam);
+    }
+
+
+    @ApiOperationSupport(order = 4)
+    @ApiOperation("检验记录发放收回台账删除")
+    @PostMapping("/write-check/delete")
+    public CommonResult delete(@RequestBody Map<String,String> paramsMap) {
+        checkService.delete(paramsMap);
+        return CommonResult.ok();
+    }
 }

+ 21 - 8
huimv-farm/src/main/java/vip/xiaonuo/write/entity/WriteCheck.java

@@ -83,41 +83,54 @@ public class WriteCheck implements Serializable {
     @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
     private Date receiveDate;
 
+
     /**
      * 收回后去向 0存档 1销毁 2QA 3收发平横
      */
-    @ApiModelProperty(value = "收回后去向 0存档 1销毁 2QA 3收发平横",position = 9)
+    @ApiModelProperty(value = "收发平横 0为未勾选 1为勾选",position = 9)
     private Integer withdrawType;
 
     /**
-     * 收回后数量
+     * 存档数量
+     */
+    @ApiModelProperty(value = "存档数量",position = 10)
+    private Date fileNum;
+
+    /**
+     * 销毁数量
+     */
+    @ApiModelProperty(value = "销毁数量",position = 11)
+    private Date destroyNum;
+
+    /**
+     * QA数量
      */
-    @ApiModelProperty(value = "收回后数量",position = 10)
-    private String withdrawNum;
+    @ApiModelProperty(value = "QA数量",position = 12)
+    private Date QANum;
 
     /**
      * 收回人日期
      */
-    @ApiModelProperty(value = "收回人日期",position = 11)
+    @ApiModelProperty(value = "收回人日期",position = 13)
     @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
     private Date withdrawDate;
 
     /**
      * 备注
      */
-    @ApiModelProperty(value = "备注",position = 12)
+    @ApiModelProperty(value = "备注",position = 14)
     private String remark;
 
     /**
      * 组织id
      */
-    @ApiModelProperty(value = "组织id",position = 13)
+    @ApiModelProperty(value = "组织id",position = 15)
     private String orgId;
 
     /**
      * 上级记录id
      */
-    @ApiModelProperty(value = "上级记录id",position = 14)
+    @ApiModelProperty(value = "上级记录id",position = 16)
     private Integer listId;
 
 

+ 14 - 0
huimv-farm/src/main/java/vip/xiaonuo/write/service/IWriteCheckService.java

@@ -1,7 +1,14 @@
 package vip.xiaonuo.write.service;
 
+import vip.xiaonuo.common.pojo.CommonResult;
 import vip.xiaonuo.write.entity.WriteCheck;
 import com.baomidou.mybatisplus.extension.service.IService;
+import vip.xiaonuo.write.param.WriteCheckAddParam;
+import vip.xiaonuo.write.param.WriteCheckEditParam;
+import vip.xiaonuo.write.param.WriteUnqualifiedEditParam;
+import vip.xiaonuo.write.param.WriteUnqualifiedPageParam;
+
+import java.util.Map;
 
 /**
  * <p>
@@ -13,4 +20,11 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IWriteCheckService extends IService<WriteCheck> {
 
+    void add(WriteCheckAddParam addParam);
+
+    void update(WriteCheckEditParam editParam);
+
+    CommonResult page(WriteUnqualifiedPageParam pageParam);
+
+    void delete(Map<String,String> paramsMap);
 }

+ 72 - 0
huimv-farm/src/main/java/vip/xiaonuo/write/service/impl/WriteCheckServiceImpl.java

@@ -1,11 +1,27 @@
 package vip.xiaonuo.write.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import vip.xiaonuo.common.pojo.CommonResult;
 import vip.xiaonuo.write.entity.WriteCheck;
+import vip.xiaonuo.write.entity.WriteList;
+import vip.xiaonuo.write.entity.WriteUnqualified;
 import vip.xiaonuo.write.mapper.WriteCheckMapper;
+import vip.xiaonuo.write.mapper.WriteListMapper;
+import vip.xiaonuo.write.param.WriteCheckAddParam;
+import vip.xiaonuo.write.param.WriteCheckEditParam;
+import vip.xiaonuo.write.param.WriteUnqualifiedPageParam;
 import vip.xiaonuo.write.service.IWriteCheckService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
 /**
  * <p>
  * 检验记录发放收回台账 服务实现类
@@ -17,4 +33,60 @@ import org.springframework.stereotype.Service;
 @Service
 public class WriteCheckServiceImpl extends ServiceImpl<WriteCheckMapper, WriteCheck> implements IWriteCheckService {
 
+    @Autowired
+    private WriteListMapper listMapper;
+
+    @Autowired
+    private WriteCheckMapper checkMapper;
+
+    @Override
+    @Transactional
+    public void add(WriteCheckAddParam addParam) {
+
+        List<WriteCheck> writeChecks = addParam.getWriteChecks();
+        WriteList writeList = new WriteList();
+        writeList.setDate(new Date());
+        writeList.setType(1);
+        writeList.setOrgId(writeChecks.get(0).getOrgId());
+        writeList.setDate(new Date());
+        String name = "";
+        for (int i = 0; i < writeChecks.size(); i++) {
+            if (i < writeChecks.size() - 1) {
+                name = writeChecks.get(i).getRecordName() + "," + name;
+            } else {
+                name = name + writeChecks.get(i).getRecordName();
+            }
+        }
+        writeList.setName(name);
+        listMapper.insert(writeList);
+
+        WriteList writeList1 = listMapper.selectOne(new QueryWrapper<WriteList>().orderByDesc("id").last(" limit 1"));
+        for (WriteCheck writeCheck : writeChecks) {
+            writeCheck.setListId(writeList1.getId());
+            checkMapper.insert(writeCheck);
+        }
+    }
+
+    @Override
+    @Transactional
+    public void update(WriteCheckEditParam editParam) {
+        WriteCheck writeCheck = checkMapper.selectById(editParam.getId());
+        BeanUtil.copyProperties(editParam, writeCheck);
+        checkMapper.updateById(writeCheck);
+    }
+
+    @Override
+    public CommonResult page(WriteUnqualifiedPageParam pageParam) {
+        Integer listId = pageParam.getListId();
+        Page<WriteCheck> page = new Page(pageParam.getPageNum(), pageParam.getPageSize());
+        QueryWrapper<WriteCheck> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("list_id", listId);
+        return CommonResult.data(checkMapper.selectPage(page, queryWrapper));
+    }
+
+    @Override
+    public void delete(Map<String, String> paramsMap) {
+        String id = paramsMap.get("id");
+        checkMapper.deleteById(id);
+    }
 }

+ 1 - 0
huimv-farm/src/main/resources/mapper/MoneyOverdueMapper.xml

@@ -6,5 +6,6 @@
     <select id="getUserRank" resultType="vip.xiaonuo.money.entity.vo.MoneyBorrowUserVo">
         select IFNULL(sum(collect_price),'0') 'collectPrice',IFNULL(sum(overdue_price),'0') 'overduePrice',user_name 'userName' from money_overdue
         ${ew.customSqlSegment}
+        group by user_name
     </select>
 </mapper>