Преглед на файлове

框架区分省市区县

wangwl преди 2 седмици
родител
ревизия
970b58b3cc
променени са 32 файла, в които са добавени 1069 реда и са изтрити 11 реда
  1. 86 0
      leromro-common/src/main/java/com/leromro/common/core/domain/entity/SysDept.java
  2. 169 0
      leromro-core/src/main/java/com/leromro/core/controller/OrgStatDataController.java
  3. 121 0
      leromro-core/src/main/java/com/leromro/core/domain/OrgStatData.java
  4. 26 0
      leromro-core/src/main/java/com/leromro/core/domain/SecondOrder.java
  5. 24 0
      leromro-core/src/main/java/com/leromro/core/domain/VolunteerInfo.java
  6. 29 0
      leromro-core/src/main/java/com/leromro/core/domain/dto/HomePageDTO.java
  7. 22 0
      leromro-core/src/main/java/com/leromro/core/domain/vo/OrderSummaryVO.java
  8. 35 0
      leromro-core/src/main/java/com/leromro/core/domain/vo/OrgRankVO.java
  9. 25 0
      leromro-core/src/main/java/com/leromro/core/domain/vo/UserSummaryVO.java
  10. 5 0
      leromro-core/src/main/java/com/leromro/core/mapper/AddressMapper.java
  11. 67 0
      leromro-core/src/main/java/com/leromro/core/mapper/OrgStatDataMapper.java
  12. 7 0
      leromro-core/src/main/java/com/leromro/core/mapper/SecondOrdersMapper.java
  13. 3 0
      leromro-core/src/main/java/com/leromro/core/mapper/VolunteerInfoMapper.java
  14. 3 0
      leromro-core/src/main/java/com/leromro/core/service/IAddressService.java
  15. 65 0
      leromro-core/src/main/java/com/leromro/core/service/IOrgStatDataService.java
  16. 7 0
      leromro-core/src/main/java/com/leromro/core/service/ISecondOrderService.java
  17. 2 0
      leromro-core/src/main/java/com/leromro/core/service/IVolunteerInfoService.java
  18. 9 0
      leromro-core/src/main/java/com/leromro/core/service/impl/AddressServiceImpl.java
  19. 105 0
      leromro-core/src/main/java/com/leromro/core/service/impl/OrgStatDataServiceImpl.java
  20. 14 0
      leromro-core/src/main/java/com/leromro/core/service/impl/SecondOrdersServiceImpl.java
  21. 9 0
      leromro-core/src/main/java/com/leromro/core/service/impl/VolunteerInfoServiceImpl.java
  22. 3 0
      leromro-core/src/main/resources/mapper/core/AddressMapper.xml
  23. 174 0
      leromro-core/src/main/resources/mapper/core/OrgStatDataMapper.xml
  24. 15 0
      leromro-core/src/main/resources/mapper/core/SecondOrdersMapper.xml
  25. 27 8
      leromro-core/src/main/resources/mapper/core/VolunteerInfoMapper.xml
  26. 2 0
      leromro-framework/src/main/java/com/leromro/framework/interceptor/ListPermissionInterceptor.java
  27. 1 1
      leromro-generator/src/main/java/com/leromro/generator/util/GenUtils.java
  28. 1 1
      leromro-generator/src/main/resources/vm/java/domain.java.vm
  29. 2 0
      leromro-system/src/main/java/com/leromro/system/mapper/SysDeptMapper.java
  30. 2 0
      leromro-system/src/main/java/com/leromro/system/service/ISysDeptService.java
  31. 5 0
      leromro-system/src/main/java/com/leromro/system/service/impl/SysDeptServiceImpl.java
  32. 4 1
      leromro-system/src/main/resources/mapper/system/SysDeptMapper.xml

+ 86 - 0
leromro-common/src/main/java/com/leromro/common/core/domain/entity/SysDept.java

@@ -6,6 +6,9 @@ import javax.validation.constraints.Email;
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotNull;
 import javax.validation.constraints.Size;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 import com.leromro.common.core.domain.BaseEntity;
@@ -57,6 +60,89 @@ public class SysDept extends BaseEntity
 
     private List<Long> parentsIds;
 
+    //区域类型 0:全国 1:省份 2:市 3:区 4:服务中心
+    private String areaType;
+
+    @TableField("province_code")
+    @ApiModelProperty("省级区划编号")
+    private String provinceCode;
+
+    @TableField("province_name")
+    @ApiModelProperty("省级名称")
+    private String provinceName;
+
+    @TableField("city_code")
+    @ApiModelProperty("市级编号")
+    private String cityCode;
+
+    @TableField("city_name")
+    @ApiModelProperty("市级名称")
+    private String cityName;
+
+    @TableField("district_code")
+    @ApiModelProperty("区级区划编号")
+    private String districtCode;
+
+    @TableField("district_name")
+    @ApiModelProperty("区级名称")
+    private String districtName;
+
+    public String getProvinceCode() {
+        return provinceCode;
+    }
+
+    public void setProvinceCode(String provinceCode) {
+        this.provinceCode = provinceCode;
+    }
+
+    public String getProvinceName() {
+        return provinceName;
+    }
+
+    public void setProvinceName(String provinceName) {
+        this.provinceName = provinceName;
+    }
+
+    public String getCityCode() {
+        return cityCode;
+    }
+
+    public void setCityCode(String cityCode) {
+        this.cityCode = cityCode;
+    }
+
+    public String getCityName() {
+        return cityName;
+    }
+
+    public void setCityName(String cityName) {
+        this.cityName = cityName;
+    }
+
+    public String getDistrictCode() {
+        return districtCode;
+    }
+
+    public void setDistrictCode(String districtCode) {
+        this.districtCode = districtCode;
+    }
+
+    public String getDistrictName() {
+        return districtName;
+    }
+
+    public void setDistrictName(String districtName) {
+        this.districtName = districtName;
+    }
+
+    public String getAreaType() {
+        return areaType;
+    }
+
+    public void setAreaType(String areaType) {
+        this.areaType = areaType;
+    }
+
     public List<Long> getParentsIds() {
         return parentsIds;
     }

+ 169 - 0
leromro-core/src/main/java/com/leromro/core/controller/OrgStatDataController.java

@@ -0,0 +1,169 @@
+package com.leromro.core.controller;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.util.*;
+import java.util.stream.Collectors;
+import javax.servlet.http.HttpServletResponse;
+
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.leromro.common.core.domain.entity.SysDept;
+import com.leromro.core.domain.Address;
+import com.leromro.core.domain.SecondOrder;
+import com.leromro.core.domain.VolunteerInfo;
+import com.leromro.core.domain.dto.HomePageDTO;
+import com.leromro.core.domain.vo.OrderSummaryVO;
+import com.leromro.core.domain.vo.OrgRankVO;
+import com.leromro.core.domain.vo.UserSummaryVO;
+import com.leromro.core.service.IAddressService;
+import com.leromro.core.service.ISecondOrderService;
+import com.leromro.core.service.IVolunteerInfoService;
+import com.leromro.system.service.ISysDeptService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import com.leromro.common.core.domain.R;
+import lombok.RequiredArgsConstructor;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.leromro.common.annotation.Log;
+import com.leromro.common.core.controller.BaseController;
+import com.leromro.common.core.domain.AjaxResult;
+import com.leromro.common.enums.BusinessType;
+import com.leromro.core.domain.OrgStatData;
+import com.leromro.core.service.IOrgStatDataService;
+import com.leromro.common.utils.poi.ExcelUtil;
+import com.leromro.common.core.page.TableDataInfo;
+
+/**
+ * 平台机构数据统计Controller
+ * 
+ * @author ruoyi
+ * @date 2025-04-30
+ */
+@RestController
+@Api(tags = "(首页)平台机构数据统计")
+@RequiredArgsConstructor
+@RequestMapping("/core/org/stat")
+public class OrgStatDataController extends BaseController
+{
+    private final IOrgStatDataService orgStatDataService;
+
+    private final ISecondOrderService secondOrderService;
+
+    private final IAddressService addressService;
+
+    private final IVolunteerInfoService volunteerInfoService;
+
+    private final ISysDeptService deptService;
+
+    /**
+     * 订单总览
+     */
+    @ApiOperation(value = "订单总览", notes = "前端计算今日,昨天,本周到startDate字段,全部则传null")
+    @PostMapping("/orderSummary")
+    public R<OrderSummaryVO> orderSummary(@RequestBody HomePageDTO dto)
+    {
+        OrderSummaryVO orderSummaryVO = new OrderSummaryVO();
+        //获取指定时间范围的订单
+        List<SecondOrder> list = secondOrderService.getCurrentOrgSecondOrderList(dto);
+        //订单总量
+        orderSummaryVO.setOrderTotal(list.size());
+        //取消单量
+        orderSummaryVO.setOrderCancelTotal((int) list.stream().filter(item ->  "4".equals(item.getOrderStatus())).count());
+        //订单金额
+        orderSummaryVO.setOrderTotalAmount(BigDecimal.valueOf(list.stream().mapToDouble(item -> item.getServiceOnePrice().doubleValue()).sum()));
+        //完成单量
+        orderSummaryVO.setOrderFinishTotal((int) list.stream().filter(item ->  "2".equals(item.getOrderStatus())).count());
+        return R.ok(orderSummaryVO);
+    }
+
+    /**
+     * 人员总览
+     */
+    @ApiOperation(value = "人员总览", notes = "前端计算今日,昨天,本周到startDate字段,全部则传null")
+    @PostMapping("/userSummary")
+    public R<UserSummaryVO> userSummary(@RequestBody HomePageDTO dto)
+    {
+        UserSummaryVO userSummaryVO = new UserSummaryVO();
+        //判断人员类型是否有值
+        if (ObjectUtil.isNull(dto.getUserType())) {
+            return R.fail("人员类型不能为空");
+        }
+        //获取当前机构本月记录,并按照日期映射
+        List<OrgStatData> statDataList = orgStatDataService.getCurrentOrgMonthStatDataList(dto);
+        Map<LocalDate, OrgStatData> statDataMap = statDataList.stream().collect(Collectors.toMap(OrgStatData::getStatDate, l -> l));
+        if (dto.getUserType() == 1){
+            //如果为用户则查看用户地址
+            List<Address> addressList = addressService.getCurrentOrgClientList(dto);
+            userSummaryVO.setUserTotal(addressList.size());
+            userSummaryVO.setTodayAdd(ObjectUtil.isNull(statDataMap.get(LocalDate.now()))? addressList.size():(addressList.size() - statDataMap.get(LocalDate.now()).getAllClientTotal()));
+            userSummaryVO.setYesterdayAdd(ObjectUtil.isNull(statDataMap.get(LocalDate.now().minusDays(1)))? addressList.size():(addressList.size() - statDataMap.get(LocalDate.now().minusDays(1)).getAllClientTotal()));
+            userSummaryVO.setMonthAdd(ObjectUtil.isNull(statDataMap.get(LocalDate.now().withDayOfMonth(1)))? addressList.size():(addressList.size() - statDataMap.get(LocalDate.now().withDayOfMonth(1)).getAllClientTotal()));
+        }else {
+            //如果为志愿者则查看志愿者审批通过时间
+            List<VolunteerInfo> volunteerInfoList = volunteerInfoService.getCurrentOrgVolunteerList(dto);
+            userSummaryVO.setUserTotal(volunteerInfoList.size());
+            userSummaryVO.setTodayAdd(ObjectUtil.isNull(statDataMap.get(LocalDate.now()))? volunteerInfoList.size():(volunteerInfoList.size() - statDataMap.get(LocalDate.now()).getAllVolunteerTotal()));
+            userSummaryVO.setYesterdayAdd(ObjectUtil.isNull(statDataMap.get(LocalDate.now().minusDays(1)))? volunteerInfoList.size():(volunteerInfoList.size() - statDataMap.get(LocalDate.now().minusDays(1)).getAllVolunteerTotal()));
+            userSummaryVO.setMonthAdd(ObjectUtil.isNull(statDataMap.get(LocalDate.now().withDayOfMonth(1)))? volunteerInfoList.size():(volunteerInfoList.size() - statDataMap.get(LocalDate.now().withDayOfMonth(1)).getAllVolunteerTotal()));
+        }
+        return R.ok(userSummaryVO);
+    }
+
+    /**
+     * 机构排名
+     */
+    @ApiOperation(value = "机构排名", notes = "默认查询所有区县")
+    @PostMapping("/orgRank")
+    public R<OrgRankVO> orgRank(@RequestBody HomePageDTO dto)
+    {
+        OrgRankVO orgRankVO = new OrgRankVO();
+        //获取今天所有订单
+        List<SecondOrder> list = secondOrderService.getTodayAllOrderList(dto);
+        if (ObjectUtil.isEmpty(list)){
+            return R.ok(orgRankVO);
+        }
+        //获取所有区县机构(不含服务中心)
+        List<SysDept> deptList = deptService.getAllOrgList();
+        if (ObjectUtil.isEmpty(deptList)){
+            return R.ok(orgRankVO);
+        }
+        Map<String, String> codeMapName = deptList.stream().collect(Collectors.toMap(SysDept::getDistrictCode, SysDept::getDeptName));
+        /** 数量排序*/
+        //按照区级区划编号分组并统计数量 结果为Map<String,integer>
+        Map<String, Long> districtCodeMap = list.stream().filter(item -> StrUtil.isNotEmpty(item.getDistrictCode())).collect(Collectors.groupingBy(SecondOrder::getDistrictCode, Collectors.counting()));
+        //districtCodeMap按照value大小排序
+        List<Map.Entry<String, Long>> districtCodeMapList = districtCodeMap.entrySet().stream().sorted(Map.Entry.comparingByValue(Comparator.reverseOrder())).collect(Collectors.toList());
+        List<OrgRankVO.OrgOrderVo> orgOrderVoList = new ArrayList<>();
+        for (Map.Entry<String, Long> entry : districtCodeMapList) {
+            OrgRankVO.OrgOrderVo orgOrderVo = new OrgRankVO.OrgOrderVo();
+            orgOrderVo.setOrgName(codeMapName.get(entry.getKey()));
+            orgOrderVo.setOrderTotal(entry.getValue());
+            orgOrderVoList.add(orgOrderVo);
+        }
+        orgRankVO.setOrgOrderVos(orgOrderVoList);
+
+        /**金额排序*/
+        Map<String, BigDecimal> districtCodeMapAmount = list.stream().filter(item -> StrUtil.isNotEmpty(item.getDistrictCode())).collect(Collectors.groupingBy(SecondOrder::getDistrictCode, Collectors.mapping(SecondOrder::getServiceOnePrice, Collectors.reducing(BigDecimal.ZERO, BigDecimal::add))));
+        List<Map.Entry<String, BigDecimal>> districtCodeMapAmountList = districtCodeMapAmount.entrySet().stream().sorted(Map.Entry.comparingByValue(Comparator.reverseOrder())).collect(Collectors.toList());
+        List<OrgRankVO.OrgAmountVo> orgAmountVos = new ArrayList<>();
+        for (Map.Entry<String, BigDecimal> entry : districtCodeMapAmountList) {
+            OrgRankVO.OrgAmountVo orgAmountVo = new OrgRankVO.OrgAmountVo();
+            orgAmountVo.setOrgName(codeMapName.get(entry.getKey()));
+            orgAmountVo.setOrderAmount(entry.getValue());
+            orgAmountVos.add(orgAmountVo);
+        }
+        orgRankVO.setOrgAmountVos(orgAmountVos);
+        return R.ok(orgRankVO);
+    }
+
+}

+ 121 - 0
leromro-core/src/main/java/com/leromro/core/domain/OrgStatData.java

@@ -0,0 +1,121 @@
+package com.leromro.core.domain;
+
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.*;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import com.leromro.common.annotation.Excel;
+import com.leromro.common.core.domain.BaseEntity;
+
+/**
+ * 平台机构数据统计对象 l_org_stat_data
+ * 
+ * @author ruoyi
+ * @date 2025-04-30
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+@TableName("l_org_stat_data")
+@EqualsAndHashCode(callSuper = true)
+@ApiModel(value = "OrgStatData", description = "平台机构数据统计")
+public class OrgStatData extends BaseEntity
+{
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(type = IdType.AUTO)
+    private Long orgStatDataId;
+
+    @TableField("dept_id")
+    @ApiModelProperty("机构表id")
+    private String deptId;
+
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @TableField("stat_date")
+    @ApiModelProperty("统计日期")
+    private LocalDate statDate;
+
+    @TableField("all_client_total")
+    @ApiModelProperty("累计客户总数")
+    private Integer allClientTotal;
+
+    @TableField("all_volunteer_total")
+    @ApiModelProperty("志愿者总数")
+    private Integer allVolunteerTotal;
+
+    @TableField("today_client_add")
+    @ApiModelProperty("今日新增客户")
+    private Integer todayClientAdd;
+
+    @TableField("today_volunteer_add")
+    @ApiModelProperty("今日新增志愿者")
+    private Integer todayVolunteerAdd;
+
+    @TableField("today_order_total")
+    @ApiModelProperty("今日订单总量")
+    private Integer todayOrderTotal;
+
+    @TableField("all_order_total")
+    @ApiModelProperty("累计订单总量(包含今日)")
+    private Integer allOrderTotal;
+
+    @TableField("today_order_amount")
+    @ApiModelProperty("今日订单总金额")
+    private BigDecimal todayOrderAmount;
+
+    @TableField("all_order_amount")
+    @ApiModelProperty("累计订单总金额(包含今日)")
+    private BigDecimal allOrderAmount;
+
+    @TableField("today_order_cancel_total")
+    @ApiModelProperty("今日取消订单总量")
+    private Integer todayOrderCancelTotal;
+
+    @TableField("all_order_cancel_total")
+    @ApiModelProperty("累计取消订单总量")
+    private Integer allOrderCancelTotal;
+
+    @TableField("today_order_finish_total")
+    @ApiModelProperty("今日完成订单总量")
+    private Integer todayOrderFinishTotal;
+
+    @TableField("all_order_finish_total")
+    @ApiModelProperty("累计完成订单总量")
+    private Integer allOrderFinishTotal;
+
+    @TableField("province_code")
+    @ApiModelProperty("省级区划编号")
+    private String provinceCode;
+
+    @TableField("province_name")
+    @ApiModelProperty("省级名称")
+    private String provinceName;
+
+    @TableField("city_code")
+    @ApiModelProperty("市级编号")
+    private String cityCode;
+
+    @TableField("city_name")
+    @ApiModelProperty("市级名称")
+    private String cityName;
+
+    @TableField("district_code")
+    @ApiModelProperty("区级区划编号")
+    private String districtCode;
+
+    @TableField("district_name")
+    @ApiModelProperty("区级名称")
+    private String districtName;
+
+
+}

+ 26 - 0
leromro-core/src/main/java/com/leromro/core/domain/SecondOrder.java

@@ -4,6 +4,8 @@ import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.LocalTime;
 import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -149,5 +151,29 @@ public class SecondOrder extends BaseEntity
     @ApiModelProperty("服务质量")
     private Long volunteerInfoId;
 
+    @TableField("province_code")
+    @ApiModelProperty("省级区划编号")
+    private String provinceCode;
+
+    @TableField("province_name")
+    @ApiModelProperty("省级名称")
+    private String provinceName;
+
+    @TableField("city_code")
+    @ApiModelProperty("市级编号")
+    private String cityCode;
+
+    @TableField("city_name")
+    @ApiModelProperty("市级名称")
+    private String cityName;
+
+    @TableField("district_code")
+    @ApiModelProperty("区级区划编号")
+    private String districtCode;
+
+    @TableField("district_name")
+    @ApiModelProperty("区级名称")
+    private String districtName;
+
 
 }

+ 24 - 0
leromro-core/src/main/java/com/leromro/core/domain/VolunteerInfo.java

@@ -121,4 +121,28 @@ public class VolunteerInfo extends BaseEntity {
 
     @ApiModelProperty("业务时长(整数分钟)")
     private Integer businessDuration;
+
+    @TableField("province_code")
+    @ApiModelProperty("省级区划编号")
+    private String provinceCode;
+
+    @TableField("province_name")
+    @ApiModelProperty("省级名称")
+    private String provinceName;
+
+    @TableField("city_code")
+    @ApiModelProperty("市级编号")
+    private String cityCode;
+
+    @TableField("city_name")
+    @ApiModelProperty("市级名称")
+    private String cityName;
+
+    @TableField("district_code")
+    @ApiModelProperty("区级区划编号")
+    private String districtCode;
+
+    @TableField("district_name")
+    @ApiModelProperty("区级名称")
+    private String districtName;
 }

+ 29 - 0
leromro-core/src/main/java/com/leromro/core/domain/dto/HomePageDTO.java

@@ -0,0 +1,29 @@
+package com.leromro.core.domain.dto;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDate;
+
+/**
+ *  首页查询条件通用dto
+ */
+@Data
+public class HomePageDTO {
+
+    @ApiModelProperty("开始日期")
+    private LocalDate startDate;
+
+    @ApiModelProperty("省级区划编号")
+    private String provinceCode;
+
+    @ApiModelProperty("市级编号")
+    private String cityCode;
+
+    @ApiModelProperty("区级区划编号")
+    private String districtCode;
+
+    @ApiModelProperty("人员类型:1用户2志愿者")
+    private Integer userType;
+}

+ 22 - 0
leromro-core/src/main/java/com/leromro/core/domain/vo/OrderSummaryVO.java

@@ -0,0 +1,22 @@
+package com.leromro.core.domain.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class OrderSummaryVO {
+
+    @ApiModelProperty(value = "订单总量")
+    private Integer orderTotal;
+
+    @ApiModelProperty(value = "取消单量")
+    private Integer orderCancelTotal;
+
+    @ApiModelProperty(value = "订单总金额")
+    private BigDecimal orderTotalAmount;
+
+    @ApiModelProperty(value = "完成单量")
+    private Integer orderFinishTotal;
+}

+ 35 - 0
leromro-core/src/main/java/com/leromro/core/domain/vo/OrgRankVO.java

@@ -0,0 +1,35 @@
+package com.leromro.core.domain.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * 首页 区县排名视图
+ */
+@Data
+public class OrgRankVO {
+
+    @ApiModelProperty("订单排名")
+    private List<OrgOrderVo> orgOrderVos;
+
+    @ApiModelProperty("金额排名")
+    private List<OrgAmountVo> orgAmountVos;
+
+    @Data
+    public static class OrgOrderVo {
+        @ApiModelProperty("机构名称")
+        private String orgName;
+        @ApiModelProperty("订单数量")
+        private Long orderTotal;
+    }
+    @Data
+    public static class OrgAmountVo {
+        @ApiModelProperty("机构名称")
+        private String orgName;
+        @ApiModelProperty("订单金额")
+        private BigDecimal orderAmount;
+    }
+}

+ 25 - 0
leromro-core/src/main/java/com/leromro/core/domain/vo/UserSummaryVO.java

@@ -0,0 +1,25 @@
+package com.leromro.core.domain.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDate;
+
+/**
+ * 首页 人员总览视图
+ */
+@Data
+public class UserSummaryVO {
+
+    @ApiModelProperty("人员总量")
+    private Integer userTotal;
+
+    @ApiModelProperty("今日新增")
+    private Integer todayAdd;
+
+    @ApiModelProperty("昨日新增")
+    private Integer yesterdayAdd;
+
+    @ApiModelProperty("本月新增")
+    private Integer monthAdd;
+}

+ 5 - 0
leromro-core/src/main/java/com/leromro/core/mapper/AddressMapper.java

@@ -2,7 +2,10 @@ package com.leromro.core.mapper;
 
 import java.util.List;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.leromro.common.core.domain.ListPermission;
 import com.leromro.core.domain.Address;
+import com.leromro.core.domain.dto.HomePageDTO;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * 受服务地址Mapper接口
@@ -63,4 +66,6 @@ public interface AddressMapper extends BaseMapper<Address>
     void updateDefaultAddress(Address address);
 
     Address selectAddressBySeconderId(String orderId);
+
+    List<Address> getCurrentOrgClientList(ListPermission listPermission,@Param("dto") HomePageDTO dto);
 }

+ 67 - 0
leromro-core/src/main/java/com/leromro/core/mapper/OrgStatDataMapper.java

@@ -0,0 +1,67 @@
+package com.leromro.core.mapper;
+
+import java.util.List;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.leromro.common.core.domain.ListPermission;
+import com.leromro.core.domain.OrgStatData;
+import com.leromro.core.domain.dto.HomePageDTO;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 平台机构数据统计Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2025-04-30
+ */
+public interface OrgStatDataMapper extends BaseMapper<OrgStatData>
+{
+    /**
+     * 查询平台机构数据统计
+     * 
+     * @param orgStatDataId 平台机构数据统计主键
+     * @return 平台机构数据统计
+     */
+    public OrgStatData selectOrgStatDataByOrgStatDataId(Long orgStatDataId);
+
+    /**
+     * 查询平台机构数据统计列表
+     * 
+     * @param orgStatData 平台机构数据统计
+     * @return 平台机构数据统计集合
+     */
+    public List<OrgStatData> selectOrgStatDataList(OrgStatData orgStatData);
+
+    /**
+     * 新增平台机构数据统计
+     * 
+     * @param orgStatData 平台机构数据统计
+     * @return 结果
+     */
+    public int insertOrgStatData(OrgStatData orgStatData);
+
+    /**
+     * 修改平台机构数据统计
+     * 
+     * @param orgStatData 平台机构数据统计
+     * @return 结果
+     */
+    public int updateOrgStatData(OrgStatData orgStatData);
+
+    /**
+     * 删除平台机构数据统计
+     * 
+     * @param orgStatDataId 平台机构数据统计主键
+     * @return 结果
+     */
+    public int deleteOrgStatDataByOrgStatDataId(Long orgStatDataId);
+
+    /**
+     * 批量删除平台机构数据统计
+     * 
+     * @param orgStatDataIds 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteOrgStatDataByOrgStatDataIds(Long[] orgStatDataIds);
+
+    List<OrgStatData> getCurrentOrgMonthStatDataList(ListPermission listPermission,@Param("dto") HomePageDTO dto);
+}

+ 7 - 0
leromro-core/src/main/java/com/leromro/core/mapper/SecondOrdersMapper.java

@@ -1,7 +1,10 @@
 package com.leromro.core.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.leromro.common.core.domain.ListPermission;
 import com.leromro.core.domain.SecondOrder;
+import com.leromro.core.domain.dto.HomePageDTO;
+import com.leromro.core.domain.vo.OrderSummaryVO;
 import com.leromro.core.domain.vo.VolunteerOrdersVO;
 import org.apache.ibatis.annotations.Param;
 
@@ -11,4 +14,8 @@ public interface SecondOrdersMapper extends BaseMapper<SecondOrder> {
     int insertList(List<SecondOrder> secondOrder);
 
     List<VolunteerOrdersVO> selectVolunteerOrder(@Param("userId") Long userId,@Param("orderStatus") Long orderStatus);
+
+    List<SecondOrder> getCurrentOrgSecondOrderList(ListPermission listPermission,@Param("dto") HomePageDTO dto);
+
+    List<SecondOrder> getTodayAllOrderList(@Param("dto") HomePageDTO dto);
 }

+ 3 - 0
leromro-core/src/main/java/com/leromro/core/mapper/VolunteerInfoMapper.java

@@ -1,7 +1,9 @@
 package com.leromro.core.mapper;
 
+import com.leromro.common.core.domain.ListPermission;
 import com.leromro.core.domain.VolunteerInfo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.leromro.core.domain.dto.HomePageDTO;
 import com.leromro.core.domain.dto.VolunteerInfoDTO;
 import com.leromro.core.domain.vo.VolunteerInfoVO;
 import org.apache.ibatis.annotations.Param;
@@ -27,4 +29,5 @@ public interface VolunteerInfoMapper extends BaseMapper<VolunteerInfo> {
     VolunteerInfo selectLVolunteerInfoByVolunteerId(@Param("volunteerId") Long volunteerId,@Param("serviceCategory") Long serviceCategory);
 
 
+    List<VolunteerInfo> getCurrentOrgVolunteerList(ListPermission listPermission,@Param("dto") HomePageDTO dto);
 }

+ 3 - 0
leromro-core/src/main/java/com/leromro/core/service/IAddressService.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.leromro.common.core.domain.AjaxResult;
 import com.leromro.common.core.domain.R;
 import com.leromro.core.domain.Address;
+import com.leromro.core.domain.dto.HomePageDTO;
 
 /**
  * 受服务地址Service接口
@@ -67,4 +68,6 @@ public interface IAddressService extends IService<Address>
     R<Address> selectDefalutAddress();
 
     Address selectAddressInfoBySeconderId(String orderId);
+
+    List<Address> getCurrentOrgClientList(HomePageDTO dto);
 }

+ 65 - 0
leromro-core/src/main/java/com/leromro/core/service/IOrgStatDataService.java

@@ -0,0 +1,65 @@
+package com.leromro.core.service;
+
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.leromro.core.domain.OrgStatData;
+import com.leromro.core.domain.dto.HomePageDTO;
+
+/**
+ * 平台机构数据统计Service接口
+ * 
+ * @author ruoyi
+ * @date 2025-04-30
+ */
+public interface IOrgStatDataService extends IService<OrgStatData>
+{
+    /**
+     * 查询平台机构数据统计
+     * 
+     * @param orgStatDataId 平台机构数据统计主键
+     * @return 平台机构数据统计
+     */
+    public OrgStatData selectOrgStatDataByOrgStatDataId(Long orgStatDataId);
+
+    /**
+     * 查询平台机构数据统计列表
+     * 
+     * @param orgStatData 平台机构数据统计
+     * @return 平台机构数据统计集合
+     */
+    public List<OrgStatData> selectOrgStatDataList(OrgStatData orgStatData);
+
+    /**
+     * 新增平台机构数据统计
+     * 
+     * @param orgStatData 平台机构数据统计
+     * @return 结果
+     */
+    public Boolean insertOrgStatData(OrgStatData orgStatData);
+
+    /**
+     * 修改平台机构数据统计
+     * 
+     * @param orgStatData 平台机构数据统计
+     * @return 结果
+     */
+    public Boolean updateOrgStatData(OrgStatData orgStatData);
+
+    /**
+     * 批量删除平台机构数据统计
+     * 
+     * @param orgStatDataIds 需要删除的平台机构数据统计主键集合
+     * @return 结果
+     */
+    public int deleteOrgStatDataByOrgStatDataIds(Long[] orgStatDataIds);
+
+    /**
+     * 删除平台机构数据统计信息
+     * 
+     * @param orgStatDataId 平台机构数据统计主键
+     * @return 结果
+     */
+    public int deleteOrgStatDataByOrgStatDataId(Long orgStatDataId);
+
+    List<OrgStatData> getCurrentOrgMonthStatDataList(HomePageDTO dto);
+}

+ 7 - 0
leromro-core/src/main/java/com/leromro/core/service/ISecondOrderService.java

@@ -2,8 +2,11 @@ package com.leromro.core.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.leromro.common.core.domain.AjaxResult;
+import com.leromro.core.domain.BusinessPrice;
 import com.leromro.core.domain.SecondOrder;
+import com.leromro.core.domain.dto.HomePageDTO;
 import com.leromro.core.domain.dto.UserOrderReviewDTO;
+import com.leromro.core.domain.vo.OrderSummaryVO;
 import com.leromro.core.domain.vo.VolunteerOrdersVO;
 
 import java.util.List;
@@ -14,4 +17,8 @@ public interface ISecondOrderService extends IService<SecondOrder> {
     AjaxResult volunteerFinishWork(SecondOrder secondOrder);
 
     void userFinish(UserOrderReviewDTO reviewDTO);
+
+    List<SecondOrder> getCurrentOrgSecondOrderList(HomePageDTO dto);
+
+    List<SecondOrder> getTodayAllOrderList(HomePageDTO dto);
 }

+ 2 - 0
leromro-core/src/main/java/com/leromro/core/service/IVolunteerInfoService.java

@@ -2,6 +2,7 @@ package com.leromro.core.service;
 
 import com.leromro.core.domain.VolunteerInfo;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.leromro.core.domain.dto.HomePageDTO;
 import com.leromro.core.domain.dto.VolunteerInfoDTO;
 import com.leromro.core.domain.vo.VolunteerInfoDetailVO;
 import com.leromro.core.domain.vo.VolunteerInfoVO;
@@ -29,4 +30,5 @@ public interface IVolunteerInfoService extends IService<VolunteerInfo> {
     List<VolunteerInfoVO> selectVolunteerInfoList(VolunteerInfo volunteerInfo);
 
 
+    List<VolunteerInfo> getCurrentOrgVolunteerList(HomePageDTO dto);
 }

+ 9 - 0
leromro-core/src/main/java/com/leromro/core/service/impl/AddressServiceImpl.java

@@ -4,9 +4,13 @@ import java.util.List;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.leromro.common.constant.CommonConstants;
 import com.leromro.common.core.domain.AjaxResult;
+import com.leromro.common.core.domain.ListPermission;
 import com.leromro.common.core.domain.R;
 import com.leromro.common.utils.SecurityUtils;
+import com.leromro.core.domain.SecondOrder;
+import com.leromro.core.domain.dto.HomePageDTO;
 import com.leromro.core.mapper.AddressMapper;
 import com.leromro.common.utils.DateUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -136,4 +140,9 @@ public class AddressServiceImpl extends ServiceImpl<AddressMapper, Address> impl
     public Address selectAddressInfoBySeconderId(String orderId) {
         return addressMapper.selectAddressBySeconderId(orderId);
     }
+
+    @Override
+    public List<Address> getCurrentOrgClientList(HomePageDTO dto) {
+        return baseMapper.getCurrentOrgClientList(new ListPermission(SecondOrder.class, CommonConstants.CHECK_PROVINCE_CITY_DISTRICT),dto);
+    }
 }

+ 105 - 0
leromro-core/src/main/java/com/leromro/core/service/impl/OrgStatDataServiceImpl.java

@@ -0,0 +1,105 @@
+package com.leromro.core.service.impl;
+
+import java.util.List;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.leromro.common.constant.CommonConstants;
+import com.leromro.common.core.domain.ListPermission;
+import com.leromro.core.domain.SecondOrder;
+import com.leromro.core.domain.dto.HomePageDTO;
+import com.leromro.core.mapper.OrgStatDataMapper;
+import com.leromro.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.leromro.core.mapper.OrgStatDataMapper;
+import com.leromro.core.domain.OrgStatData;
+import com.leromro.core.service.IOrgStatDataService;
+
+/**
+ * 平台机构数据统计Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2025-04-30
+ */
+@Service
+public class OrgStatDataServiceImpl extends ServiceImpl<OrgStatDataMapper, OrgStatData> implements IOrgStatDataService
+{
+    @Autowired
+    private OrgStatDataMapper orgStatDataMapper;
+
+    /**
+     * 查询平台机构数据统计
+     * 
+     * @param orgStatDataId 平台机构数据统计主键
+     * @return 平台机构数据统计
+     */
+    @Override
+    public OrgStatData selectOrgStatDataByOrgStatDataId(Long orgStatDataId)
+    {
+        return orgStatDataMapper.selectOrgStatDataByOrgStatDataId(orgStatDataId);
+    }
+
+    /**
+     * 查询平台机构数据统计列表
+     * 
+     * @param orgStatData 平台机构数据统计
+     * @return 平台机构数据统计
+     */
+    @Override
+    public List<OrgStatData> selectOrgStatDataList(OrgStatData orgStatData)
+    {
+        return orgStatDataMapper.selectOrgStatDataList(orgStatData);
+    }
+
+    /**
+     * 新增平台机构数据统计
+     * 
+     * @param orgStatData 平台机构数据统计
+     * @return 结果
+     */
+    @Override
+    public Boolean insertOrgStatData(OrgStatData orgStatData)
+    {
+        return this.save(orgStatData);
+    }
+
+    /**
+     * 修改平台机构数据统计
+     * 
+     * @param orgStatData 平台机构数据统计
+     * @return 结果
+     */
+    @Override
+    public Boolean updateOrgStatData(OrgStatData orgStatData)
+    {
+        return this.updateById(orgStatData);
+    }
+
+    /**
+     * 批量删除平台机构数据统计
+     * 
+     * @param orgStatDataIds 需要删除的平台机构数据统计主键
+     * @return 结果
+     */
+    @Override
+    public int deleteOrgStatDataByOrgStatDataIds(Long[] orgStatDataIds)
+    {
+        return orgStatDataMapper.deleteOrgStatDataByOrgStatDataIds(orgStatDataIds);
+    }
+
+    /**
+     * 删除平台机构数据统计信息
+     * 
+     * @param orgStatDataId 平台机构数据统计主键
+     * @return 结果
+     */
+    @Override
+    public int deleteOrgStatDataByOrgStatDataId(Long orgStatDataId)
+    {
+        return orgStatDataMapper.deleteOrgStatDataByOrgStatDataId(orgStatDataId);
+    }
+
+    @Override
+    public List<OrgStatData> getCurrentOrgMonthStatDataList(HomePageDTO dto) {
+        return baseMapper.getCurrentOrgMonthStatDataList(new ListPermission(SecondOrder.class, CommonConstants.CHECK_PROVINCE_CITY_DISTRICT),dto);
+    }
+}

+ 14 - 0
leromro-core/src/main/java/com/leromro/core/service/impl/SecondOrdersServiceImpl.java

@@ -5,11 +5,15 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.leromro.common.constant.CommonConstants;
 import com.leromro.common.core.domain.AjaxResult;
+import com.leromro.common.core.domain.ListPermission;
 import com.leromro.common.utils.DateUtils;
 import com.leromro.common.utils.SecurityUtils;
 import com.leromro.core.domain.*;
+import com.leromro.core.domain.dto.HomePageDTO;
 import com.leromro.core.domain.dto.UserOrderReviewDTO;
+import com.leromro.core.domain.vo.OrderSummaryVO;
 import com.leromro.core.domain.vo.VolunteerOrdersVO;
 import com.leromro.core.mapper.*;
 import com.leromro.core.service.ISecondOrderService;
@@ -152,4 +156,14 @@ public class SecondOrdersServiceImpl extends ServiceImpl<SecondOrdersMapper, Sec
                 .set("score",score).set("user_review",reviewDTO.getUserReview()).set("user_picture",reviewDTO.getUserPicture()).set("protocol_score",protocolScore).set("clothing_score",clothingScore).set("ability_score",abilityScore).set("quality_score",qualityScore);
         secondOrdersMapper.update(null,updateWrapper);
     }
+
+    @Override
+    public List<SecondOrder> getCurrentOrgSecondOrderList(HomePageDTO dto) {
+        return baseMapper.getCurrentOrgSecondOrderList(new ListPermission(SecondOrder.class, CommonConstants.CHECK_PROVINCE_CITY_DISTRICT),dto);
+    }
+
+    @Override
+    public List<SecondOrder> getTodayAllOrderList(HomePageDTO dto) {
+        return baseMapper.getTodayAllOrderList(dto);
+    }
 }

+ 9 - 0
leromro-core/src/main/java/com/leromro/core/service/impl/VolunteerInfoServiceImpl.java

@@ -6,14 +6,18 @@ import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.leromro.common.constant.CommonConstants;
 import com.leromro.common.core.domain.AjaxResult;
+import com.leromro.common.core.domain.ListPermission;
 import com.leromro.common.core.redis.RedisCache;
 import com.leromro.common.enums.ConstantsKey;
 import com.leromro.common.exception.ServiceException;
 import com.leromro.common.utils.SecurityUtils;
 import com.leromro.core.domain.BusinessManagement;
 import com.leromro.core.domain.BusinessPrice;
+import com.leromro.core.domain.SecondOrder;
 import com.leromro.core.domain.VolunteerInfo;
+import com.leromro.core.domain.dto.HomePageDTO;
 import com.leromro.core.domain.dto.VolunteerInfoDTO;
 import com.leromro.core.domain.vo.VolunteerInfoDetailVO;
 import com.leromro.core.domain.vo.VolunteerInfoVO;
@@ -153,6 +157,11 @@ public class VolunteerInfoServiceImpl extends ServiceImpl<VolunteerInfoMapper, V
         return infos;
     }
 
+    @Override
+    public List<VolunteerInfo> getCurrentOrgVolunteerList(HomePageDTO dto) {
+        return baseMapper.getCurrentOrgVolunteerList(new ListPermission(SecondOrder.class, CommonConstants.CHECK_PROVINCE_CITY_DISTRICT),dto);
+    }
+
     /**
      * @param
      * @return

+ 3 - 0
leromro-core/src/main/resources/mapper/core/AddressMapper.xml

@@ -69,6 +69,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="userId != null "> and user_id = #{userId}</if>
         </where>
     </select>
+    <select id="getCurrentOrgClientList" resultType="com.leromro.core.domain.Address">
+        select * from l_address
+    </select>
 
     <insert id="insertAddress" parameterType="Address" useGeneratedKeys="true" keyProperty="addressId">
         insert into l_address

+ 174 - 0
leromro-core/src/main/resources/mapper/core/OrgStatDataMapper.xml

@@ -0,0 +1,174 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.leromro.core.mapper.OrgStatDataMapper">
+    
+    <resultMap type="OrgStatData" id="OrgStatDataResult">
+        <result property="orgStatDataId"    column="org_stat_data_id"    />
+        <result property="deptId"    column="dept_id"    />
+        <result property="statDate"    column="stat_date"    />
+        <result property="clientTotal"    column="client_total"    />
+        <result property="volunteetTotal"    column="volunteet_total"    />
+        <result property="todayClientAdd"    column="today_client_add"    />
+        <result property="todayVolunteetAdd"    column="today_volunteet_add"    />
+        <result property="todayOrderTotal"    column="today_order_total"    />
+        <result property="allOrderTotal"    column="all_order_total"    />
+        <result property="todayOrderAmount"    column="today_order_amount"    />
+        <result property="allOrderAmount"    column="all_order_amount"    />
+        <result property="todayOrderCancelTotal"    column="today_order_cancel_total"    />
+        <result property="allOrderCancelTotal"    column="all_order_cancel_total"    />
+        <result property="todayOrderFinishTotal"    column="today_order_finish_total"    />
+        <result property="allOrderFinishTotal"    column="all_order_finish_total"    />
+        <result property="provinceCode"    column="province_code"    />
+        <result property="provinceName"    column="province_name"    />
+        <result property="cityCode"    column="city_code"    />
+        <result property="cityName"    column="city_name"    />
+        <result property="districtCode"    column="district_code"    />
+        <result property="districtName"    column="district_name"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="remark"    column="remark"    />
+    </resultMap>
+
+    <sql id="selectOrgStatDataVo">
+        select org_stat_data_id, dept_id, stat_date, client_total, volunteet_total, today_client_add, today_volunteet_add, today_order_total, all_order_total, today_order_amount, all_order_amount, today_order_cancel_total, all_order_cancel_total, today_order_finish_total, all_order_finish_total, province_code, province_name, city_code, city_name, district_code, district_name, create_time, create_by, update_time, update_by, remark from l_org_stat_data
+    </sql>
+
+    <select id="selectOrgStatDataList" parameterType="OrgStatData" resultMap="OrgStatDataResult">
+        <include refid="selectOrgStatDataVo"/>
+        <where>  
+            <if test="deptId != null  and deptId != ''"> and dept_id = #{deptId}</if>
+            <if test="statDate != null "> and stat_date = #{statDate}</if>
+            <if test="clientTotal != null "> and client_total = #{clientTotal}</if>
+            <if test="volunteetTotal != null "> and volunteet_total = #{volunteetTotal}</if>
+            <if test="todayClientAdd != null "> and today_client_add = #{todayClientAdd}</if>
+            <if test="todayVolunteetAdd != null "> and today_volunteet_add = #{todayVolunteetAdd}</if>
+            <if test="todayOrderTotal != null "> and today_order_total = #{todayOrderTotal}</if>
+            <if test="allOrderTotal != null "> and all_order_total = #{allOrderTotal}</if>
+            <if test="todayOrderAmount != null "> and today_order_amount = #{todayOrderAmount}</if>
+            <if test="allOrderAmount != null "> and all_order_amount = #{allOrderAmount}</if>
+            <if test="todayOrderCancelTotal != null "> and today_order_cancel_total = #{todayOrderCancelTotal}</if>
+            <if test="allOrderCancelTotal != null "> and all_order_cancel_total = #{allOrderCancelTotal}</if>
+            <if test="todayOrderFinishTotal != null "> and today_order_finish_total = #{todayOrderFinishTotal}</if>
+            <if test="allOrderFinishTotal != null "> and all_order_finish_total = #{allOrderFinishTotal}</if>
+            <if test="provinceCode != null  and provinceCode != ''"> and province_code = #{provinceCode}</if>
+            <if test="provinceName != null  and provinceName != ''"> and province_name like concat('%', #{provinceName}, '%')</if>
+            <if test="cityCode != null  and cityCode != ''"> and city_code = #{cityCode}</if>
+            <if test="cityName != null  and cityName != ''"> and city_name like concat('%', #{cityName}, '%')</if>
+            <if test="districtCode != null  and districtCode != ''"> and district_code = #{districtCode}</if>
+            <if test="districtName != null  and districtName != ''"> and district_name like concat('%', #{districtName}, '%')</if>
+        </where>
+    </select>
+    
+    <select id="selectOrgStatDataByOrgStatDataId" parameterType="Long" resultMap="OrgStatDataResult">
+        <include refid="selectOrgStatDataVo"/>
+        where org_stat_data_id = #{orgStatDataId}
+    </select>
+    <select id="getCurrentOrgMonthStatDataList" resultType="com.leromro.core.domain.OrgStatData">
+        select * from l_org_stat_data
+    </select>
+
+    <insert id="insertOrgStatData" parameterType="OrgStatData" useGeneratedKeys="true" keyProperty="orgStatDataId">
+        insert into l_org_stat_data
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="deptId != null">dept_id,</if>
+            <if test="statDate != null">stat_date,</if>
+            <if test="clientTotal != null">client_total,</if>
+            <if test="volunteetTotal != null">volunteet_total,</if>
+            <if test="todayClientAdd != null">today_client_add,</if>
+            <if test="todayVolunteetAdd != null">today_volunteet_add,</if>
+            <if test="todayOrderTotal != null">today_order_total,</if>
+            <if test="allOrderTotal != null">all_order_total,</if>
+            <if test="todayOrderAmount != null">today_order_amount,</if>
+            <if test="allOrderAmount != null">all_order_amount,</if>
+            <if test="todayOrderCancelTotal != null">today_order_cancel_total,</if>
+            <if test="allOrderCancelTotal != null">all_order_cancel_total,</if>
+            <if test="todayOrderFinishTotal != null">today_order_finish_total,</if>
+            <if test="allOrderFinishTotal != null">all_order_finish_total,</if>
+            <if test="provinceCode != null">province_code,</if>
+            <if test="provinceName != null">province_name,</if>
+            <if test="cityCode != null">city_code,</if>
+            <if test="cityName != null">city_name,</if>
+            <if test="districtCode != null">district_code,</if>
+            <if test="districtName != null">district_name,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="remark != null">remark,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="deptId != null">#{deptId},</if>
+            <if test="statDate != null">#{statDate},</if>
+            <if test="clientTotal != null">#{clientTotal},</if>
+            <if test="volunteetTotal != null">#{volunteetTotal},</if>
+            <if test="todayClientAdd != null">#{todayClientAdd},</if>
+            <if test="todayVolunteetAdd != null">#{todayVolunteetAdd},</if>
+            <if test="todayOrderTotal != null">#{todayOrderTotal},</if>
+            <if test="allOrderTotal != null">#{allOrderTotal},</if>
+            <if test="todayOrderAmount != null">#{todayOrderAmount},</if>
+            <if test="allOrderAmount != null">#{allOrderAmount},</if>
+            <if test="todayOrderCancelTotal != null">#{todayOrderCancelTotal},</if>
+            <if test="allOrderCancelTotal != null">#{allOrderCancelTotal},</if>
+            <if test="todayOrderFinishTotal != null">#{todayOrderFinishTotal},</if>
+            <if test="allOrderFinishTotal != null">#{allOrderFinishTotal},</if>
+            <if test="provinceCode != null">#{provinceCode},</if>
+            <if test="provinceName != null">#{provinceName},</if>
+            <if test="cityCode != null">#{cityCode},</if>
+            <if test="cityName != null">#{cityName},</if>
+            <if test="districtCode != null">#{districtCode},</if>
+            <if test="districtName != null">#{districtName},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="remark != null">#{remark},</if>
+         </trim>
+    </insert>
+
+    <update id="updateOrgStatData" parameterType="OrgStatData">
+        update l_org_stat_data
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="deptId != null">dept_id = #{deptId},</if>
+            <if test="statDate != null">stat_date = #{statDate},</if>
+            <if test="clientTotal != null">client_total = #{clientTotal},</if>
+            <if test="volunteetTotal != null">volunteet_total = #{volunteetTotal},</if>
+            <if test="todayClientAdd != null">today_client_add = #{todayClientAdd},</if>
+            <if test="todayVolunteetAdd != null">today_volunteet_add = #{todayVolunteetAdd},</if>
+            <if test="todayOrderTotal != null">today_order_total = #{todayOrderTotal},</if>
+            <if test="allOrderTotal != null">all_order_total = #{allOrderTotal},</if>
+            <if test="todayOrderAmount != null">today_order_amount = #{todayOrderAmount},</if>
+            <if test="allOrderAmount != null">all_order_amount = #{allOrderAmount},</if>
+            <if test="todayOrderCancelTotal != null">today_order_cancel_total = #{todayOrderCancelTotal},</if>
+            <if test="allOrderCancelTotal != null">all_order_cancel_total = #{allOrderCancelTotal},</if>
+            <if test="todayOrderFinishTotal != null">today_order_finish_total = #{todayOrderFinishTotal},</if>
+            <if test="allOrderFinishTotal != null">all_order_finish_total = #{allOrderFinishTotal},</if>
+            <if test="provinceCode != null">province_code = #{provinceCode},</if>
+            <if test="provinceName != null">province_name = #{provinceName},</if>
+            <if test="cityCode != null">city_code = #{cityCode},</if>
+            <if test="cityName != null">city_name = #{cityName},</if>
+            <if test="districtCode != null">district_code = #{districtCode},</if>
+            <if test="districtName != null">district_name = #{districtName},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where org_stat_data_id = #{orgStatDataId}
+    </update>
+
+    <delete id="deleteOrgStatDataByOrgStatDataId" parameterType="Long">
+        delete from l_org_stat_data where org_stat_data_id = #{orgStatDataId}
+    </delete>
+
+    <delete id="deleteOrgStatDataByOrgStatDataIds" parameterType="String">
+        delete from l_org_stat_data where org_stat_data_id in 
+        <foreach item="orgStatDataId" collection="array" open="(" separator="," close=")">
+            #{orgStatDataId}
+        </foreach>
+    </delete>
+</mapper>

+ 15 - 0
leromro-core/src/main/resources/mapper/core/SecondOrdersMapper.xml

@@ -201,5 +201,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </where>
         order by lso.create_time desc
     </select>
+    <select id="getCurrentOrgSecondOrderList" resultType="com.leromro.core.domain.SecondOrder">
+        select * from l_second_order
+        <where>
+            <if test="dto.provinceCode != null">and province_code = #{dto.provinceCode}</if>
+            <if test="dto.cityCode != null">and city_code = #{dto.cityCode}</if>
+            <if test="dto.districtCode != null">and district_code = #{dto.districtCode}</if>
+            <if test="dto.startDate != null">and create_time >= #{dto.startDate}</if>
+        </where>
+    </select>
+    <select id="getTodayAllOrderList" resultType="com.leromro.core.domain.SecondOrder">
+        select * from l_second_order
+        where
+            order_status in (1,2,4)
+            and create_time &gt;= DATE(NOW())
+    </select>
 
 </mapper>

+ 27 - 8
leromro-core/src/main/resources/mapper/core/VolunteerInfoMapper.xml

@@ -95,16 +95,35 @@
         where volunteer_id = #{volunteerId} and service_category = #{serviceCategory}
     </select>
     <select id="selectVolunteerInfoSimple" resultType="com.leromro.core.domain.vo.VolunteerInfoVO">
-        select volunteer_id, skill_describe,age ,service_category,name,volunteer_picture,score,lvi.business_management_id
-        from l_volunteer_info lvi left join l_business_management lbm on lvi.business_management_id = lbm.business_management_id
+<!--  select volunteer_id, skill_describe,age ,service_category,name,volunteer_picture,score,lvi.business_management_id-->
+<!--        from l_volunteer_info lvi left join l_business_management lbm on lvi.business_management_id = lbm.business_management_id-->
+<!--        where app_status = 2-->
+<!--        <if test="name != null  and name != ''"> and lvi.name like concat('%', #{name}, '%')</if>-->
+<!--        <if test="score != null "> and lvi.score = #{score}</if>-->
+<!--        <if test="serviceCategory != null and serviceCategory != ''"> and lvi.service_category = #{serviceCategory}</if>-->
+<!--        <if test="skillDescribe != null  and skillDescribe != ''"> and lvi.skill_describe = #{skillDescribe}</if>-->
+<!--        <if test="city != null  and city != ''"> and lvi.city = #{city}</if>-->
+<!--        <if test="address != null  and address != ''"> and lvi.address = #{address}</if>-->
+<!--        <if test="businessManagementId != null and businessManagementId != '' ">and lvi.business_management_id in (select lbm.business_management_id from l_business_management where find_in_set(#{businessManagementId},lbm.ancestors) ) or lvi.business_management_id = 28 </if>-->
+
+        select volunteer_id, skill_describe,age ,service_category,name,volunteer_picture,score,business_management_id
+        from l_volunteer_info lvi
         where app_status = 2
+        and lvi.business_management_id in (select lbm.business_management_id from l_business_management lbm
+            where find_in_set(#{businessManagementId},lbm.ancestors) or lbm.business_management_id = #{businessManagementId})
+
         <if test="name != null  and name != ''"> and lvi.name like concat('%', #{name}, '%')</if>
-            <if test="score != null "> and lvi.score = #{score}</if>
-            <if test="serviceCategory != null and serviceCategory != ''"> and lvi.service_category = #{serviceCategory}</if>
-            <if test="skillDescribe != null  and skillDescribe != ''"> and lvi.skill_describe = #{skillDescribe}</if>
-            <if test="city != null  and city != ''"> and lvi.city = #{city}</if>
-            <if test="address != null  and address != ''"> and lvi.address = #{address}</if>
-             <if test="businessManagementId != null and businessManagementId != '' ">and lvi.business_management_id in (select lbm.business_management_id from l_business_management where find_in_set(#{businessManagementId},lbm.ancestors) ) or lvi.business_management_id = #{businessManagementId} </if>
+        <if test="score != null "> and lvi.score = #{score}</if>
+        <if test="serviceCategory != null and serviceCategory != ''"> and lvi.service_category = #{serviceCategory}</if>
+        <if test="skillDescribe != null  and skillDescribe != ''"> and lvi.skill_describe = #{skillDescribe}</if>
+        <if test="city != null  and city != ''"> and lvi.city = #{city}</if>
+        <if test="address != null  and address != ''"> and lvi.address = #{address}</if>
+
+
+    </select>
+    <select id="getCurrentOrgVolunteerList" resultType="com.leromro.core.domain.VolunteerInfo">
+        select * from l_volunteer_info
+        where app_status = 2
     </select>
 
 

+ 2 - 0
leromro-framework/src/main/java/com/leromro/framework/interceptor/ListPermissionInterceptor.java

@@ -73,6 +73,8 @@ public class ListPermissionInterceptor implements InnerInterceptor {
                 .map(String::trim)
                 .collect(Collectors.toList());
         SysUser user = SecurityUtils.getLoginUser().getUser();
+        //如果是超级管理员,则跳过拦截器
+        if (user.getDeptId() == 100) return;
         //获取权限实体所有字段
         List<Field> fields = FieldUtils.getAllFieldsList(permission.getAClass());
         //获取表主键名称

+ 1 - 1
leromro-generator/src/main/java/com/leromro/generator/util/GenUtils.java

@@ -67,7 +67,7 @@ public class GenUtils
                 column.setJavaType(GenConstants.TYPE_BIGDECIMAL);
             }
             // 如果是整形
-            else if ((str != null && str.length == 1 && Integer.parseInt(str[0]) <= 10) || "tinyint".equals(dataType))
+            else if ((str != null && str.length == 1 && Integer.parseInt(str[0]) <= 10) || "tinyint".equals(dataType) || "int".equals(dataType))
             {
                 column.setJavaType(GenConstants.TYPE_INTEGER);
             }

+ 1 - 1
leromro-generator/src/main/resources/vm/java/domain.java.vm

@@ -44,7 +44,7 @@ public class ${ClassName} extends ${Entity}
 #foreach ($column in $columns)
 #if(!$table.isSuperColumn($column.javaField))
 #if($!column.columnComment)
-    /** $column.columnComment */
+##    /** $column.columnComment */
 #if($column.isPk())
     @TableId(type = IdType.AUTO)
 #end

+ 2 - 0
leromro-system/src/main/java/com/leromro/system/mapper/SysDeptMapper.java

@@ -115,4 +115,6 @@ public interface SysDeptMapper
      * @return 结果
      */
     public int deleteDeptById(Long deptId);
+
+    List<SysDept> getAllOrgList();
 }

+ 2 - 0
leromro-system/src/main/java/com/leromro/system/service/ISysDeptService.java

@@ -121,4 +121,6 @@ public interface ISysDeptService
      * @return 结果
      */
     public int deleteDeptById(Long deptId);
+
+    List<SysDept> getAllOrgList();
 }

+ 5 - 0
leromro-system/src/main/java/com/leromro/system/service/impl/SysDeptServiceImpl.java

@@ -300,6 +300,11 @@ public class SysDeptServiceImpl implements ISysDeptService
         return deptMapper.deleteDeptById(deptId);
     }
 
+    @Override
+    public List<SysDept> getAllOrgList() {
+        return deptMapper.getAllOrgList();
+    }
+
     /**
      * 递归列表
      */

+ 4 - 1
leromro-system/src/main/resources/mapper/system/SysDeptMapper.xml

@@ -91,7 +91,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	    <include refid="selectDeptVo"/>
 		where dept_name=#{deptName} and parent_id = #{parentId} and del_flag = '0' limit 1
 	</select>
-    
+    <select id="getAllOrgList" resultType="com.leromro.common.core.domain.entity.SysDept">
+		select * from sys_dept where del_flag = '0' and area_type = 3
+	</select>
+
     <insert id="insertDept" parameterType="SysDept">
  		insert into sys_dept(
  			<if test="deptId != null and deptId != 0">dept_id,</if>