From 453ee097563df5788f96e102b38249f0ca70d82a Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期二, 14 十月 2025 18:41:54 +0800
Subject: [PATCH] 诊所和供应商首页统计
---
ruoyi-system/src/main/java/com/ruoyi/system/model/TSysOrderGoods.java | 3
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysEducationalInfoController.java | 2
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpProcurementServiceImpl.java | 30 +
ruoyi-system/src/main/resources/mapper/system/TSysOrderMapper.xml | 67 ++++
ruoyi-system/src/main/java/com/ruoyi/system/service/TErpProcurementService.java | 53 +++
ruoyi-system/src/main/java/com/ruoyi/system/mapper/TSysOrderMapper.java | 24 +
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysLiveController.java | 2
ruoyi-system/src/main/java/com/ruoyi/system/service/TSysOrderService.java | 14
ruoyi-system/src/main/java/com/ruoyi/system/vo/SupplierSalesStatisticsGoodsCountVO.java | 23 +
ruoyi-system/src/main/resources/mapper/system/TErpProcurementMapper.xml | 72 ++++
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysOrderServiceImpl.java | 35 ++
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysInspectionController.java | 18 +
ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/TaskUtil.java | 2
ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java | 2
ruoyi-system/src/main/java/com/ruoyi/system/query/DataStatisticsQuery.java | 3
ruoyi-system/src/main/java/com/ruoyi/system/vo/ClinicSalesStatisticsVO.java | 23 +
ruoyi-system/src/main/java/com/ruoyi/system/vo/ClinicSalesStatisticsGoodsTypeVO.java | 17 +
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysProductIntroductionController.java | 74 ++++
ruoyi-system/src/main/java/com/ruoyi/system/vo/SupplierSalesStatisticsVO.java | 24 +
ruoyi-system/src/main/resources/mapper/system/TSysOrderGoodsMapper.xml | 3
ruoyi-system/src/main/java/com/ruoyi/system/mapper/TErpProcurementMapper.java | 53 +++
ruoyi-system/src/main/java/com/ruoyi/system/model/TSysInspection.java | 10
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysChronicDiseaseController.java | 31 +
ruoyi-system/src/main/java/com/ruoyi/system/vo/ClinicSalesStatisticsGoodsCountVO.java | 23 +
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/DataStatisticsController.java | 295 ++++++++++++++++++
ruoyi-system/src/main/java/com/ruoyi/system/vo/SupplierSalesStatisticsGoodsTypeVO.java | 18 +
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysAppUserController.java | 36 +
27 files changed, 931 insertions(+), 26 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/DataStatisticsController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/DataStatisticsController.java
index 9fa441a..cdd01ec 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/DataStatisticsController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/DataStatisticsController.java
@@ -7,8 +7,7 @@
import com.ruoyi.system.model.*;
import com.ruoyi.system.query.DataStatisticsQuery;
import com.ruoyi.system.service.*;
-import com.ruoyi.system.vo.SupplierThirtyMoneyProcurementStatisticsVO;
-import com.ruoyi.system.vo.SupplierThirtyProcurementStatisticsVO;
+import com.ruoyi.system.vo.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
@@ -38,9 +37,10 @@
private final TCrmClinicService crmClinicService;
private final TSysAppUserService sysAppUserService;
private final TCrmClinicPointsService crmClinicPointsService;
+ private final TSysOrderService sysOrderService;
@Autowired
- public DataStatisticsController(TErpProcurementService erpProcurementService, TokenService tokenService, ISysUserService sysUserService, TCrmSupplierService crmSupplierService, TCrmClinicService crmClinicService, TSysAppUserService sysAppUserService, TCrmClinicPointsService crmClinicPointsService) {
+ public DataStatisticsController(TErpProcurementService erpProcurementService, TokenService tokenService, ISysUserService sysUserService, TCrmSupplierService crmSupplierService, TCrmClinicService crmClinicService, TSysAppUserService sysAppUserService, TCrmClinicPointsService crmClinicPointsService, TSysOrderService sysOrderService) {
this.erpProcurementService = erpProcurementService;
this.tokenService = tokenService;
this.sysUserService = sysUserService;
@@ -48,6 +48,7 @@
this.crmClinicService = crmClinicService;
this.sysAppUserService = sysAppUserService;
this.crmClinicPointsService = crmClinicPointsService;
+ this.sysOrderService = sysOrderService;
}
/**
@@ -75,7 +76,7 @@
endTime = LocalDate.now() + " 23:59:59";
break;
case 4:
- startTime = LocalDate.now().minusMonths(6) + " 00:00:00";
+ startTime = LocalDate.now().minusMonths(5) + " 00:00:00";
endTime = LocalDate.now() + " 23:59:59";
break;
case 5:
@@ -216,8 +217,292 @@
return R.ok(map);
}
+ /**
+ * 供应商销售统计总类总数
+ */
+ @ApiOperation(value = "供应商销售统计总类总数",notes = "typeTotalCount:总类,totalCount:总数")
+ @PostMapping(value = "/supplierSalesStatisticsSum")
+ public R<Map<String,Integer>> supplierSalesStatisticsSum() {
+ Long userId = tokenService.getLoginUser().getUserId();
+
+ TCrmSupplier crmSupplier = crmSupplierService.getOne(Wrappers.lambdaQuery(TCrmSupplier.class)
+ .eq(TCrmSupplier::getUserId, userId));
+ // 查询药品总类和总数
+ Integer typeTotalCount = erpProcurementService.supplierSalesStatisticsTypeCount(crmSupplier.getId());
+ Integer totalCount = erpProcurementService.supplierSalesStatisticsCount(crmSupplier.getId());
+ Map<String,Integer> map = new HashMap<>();
+ map.put("typeTotalCount", typeTotalCount);
+ map.put("totalCount", totalCount);
+
+ return R.ok(map);
+ }
+
+ /**
+ * 供应商销售统计
+ */
+ @ApiOperation(value = "供应商销售统计")
+ @PostMapping(value = "/supplierSalesStatistics")
+ public R<SupplierSalesStatisticsVO> supplierSalesStatistics(@Validated @RequestBody DataStatisticsQuery query) {
+ Long userId = tokenService.getLoginUser().getUserId();
+
+ String startTime = null;
+ String endTime = null;
+ switch (query.getTimeType()){
+ case 1:
+ startTime = LocalDate.now() + " 00:00:00";
+ endTime = LocalDate.now() + " 23:59:59";
+ break;
+ case 2:
+ startTime = LocalDate.now().minusDays(1) + " 00:00:00";
+ endTime = LocalDate.now().minusDays(1) + " 23:59:59";
+ break;
+ case 3:
+ startTime = LocalDate.now().minusDays(6) + " 00:00:00";
+ endTime = LocalDate.now() + " 23:59:59";
+ break;
+ case 4:
+ startTime = LocalDate.now().minusMonths(5).withDayOfMonth(1) + " 00:00:00";
+ endTime = LocalDate.now() + " 23:59:59";
+ break;
+ case 5:
+ startTime = LocalDate.now().minusYears(1).withDayOfMonth(1) + " 00:00:00";
+ endTime = LocalDate.now() + " 23:59:59";
+ break;
+ }
+ TCrmSupplier crmSupplier = crmSupplierService.getOne(Wrappers.lambdaQuery(TCrmSupplier.class)
+ .eq(TCrmSupplier::getUserId, userId));
+ SupplierSalesStatisticsVO supplierSalesStatisticsVO = new SupplierSalesStatisticsVO();
+ // 销售金额
+ BigDecimal totalMoney = erpProcurementService.supplierSalesStatisticsMoney(crmSupplier.getId(), startTime, endTime);
+ supplierSalesStatisticsVO.setSalesMoney(totalMoney);
+
+ // 查询销售前十占比
+ List<SupplierSalesStatisticsGoodsTypeVO> supplierSalesStatisticsGoodsTypeVOS = erpProcurementService.supplierSalesStatisticsGoodsType(crmSupplier.getId(), startTime, endTime);
+ supplierSalesStatisticsVO.setSupplierSalesStatisticsGoodsTypeVOS(supplierSalesStatisticsGoodsTypeVOS);
+ // 查询30天销售统计
+ List<SupplierSalesStatisticsGoodsCountVO> supplierSalesStatisticsGoodsCountVOS;
+ if(query.getTimeType() == 1 || query.getTimeType() == 2 || query.getTimeType() == 3){
+ supplierSalesStatisticsGoodsCountVOS = erpProcurementService.supplierSalesStatisticsGoodsCount(crmSupplier.getId(), startTime, endTime,query.getGoodsName());
+ }else {
+ supplierSalesStatisticsGoodsCountVOS = erpProcurementService.supplierSalesStatisticsGoodsCountMonth(crmSupplier.getId(), startTime, endTime,query.getGoodsName());
+ }
+ SimpleDateFormat format = new SimpleDateFormat("MM.dd");
+ SimpleDateFormat formatMonth = new SimpleDateFormat("yyyy.MM");
+ switch (query.getTimeType()){
+ case 1:
+ if(CollectionUtils.isEmpty(supplierSalesStatisticsGoodsCountVOS)){
+ SupplierSalesStatisticsGoodsCountVO supplierSalesStatisticsGoodsCountVO = new SupplierSalesStatisticsGoodsCountVO();
+ String time = format.format(DateUtils.localDateTimeToDate(LocalDateTime.now()));
+ supplierSalesStatisticsGoodsCountVO.setTime(time);
+ supplierSalesStatisticsGoodsCountVO.setGoodsCount(0);
+ supplierSalesStatisticsGoodsCountVOS.add(supplierSalesStatisticsGoodsCountVO);
+ }
+ break;
+ case 2:
+ if(CollectionUtils.isEmpty(supplierSalesStatisticsGoodsCountVOS)){
+ SupplierSalesStatisticsGoodsCountVO supplierSalesStatisticsGoodsCountVO = new SupplierSalesStatisticsGoodsCountVO();
+ String time = format.format(DateUtils.localDateTimeToDate(LocalDateTime.now().minusDays(1)));
+ supplierSalesStatisticsGoodsCountVO.setTime(time);
+ supplierSalesStatisticsGoodsCountVO.setGoodsCount(0);
+ supplierSalesStatisticsGoodsCountVOS.add(supplierSalesStatisticsGoodsCountVO);
+ }
+ break;
+ case 3:
+ LocalDateTime days = LocalDateTime.now().minusDays(6);
+ for (int i = 0; i < 7; i++) {
+ LocalDateTime timeNow = days.plusDays(i);
+ List<SupplierSalesStatisticsGoodsCountVO> vos = supplierSalesStatisticsGoodsCountVOS.stream().filter(vo -> timeNow.toLocalDate().isEqual(vo.getPayTime())).collect(Collectors.toList());
+ if(CollectionUtils.isEmpty(vos)){
+ SupplierSalesStatisticsGoodsCountVO vo = new SupplierSalesStatisticsGoodsCountVO();
+ String time = format.format(DateUtils.localDateTimeToDate(timeNow));
+ vo.setTime(time);
+ vo.setGoodsCount(0);
+ supplierSalesStatisticsGoodsCountVOS.add(vo);
+ }
+ }
+ supplierSalesStatisticsGoodsCountVOS.sort(Comparator.comparing(SupplierSalesStatisticsGoodsCountVO::getTime));
+ break;
+ case 4:
+ LocalDateTime month = LocalDateTime.now().minusMonths(5);
+ for (int i = 0; i < 6; i++) {
+ LocalDateTime timeNow = month.plusMonths(i);
+ Date date = DateUtils.localDateTimeToDate(timeNow);
+ String time = formatMonth.format(date);
+ List<SupplierSalesStatisticsGoodsCountVO> vos = supplierSalesStatisticsGoodsCountVOS.stream().filter(vo -> time.equals(vo.getTime())).collect(Collectors.toList());
+ if(CollectionUtils.isEmpty(vos)){
+ SupplierSalesStatisticsGoodsCountVO vo = new SupplierSalesStatisticsGoodsCountVO();
+ vo.setTime(time);
+ vo.setGoodsCount(0);
+ supplierSalesStatisticsGoodsCountVOS.add(vo);
+ }
+ }
+ supplierSalesStatisticsGoodsCountVOS.sort(Comparator.comparing(SupplierSalesStatisticsGoodsCountVO::getTime));
+ break;
+ case 5:
+ LocalDateTime years = LocalDateTime.now().minusYears(1);
+ for (int i = 0; i < 12; i++) {
+ LocalDateTime timeNow = years.plusMonths(i);
+ Date date = DateUtils.localDateTimeToDate(timeNow);
+ String time = formatMonth.format(date);
+ List<SupplierSalesStatisticsGoodsCountVO> vos = supplierSalesStatisticsGoodsCountVOS.stream().filter(vo -> time.equals(vo.getTime())).collect(Collectors.toList());
+ if(CollectionUtils.isEmpty(vos)){
+ SupplierSalesStatisticsGoodsCountVO vo = new SupplierSalesStatisticsGoodsCountVO();
+ vo.setTime(time);
+ vo.setGoodsCount(0);
+ supplierSalesStatisticsGoodsCountVOS.add(vo);
+ }
+ }
+ supplierSalesStatisticsGoodsCountVOS.sort(Comparator.comparing(SupplierSalesStatisticsGoodsCountVO::getTime));
+ break;
+ }
+ supplierSalesStatisticsVO.setSupplierSalesStatisticsGoodsCountVOS(supplierSalesStatisticsGoodsCountVOS);
+ return R.ok(supplierSalesStatisticsVO);
+ }
+
+ /**
+ * 诊所销售统计总类总数
+ */
+ @ApiOperation(value = "诊所销售统计总类总数",notes = "typeTotalCount:总类,totalCount:总数")
+ @PostMapping(value = "/clinicSalesStatisticsSum")
+ public R<Map<String,Integer>> clinicSalesStatisticsSum() {
+ Long userId = tokenService.getLoginUser().getUserId();
+
+ TCrmClinic crmClinic = crmClinicService.getOne(Wrappers.lambdaQuery(TCrmClinic.class)
+ .eq(TCrmClinic::getUserId, userId));
+ // 查询药品总类和总数
+ Integer typeTotalCount = sysOrderService.clinicSalesStatisticsTypeCount(crmClinic.getId());
+ Integer totalCount = sysOrderService.clinicSalesStatisticsCount(crmClinic.getId());
+ Map<String,Integer> map = new HashMap<>();
+ map.put("typeTotalCount", typeTotalCount);
+ map.put("totalCount", totalCount);
+
+ return R.ok(map);
+ }
+
+ /**
+ * 诊所销售统计
+ */
+ @ApiOperation(value = "诊所销售统计")
+ @PostMapping(value = "/clinicSalesStatistics")
+ public R<ClinicSalesStatisticsVO> clinicSalesStatistics(@Validated @RequestBody DataStatisticsQuery query) {
+ Long userId = tokenService.getLoginUser().getUserId();
+
+ String startTime = null;
+ String endTime = null;
+ switch (query.getTimeType()){
+ case 1:
+ startTime = LocalDate.now() + " 00:00:00";
+ endTime = LocalDate.now() + " 23:59:59";
+ break;
+ case 2:
+ startTime = LocalDate.now().minusDays(1) + " 00:00:00";
+ endTime = LocalDate.now().minusDays(1) + " 23:59:59";
+ break;
+ case 3:
+ startTime = LocalDate.now().minusDays(6) + " 00:00:00";
+ endTime = LocalDate.now() + " 23:59:59";
+ break;
+ case 4:
+ startTime = LocalDate.now().minusMonths(5).withDayOfMonth(1) + " 00:00:00";
+ endTime = LocalDate.now() + " 23:59:59";
+ break;
+ case 5:
+ startTime = LocalDate.now().minusYears(1).withDayOfMonth(1) + " 00:00:00";
+ endTime = LocalDate.now() + " 23:59:59";
+ break;
+ }
+ TCrmClinic crmClinic = crmClinicService.getOne(Wrappers.lambdaQuery(TCrmClinic.class)
+ .eq(TCrmClinic::getUserId, userId));
+ ClinicSalesStatisticsVO clinicSalesStatisticsVO = new ClinicSalesStatisticsVO();
+ // 销售金额
+ BigDecimal totalMoney = sysOrderService.clinicSalesStatisticsMoney(crmClinic.getId(), startTime, endTime);
+ clinicSalesStatisticsVO.setSalesMoney(totalMoney);
+
+ // 查询销售前十占比
+ List<ClinicSalesStatisticsGoodsTypeVO> clinicSalesStatisticsGoodsTypeVOS = sysOrderService.supplierSalesStatisticsGoodsType(crmClinic.getId(), startTime, endTime);
+ clinicSalesStatisticsVO.setClinicSalesStatisticsGoodsTypeVOS(clinicSalesStatisticsGoodsTypeVOS);
+ // 查询30天销售统计
+ List<ClinicSalesStatisticsGoodsCountVO> clinicSalesStatisticsGoodsCountVOS;
+ if(query.getTimeType() == 1 || query.getTimeType() == 2 || query.getTimeType() == 3){
+ clinicSalesStatisticsGoodsCountVOS = sysOrderService.supplierSalesStatisticsGoodsCount(crmClinic.getId(), startTime, endTime,query.getGoodsName());
+ }else {
+ clinicSalesStatisticsGoodsCountVOS = sysOrderService.supplierSalesStatisticsGoodsCountMonth(crmClinic.getId(), startTime, endTime,query.getGoodsName());
+ }
+ SimpleDateFormat format = new SimpleDateFormat("MM.dd");
+ SimpleDateFormat formatMonth = new SimpleDateFormat("yyyy.MM");
+ switch (query.getTimeType()){
+ case 1:
+ if(CollectionUtils.isEmpty(clinicSalesStatisticsGoodsCountVOS)){
+ ClinicSalesStatisticsGoodsCountVO clinicSalesStatisticsGoodsCountVO = new ClinicSalesStatisticsGoodsCountVO();
+ String time = format.format(DateUtils.localDateTimeToDate(LocalDateTime.now()));
+ clinicSalesStatisticsGoodsCountVO.setTime(time);
+ clinicSalesStatisticsGoodsCountVO.setGoodsCount(0);
+ clinicSalesStatisticsGoodsCountVOS.add(clinicSalesStatisticsGoodsCountVO);
+ }
+ break;
+ case 2:
+ if(CollectionUtils.isEmpty(clinicSalesStatisticsGoodsCountVOS)){
+ ClinicSalesStatisticsGoodsCountVO clinicSalesStatisticsGoodsCountVO = new ClinicSalesStatisticsGoodsCountVO();
+ String time = format.format(DateUtils.localDateTimeToDate(LocalDateTime.now().minusDays(1)));
+ clinicSalesStatisticsGoodsCountVO.setTime(time);
+ clinicSalesStatisticsGoodsCountVO.setGoodsCount(0);
+ clinicSalesStatisticsGoodsCountVOS.add(clinicSalesStatisticsGoodsCountVO);
+ }
+ break;
+ case 3:
+ LocalDateTime days = LocalDateTime.now().minusDays(6);
+ for (int i = 0; i < 7; i++) {
+ LocalDateTime timeNow = days.plusDays(i);
+ List<ClinicSalesStatisticsGoodsCountVO> vos = clinicSalesStatisticsGoodsCountVOS.stream().filter(vo -> timeNow.toLocalDate().isEqual(vo.getPayTime())).collect(Collectors.toList());
+ if(CollectionUtils.isEmpty(vos)){
+ ClinicSalesStatisticsGoodsCountVO vo = new ClinicSalesStatisticsGoodsCountVO();
+ String time = format.format(DateUtils.localDateTimeToDate(timeNow));
+ vo.setTime(time);
+ vo.setGoodsCount(0);
+ clinicSalesStatisticsGoodsCountVOS.add(vo);
+ }
+ }
+ clinicSalesStatisticsGoodsCountVOS.sort(Comparator.comparing(ClinicSalesStatisticsGoodsCountVO::getTime));
+ break;
+ case 4:
+ LocalDateTime month = LocalDateTime.now().minusMonths(5);
+ for (int i = 0; i < 6; i++) {
+ LocalDateTime timeNow = month.plusMonths(i);
+ Date date = DateUtils.localDateTimeToDate(timeNow);
+ String time = formatMonth.format(date);
+ List<ClinicSalesStatisticsGoodsCountVO> vos = clinicSalesStatisticsGoodsCountVOS.stream().filter(vo -> time.equals(vo.getTime())).collect(Collectors.toList());
+ if(CollectionUtils.isEmpty(vos)){
+ ClinicSalesStatisticsGoodsCountVO vo = new ClinicSalesStatisticsGoodsCountVO();
+ vo.setTime(time);
+ vo.setGoodsCount(0);
+ clinicSalesStatisticsGoodsCountVOS.add(vo);
+ }
+ }
+ clinicSalesStatisticsGoodsCountVOS.sort(Comparator.comparing(ClinicSalesStatisticsGoodsCountVO::getTime));
+ break;
+ case 5:
+ LocalDateTime years = LocalDateTime.now().minusYears(1);
+ for (int i = 0; i < 12; i++) {
+ LocalDateTime timeNow = years.plusMonths(i);
+ Date date = DateUtils.localDateTimeToDate(timeNow);
+ String time = formatMonth.format(date);
+ List<ClinicSalesStatisticsGoodsCountVO> vos = clinicSalesStatisticsGoodsCountVOS.stream().filter(vo -> time.equals(vo.getTime())).collect(Collectors.toList());
+ if(CollectionUtils.isEmpty(vos)){
+ ClinicSalesStatisticsGoodsCountVO vo = new ClinicSalesStatisticsGoodsCountVO();
+ vo.setTime(time);
+ vo.setGoodsCount(0);
+ clinicSalesStatisticsGoodsCountVOS.add(vo);
+ }
+ }
+ clinicSalesStatisticsGoodsCountVOS.sort(Comparator.comparing(ClinicSalesStatisticsGoodsCountVO::getTime));
+ break;
+ }
+ clinicSalesStatisticsVO.setClinicSalesStatisticsGoodsCountVOS(clinicSalesStatisticsGoodsCountVOS);
+ return R.ok(clinicSalesStatisticsVO);
+ }
+
public static void main(String[] args) {
- System.out.println(LocalDate.now().minusDays(30));
+ System.out.println(LocalDate.now().minusMonths(6));
}
}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysAppUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysAppUserController.java
index f21a551..d3f7dbe 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysAppUserController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysAppUserController.java
@@ -11,14 +11,12 @@
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.WebUtils;
+import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.export.TCrmClinicAuditExport;
import com.ruoyi.system.export.TSysAppUserClinicExport;
import com.ruoyi.system.export.TSysAppUserExport;
import com.ruoyi.system.export.TSysAppUserListExport;
-import com.ruoyi.system.model.TSysAppUser;
-import com.ruoyi.system.model.TSysChronicDisease;
-import com.ruoyi.system.model.TSysInspection;
-import com.ruoyi.system.model.TSysMessageTemplate;
+import com.ruoyi.system.model.*;
import com.ruoyi.system.query.TCrmClinicQuery;
import com.ruoyi.system.query.TSysAppUserQuery;
import com.ruoyi.system.service.*;
@@ -30,6 +28,7 @@
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -42,6 +41,7 @@
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
import java.util.*;
+import java.util.stream.Collectors;
/**
* <p>
@@ -62,14 +62,18 @@
private final TSysChronicDiseaseService sysChronicDiseaseService;
private final MsgUtils msgUtils;
private final TSysMessageTemplateService sysMessageTemplateService;
+ private final TCrmClinicService crmClinicService;
+ private final TokenService tokenService;
@Autowired
- public TSysAppUserController(TSysAppUserService sysAppUserService, TSysInspectionService sysInspectionService, TSysOrderService sysOrderService, TSysChronicDiseaseService sysChronicDiseaseService, MsgUtils msgUtils, TSysMessageTemplateService sysMessageTemplateService) {
+ public TSysAppUserController(TSysAppUserService sysAppUserService, TSysInspectionService sysInspectionService, TSysOrderService sysOrderService, TSysChronicDiseaseService sysChronicDiseaseService, MsgUtils msgUtils, TSysMessageTemplateService sysMessageTemplateService, TCrmClinicService crmClinicService, TokenService tokenService) {
this.sysAppUserService = sysAppUserService;
this.sysInspectionService = sysInspectionService;
this.sysOrderService = sysOrderService;
this.sysChronicDiseaseService = sysChronicDiseaseService;
this.msgUtils = msgUtils;
this.sysMessageTemplateService = sysMessageTemplateService;
+ this.crmClinicService = crmClinicService;
+ this.tokenService = tokenService;
}
/**
@@ -135,6 +139,10 @@
if (sysAppUserService.isExit(dto)) {
return R.fail("用户管理信息已存在");
}
+ Long userId = tokenService.getLoginUser().getUserId();
+ TCrmClinic crmClinic = crmClinicService.getOne(Wrappers.lambdaQuery(TCrmClinic.class)
+ .eq(TCrmClinic::getUserId, userId));
+ dto.setClinicId(crmClinic.getId());
return R.ok(sysAppUserService.save(dto));
}
@@ -169,6 +177,24 @@
}
// 查询检测信息
List<TSysInspection> sysInspections = sysInspectionService.list(Wrappers.lambdaQuery(TSysInspection.class).eq(TSysInspection::getAppUserId, id));
+ if(!CollectionUtils.isEmpty(sysInspections)){
+ List<String> clinicIds = sysInspections.stream().map(TSysInspection::getClinicId).collect(Collectors.toList());
+ List<TCrmClinic> clinicList = crmClinicService.list(Wrappers.lambdaQuery(TCrmClinic.class).in(TCrmClinic::getId, clinicIds));
+ List<TSysOrder> sysOrderList = sysOrderService.list(Wrappers.lambdaQuery(TSysOrder.class).in(TSysOrder::getClinicId, clinicIds));
+ for (TSysInspection sysInspection : sysInspections) {
+ TCrmClinic clinic = clinicList.stream().filter(c -> c.getId().equals(sysInspection.getClinicId())).findFirst().orElse(null);
+ if(clinic != null){
+ sysInspection.setClinicName(clinic.getClinicName());
+ }
+ List<TSysOrder> sysOrders = sysOrderList.stream().filter(c -> sysInspection.getId().equals(c.getInspectionId())).collect(Collectors.toList());
+ if(CollectionUtils.isEmpty(sysOrders)){
+ sysInspection.setIsPrescribeMedicine(0);
+ }else {
+ sysInspection.setIsPrescribeMedicine(1);
+ sysInspection.setOrderId(sysOrders.get(0).getId());
+ }
+ }
+ }
sysAppUserVO.setSysInspections(sysInspections);
// 订单信息
List<TSysOrderVO> sysOrders = sysOrderService.queryListByAppUserId(id);
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysChronicDiseaseController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysChronicDiseaseController.java
index bc88089..fb03f15 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysChronicDiseaseController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysChronicDiseaseController.java
@@ -6,8 +6,11 @@
import com.ruoyi.common.basic.PageInfo;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.system.model.TSysAppUser;
import com.ruoyi.system.model.TSysChronicDisease;
import com.ruoyi.system.query.TSysChronicDiseaseQuery;
+import com.ruoyi.system.service.TSysAppUserService;
import com.ruoyi.system.service.TSysChronicDiseaseService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -15,6 +18,7 @@
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
+import java.util.Arrays;
import java.util.List;
/**
@@ -31,9 +35,11 @@
public class TSysChronicDiseaseController {
private final TSysChronicDiseaseService sysChronicDiseaseService;
+ private final TSysAppUserService sysAppUserService;
@Autowired
- public TSysChronicDiseaseController(TSysChronicDiseaseService sysChronicDiseaseService) {
+ public TSysChronicDiseaseController(TSysChronicDiseaseService sysChronicDiseaseService, TSysAppUserService sysAppUserService) {
this.sysChronicDiseaseService = sysChronicDiseaseService;
+ this.sysAppUserService = sysAppUserService;
}
/**
@@ -53,6 +59,29 @@
public R<List<TSysChronicDisease>> list() {
return R.ok(sysChronicDiseaseService.list(Wrappers.lambdaQuery(TSysChronicDisease.class).orderByDesc(TSysChronicDisease::getCreateTime)));
}
+ /**
+ * 获取慢性病管理管理列表
+ */
+ @ApiOperation(value = "通过用户id获取慢性病管理列表")
+ @GetMapping(value = "/listByAppUserId")
+ public R<List<TSysChronicDisease>> listByAppUserId(@RequestParam String appUserId) {
+
+ TSysAppUser sysAppUser = sysAppUserService.getById(appUserId);
+ if (sysAppUser == null) {
+ return R.fail("用户不存在");
+ }
+ String chronicDiseaseId = sysAppUser.getChronicDiseaseId();
+ if(StringUtils.isNotBlank(chronicDiseaseId)){
+ String[] split = chronicDiseaseId.split(",");
+ List<TSysChronicDisease> sysChronicDiseases = sysChronicDiseaseService.list(Wrappers.lambdaQuery(TSysChronicDisease.class)
+ .notIn(TSysChronicDisease::getId, Arrays.asList(split))
+ .orderByDesc(TSysChronicDisease::getCreateTime));
+ return R.ok(sysChronicDiseases);
+ }else {
+ return R.ok(sysChronicDiseaseService.list(Wrappers.lambdaQuery(TSysChronicDisease.class).orderByDesc(TSysChronicDisease::getCreateTime)));
+ }
+
+ }
/**
* 添加慢性病管理管理
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysEducationalInfoController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysEducationalInfoController.java
index d0455ca..6575986 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysEducationalInfoController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysEducationalInfoController.java
@@ -35,8 +35,8 @@
@RestController
@RequestMapping("/t-sys-educational-info")
public class TSysEducationalInfoController {
-
private final TSysEducationalInfoService sysEducationalInfoService;
+
private final TokenService tokenService;
private final RedisCache redisCache;
@Autowired
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysInspectionController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysInspectionController.java
index f72eb79..4f8433e 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysInspectionController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysInspectionController.java
@@ -5,7 +5,10 @@
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.system.model.TCrmClinic;
import com.ruoyi.system.model.TSysInspection;
+import com.ruoyi.system.service.TCrmClinicService;
import com.ruoyi.system.service.TSysInspectionService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -13,6 +16,8 @@
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
+import java.text.SimpleDateFormat;
+import java.util.Date;
import java.util.List;
/**
@@ -29,9 +34,13 @@
public class TSysInspectionController {
private final TSysInspectionService sysInspectionService;
+ private final TokenService tokenService;
+ private final TCrmClinicService crmClinicService;
@Autowired
- public TSysInspectionController(TSysInspectionService sysInspectionService) {
+ public TSysInspectionController(TSysInspectionService sysInspectionService, TokenService tokenService, TCrmClinicService crmClinicService) {
this.sysInspectionService = sysInspectionService;
+ this.tokenService = tokenService;
+ this.crmClinicService = crmClinicService;
}
// /**
@@ -60,6 +69,13 @@
@PostMapping(value = "/add")
public R<Boolean> add(@Validated @RequestBody TSysInspection dto) {
dto.setIsPay(1);
+ String checkTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
+ dto.setCheckTime(checkTime);
+ Long userId = tokenService.getLoginUser().getUserId();
+ TCrmClinic crmClinic = crmClinicService.getOne(Wrappers.lambdaQuery(TCrmClinic.class)
+ .eq(TCrmClinic::getUserId, userId)
+ .last("LIMIT 1"));
+ dto.setClinicId(crmClinic.getId());
return R.ok(sysInspectionService.save(dto));
}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysLiveController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysLiveController.java
index ac6147e..8ff3b5a 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysLiveController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysLiveController.java
@@ -124,7 +124,7 @@
Long userId = tokenService.getLoginUser().getUserId();
Set<Long> clickCount = new HashSet<>();
clickCount.add(userId);
- redisCache.setCacheSet(Constants.SYS_LIVE_COUNT+id,clickCount);
+ redisCache.setCacheSet(Constants.SYS_LIVE_CLICK_COUNT+id,clickCount);
}
return R.ok(sysLive);
}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysProductIntroductionController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysProductIntroductionController.java
index cb12276..e7d0230 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysProductIntroductionController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysProductIntroductionController.java
@@ -9,8 +9,14 @@
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.system.model.TSysActivity;
+import com.ruoyi.system.model.TSysEducationalInfo;
+import com.ruoyi.system.model.TSysLive;
import com.ruoyi.system.model.TSysProductIntroduction;
import com.ruoyi.system.query.TSysProductIntroductionQuery;
+import com.ruoyi.system.service.TSysActivityService;
+import com.ruoyi.system.service.TSysEducationalInfoService;
+import com.ruoyi.system.service.TSysLiveService;
import com.ruoyi.system.service.TSysProductIntroductionService;
import com.ruoyi.system.vo.TSysProductIntroductionVO;
import io.swagger.annotations.Api;
@@ -19,9 +25,7 @@
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
/**
* <p>
@@ -39,11 +43,17 @@
private final TSysProductIntroductionService sysProductIntroductionService;
private final TokenService tokenService;
private final RedisCache redisCache;
+ private final TSysEducationalInfoService sysEducationalInfoService;
+ private final TSysActivityService sysActivityService;
+ private final TSysLiveService sysLiveService;
@Autowired
- public TSysProductIntroductionController(TSysProductIntroductionService sysProductIntroductionService, TokenService tokenService, RedisCache redisCache) {
+ public TSysProductIntroductionController(TSysProductIntroductionService sysProductIntroductionService, TokenService tokenService, RedisCache redisCache, TSysEducationalInfoService sysEducationalInfoService, TSysActivityService sysActivityService, TSysLiveService sysLiveService) {
this.sysProductIntroductionService = sysProductIntroductionService;
this.tokenService = tokenService;
this.redisCache = redisCache;
+ this.sysEducationalInfoService = sysEducationalInfoService;
+ this.sysActivityService = sysActivityService;
+ this.sysLiveService = sysLiveService;
}
/**
@@ -147,6 +157,62 @@
.eq(TSysProductIntroduction::getId,id));
return R.ok();
}
+
+ /**
+ * 热门推荐统计数量
+ */
+ @ApiOperation(value = "热门推荐统计数量")
+ @GetMapping(value = "/recommendationsCount")
+ public R<Map<String,Integer>> recommendationsCount() {
+
+ Long userId = tokenService.getLoginUser().getUserId();
+ // 查询教育资讯
+ List<TSysEducationalInfo> sysEducationalInfos = sysEducationalInfoService.list(Wrappers.<TSysEducationalInfo>lambdaQuery()
+ .eq(TSysEducationalInfo::getStatus, 1));
+ int educationalCount = sysEducationalInfos.size();
+ for (TSysEducationalInfo sysEducationalInfo : sysEducationalInfos) {
+ Set<Long> userIds = redisCache.getCacheSet(Constants.SYS_EDUCATION_CLICK_COUNT+sysEducationalInfo.getId());
+ if(userIds.contains(userId)){
+ educationalCount = educationalCount - 1;
+ }
+ }
+ // 查询产品介绍
+ List<TSysProductIntroduction> sysProductIntroductions = sysProductIntroductionService.list(Wrappers.lambdaQuery(TSysProductIntroduction.class)
+ .eq(TSysProductIntroduction::getStatus, 1));
+ int productCount = sysProductIntroductions.size();
+ for (TSysProductIntroduction sysProductIntroduction : sysProductIntroductions) {
+ Set<Long> userIds = redisCache.getCacheSet(Constants.SYS_PRODUCT_CLICK_COUNT+sysProductIntroduction.getId());
+ if(userIds.contains(userId)){
+ productCount = productCount - 1;
+ }
+ }
+ // 查询热门活动
+ List<TSysActivity> sysActivities = sysActivityService.list(Wrappers.lambdaQuery(TSysActivity.class)
+ .eq(TSysActivity::getStatus, 1));
+ int activityCount = sysActivities.size();
+ for (TSysActivity sysActivity : sysActivities) {
+ Set<Long> userIds = redisCache.getCacheSet(Constants.SYS_ACTIVITY_CLICK_COUNT+sysActivity.getId());
+ if(userIds.contains(userId)){
+ activityCount = activityCount - 1;
+ }
+ }
+ // 查询直播
+ List<TSysLive> sysLives = sysLiveService.list();
+ int liveCount = sysLives.size();
+ for (TSysLive sysLive : sysLives) {
+ Set<Long> userIds = redisCache.getCacheSet(Constants.SYS_LIVE_CLICK_COUNT+sysLive.getId());
+ if(userIds.contains(userId)){
+ liveCount = liveCount - 1;
+ }
+ }
+
+ Map<String,Integer> map = new HashMap<>();
+ map.put("educationalCount",educationalCount);
+ map.put("productCount",productCount);
+ map.put("activityCount",activityCount);
+ map.put("liveCount",liveCount);
+ return R.ok(map);
+ }
}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/TaskUtil.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/TaskUtil.java
index 5609584..1550b2e 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/TaskUtil.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/TaskUtil.java
@@ -60,7 +60,7 @@
}
}
- @Scheduled(cron = "10 0 0 * * ?")
+ @Scheduled(cron = "0 0 0 L * ?")
public void monthUpdateClinicPerformance() {
try {
// 判断哪些诊所本月没有业绩达标
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java
index 9f58e47..573c1fc 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java
@@ -193,7 +193,7 @@
/**
* 直播点击缓存
*/
- public static final String SYS_LIVE_COUNT = "sys_live_count:";
+ public static final String SYS_LIVE_CLICK_COUNT = "sys_live_click_count:";
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TErpProcurementMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TErpProcurementMapper.java
index 8a8ba1b..0eadac6 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TErpProcurementMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TErpProcurementMapper.java
@@ -6,12 +6,10 @@
import com.ruoyi.system.model.TErpProcurement;
import com.ruoyi.system.query.TErpGoodsQuery;
import com.ruoyi.system.query.TErpProcurementQuery;
-import com.ruoyi.system.vo.SupplierThirtyMoneyProcurementStatisticsVO;
-import com.ruoyi.system.vo.SupplierThirtyProcurementStatisticsVO;
-import com.ruoyi.system.vo.TErpGoodsVO;
-import com.ruoyi.system.vo.TErpProcurementVo;
+import com.ruoyi.system.vo.*;
import org.apache.ibatis.annotations.Param;
+import java.math.BigDecimal;
import java.util.List;
/**
@@ -42,4 +40,51 @@
@Param("endTime")String endTime,
@Param("roleType")Integer roleType);
+ /**
+ * 供应商销售统计-类型
+ * @param supplierId
+ * @return
+ */
+ Integer supplierSalesStatisticsTypeCount(@Param("supplierId")String supplierId);
+
+ /**
+ * 供应商销售统计-数量
+ * @param supplierId
+ * @return
+ */
+ Integer supplierSalesStatisticsCount(@Param("supplierId")String supplierId);
+
+ /**
+ * 供应商销售统计-金额
+ * @param supplierId
+ * @return
+ */
+ BigDecimal supplierSalesStatisticsMoney(@Param("supplierId")String supplierId,
+ @Param("startTime")String startTime,
+ @Param("endTime")String endTime);
+
+ /**
+ * 供应商销售统计-商品类型
+ * @param supplierId
+ * @return
+ */
+ List<SupplierSalesStatisticsGoodsTypeVO> supplierSalesStatisticsGoodsType(@Param("supplierId")String supplierId,
+ @Param("startTime")String startTime,
+ @Param("endTime")String endTime);
+
+ /**
+ * 供应商销售统计-商品数量
+ * @param supplierId
+ * @return
+ */
+ List<SupplierSalesStatisticsGoodsCountVO> supplierSalesStatisticsGoodsCount(@Param("supplierId")String supplierId,
+ @Param("startTime")String startTime,
+ @Param("endTime")String endTime,
+ @Param("goodsName")String goodsName);
+
+ List<SupplierSalesStatisticsGoodsCountVO> supplierSalesStatisticsGoodsCountMonth(@Param("supplierId")String supplierId,
+ @Param("startTime")String startTime,
+ @Param("endTime")String endTime,
+ @Param("goodsName")String goodsName);
+
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TSysOrderMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TSysOrderMapper.java
index 5767450..591b134 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TSysOrderMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TSysOrderMapper.java
@@ -4,10 +4,13 @@
import com.ruoyi.common.basic.PageInfo;
import com.ruoyi.system.model.TSysOrder;
import com.ruoyi.system.query.TSysOrderQuery;
+import com.ruoyi.system.vo.ClinicSalesStatisticsGoodsCountVO;
+import com.ruoyi.system.vo.ClinicSalesStatisticsGoodsTypeVO;
import com.ruoyi.system.vo.TSysOrderPageVo;
import com.ruoyi.system.vo.TSysOrderVO;
import org.apache.ibatis.annotations.Param;
+import java.math.BigDecimal;
import java.util.List;
/**
@@ -31,4 +34,25 @@
List<TSysOrderPageVo> pageList(@Param("page") PageInfo<TSysOrderPageVo> page, @Param("query") TSysOrderQuery query, @Param("sTime") String sTime, @Param("eTime") String eTime);
+ Integer clinicSalesStatisticsCount(@Param("clinicId")String clinicId);
+
+ Integer clinicSalesStatisticsTypeCount(@Param("clinicId")String clinicId);
+
+ BigDecimal clinicSalesStatisticsMoney(@Param("clinicId")String clinicId,
+ @Param("startTime")String startTime,
+ @Param("endTime")String endTime);
+
+ List<ClinicSalesStatisticsGoodsTypeVO> supplierSalesStatisticsGoodsType(@Param("clinicId")String clinicId,
+ @Param("startTime")String startTime,
+ @Param("endTime")String endTime);
+
+ List<ClinicSalesStatisticsGoodsCountVO> supplierSalesStatisticsGoodsCount(@Param("clinicId")String clinicId,
+ @Param("startTime")String startTime,
+ @Param("endTime")String endTime,
+ @Param("goodsName")String goodsName);
+
+ List<ClinicSalesStatisticsGoodsCountVO> supplierSalesStatisticsGoodsCountMonth(@Param("clinicId")String clinicId,
+ @Param("startTime")String startTime,
+ @Param("endTime")String endTime,
+ @Param("goodsName")String goodsName);
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TSysInspection.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TSysInspection.java
index a6a8340..bd7edfd 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TSysInspection.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TSysInspection.java
@@ -120,5 +120,15 @@
@ApiModelProperty(value = "是否已支付 1=是 0=否")
@TableField("is_pay")
private Integer isPay;
+ @ApiModelProperty(value = "诊所名称")
+ @TableField(exist = false)
+ private String clinicName;
+ @ApiModelProperty(value = "是否已开药 1=是 0=否")
+ @TableField(exist = false)
+ private Integer isPrescribeMedicine;
+ @ApiModelProperty(value = "订单id")
+ @TableField(exist = false)
+ private String orderId;
+
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TSysOrderGoods.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TSysOrderGoods.java
index 81be1c8..50a09ea 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TSysOrderGoods.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TSysOrderGoods.java
@@ -33,6 +33,9 @@
@ApiModelProperty(value = "订单id")
@TableField("order_id")
private String orderId;
+ @ApiModelProperty(value = "商品id")
+ @TableField("goods_id")
+ private String goodsId;
@ApiModelProperty(value = "商品名称")
@TableField("goods_name")
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/DataStatisticsQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/DataStatisticsQuery.java
index a599899..0ea420e 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/query/DataStatisticsQuery.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/DataStatisticsQuery.java
@@ -16,4 +16,7 @@
@ApiModelProperty(value = "时间类型 1=今日 2=昨天 3=最近七天 4=最近半年 5=最近一年")
private Integer timeType;
+ @ApiModelProperty(value = "药品名称")
+ private String goodsName;
+
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TErpProcurementService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TErpProcurementService.java
index 4a9f42e..dffc65a 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TErpProcurementService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TErpProcurementService.java
@@ -11,6 +11,7 @@
import com.ruoyi.system.vo.*;
import javax.validation.Valid;
+import java.math.BigDecimal;
import java.util.List;
/**
@@ -59,4 +60,56 @@
* @return
*/
List<SupplierThirtyMoneyProcurementStatisticsVO> supplierThirtyMoneyProcurementStatistics(String supplierAndClinicId, String startTime, String endTime,Integer roleType);
+
+ /**
+ * 供应商30天采购总类统计
+ * @param supplierId
+ * @return
+ */
+ Integer supplierSalesStatisticsTypeCount(String supplierId);
+
+ /**
+ * 供应商30天采购总数统计
+ * @param supplierId
+ * @return
+ */
+ Integer supplierSalesStatisticsCount(String supplierId);
+
+ /**
+ * 供应商30天采购金额统计
+ * @param supplierId
+ * @param startTime
+ * @param endTime
+ * @return
+ */
+ BigDecimal supplierSalesStatisticsMoney(String supplierId, String startTime, String endTime);
+
+ /**
+ * 供应商30天销售占比
+ * @param supplierId
+ * @param startTime
+ * @param endTime
+ * @return
+ */
+ List<SupplierSalesStatisticsGoodsTypeVO> supplierSalesStatisticsGoodsType(String supplierId, String startTime, String endTime);
+
+ /**
+ * 供应商30天销售商品统计
+ * @param supplierId
+ * @param startTime
+ * @param endTime
+ * @param goodsName
+ * @return
+ */
+ List<SupplierSalesStatisticsGoodsCountVO> supplierSalesStatisticsGoodsCount(String supplierId, String startTime, String endTime, String goodsName);
+
+ /**
+ * 供应商30天销售商品统计
+ * @param supplierId
+ * @param startTime
+ * @param endTime
+ * @param goodsName
+ * @return
+ */
+ List<SupplierSalesStatisticsGoodsCountVO> supplierSalesStatisticsGoodsCountMonth(String supplierId, String startTime, String endTime, String goodsName);
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TSysOrderService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TSysOrderService.java
index 9362430..8a3741b 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TSysOrderService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TSysOrderService.java
@@ -6,10 +6,13 @@
import com.ruoyi.system.model.TCrmClinic;
import com.ruoyi.system.model.TSysOrder;
import com.ruoyi.system.query.TSysOrderQuery;
+import com.ruoyi.system.vo.ClinicSalesStatisticsGoodsCountVO;
+import com.ruoyi.system.vo.ClinicSalesStatisticsGoodsTypeVO;
import com.ruoyi.system.vo.TSysOrderPageVo;
import com.ruoyi.system.vo.TSysOrderVO;
import javax.validation.Valid;
+import java.math.BigDecimal;
import java.util.List;
/**
@@ -34,4 +37,15 @@
void add(TSysOrderDto dto, TCrmClinic crmClinic);
+ Integer clinicSalesStatisticsCount(String clinicId);
+
+ Integer clinicSalesStatisticsTypeCount(String clinicId);
+
+ BigDecimal clinicSalesStatisticsMoney(String clinicId, String startTime, String endTime);
+
+ List<ClinicSalesStatisticsGoodsTypeVO> supplierSalesStatisticsGoodsType(String clinicId, String startTime, String endTime);
+
+ List<ClinicSalesStatisticsGoodsCountVO> supplierSalesStatisticsGoodsCount(String clinicId, String startTime, String endTime, String goodsName);
+
+ List<ClinicSalesStatisticsGoodsCountVO> supplierSalesStatisticsGoodsCountMonth(String clinicId, String startTime, String endTime, String goodsName);
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpProcurementServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpProcurementServiceImpl.java
index 1a7583f..3456362 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpProcurementServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TErpProcurementServiceImpl.java
@@ -577,4 +577,34 @@
return this.baseMapper.supplierThirtyMoneyProcurementStatistics(supplierAndClinicId, startTime, endTime, roleType);
}
+ @Override
+ public Integer supplierSalesStatisticsTypeCount(String supplierId) {
+ return this.baseMapper.supplierSalesStatisticsTypeCount(supplierId);
+ }
+
+ @Override
+ public Integer supplierSalesStatisticsCount(String supplierId) {
+ return this.baseMapper.supplierSalesStatisticsCount(supplierId);
+ }
+
+ @Override
+ public BigDecimal supplierSalesStatisticsMoney(String supplierId, String startTime, String endTime) {
+ return this.baseMapper.supplierSalesStatisticsMoney(supplierId,startTime, endTime);
+ }
+
+ @Override
+ public List<SupplierSalesStatisticsGoodsTypeVO> supplierSalesStatisticsGoodsType(String supplierId, String startTime, String endTime) {
+ return this.baseMapper.supplierSalesStatisticsGoodsType(supplierId,startTime, endTime);
+ }
+
+ @Override
+ public List<SupplierSalesStatisticsGoodsCountVO> supplierSalesStatisticsGoodsCount(String supplierId, String startTime, String endTime, String goodsName) {
+ return this.baseMapper.supplierSalesStatisticsGoodsCount(supplierId,startTime, endTime,goodsName);
+ }
+
+ @Override
+ public List<SupplierSalesStatisticsGoodsCountVO> supplierSalesStatisticsGoodsCountMonth(String supplierId, String startTime, String endTime, String goodsName) {
+ return this.baseMapper.supplierSalesStatisticsGoodsCountMonth(supplierId,startTime, endTime,goodsName);
+ }
+
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysOrderServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysOrderServiceImpl.java
index 72a7925..ebb9ffb 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysOrderServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysOrderServiceImpl.java
@@ -12,6 +12,8 @@
import com.ruoyi.system.service.TCrmClinicService;
import com.ruoyi.system.service.TErpClinicOutboundService;
import com.ruoyi.system.service.TSysOrderService;
+import com.ruoyi.system.vo.ClinicSalesStatisticsGoodsCountVO;
+import com.ruoyi.system.vo.ClinicSalesStatisticsGoodsTypeVO;
import com.ruoyi.system.vo.TSysOrderPageVo;
import com.ruoyi.system.vo.TSysOrderVO;
import org.springframework.beans.factory.annotation.Autowired;
@@ -69,7 +71,7 @@
for (TSysOrderVO sysOrderVO : sysOrderVOS) {
sysOrderVO.setSysOrderGoods(sysOrderGoodsList.stream().filter(sysOrderGoods -> sysOrderGoods.getOrderId().equals(sysOrderVO.getId())).collect(Collectors.toList()));
}
- return this.baseMapper.queryListByAppUserId(id);
+ return sysOrderVOS;
}
@Override
@@ -116,6 +118,7 @@
tSysOrderGoods1.setBatchId(tErpClinicWarehousingBatch.getId());
tSysOrderGoods1.setBatchNumber(tErpClinicWarehousingBatch.getBatchNumber());
tSysOrderGoods1.setRemainingQuantity(sysOrderNextDto.getRemainingQuantity());
+ tSysOrderGoods1.setGoodsId(goods.getId());
tSysOrderGoods.add(tSysOrderGoods1);
@@ -156,4 +159,34 @@
}
}
+
+ @Override
+ public Integer clinicSalesStatisticsCount(String clinicId) {
+ return this.baseMapper.clinicSalesStatisticsCount(clinicId);
+ }
+
+ @Override
+ public Integer clinicSalesStatisticsTypeCount(String clinicId) {
+ return this.baseMapper.clinicSalesStatisticsTypeCount(clinicId);
+ }
+
+ @Override
+ public BigDecimal clinicSalesStatisticsMoney(String clinicId, String startTime, String endTime) {
+ return this.baseMapper.clinicSalesStatisticsMoney(clinicId,startTime,endTime);
+ }
+
+ @Override
+ public List<ClinicSalesStatisticsGoodsTypeVO> supplierSalesStatisticsGoodsType(String clinicId, String startTime, String endTime) {
+ return this.baseMapper.supplierSalesStatisticsGoodsType(clinicId,startTime,endTime);
+ }
+
+ @Override
+ public List<ClinicSalesStatisticsGoodsCountVO> supplierSalesStatisticsGoodsCount(String clinicId, String startTime, String endTime, String goodsName) {
+ return this.baseMapper.supplierSalesStatisticsGoodsCount(clinicId,startTime,endTime,goodsName);
+ }
+
+ @Override
+ public List<ClinicSalesStatisticsGoodsCountVO> supplierSalesStatisticsGoodsCountMonth(String clinicId, String startTime, String endTime, String goodsName) {
+ return this.baseMapper.supplierSalesStatisticsGoodsCountMonth(clinicId,startTime,endTime,goodsName);
+ }
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/ClinicSalesStatisticsGoodsCountVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/ClinicSalesStatisticsGoodsCountVO.java
new file mode 100644
index 0000000..f1187e5
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/ClinicSalesStatisticsGoodsCountVO.java
@@ -0,0 +1,23 @@
+package com.ruoyi.system.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+
+@Data
+@ApiModel(value = "诊所30天销售统计视图对象ClinicSalesStatisticsGoodsCountVO")
+public class ClinicSalesStatisticsGoodsCountVO implements Serializable {
+
+ @ApiModelProperty(value = "时间")
+ private String time;
+
+ @ApiModelProperty(value = "商品数")
+ private Integer goodsCount;
+
+ @ApiModelProperty(value = "支付时间,前端忽略")
+ private LocalDate payTime;
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/ClinicSalesStatisticsGoodsTypeVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/ClinicSalesStatisticsGoodsTypeVO.java
new file mode 100644
index 0000000..6cee5e0
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/ClinicSalesStatisticsGoodsTypeVO.java
@@ -0,0 +1,17 @@
+package com.ruoyi.system.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@ApiModel(value = "诊所销售统计销售前十占比ClinicSalesStatisticsGoodsTypeVO")
+public class ClinicSalesStatisticsGoodsTypeVO implements Serializable {
+ @ApiModelProperty(value = "类型名称")
+ private String typeName;
+ @ApiModelProperty(value = "商品数量")
+ private Integer goodsCount;
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/ClinicSalesStatisticsVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/ClinicSalesStatisticsVO.java
new file mode 100644
index 0000000..625cd43
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/ClinicSalesStatisticsVO.java
@@ -0,0 +1,23 @@
+package com.ruoyi.system.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+@ApiModel(value = "诊所销售统计ClinicSalesStatisticsVO")
+public class ClinicSalesStatisticsVO implements Serializable {
+
+ @ApiModelProperty(value = "销售金额")
+ private BigDecimal salesMoney;
+
+ @ApiModelProperty(value = "销售前十占比")
+ private List<ClinicSalesStatisticsGoodsTypeVO> clinicSalesStatisticsGoodsTypeVOS;
+ @ApiModelProperty(value = "销售商品")
+ private List<ClinicSalesStatisticsGoodsCountVO> clinicSalesStatisticsGoodsCountVOS;
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/SupplierSalesStatisticsGoodsCountVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/SupplierSalesStatisticsGoodsCountVO.java
new file mode 100644
index 0000000..442c2d4
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/SupplierSalesStatisticsGoodsCountVO.java
@@ -0,0 +1,23 @@
+package com.ruoyi.system.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDate;
+
+@Data
+@ApiModel(value = "供应商30天销售统计视图对象SupplierSalesStatisticsGoodsCountVO")
+public class SupplierSalesStatisticsGoodsCountVO implements Serializable {
+
+ @ApiModelProperty(value = "时间")
+ private String time;
+
+ @ApiModelProperty(value = "商品数")
+ private Integer goodsCount;
+
+ @ApiModelProperty(value = "支付时间,前端忽略")
+ private LocalDate payTime;
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/SupplierSalesStatisticsGoodsTypeVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/SupplierSalesStatisticsGoodsTypeVO.java
new file mode 100644
index 0000000..df60809
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/SupplierSalesStatisticsGoodsTypeVO.java
@@ -0,0 +1,18 @@
+package com.ruoyi.system.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+@Data
+@ApiModel(value = "供应商销售统计销售前十占比SupplierSalesStatisticsGoodsTypeVO")
+public class SupplierSalesStatisticsGoodsTypeVO implements Serializable {
+ @ApiModelProperty(value = "类型名称")
+ private String typeName;
+ @ApiModelProperty(value = "商品数量")
+ private Integer goodsCount;
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/SupplierSalesStatisticsVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/SupplierSalesStatisticsVO.java
new file mode 100644
index 0000000..2ec1aa0
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/SupplierSalesStatisticsVO.java
@@ -0,0 +1,24 @@
+package com.ruoyi.system.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.annotations.License;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+@ApiModel(value = "供应商销售统计SupplierSalesStatisticsVO")
+public class SupplierSalesStatisticsVO implements Serializable {
+
+ @ApiModelProperty(value = "销售金额")
+ private BigDecimal salesMoney;
+
+ @ApiModelProperty(value = "销售前十占比")
+ private List<SupplierSalesStatisticsGoodsTypeVO> supplierSalesStatisticsGoodsTypeVOS;
+ @ApiModelProperty(value = "销售商品")
+ private List<SupplierSalesStatisticsGoodsCountVO> supplierSalesStatisticsGoodsCountVOS;
+
+}
diff --git a/ruoyi-system/src/main/resources/mapper/system/TErpProcurementMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TErpProcurementMapper.xml
index 0f13ff5..bd30f4f 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TErpProcurementMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TErpProcurementMapper.xml
@@ -144,5 +144,77 @@
</if>
group by date_format(t1.pay_time, '%m.%d')
</select>
+ <select id="supplierSalesStatisticsTypeCount" resultType="java.lang.Integer">
+ select count(1)
+ from t_erp_procurement tep
+ left join t_erp_procurement_goods tepg on tep.id = tepg.procurement_id
+ left join t_erp_goods teg on tepg.goods_id = teg.id
+ where tep.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+ and tep.status in (3,4,5)
+ and tep.supplier_id = #{supplierId}
+ group by teg.type_id
+ </select>
+ <select id="supplierSalesStatisticsCount" resultType="java.lang.Integer">
+ select count(1)
+ from t_erp_procurement tep
+ left join t_erp_procurement_goods tepg on tep.id = tepg.procurement_id
+ where tep.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+ and tep.status in (3,4,5)
+ and tep.supplier_id = #{supplierId}
+ </select>
+ <select id="supplierSalesStatisticsMoney" resultType="java.math.BigDecimal">
+ select sum(pay_money) from t_erp_procurement
+ where disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+ and status in (3,4,5)
+ and pay_time between #{startTime} and #{endTime}
+ and supplier_id = #{supplierId}
+ </select>
+ <select id="supplierSalesStatisticsGoodsType"
+ resultType="com.ruoyi.system.vo.SupplierSalesStatisticsGoodsTypeVO">
+ select count(1), tegt.type_name
+ from t_erp_procurement tep
+ left join t_erp_procurement_goods tepg on tep.id = tepg.procurement_id
+ left join t_erp_goods teg on tepg.goods_id = teg.id
+ left join t_erp_goods_type tegt on teg.type_id = tegt.id
+ where tep.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+ and tep.status in (3,4,5)
+ and tep.pay_time between #{startTime} and #{endTime}
+ and tep.supplier_id = #{supplierId}
+ group by teg.type_id
+ order by count(1) desc
+ </select>
+ <select id="supplierSalesStatisticsGoodsCount"
+ resultType="com.ruoyi.system.vo.SupplierSalesStatisticsGoodsCountVO">
+ select
+ date_format(t1.pay_time, '%m.%d') as `time`,
+ date_format(t1.pay_time, '%Y-%m-%d') as payTime,
+ sum(t2.purchase_count) as goodsCount
+ from t_erp_procurement t1
+ left join t_erp_procurement_goods t2 on t1.id = t2.procurement_id
+ where t1.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+ and t1.status in (3,4,5)
+ and t1.pay_time between #{startTime} and #{endTime}
+ and t1.supplier_id = #{supplierId}
+ <if test="goodsName != null and goodsName != ''">
+ and t2.goods_name like concat('%',#{goodsName},'%')
+ </if>
+ group by date_format(t1.pay_time, '%m.%d')
+ </select>
+ <select id="supplierSalesStatisticsGoodsCountMonth"
+ resultType="com.ruoyi.system.vo.SupplierSalesStatisticsGoodsCountVO">
+ select
+ date_format(t1.pay_time, '%Y.%m') as `time`,
+ sum(t2.purchase_count) as goodsCount
+ from t_erp_procurement t1
+ left join t_erp_procurement_goods t2 on t1.id = t2.procurement_id
+ where t1.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+ and t1.status in (3,4,5)
+ and t1.pay_time between #{startTime} and #{endTime}
+ and t1.supplier_id = #{supplierId}
+ <if test="goodsName != null and goodsName != ''">
+ and t2.goods_name like concat('%',#{goodsName},'%')
+ </if>
+ group by date_format(t1.pay_time, '%Y.%m')
+ </select>
</mapper>
diff --git a/ruoyi-system/src/main/resources/mapper/system/TSysOrderGoodsMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TSysOrderGoodsMapper.xml
index 7f20c6c..5d84e50 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TSysOrderGoodsMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TSysOrderGoodsMapper.xml
@@ -6,6 +6,7 @@
<resultMap id="BaseResultMap" type="com.ruoyi.system.model.TSysOrderGoods">
<id column="id" property="id" />
<result column="order_id" property="orderId" />
+ <result column="goods_id" property="goodsId" />
<result column="goods_name" property="goodsName" />
<result column="type_name" property="typeName" />
<result column="quasi_number" property="quasiNumber" />
@@ -21,7 +22,7 @@
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
- id, order_id, goods_name, type_name, quasi_number, goods_unit, sale_count, sale_amount, create_time, update_time, create_by, update_by, disabled
+ id, order_id,goods_id, goods_name, type_name, quasi_number, goods_unit, sale_count, sale_amount, create_time, update_time, create_by, update_by, disabled
</sql>
</mapper>
diff --git a/ruoyi-system/src/main/resources/mapper/system/TSysOrderMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TSysOrderMapper.xml
index 7a4e3c0..a5c39e3 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TSysOrderMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TSysOrderMapper.xml
@@ -45,5 +45,72 @@
order by t1.create_time desc
</select>
+ <select id="clinicSalesStatisticsCount" resultType="java.lang.Integer">
+ select count(1)
+ from t_sys_order tso
+ left join t_sys_order_goods tsog on tso.id = tsog.order_id
+ left join t_erp_goods teg on tepg.goods_id = teg.id
+ where tso.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+ and tso.clinic_id = #{clinicId}
+ </select>
+ <select id="clinicSalesStatisticsTypeCount" resultType="java.lang.Integer">
+ select count(1)
+ from t_sys_order tso
+ left join t_sys_order_goods tsog on tso.id = tsog.order_id
+ left join t_erp_goods teg on tepg.goods_id = teg.id
+ where tso.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+ and tso.clinic_id = #{clinicId}
+ group by teg.type_id
+ </select>
+ <select id="clinicSalesStatisticsMoney" resultType="java.math.BigDecimal">
+ select sum(total_money) from t_sys_order
+ where disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+ and pay_time between #{startTime} and #{endTime}
+ and clinic_id = #{clinicId}
+ </select>
+ <select id="supplierSalesStatisticsGoodsType"
+ resultType="com.ruoyi.system.vo.ClinicSalesStatisticsGoodsTypeVO">
+ select count(1), tegt.type_name
+ from t_sys_order tso
+ left join t_sys_order_goods tsog on tso.id = tsog.order_id
+ left join t_erp_goods teg on tsog.goods_id = teg.id
+ left join t_erp_goods_type tegt on teg.type_id = tegt.id
+ where tso.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+ and tso.pay_time between #{startTime} and #{endTime}
+ and tso.clinic_id = #{clinicId}
+ group by teg.type_id
+ order by count(1) desc
+ </select>
+ <select id="supplierSalesStatisticsGoodsCount"
+ resultType="com.ruoyi.system.vo.ClinicSalesStatisticsGoodsCountVO">
+ select
+ date_format(t1.pay_time, '%m.%d') as `time`,
+ date_format(t1.pay_time, '%Y-%m-%d') as payTime,
+ sum(t2.purchase_count) as goodsCount
+ from t_sys_order t1
+ left join t_sys_order_goods t2 on t1.id = t2.order_id
+ where t1.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+ and t1.pay_time between #{startTime} and #{endTime}
+ and t1.clinic_id = #{clinicId}
+ <if test="goodsName != null and goodsName != ''">
+ and t2.goods_name like concat('%',#{goodsName},'%')
+ </if>
+ group by date_format(t1.pay_time, '%m.%d')
+ </select>
+ <select id="supplierSalesStatisticsGoodsCountMonth"
+ resultType="com.ruoyi.system.vo.ClinicSalesStatisticsGoodsCountVO">
+ select
+ date_format(t1.pay_time, '%Y.%m') as `time`,
+ sum(t2.purchase_count) as goodsCount
+ from t_sys_order t1
+ left join t_sys_order_goods t2 on t1.id = t2.order_id
+ where t1.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+ and t1.pay_time between #{startTime} and #{endTime}
+ and t1.clinic_id = #{clinicId}
+ <if test="goodsName != null and goodsName != ''">
+ and t2.goods_name like concat('%',#{goodsName},'%')
+ </if>
+ group by date_format(t1.pay_time, '%Y.%m')
+ </select>
</mapper>
--
Gitblit v1.7.1