From 441eb455e1e8a9283cd569c132b14ba8da4c54a6 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期六, 11 十月 2025 17:49:47 +0800
Subject: [PATCH] 导出,短信,模板消息
---
ruoyi-system/src/main/java/com/ruoyi/system/export/TSysAppUserExport.java | 40 +
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCrmClinicServiceImpl.java | 72 ++
ruoyi-system/src/main/java/com/ruoyi/system/service/TCrmBranchService.java | 11
ruoyi-system/src/main/java/com/ruoyi/system/service/TCrmClinicService.java | 18
ruoyi-system/src/main/java/com/ruoyi/system/utils/wx/template/wxTemplateAppLiveResult/WxOfficeTemplateAppLiveResultRequest.java | 10
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysProductIntroductionServiceImpl.java | 3
ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml | 6
ruoyi-system/src/main/java/com/ruoyi/system/vo/TCrmClinicVO.java | 5
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysAppUserServiceImpl.java | 80 +++
ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java | 55 +
ruoyi-system/src/main/java/com/ruoyi/system/service/TSysAppUserService.java | 27 +
ruoyi-system/src/main/java/com/ruoyi/system/mapper/TCrmBranchMapper.java | 9
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysActivityServiceImpl.java | 3
ruoyi-system/src/main/resources/mapper/system/TCrmClinicMapper.xml | 119 ++++
ruoyi-admin/src/main/java/com/ruoyi/web/controller/task/TaskUtil.java | 40 +
ruoyi-system/src/main/resources/mapper/system/TSysMessageTemplateMapper.xml | 4
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java | 2
ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java | 2
ruoyi-system/src/main/resources/mapper/system/TSysAppUserMapper.xml | 70 +++
ruoyi-system/src/main/resources/mapper/system/TSysLiveMapper.xml | 2
ruoyi-system/src/main/java/com/ruoyi/system/listener/PublishTopicLiveInfoEventListener.java | 13
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCrmClinicController.java | 127 +++++
ruoyi-system/src/main/java/com/ruoyi/system/query/TCrmClinicQuery.java | 7
ruoyi-system/src/main/java/com/ruoyi/system/utils/wx/tools/WxAppletTools.java | 2
ruoyi-system/src/main/resources/mapper/system/TSysActivityMapper.xml | 2
ruoyi-system/src/main/java/com/ruoyi/system/export/TCrmClinicAuditExport.java | 31 +
ruoyi-system/src/main/java/com/ruoyi/system/export/TSysAppUserClinicExport.java | 33 +
ruoyi-applet/src/main/java/com/ruoyi/web/controller/tool/MsgUtils.java | 75 +++
ruoyi-system/src/main/java/com/ruoyi/system/export/TCrmBranchExport.java | 42 +
ruoyi-system/src/main/java/com/ruoyi/system/export/TSysAppUserListExport.java | 30 +
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCrmBranchController.java | 45 +
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysEducationalInfoServiceImpl.java | 3
ruoyi-system/src/main/java/com/ruoyi/system/model/TCrmClinic.java | 4
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java | 5
ruoyi-system/src/main/java/com/ruoyi/system/model/TSysMessageTemplate.java | 4
ruoyi-system/src/main/java/com/ruoyi/system/utils/wx/pojo/OfficeUserEncrypteData.java | 19
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCrmBranchServiceImpl.java | 46 ++
ruoyi-system/src/main/java/com/ruoyi/system/mapper/TCrmClinicMapper.java | 17
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysLiveServiceImpl.java | 2
ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TSysAppUserController.java | 156 ++++++
ruoyi-system/src/main/resources/mapper/system/TCrmBranchMapper.xml | 27 +
ruoyi-system/src/main/java/com/ruoyi/system/export/TCrmClinicListExport.java | 37 +
ruoyi-system/src/main/java/com/ruoyi/system/mapper/TSysAppUserMapper.java | 25 +
43 files changed, 1,271 insertions(+), 59 deletions(-)
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCrmBranchController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCrmBranchController.java
index 80277fc..89fa023 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCrmBranchController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCrmBranchController.java
@@ -1,6 +1,8 @@
package com.ruoyi.web.controller.api;
+import cn.afterturn.easypoi.excel.ExcelExportUtil;
+import cn.afterturn.easypoi.excel.entity.ExportParams;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.common.annotation.Log;
@@ -8,20 +10,31 @@
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.WebUtils;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.dto.TCrmBranchDTO;
+import com.ruoyi.system.export.TCrmBranchExport;
+import com.ruoyi.system.export.TSysAppUserClinicExport;
+import com.ruoyi.system.export.TSysAppUserExport;
import com.ruoyi.system.model.*;
import com.ruoyi.system.query.TCrmBranchQuery;
+import com.ruoyi.system.query.TSysAppUserQuery;
import com.ruoyi.system.service.*;
import com.ruoyi.system.vo.TCrmBranchVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
+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.*;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.net.URLEncoder;
+import java.text.SimpleDateFormat;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
@@ -235,6 +248,36 @@
crmChangePointsService.save(changePoints);
return R.ok();
}
-
+
+ @Log(title = "crm分公司管理信息-分公司管理信息导出", businessType = BusinessType.EXPORT)
+ @ApiOperation(value = "分公司管理信息导出")
+ @PostMapping("/exportList")
+ public void exportList(@RequestBody TCrmBranchQuery query){
+ List<TCrmBranchExport> crmBranchExports = crmBranchService.exportList(query);
+ Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), TCrmBranchExport.class, crmBranchExports);
+ HttpServletResponse response = WebUtils.response();
+ assert response != null;
+ response.setContentType("application/vnd.ms-excel");
+ response.setCharacterEncoding("utf-8");
+ ServletOutputStream outputStream = null;
+ try {
+ String fileName = URLEncoder.encode("分公司管理信息.xls", "utf-8");
+ response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
+ response.setContentType("application/vnd.ms-excel;charset=UTF-8");
+ response.setHeader("Pragma", "no-cache");
+ response.setHeader("Cache-Control", "no-cache");
+ outputStream = response.getOutputStream();
+ workbook.write(outputStream);
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ try {
+ outputStream.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCrmClinicController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCrmClinicController.java
index bd56489..dd4de42 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCrmClinicController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TCrmClinicController.java
@@ -1,6 +1,8 @@
package com.ruoyi.web.controller.api;
+import cn.afterturn.easypoi.excel.ExcelExportUtil;
+import cn.afterturn.easypoi.excel.entity.ExportParams;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.common.annotation.Log;
@@ -8,22 +10,38 @@
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.WebUtils;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.dto.TCrmClinicAuditDTO;
import com.ruoyi.system.dto.TCrmClinicDTO;
+import com.ruoyi.system.export.TCrmChangePointsBranchExport;
+import com.ruoyi.system.export.TCrmClinicAuditExport;
+import com.ruoyi.system.export.TCrmClinicListExport;
import com.ruoyi.system.model.*;
+import com.ruoyi.system.query.TCrmChangePointsQuery;
import com.ruoyi.system.query.TCrmClinicQuery;
import com.ruoyi.system.service.*;
import com.ruoyi.system.vo.TCrmClinicVO;
+import com.ruoyi.system.vo.TSysAppUserVO;
+import com.ruoyi.web.controller.tool.MsgUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
+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.*;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.net.URLEncoder;
+import java.time.LocalDateTime;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
@@ -48,8 +66,10 @@
private final ISysUserService sysUserService;
private final TCrmDeviceService crmDeviceService;
private final TokenService tokenService;
+ private final MsgUtils msgUtils;
+ private final TSysMessageTemplateService sysMessageTemplateService;
@Autowired
- public TCrmClinicController(TCrmClinicService crmClinicService, TCrmSupplierService crmSupplierService, TCrmBranchService crmBranchService, TCrmWarehouseService crmWarehouseService, TCrmSalespersonService crmSalespersonService, ISysUserService sysUserService, TCrmDeviceService crmDeviceService, TokenService tokenService) {
+ public TCrmClinicController(TCrmClinicService crmClinicService, TCrmSupplierService crmSupplierService, TCrmBranchService crmBranchService, TCrmWarehouseService crmWarehouseService, TCrmSalespersonService crmSalespersonService, ISysUserService sysUserService, TCrmDeviceService crmDeviceService, TokenService tokenService, MsgUtils msgUtils, TSysMessageTemplateService sysMessageTemplateService) {
this.crmClinicService = crmClinicService;
this.crmSupplierService = crmSupplierService;
this.crmBranchService = crmBranchService;
@@ -58,6 +78,8 @@
this.sysUserService = sysUserService;
this.crmDeviceService = crmDeviceService;
this.tokenService = tokenService;
+ this.msgUtils = msgUtils;
+ this.sysMessageTemplateService = sysMessageTemplateService;
}
/**
@@ -247,6 +269,107 @@
}
return R.ok();
}
-
+
+ @Log(title = "crm诊所管理信息-诊所管理导出", businessType = BusinessType.EXPORT)
+ @ApiOperation(value = "诊所管理导出")
+ @PostMapping("/exportList")
+ public void exportList(@RequestBody TCrmClinicQuery query){
+ List<TCrmClinicListExport> crmClinicListExports = crmClinicService.exportList(query);
+ for (TCrmClinicListExport crmClinicListExport : crmClinicListExports) {
+ if(Objects.nonNull(crmClinicListExport.getLowProcurementMoney())){
+ crmClinicListExport.setLowProcurementMoneyStr("¥"+crmClinicListExport.getLowProcurementMoney());
+ }
+ if(Objects.nonNull(crmClinicListExport.getMonthPurchaseAmount())){
+ crmClinicListExport.setMonthPurchaseAmountStr("¥"+crmClinicListExport.getMonthPurchaseAmount());
+ }
+ }
+ Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), TCrmClinicListExport.class, crmClinicListExports);
+ HttpServletResponse response = WebUtils.response();
+ assert response != null;
+ response.setContentType("application/vnd.ms-excel");
+ response.setCharacterEncoding("utf-8");
+ ServletOutputStream outputStream = null;
+ try {
+ String fileName = URLEncoder.encode("诊所管理.xls", "utf-8");
+ response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
+ response.setContentType("application/vnd.ms-excel;charset=UTF-8");
+ response.setHeader("Pragma", "no-cache");
+ response.setHeader("Cache-Control", "no-cache");
+ outputStream = response.getOutputStream();
+ workbook.write(outputStream);
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ try {
+ outputStream.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ @Log(title = "crm诊所管理信息-诊所审核导出", businessType = BusinessType.EXPORT)
+ @ApiOperation(value = "诊所审核导出")
+ @PostMapping("/exportAudit")
+ public void exportAudit(@RequestBody TCrmClinicQuery query){
+ List<TCrmClinicAuditExport> crmClinicAuditExports = crmClinicService.exportAudit(query);
+ for (TCrmClinicAuditExport crmClinicAuditExport : crmClinicAuditExports) {
+ if(Objects.nonNull(crmClinicAuditExport.getLowProcurementMoney())){
+ crmClinicAuditExport.setLowProcurementMoneyStr("¥"+crmClinicAuditExport.getLowProcurementMoney());
+ }
+ }
+ Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), TCrmClinicAuditExport.class, crmClinicAuditExports);
+ HttpServletResponse response = WebUtils.response();
+ assert response != null;
+ response.setContentType("application/vnd.ms-excel");
+ response.setCharacterEncoding("utf-8");
+ ServletOutputStream outputStream = null;
+ try {
+ String fileName = URLEncoder.encode("诊所审核.xls", "utf-8");
+ response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
+ response.setContentType("application/vnd.ms-excel;charset=UTF-8");
+ response.setHeader("Pragma", "no-cache");
+ response.setHeader("Cache-Control", "no-cache");
+ outputStream = response.getOutputStream();
+ workbook.write(outputStream);
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ try {
+ outputStream.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ /**
+ * 业绩短信提醒
+ */
+ @ApiOperation(value = "crm诊所管理信息-业绩短信提醒", notes = "clinicId:诊所id,performanceStatus:业绩状态 1=未达成 2=已达成")
+ @GetMapping(value = "/medicationReminder")
+ public R<String> medicationReminder(@RequestParam(value = "clinicId") String clinicId,
+ @RequestParam(value = "performanceStatus") Integer performanceStatus) {
+ TCrmClinic crmClinic = crmClinicService.getById(clinicId);
+ if(StringUtils.isNotBlank(crmClinic.getPhone())){
+ Integer performanceCount = crmClinic.getPerformanceCount();
+ if(performanceStatus == 1){
+ performanceCount = performanceCount+1;
+ }
+ TCrmSalesperson crmSalesperson = crmSalespersonService.getById(crmClinic.getSalespersonId());
+ TSysMessageTemplate messageTemplate = sysMessageTemplateService.getOne(Wrappers.lambdaQuery(TSysMessageTemplate.class)
+ .eq(TSysMessageTemplate::getTemplateType, 2));
+ // 发送短信
+ try {
+ Map<String,String> params = new HashMap<>();
+ params.put("name",crmSalesperson.getSalespersonName());
+ params.put("num",performanceCount.toString());
+ msgUtils.sendMsg(crmClinic.getPhone(),params, messageTemplate.getTemplateCode());
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+ return R.ok();
+ }
+
}
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 7dcd5a9..7bae892 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
@@ -1,33 +1,47 @@
package com.ruoyi.web.controller.api;
+import cn.afterturn.easypoi.excel.ExcelExportUtil;
+import cn.afterturn.easypoi.excel.entity.ExportParams;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.basic.PageInfo;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.WebUtils;
+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.query.TCrmClinicQuery;
import com.ruoyi.system.query.TSysAppUserQuery;
-import com.ruoyi.system.service.TSysAppUserService;
-import com.ruoyi.system.service.TSysChronicDiseaseService;
-import com.ruoyi.system.service.TSysInspectionService;
-import com.ruoyi.system.service.TSysOrderService;
+import com.ruoyi.system.service.*;
import com.ruoyi.system.vo.TSysAppUserVO;
import com.ruoyi.system.vo.TSysOrderVO;
+import com.ruoyi.web.controller.tool.MsgUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
+import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.net.URLEncoder;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
-import java.util.Arrays;
-import java.util.List;
+import java.util.*;
/**
* <p>
@@ -46,12 +60,16 @@
private final TSysInspectionService sysInspectionService;
private final TSysOrderService sysOrderService;
private final TSysChronicDiseaseService sysChronicDiseaseService;
+ private final MsgUtils msgUtils;
+ private final TSysMessageTemplateService sysMessageTemplateService;
@Autowired
- public TSysAppUserController(TSysAppUserService sysAppUserService, TSysInspectionService sysInspectionService, TSysOrderService sysOrderService, TSysChronicDiseaseService sysChronicDiseaseService) {
+ public TSysAppUserController(TSysAppUserService sysAppUserService, TSysInspectionService sysInspectionService, TSysOrderService sysOrderService, TSysChronicDiseaseService sysChronicDiseaseService, MsgUtils msgUtils, TSysMessageTemplateService sysMessageTemplateService) {
this.sysAppUserService = sysAppUserService;
this.sysInspectionService = sysInspectionService;
this.sysOrderService = sysOrderService;
this.sysChronicDiseaseService = sysChronicDiseaseService;
+ this.msgUtils = msgUtils;
+ this.sysMessageTemplateService = sysMessageTemplateService;
}
/**
@@ -70,6 +88,30 @@
@PostMapping(value = "/pageChronicDiseaseUserList")
public R<PageInfo<TSysAppUserVO>> pageChronicDiseaseUserList(@RequestBody TSysAppUserQuery query) {
return R.ok(sysAppUserService.pageChronicDiseaseUserList(query));
+ }
+
+
+ /**
+ * 用药提醒
+ */
+ @ApiOperation(value = "慢性病患者-用药提醒", notes = "userId:患者用户id,templateId:短信模板id")
+ @GetMapping(value = "/medicationReminder")
+ public R<String> medicationReminder(@RequestParam(value = "userId") String userId,
+ @RequestParam(value = "templateId") String templateId) {
+ TSysAppUser sysAppUser = sysAppUserService.getById(userId);
+ if(StringUtils.isNotBlank(sysAppUser.getPhone())){
+ sysAppUser.setLastReminderTime(LocalDateTime.now());
+ sysAppUserService.updateById(sysAppUser);
+ TSysMessageTemplate messageTemplate = sysMessageTemplateService.getById(templateId);
+ // 发送短信
+ try {
+ Map<String,String> params = new HashMap<>();
+ msgUtils.sendMsg(sysAppUser.getPhone(),params, messageTemplate.getTemplateCode());
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+ return R.ok();
}
/**
@@ -197,5 +239,105 @@
return R.ok();
}
+ @Log(title = "用户管理信息-慢性病患者导出-平台", businessType = BusinessType.EXPORT)
+ @ApiOperation(value = "慢性病患者导出-平台")
+ @PostMapping("/exportList")
+ public void exportList(@RequestBody TSysAppUserQuery query){
+ List<TSysAppUserListExport> sysAppUserListExports = sysAppUserService.exportList(query);
+ Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), TSysAppUserListExport.class, sysAppUserListExports);
+ HttpServletResponse response = WebUtils.response();
+ assert response != null;
+ response.setContentType("application/vnd.ms-excel");
+ response.setCharacterEncoding("utf-8");
+ ServletOutputStream outputStream = null;
+ try {
+ String fileName = URLEncoder.encode("慢性病患者.xls", "utf-8");
+ response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
+ response.setContentType("application/vnd.ms-excel;charset=UTF-8");
+ response.setHeader("Pragma", "no-cache");
+ response.setHeader("Cache-Control", "no-cache");
+ outputStream = response.getOutputStream();
+ workbook.write(outputStream);
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ try {
+ outputStream.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ @Log(title = "用户管理信息-慢性病患者导出-诊所", businessType = BusinessType.EXPORT)
+ @ApiOperation(value = "慢性病患者导出-诊所")
+ @PostMapping("/exportListClinic")
+ public void exportListClinic(@RequestBody TSysAppUserQuery query){
+ List<TSysAppUserClinicExport> sysAppUserClinicExports = sysAppUserService.exportListClinic(query);
+ for (TSysAppUserClinicExport sysAppUserClinicExport : sysAppUserClinicExports) {
+ String lastReminderTime = sysAppUserClinicExport.getLastReminderTime();
+ lastReminderTime = new SimpleDateFormat("yyyy-MM-dd HH:mm").format(lastReminderTime);
+ sysAppUserClinicExport.setLastReminderTime(lastReminderTime);
+ }
+ Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), TSysAppUserClinicExport.class, sysAppUserClinicExports);
+ HttpServletResponse response = WebUtils.response();
+ assert response != null;
+ response.setContentType("application/vnd.ms-excel");
+ response.setCharacterEncoding("utf-8");
+ ServletOutputStream outputStream = null;
+ try {
+ String fileName = URLEncoder.encode("慢性病患者.xls", "utf-8");
+ response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
+ response.setContentType("application/vnd.ms-excel;charset=UTF-8");
+ response.setHeader("Pragma", "no-cache");
+ response.setHeader("Cache-Control", "no-cache");
+ outputStream = response.getOutputStream();
+ workbook.write(outputStream);
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ try {
+ outputStream.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ @Log(title = "用户管理信息-用户管理信息导出", businessType = BusinessType.EXPORT)
+ @ApiOperation(value = "用户管理信息导出")
+ @PostMapping("/exportListAppUser")
+ public void exportListAppUser(@RequestBody TSysAppUserQuery query){
+ List<TSysAppUserExport> sysAppUserExports = sysAppUserService.exportListAppUser(query);
+ for (TSysAppUserExport sysAppUserExport : sysAppUserExports) {
+ String lastInspectionTime = sysAppUserExport.getLastInspectionTime();
+ lastInspectionTime = new SimpleDateFormat("yyyy-MM-dd HH:mm").format(lastInspectionTime);
+ sysAppUserExport.setLastInspectionTime(lastInspectionTime);
+ sysAppUserExport.setCreateTimeStr(sysAppUserExport.getCreateTime().toLocalDate().toString());
+ }
+ Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), TSysAppUserClinicExport.class, sysAppUserExports);
+ HttpServletResponse response = WebUtils.response();
+ assert response != null;
+ response.setContentType("application/vnd.ms-excel");
+ response.setCharacterEncoding("utf-8");
+ ServletOutputStream outputStream = null;
+ try {
+ String fileName = URLEncoder.encode("用户管理信息.xls", "utf-8");
+ response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
+ response.setContentType("application/vnd.ms-excel;charset=UTF-8");
+ response.setHeader("Pragma", "no-cache");
+ response.setHeader("Cache-Control", "no-cache");
+ outputStream = response.getOutputStream();
+ workbook.write(outputStream);
+ } catch (IOException e) {
+ e.printStackTrace();
+ } finally {
+ try {
+ outputStream.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
}
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 49621b3..5609584 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
@@ -1,17 +1,29 @@
package com.ruoyi.web.controller.task;
import com.alibaba.fastjson2.JSONObject;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.utils.http.HttpUtils;
+import com.ruoyi.system.model.TCrmClinic;
+import com.ruoyi.system.model.TErpProcurement;
+import com.ruoyi.system.service.TCrmClinicService;
+import com.ruoyi.system.service.TErpProcurementService;
import com.ruoyi.system.utils.util.AIUtil;
+import com.ruoyi.system.vo.TCrmClinicVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
+import org.springframework.util.CollectionUtils;
+import java.math.BigDecimal;
import java.time.LocalDate;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Objects;
import java.util.Set;
+import java.util.stream.Collectors;
/**
* @author xiaochen
@@ -24,6 +36,10 @@
private RedisCache redisCache;
@Autowired
private AIUtil aiUtil;
+ @Autowired
+ private TCrmClinicService crmClinicService;
+ @Autowired
+ private TErpProcurementService erpProcurementService;
@Scheduled(fixedRate = 86460000)
// @Scheduled(cron = "10 0 0 * * ?")
@@ -44,5 +60,29 @@
}
}
+ @Scheduled(cron = "10 0 0 * * ?")
+ public void monthUpdateClinicPerformance() {
+ try {
+ // 判断哪些诊所本月没有业绩达标
+ List<TCrmClinic> clinics = crmClinicService.list();
+ List<TErpProcurement> procurements = erpProcurementService.list(Wrappers.lambdaQuery(TErpProcurement.class)
+ .in(TErpProcurement::getStatus, Arrays.asList(3,4,5))
+ .likeRight(TErpProcurement::getCreateTime, LocalDate.now()));
+ for (TCrmClinic clinic : clinics) {
+ List<TErpProcurement> procurementList = procurements.stream().filter(procurement -> procurement.getClinicId().equals(clinic.getId())).collect(Collectors.toList());
+ if(!CollectionUtils.isEmpty(procurementList)){
+ BigDecimal monthPurchaseAmount = procurementList.stream().map(TErpProcurement::getPayMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
+ // 未达标
+ if(monthPurchaseAmount.compareTo(clinic.getLowProcurementMoney())<0){
+ clinic.setPerformanceCount(clinic.getPerformanceCount()+1);
+ }
+ }
+ }
+ crmClinicService.updateBatchById(clinics);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
}
diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
index 08215dd..10a2f75 100644
--- a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
+++ b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
@@ -1,9 +1,6 @@
package com.ruoyi.web.controller.system;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
import java.util.concurrent.TimeUnit;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -16,15 +13,17 @@
import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.model.TSysAppUser;
-import com.ruoyi.system.service.ISysRoleService;
-import com.ruoyi.system.service.TSysAppUserService;
+import com.ruoyi.system.model.TSysMessageTemplate;
+import com.ruoyi.system.service.*;
import com.ruoyi.system.utils.wx.body.resp.Code2SessionRespBody;
import com.ruoyi.system.utils.wx.body.resq.Code2SessionResqBody;
import com.ruoyi.system.utils.wx.model.WeixinProperties;
import com.ruoyi.system.utils.wx.pojo.AppletUserDecodeData;
import com.ruoyi.system.utils.wx.pojo.AppletUserEncrypteData;
+import com.ruoyi.system.utils.wx.pojo.OfficeUserEncrypteData;
import com.ruoyi.system.utils.wx.tools.WxAppletTools;
import com.ruoyi.system.utils.wx.tools.WxUtils;
+import com.ruoyi.web.controller.tool.MsgUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
@@ -41,7 +40,6 @@
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.framework.web.service.SysLoginService;
import com.ruoyi.framework.web.service.SysPermissionService;
-import com.ruoyi.system.service.ISysMenuService;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
@@ -74,10 +72,16 @@
private WeixinProperties wxConfig;
@Autowired
private RestTemplate wxRestTemplate;
- @Resource
+ @Autowired
+ private MsgUtils msgUtils;
+ @Autowired
+ private TSysMessageTemplateService sysMessageTemplateService;
+ @Autowired
private RedisService redisService;
- @Resource
+ @Autowired
private TSysAppUserService sysAppUserService;
+ @Autowired
+ private ISysUserService sysUserService;
/**
* 账号密码登录
*
@@ -152,6 +156,33 @@
return R.ok(tokenInfos);
}
+ @ApiOperation(value = "通过code获得openid",tags = {"微信服务号、公众号登录"})
+ @PostMapping("/openIdByCode")
+ public R<Map<String, Object>> openIdByCode(@RequestBody OfficeUserEncrypteData data) {
+ log.info("<<<<<<<<换取openid开始<<<<<<<<:{}", data.getCode());
+ WxAppletTools appletTools = new WxAppletTools(wxRestTemplate, wxConfig, redisService);
+ Code2SessionRespBody body = appletTools.getOpenIdByJscode2session(new Code2SessionResqBody().build(data.getCode()));
+ String openid = body.getOpenid();
+ String phone = data.getPhone();
+ if(StringUtils.isEmpty(phone)){
+ return R.fail("请输入手机号");
+ }
+ TSysAppUser sysAppUser = sysAppUserService.getOne(Wrappers.lambdaQuery(TSysAppUser.class)
+ .eq(TSysAppUser::getPhone, phone));
+ if(Objects.nonNull(sysAppUser)){
+ sysAppUser.setOfficeOpenId(openid);
+ sysAppUserService.updateById(sysAppUser);
+ }
+ // 获取诊所信息
+ SysUser sysUser = sysUserService.selectByPhone(phone);
+ if(Objects.nonNull(sysUser) && (sysUser.getRoleType() == 5 || sysUser.getRoleType() == 3)){
+ // 诊所
+ sysUser.setOpenId(openid);
+ sysUserService.updateUserInfo(sysUser);
+ }
+ return R.ok();
+ }
+
/**
* 账号密码登录
*
@@ -185,7 +216,11 @@
String code = String.valueOf((int) (Math.random() * 1000000));
redisCache.setCacheObject(phone, code,5*60,TimeUnit.SECONDS);
try {
-// smsUtil.sendSms(phone, "2369926", new String[]{code});
+ TSysMessageTemplate messageTemplate = sysMessageTemplateService.getOne(Wrappers.lambdaQuery(TSysMessageTemplate.class)
+ .eq(TSysMessageTemplate::getTemplateType, 1));
+ Map<String,String> params = new HashMap<>();
+ params.put("code", code);
+ msgUtils.sendMsg(phone, params, messageTemplate.getTemplateCode());
} catch (Exception e) {
throw new RuntimeException(e);
}
diff --git a/ruoyi-applet/src/main/java/com/ruoyi/web/controller/tool/MsgUtils.java b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/tool/MsgUtils.java
new file mode 100644
index 0000000..21965ba
--- /dev/null
+++ b/ruoyi-applet/src/main/java/com/ruoyi/web/controller/tool/MsgUtils.java
@@ -0,0 +1,75 @@
+package com.ruoyi.web.controller.tool;
+
+import com.aliyun.dysmsapi20170525.models.SendSmsRequest;
+import com.aliyun.dysmsapi20170525.models.SendSmsResponse;
+import com.aliyun.tea.TeaException;
+import com.aliyun.teaopenapi.models.Config;
+import com.aliyun.teautil.models.RuntimeOptions;
+import com.ruoyi.system.model.TSysMessageConfig;
+import com.ruoyi.system.service.TSysMessageConfigService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.util.CollectionUtils;
+
+import java.util.Map;
+
+@Component
+@Slf4j
+public class MsgUtils {
+
+ @Autowired
+ private TSysMessageConfigService messageConfigService;
+
+ /**
+ * 使用AK&SK初始化账号Client
+ * @param accessKeyId
+ * @param accessKeySecret
+ * @return Client
+ * @throws Exception
+ */
+ public static com.aliyun.dysmsapi20170525.Client createClient(String accessKeyId, String accessKeySecret) throws Exception {
+ Config config = new Config()
+ // 您的 AccessKey ID
+ .setAccessKeyId(accessKeyId)
+ // 您的 AccessKey Secret
+ .setAccessKeySecret(accessKeySecret);
+ // 访问的域名
+ config.endpoint = "dysmsapi.aliyuncs.com";
+ return new com.aliyun.dysmsapi20170525.Client(config);
+ }
+
+ public void sendMsg(String phone, Map<String,String> params, String templateCode) throws Exception {
+ TSysMessageConfig sysMessageConfig = messageConfigService.getById(1);
+ com.aliyun.dysmsapi20170525.Client client = MsgUtils.createClient(sysMessageConfig.getAccessKeyId(),sysMessageConfig.getAccessKeySecret());
+ SendSmsRequest sendSmsRequest = new SendSmsRequest()
+ .setSignName(sysMessageConfig.getSignName())
+ .setTemplateCode(templateCode)
+ .setPhoneNumbers(phone);
+ if(!CollectionUtils.isEmpty(params)){
+ StringBuilder builder = new StringBuilder();
+ params.forEach((key,value)->{
+ builder.append("\""+key+"\":\""+value+"\"");
+ builder.append(",");
+ });
+ builder.deleteCharAt(builder.length()-1);
+ sendSmsRequest.setTemplateParam("{"+builder.toString()+"}");
+ }
+ RuntimeOptions runtime = new RuntimeOptions();
+ try {
+ // 复制代码运行请自行打印 API 的返回值
+ SendSmsResponse sendSmsResponse = client.sendSmsWithOptions(sendSmsRequest, runtime);
+ log.info("短信发送成功:{},{}",sendSmsResponse.getBody().getMessage(),sendSmsResponse.getStatusCode());
+ } catch (TeaException error) {
+ // 如有需要,请打印 error
+ com.aliyun.teautil.Common.assertAsString(error.message);
+ log.info("短信发送失败:{}",error.message);
+ } catch (Exception _error) {
+ TeaException error = new TeaException(_error.getMessage(), _error);
+ // 如有需要,请打印 error
+ com.aliyun.teautil.Common.assertAsString(error.message);
+ log.info("短信发送失败:{}",error.message);
+ }
+ }
+
+}
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 168cac4..9f58e47 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
@@ -206,5 +206,5 @@
/**
* 模板消息发送地址
*/
- public static final String OFFICIAL_ACCOUNT_TEMPLATE_URL = "https://api.weixin.qq.com/cgi-bin/message/template/subscribe?access_token=ACCESS_TOKEN";
+ public static final String OFFICIAL_ACCOUNT_TEMPLATE_URL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN";
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/export/TCrmBranchExport.java b/ruoyi-system/src/main/java/com/ruoyi/system/export/TCrmBranchExport.java
new file mode 100644
index 0000000..1adbe35
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/export/TCrmBranchExport.java
@@ -0,0 +1,42 @@
+package com.ruoyi.system.export;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import cn.afterturn.easypoi.excel.annotation.ExcelCollection;
+import com.ruoyi.system.model.TCrmBranchSalary;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+@ApiModel(value = "crm分公司管理导出TCrmBranchExport")
+public class TCrmBranchExport implements Serializable {
+
+ @Excel(name = "分公司名称", width = 20,needMerge = true)
+ private String branchName;
+
+ @Excel(name = "负责人姓名", width = 20,needMerge = true)
+ private String userName;
+
+ @Excel(name = "联系电话", width = 20,needMerge = true)
+ private String phone;
+
+ @Excel(name = "剩余积分数", width = 20,needMerge = true)
+ private Integer userPoints;
+
+ @Excel(name = "管辖区域", width = 20,needMerge = true)
+ private String areaNames;
+
+ @Excel(name = "获取1积分所需采购金额", width = 20,needMerge = true)
+ private BigDecimal pointsCommission;
+
+ @Excel(name = "分佣比例", width = 20,needMerge = true)
+ private BigDecimal moneyCommission;
+
+ @ExcelCollection(name = "职位薪资")
+ private List<TCrmBranchSalary> crmBranchSalaries;
+ private String id;
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/export/TCrmClinicAuditExport.java b/ruoyi-system/src/main/java/com/ruoyi/system/export/TCrmClinicAuditExport.java
new file mode 100644
index 0000000..f6d6bdb
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/export/TCrmClinicAuditExport.java
@@ -0,0 +1,31 @@
+package com.ruoyi.system.export;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@Data
+@ApiModel(value = "诊所审核导出TCrmClinicAuditExport")
+public class TCrmClinicAuditExport implements Serializable {
+
+ private String id;
+ @Excel(name = "诊所名称",width = 20)
+ private String clinicName;
+ @Excel(name = "负责人姓名",width = 20)
+ private String personChargeName;
+ @Excel(name = "联系电话",width = 20)
+ private String phone;
+ @Excel(name = "所属分公司",width = 20)
+ private String branchName;
+ @Excel(name = "负责业务员",width = 20)
+ private String salespersonName;
+ @Excel(name = "每月最低采购金额",width = 20)
+ private String lowProcurementMoneyStr;
+ private String lowProcurementMoney;
+ @Excel(name = "状态",width = 20,replace = {"待审核_1","已拒绝_2","使用中_3","冻结_4"})
+ private Integer status;
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/export/TCrmClinicListExport.java b/ruoyi-system/src/main/java/com/ruoyi/system/export/TCrmClinicListExport.java
new file mode 100644
index 0000000..09aa5e7
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/export/TCrmClinicListExport.java
@@ -0,0 +1,37 @@
+package com.ruoyi.system.export;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+@Data
+@ApiModel(value = "诊所审核导出TCrmClinicAuditExport")
+public class TCrmClinicListExport implements Serializable {
+ private String id;
+ @Excel(name = "诊所名称",width = 20)
+ private String clinicName;
+ @Excel(name = "负责人姓名",width = 20)
+ private String personChargeName;
+ @Excel(name = "联系电话",width = 20)
+ private String phone;
+ @Excel(name = "所属分公司",width = 20)
+ private String branchName;
+ @Excel(name = "负责业务员",width = 20)
+ private String salespersonName;
+ @Excel(name = "剩余积分",width = 20)
+ private Integer userPoints;
+ @Excel(name = "每月最低采购金额",width = 20)
+ private String lowProcurementMoneyStr;
+ private BigDecimal lowProcurementMoney;
+ @Excel(name = "当月采购金额",width = 20)
+ private String monthPurchaseAmountStr;
+ private BigDecimal monthPurchaseAmount;
+ @Excel(name = "业绩状态",width = 20,replace = {"未达成_1","已达成_2"})
+ private Integer performanceStatus;
+ @Excel(name = "状态",width = 20,replace = {"待审核_1","已拒绝_2","使用中_3","冻结_4"})
+ private Integer status;
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/export/TSysAppUserClinicExport.java b/ruoyi-system/src/main/java/com/ruoyi/system/export/TSysAppUserClinicExport.java
new file mode 100644
index 0000000..06370ec
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/export/TSysAppUserClinicExport.java
@@ -0,0 +1,33 @@
+package com.ruoyi.system.export;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@ApiModel(value = "慢性病患者管理列表导出诊所TSysAppUserClinicExport")
+public class TSysAppUserClinicExport implements Serializable {
+ @Excel(name = "用户姓名", width = 20)
+ private String nickName;
+
+ @Excel(name = "联系电话", width = 20)
+ private String phone;
+
+ @Excel(name = "性别 1=男 2=女", width = 20,replace = {"男_1","女_2"})
+ private Integer sex;
+
+ @Excel(name = "年龄", width = 20)
+ private Long age;
+
+ @Excel(name = "慢性病名称拼接", width = 20)
+ private String sysChronicDiseaseNames;
+
+ @Excel(name = "上次短信提醒时间", width = 20)
+ private String lastReminderTime;
+ private String chronicDiseaseId;
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/export/TSysAppUserExport.java b/ruoyi-system/src/main/java/com/ruoyi/system/export/TSysAppUserExport.java
new file mode 100644
index 0000000..f8f4d71
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/export/TSysAppUserExport.java
@@ -0,0 +1,40 @@
+package com.ruoyi.system.export;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+@Data
+@ApiModel(value = "慢性病患者管理列表导出诊所TSysAppUserClinicExport")
+public class TSysAppUserExport implements Serializable {
+ @Excel(name = "用户姓名", width = 20)
+ private String nickName;
+
+ @Excel(name = "联系电话", width = 20)
+ private String phone;
+
+ @Excel(name = "性别 1=男 2=女", width = 20,replace = {"男_1","女_2"})
+ private Integer sex;
+
+ @Excel(name = "年龄", width = 20)
+ private Long age;
+
+ @Excel(name = "是否慢性病患者", width = 20,replace = {"是_1","否_0"})
+ private Integer isInspection;
+
+ @Excel(name = "慢性病名称拼接", width = 20)
+ private String sysChronicDiseaseNames;
+
+ @Excel(name = "最近检测时间", width = 20)
+ private String lastInspectionTime;
+ @Excel(name = "注册时间", width = 20)
+ private String createTimeStr;
+ private LocalDateTime createTime;
+ private String chronicDiseaseId;
+ private LocalDateTime birthTime;
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/export/TSysAppUserListExport.java b/ruoyi-system/src/main/java/com/ruoyi/system/export/TSysAppUserListExport.java
new file mode 100644
index 0000000..a04dd70
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/export/TSysAppUserListExport.java
@@ -0,0 +1,30 @@
+package com.ruoyi.system.export;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import com.baomidou.mybatisplus.annotation.TableField;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@ApiModel(value = "慢性病患者管理列表导出平台TSysAppUserListExport")
+public class TSysAppUserListExport implements Serializable {
+ @Excel(name = "用户姓名", width = 20)
+ private String nickName;
+
+ @Excel(name = "联系电话", width = 20)
+ private String phone;
+
+ @Excel(name = "性别 1=男 2=女", width = 20,replace = {"男_1","女_2"})
+ private Integer sex;
+
+ @Excel(name = "年龄", width = 20)
+ private Long age;
+
+ @Excel(name = "慢性病名称拼接", width = 20)
+ private String sysChronicDiseaseNames;
+ private String chronicDiseaseId;
+
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/listener/PublishTopicLiveInfoEventListener.java b/ruoyi-system/src/main/java/com/ruoyi/system/listener/PublishTopicLiveInfoEventListener.java
index 1b8cdd9..fc626c0 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/listener/PublishTopicLiveInfoEventListener.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/listener/PublishTopicLiveInfoEventListener.java
@@ -2,6 +2,7 @@
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.listener.event.PublishTopicLiveInfoEvent;
import com.ruoyi.system.model.TCrmClinic;
import com.ruoyi.system.model.TCrmSalesperson;
@@ -67,7 +68,9 @@
List<Long> userIds = clinicList.stream().map(TCrmClinic::getUserId).collect(Collectors.toList());
List<SysUser> sysUserList = sysUserService.selectUserListByIds(userIds);
for (SysUser user : sysUserList) {
- templateMessageSendUtil.wxOfficeTemplateAppLiveRequest(user.getOpenId(),liveTitle,liveStartTime);
+ if(StringUtils.isNotEmpty(user.getOpenId())){
+ templateMessageSendUtil.wxOfficeTemplateAppLiveRequest(user.getOpenId(),liveTitle,liveStartTime);
+ }
}
}
}
@@ -75,7 +78,9 @@
// 用户
List<TSysAppUser> sysAppUsers = sysAppUserService.list();
for (TSysAppUser sysAppUser : sysAppUsers) {
- templateMessageSendUtil.wxOfficeTemplateAppLiveRequest(sysAppUser.getOfficeOpenId(),liveTitle,liveStartTime);
+ if(StringUtils.isNotEmpty(sysAppUser.getOfficeOpenId())){
+ templateMessageSendUtil.wxOfficeTemplateAppLiveRequest(sysAppUser.getOfficeOpenId(),liveTitle,liveStartTime);
+ }
}
}
if(pushType.contains("3")){
@@ -85,7 +90,9 @@
List<Long> userIds = crmSalespeopleList.stream().map(TCrmSalesperson::getUserId).collect(Collectors.toList());
List<SysUser> sysUserList = sysUserService.selectUserListByIds(userIds);
for (SysUser user : sysUserList) {
- templateMessageSendUtil.wxOfficeTemplateAppLiveRequest(user.getOpenId(),liveTitle,liveStartTime);
+ if(StringUtils.isNotEmpty(user.getOpenId())){
+ templateMessageSendUtil.wxOfficeTemplateAppLiveRequest(user.getOpenId(),liveTitle,liveStartTime);
+ }
}
}
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TCrmBranchMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TCrmBranchMapper.java
index 547fe78..6f915ab 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TCrmBranchMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TCrmBranchMapper.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.system.export.TCrmBranchExport;
import com.ruoyi.system.model.TCrmBranch;
import com.ruoyi.system.query.TCrmBranchQuery;
import com.ruoyi.system.vo.TCrmBranchVO;
@@ -26,4 +27,12 @@
* @return
*/
List<TCrmBranchVO> pageList(@Param("query") TCrmBranchQuery query, @Param("pageInfo")PageInfo<TCrmBranchVO> pageInfo);
+
+ /**
+ * 导出列表
+ *
+ * @param query 查询参数
+ * @return
+ */
+ List<TCrmBranchExport> exportList(@Param("query")TCrmBranchQuery query);
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TCrmClinicMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TCrmClinicMapper.java
index 594e072..c99a881 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TCrmClinicMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TCrmClinicMapper.java
@@ -2,6 +2,8 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.common.basic.PageInfo;
+import com.ruoyi.system.export.TCrmClinicAuditExport;
+import com.ruoyi.system.export.TCrmClinicListExport;
import com.ruoyi.system.model.TCrmClinic;
import com.ruoyi.system.query.TCrmClinicQuery;
import com.ruoyi.system.vo.TCrmClinicVO;
@@ -34,4 +36,19 @@
*/
List<TCrmClinicVO> pageAuditList(@Param("query") TCrmClinicQuery query, @Param("pageInfo")PageInfo<TCrmClinicVO> pageInfo);
+ /**
+ * 审核导出
+ * @param query
+ * @return
+ */
+ List<TCrmClinicAuditExport> exportAudit(@Param("query")TCrmClinicQuery query);
+
+ /**
+ * 列表导出
+ * @param query
+ * @return
+ * @author xiaochen
+ * @date 2025/8/20 10:09
+ */
+ List<TCrmClinicListExport> exportList(@Param("query")TCrmClinicQuery query);
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TSysAppUserMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TSysAppUserMapper.java
index 1b924a5..e4ba32c 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TSysAppUserMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/TSysAppUserMapper.java
@@ -2,7 +2,11 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.common.basic.PageInfo;
+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.query.TCrmClinicQuery;
import com.ruoyi.system.query.TSysAppUserQuery;
import com.ruoyi.system.vo.TSysAppUserVO;
import org.apache.ibatis.annotations.Param;
@@ -34,4 +38,25 @@
* @return
*/
List<TSysAppUserVO> pageChronicDiseaseUserList(@Param("query")TSysAppUserQuery query, @Param("pageInfo")PageInfo<TSysAppUserVO> pageInfo);
+
+ /**
+ * 导出列表
+ * @param query
+ * @return
+ */
+ List<TSysAppUserListExport> exportList(@Param("query")TSysAppUserQuery query);
+
+ /**
+ * 导出列表
+ * @param query
+ * @return
+ */
+ List<TSysAppUserClinicExport> exportListClinic(@Param("query")TSysAppUserQuery query);
+
+ /**
+ * 导出列表
+ * @param query
+ * @return
+ */
+ List<TSysAppUserExport> exportListAppUser(@Param("query")TSysAppUserQuery query);
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TCrmClinic.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TCrmClinic.java
index df10803..643ae12 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TCrmClinic.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TCrmClinic.java
@@ -81,4 +81,8 @@
@TableField("audit_remark")
private String auditRemark;
+ @ApiModelProperty(value = "业绩未达标次数")
+ @TableField("performance_count")
+ private Integer performanceCount;
+
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/model/TSysMessageTemplate.java b/ruoyi-system/src/main/java/com/ruoyi/system/model/TSysMessageTemplate.java
index efddfcd..3e85c2c 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/model/TSysMessageTemplate.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/model/TSysMessageTemplate.java
@@ -41,4 +41,8 @@
@TableField("template_content")
private String templateContent;
+ @ApiModelProperty(value = "类型 1=验证码 2=业绩提醒 3=用药提醒")
+ @TableField("template_type")
+ private Integer templateType;
+
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/query/TCrmClinicQuery.java b/ruoyi-system/src/main/java/com/ruoyi/system/query/TCrmClinicQuery.java
index c3eaab6..78b19ff 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/query/TCrmClinicQuery.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/query/TCrmClinicQuery.java
@@ -4,6 +4,9 @@
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import org.joda.time.LocalDateTime;
+
+import java.time.LocalDate;
@Data
@ApiModel(value = "crm诊所管理查询参数TCrmClinicQuery")
@@ -24,7 +27,7 @@
@ApiModelProperty(value = "业务员id")
private String salespersonId;
- @ApiModelProperty(value = "业绩状态 1=已达成 2=未达成")
+ @ApiModelProperty(value = "业绩状态 1=未达成 2=已达成")
private Integer performanceStatus;
@ApiModelProperty(value = "状态 1=待审核 2=已拒绝 3=使用中 4=冻结")
@@ -34,5 +37,7 @@
private Long userId;
@ApiModelProperty(value = "前端忽略")
private Integer roleType;
+ @ApiModelProperty(value = "前端忽略")
+ private LocalDate createTime;
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
index d5eecd4..3b8c231 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysUserService.java
@@ -266,4 +266,6 @@
void updateUserStatusByUserIds(List<Long> userIds, String status);
List<SysUser> selectUserListByIds(List<Long> userIds);
+
+ int updateUserInfo(SysUser sysUser);
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TCrmBranchService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TCrmBranchService.java
index 56dca70..e499585 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TCrmBranchService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TCrmBranchService.java
@@ -4,10 +4,14 @@
import com.ruoyi.common.basic.PageInfo;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.system.dto.TCrmBranchDTO;
+import com.ruoyi.system.export.TCrmBranchExport;
import com.ruoyi.system.model.TCrmBranch;
import com.ruoyi.system.model.TCrmDevice;
import com.ruoyi.system.query.TCrmBranchQuery;
+import com.ruoyi.system.query.TSysAppUserQuery;
import com.ruoyi.system.vo.TCrmBranchVO;
+
+import java.util.List;
/**
* <p>
@@ -45,4 +49,11 @@
* @return
*/
R<Boolean> updateBranch(TCrmBranchDTO dto);
+
+ /**
+ * 导出
+ * @param query
+ * @return
+ */
+ List<TCrmBranchExport> exportList(TCrmBranchQuery query);
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TCrmClinicService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TCrmClinicService.java
index cd06ddc..a4a5fb3 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TCrmClinicService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TCrmClinicService.java
@@ -4,9 +4,13 @@
import com.ruoyi.common.basic.PageInfo;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.system.dto.TCrmClinicDTO;
+import com.ruoyi.system.export.TCrmClinicAuditExport;
+import com.ruoyi.system.export.TCrmClinicListExport;
import com.ruoyi.system.model.TCrmClinic;
import com.ruoyi.system.query.TCrmClinicQuery;
import com.ruoyi.system.vo.TCrmClinicVO;
+
+import java.util.List;
/**
* <p>
@@ -44,4 +48,18 @@
* @return
*/
R<Boolean> updateClinic(TCrmClinicDTO dto);
+
+ /**
+ * 获取crm诊所管理审核列表
+ * @param query
+ * @return
+ */
+ List<TCrmClinicAuditExport> exportAudit(TCrmClinicQuery query);
+
+ /**
+ * 获取crm诊所管理列表导出
+ * @param query
+ * @return
+ */
+ List<TCrmClinicListExport> exportList(TCrmClinicQuery query);
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/TSysAppUserService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/TSysAppUserService.java
index 83dce4b..2fa554b 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/TSysAppUserService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/TSysAppUserService.java
@@ -2,9 +2,15 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.basic.PageInfo;
+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.query.TCrmClinicQuery;
import com.ruoyi.system.query.TSysAppUserQuery;
import com.ruoyi.system.vo.TSysAppUserVO;
+
+import java.util.List;
/**
* <p>
@@ -36,4 +42,25 @@
* @return
*/
PageInfo<TSysAppUserVO> pageChronicDiseaseUserList(TSysAppUserQuery query);
+
+ /**
+ * 患者导出平台
+ * @param query
+ * @return
+ */
+ List<TSysAppUserListExport> exportList(TSysAppUserQuery query);
+
+ /**
+ * 患者导出诊所
+ * @param query
+ * @return
+ */
+ List<TSysAppUserClinicExport> exportListClinic(TSysAppUserQuery query);
+
+ /**
+ * 患者导出APP
+ * @param query
+ * @return
+ */
+ List<TSysAppUserExport> exportListAppUser(TSysAppUserQuery query);
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
index 547decd..35894d3 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -674,6 +674,11 @@
return userMapper.selectUserListByIds(userIds);
}
+ @Override
+ public int updateUserInfo(SysUser sysUser) {
+ return userMapper.updateUser(sysUser);
+ }
+
// @Override
// public UserInfoVo userInfo(Long userId) {
// return userMapper.userInfo(userId);
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCrmBranchServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCrmBranchServiceImpl.java
index 703cb8e..88c8b78 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCrmBranchServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCrmBranchServiceImpl.java
@@ -8,12 +8,14 @@
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.dto.TCrmBranchDTO;
+import com.ruoyi.system.export.TCrmBranchExport;
import com.ruoyi.system.mapper.SysUserMapper;
import com.ruoyi.system.mapper.TCrmBranchMapper;
import com.ruoyi.system.model.TCrmBranch;
import com.ruoyi.system.model.TCrmBranchArea;
import com.ruoyi.system.model.TCrmBranchSalary;
import com.ruoyi.system.query.TCrmBranchQuery;
+import com.ruoyi.system.query.TSysAppUserQuery;
import com.ruoyi.system.service.ISysUserService;
import com.ruoyi.system.service.TCrmBranchAreaService;
import com.ruoyi.system.service.TCrmBranchSalaryService;
@@ -190,4 +192,48 @@
// }
return R.ok();
}
+
+ @Override
+ public List<TCrmBranchExport> exportList(TCrmBranchQuery query) {
+ List<TCrmBranchArea> crmBranchAreas = new ArrayList<>();
+ if(StringUtils.isNotEmpty(query.getCityCode())){
+ crmBranchAreas = crmBranchAreaService.list(Wrappers.lambdaQuery(TCrmBranchArea.class)
+ .eq(TCrmBranchArea::getCityCode, query.getCityCode()));
+ }
+
+ if(StringUtils.isNotEmpty(query.getProvinceCode())){
+ crmBranchAreas = crmBranchAreaService.list(Wrappers.lambdaQuery(TCrmBranchArea.class)
+ .eq(TCrmBranchArea::getProvinceCode, query.getProvinceCode()));
+ }
+ if(!CollectionUtils.isEmpty(crmBranchAreas)){
+ List<String> branchIds = crmBranchAreas.stream().map(TCrmBranchArea::getBranchId).collect(Collectors.toList());
+ query.setBranchIds(branchIds);
+ }else {
+ return new ArrayList<>();
+ }
+ List<TCrmBranchExport> list = this.baseMapper.exportList(query);
+ if(CollectionUtils.isEmpty(list)){
+ return list;
+ }
+ List<String> branchIds = list.stream().map(TCrmBranchExport::getId).collect(Collectors.toList());
+ List<TCrmBranchArea> crmBranchAreaList = crmBranchAreaService.list(Wrappers.lambdaQuery(TCrmBranchArea.class)
+ .in(TCrmBranchArea::getBranchId, branchIds));
+ // 查询职位薪资
+ List<TCrmBranchSalary> crmBranchSalaries = crmBranchSalaryService.list(Wrappers.lambdaQuery(TCrmBranchSalary.class)
+ .in(TCrmBranchSalary::getBranchId, branchIds));
+ for (TCrmBranchExport crmBranchExport : list) {
+ List<TCrmBranchArea> tCrmBranchAreas = crmBranchAreaList.stream().filter(t -> t.getBranchId().equals(crmBranchExport.getId())).collect(Collectors.toList());
+ StringBuilder stringBuilder = new StringBuilder();
+ for (TCrmBranchArea tCrmBranchArea : tCrmBranchAreas) {
+ stringBuilder.append(tCrmBranchArea.getProvinceName()).append("-").append(tCrmBranchArea.getCityName()).append(",");
+ }
+ // 去除','
+ stringBuilder.deleteCharAt(stringBuilder.length()-1);
+ crmBranchExport.setAreaNames(stringBuilder.toString());
+ // 职位薪资
+ List<TCrmBranchSalary> crmBranchSalariesList = crmBranchSalaries.stream().filter(t -> t.getBranchId().equals(crmBranchExport.getId())).collect(Collectors.toList());
+ crmBranchExport.setCrmBranchSalaries(crmBranchSalariesList);
+ }
+ return list;
+ }
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCrmClinicServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCrmClinicServiceImpl.java
index be11fba..973635f 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCrmClinicServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TCrmClinicServiceImpl.java
@@ -1,5 +1,6 @@
package com.ruoyi.system.service.impl;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.basic.PageInfo;
import com.ruoyi.common.core.domain.R;
@@ -7,18 +8,27 @@
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.dto.TCrmClinicDTO;
+import com.ruoyi.system.export.TCrmClinicAuditExport;
+import com.ruoyi.system.export.TCrmClinicListExport;
import com.ruoyi.system.mapper.TCrmClinicMapper;
import com.ruoyi.system.model.TCrmClinic;
+import com.ruoyi.system.model.TErpProcurement;
import com.ruoyi.system.query.TCrmClinicQuery;
import com.ruoyi.system.service.ISysUserService;
import com.ruoyi.system.service.TCrmClinicService;
+import com.ruoyi.system.service.TErpProcurementService;
import com.ruoyi.system.vo.TCrmClinicVO;
import com.ruoyi.system.vo.TCrmSupplierVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.util.Arrays;
import java.util.List;
import java.util.Objects;
+import java.util.stream.Collectors;
/**
* <p>
@@ -33,23 +43,40 @@
@Autowired
private ISysUserService sysUserService;
+ @Autowired
+ private TErpProcurementService erpProcurementService;
@Override
public PageInfo<TCrmClinicVO> pageList(TCrmClinicQuery query) {
-
- // TODO 业绩状态查询处理
-
+ query.setCreateTime(LocalDate.now());
PageInfo<TCrmClinicVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
List<TCrmClinicVO> list = this.baseMapper.pageList(query,pageInfo);
+ if(CollectionUtils.isEmpty(list)){
+ return pageInfo;
+ }
+
+ List<String> clinicIds = list.stream().map(TCrmClinicVO::getId).collect(Collectors.toList());
+ List<TErpProcurement> procurements = erpProcurementService.list(Wrappers.lambdaQuery(TErpProcurement.class)
+ .in(TErpProcurement::getClinicId, clinicIds)
+ .in(TErpProcurement::getStatus, Arrays.asList(3,4,5))
+ .likeRight(TErpProcurement::getCreateTime, LocalDate.now()));
+ for (TCrmClinicVO tCrmClinicVO : list) {
+ List<TErpProcurement> procurementList = procurements.stream().filter(procurement -> procurement.getClinicId().equals(tCrmClinicVO.getId())).collect(Collectors.toList());
+ if(!CollectionUtils.isEmpty(procurementList)){
+ tCrmClinicVO.setMonthPurchaseAmount(procurementList.stream().map(TErpProcurement::getPayMoney).reduce(BigDecimal.ZERO, BigDecimal::add));
+ }
+
+ if(Objects.nonNull(tCrmClinicVO.getMonthPurchaseAmount()) && tCrmClinicVO.getMonthPurchaseAmount().compareTo(tCrmClinicVO.getLowProcurementMoney())>0){
+ tCrmClinicVO.setPerformanceStatus(2);
+ }
+
+ }
pageInfo.setRecords(list);
return pageInfo;
}
@Override
public PageInfo<TCrmClinicVO> pageAuditList(TCrmClinicQuery query) {
-
- // TODO 业绩状态查询处理
-
PageInfo<TCrmClinicVO> pageInfo = new PageInfo<>(query.getPageNum(), query.getPageSize());
List<TCrmClinicVO> list = this.baseMapper.pageAuditList(query,pageInfo);
pageInfo.setRecords(list);
@@ -101,4 +128,37 @@
}
return R.ok();
}
+
+ @Override
+ public List<TCrmClinicAuditExport> exportAudit(TCrmClinicQuery query) {
+ List<TCrmClinicAuditExport> list = this.baseMapper.exportAudit(query);
+ return list;
+ }
+
+ @Override
+ public List<TCrmClinicListExport> exportList(TCrmClinicQuery query) {
+ query.setCreateTime(LocalDate.now());
+ List<TCrmClinicListExport> list = this.baseMapper.exportList(query);
+ if(CollectionUtils.isEmpty(list)){
+ return list;
+ }
+
+ List<String> clinicIds = list.stream().map(TCrmClinicListExport::getId).collect(Collectors.toList());
+ List<TErpProcurement> procurements = erpProcurementService.list(Wrappers.lambdaQuery(TErpProcurement.class)
+ .in(TErpProcurement::getClinicId, clinicIds)
+ .in(TErpProcurement::getStatus, Arrays.asList(3,4,5))
+ .likeRight(TErpProcurement::getCreateTime, LocalDate.now()));
+ for (TCrmClinicListExport crmClinicListExport : list) {
+ List<TErpProcurement> procurementList = procurements.stream().filter(procurement -> procurement.getClinicId().equals(crmClinicListExport.getId())).collect(Collectors.toList());
+ if(!CollectionUtils.isEmpty(procurementList)){
+ crmClinicListExport.setMonthPurchaseAmount(procurementList.stream().map(TErpProcurement::getPayMoney).reduce(BigDecimal.ZERO, BigDecimal::add));
+ }
+
+ if(Objects.nonNull(crmClinicListExport.getMonthPurchaseAmount()) && crmClinicListExport.getMonthPurchaseAmount().compareTo(crmClinicListExport.getLowProcurementMoney())>0){
+ crmClinicListExport.setPerformanceStatus(2);
+ }
+
+ }
+ return list;
+ }
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysActivityServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysActivityServiceImpl.java
index 17b0a55..b817626 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysActivityServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysActivityServiceImpl.java
@@ -16,6 +16,7 @@
import org.springframework.util.CollectionUtils;
import java.util.List;
+import java.util.Objects;
import java.util.Set;
/**
@@ -37,7 +38,7 @@
if (CollectionUtils.isEmpty(list)){
return pageInfo;
}
- if(query.getRoleType() == 5){
+ if(Objects.nonNull(query.getRoleType()) && query.getRoleType() == 5){
Long userId = query.getUserId();
for (TSysActivityVO sysActivityVO : list) {
Set<Long> cacheSet = redisCache.getCacheSet(Constants.SYS_ACTIVITY_CLICK_COUNT + sysActivityVO.getId());
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysAppUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysAppUserServiceImpl.java
index 4d9be97..b957e81 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysAppUserServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysAppUserServiceImpl.java
@@ -4,12 +4,16 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.basic.PageInfo;
import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.system.export.TSysAppUserClinicExport;
+import com.ruoyi.system.export.TSysAppUserExport;
+import com.ruoyi.system.export.TSysAppUserListExport;
import com.ruoyi.system.mapper.TSysAppUserMapper;
import com.ruoyi.system.mapper.TSysChronicDiseaseMapper;
import com.ruoyi.system.model.TSysAppUser;
import com.ruoyi.system.model.TSysActivity;
import com.ruoyi.system.model.TSysAppUser;
import com.ruoyi.system.model.TSysChronicDisease;
+import com.ruoyi.system.query.TCrmClinicQuery;
import com.ruoyi.system.query.TSysAppUserQuery;
import com.ruoyi.system.service.TSysAppUserService;
import com.ruoyi.system.vo.TSysAppUserVO;
@@ -48,6 +52,11 @@
if(tSysAppUserVO.getBirthTime() != null){
long age = ChronoUnit.YEARS.between(tSysAppUserVO.getBirthTime(), LocalDateTime.now());
tSysAppUserVO.setAge(age);
+ }
+ if(StringUtils.isNotEmpty(tSysAppUserVO.getChronicDiseaseId())){
+ tSysAppUserVO.setIsInspection(1);
+ }else {
+ tSysAppUserVO.setIsInspection(0);
}
});
pageInfo.setRecords(list);
@@ -92,4 +101,75 @@
pageInfo.setRecords(list);
return pageInfo;
}
+
+ @Override
+ public List<TSysAppUserListExport> exportList(TSysAppUserQuery query) {
+ List<TSysAppUserListExport> list = this.baseMapper.exportList(query);
+ if(CollectionUtils.isEmpty(list)){
+ return list;
+ }
+ List<TSysChronicDisease> sysChronicDiseaseList = sysChronicDiseaseMapper.selectList(Wrappers.lambdaQuery(TSysChronicDisease.class));
+ for (TSysAppUserListExport sysAppUserListExport : list) {
+ String chronicDiseaseId = sysAppUserListExport.getChronicDiseaseId();
+ String[] split = chronicDiseaseId.split(",");
+ StringBuilder stringBuilder = new StringBuilder();
+ for (String diseaseId : split) {
+ List<TSysChronicDisease> chronicDiseaseList = sysChronicDiseaseList.stream().filter(disease -> disease.getId().equals(diseaseId)).collect(Collectors.toList());
+ // 最后一位不拼接逗号
+ if(diseaseId.equals(split[split.length-1])){
+ stringBuilder.append(chronicDiseaseList.get(0).getChronicName());
+ }else{
+ stringBuilder.append(chronicDiseaseList.get(0).getChronicName()).append(",");
+ }
+ }
+ sysAppUserListExport.setSysChronicDiseaseNames(stringBuilder.toString());
+ }
+ return list;
+ }
+
+ @Override
+ public List<TSysAppUserClinicExport> exportListClinic(TSysAppUserQuery query) {
+ List<TSysAppUserClinicExport> list = this.baseMapper.exportListClinic(query);
+ if(CollectionUtils.isEmpty(list)){
+ return list;
+ }
+ List<TSysChronicDisease> sysChronicDiseaseList = sysChronicDiseaseMapper.selectList(Wrappers.lambdaQuery(TSysChronicDisease.class));
+ for (TSysAppUserClinicExport sysAppUserClinicExport : list) {
+ String chronicDiseaseId = sysAppUserClinicExport.getChronicDiseaseId();
+ String[] split = chronicDiseaseId.split(",");
+ StringBuilder stringBuilder = new StringBuilder();
+ for (String diseaseId : split) {
+ List<TSysChronicDisease> chronicDiseaseList = sysChronicDiseaseList.stream().filter(disease -> disease.getId().equals(diseaseId)).collect(Collectors.toList());
+ // 最后一位不拼接逗号
+ if(diseaseId.equals(split[split.length-1])){
+ stringBuilder.append(chronicDiseaseList.get(0).getChronicName());
+ }else{
+ stringBuilder.append(chronicDiseaseList.get(0).getChronicName()).append(",");
+ }
+ }
+ sysAppUserClinicExport.setSysChronicDiseaseNames(stringBuilder.toString());
+ }
+ return list;
+ }
+
+ @Override
+ public List<TSysAppUserExport> exportListAppUser(TSysAppUserQuery query) {
+ List<TSysAppUserExport> list = this.baseMapper.exportListAppUser(query);
+ if(CollectionUtils.isEmpty(list)){
+ return list;
+ }
+ // 年龄计算
+ list.forEach(tSysAppUserVO -> {
+ if(tSysAppUserVO.getBirthTime() != null){
+ long age = ChronoUnit.YEARS.between(tSysAppUserVO.getBirthTime(), LocalDateTime.now());
+ tSysAppUserVO.setAge(age);
+ }
+ if(StringUtils.isNotEmpty(tSysAppUserVO.getChronicDiseaseId())){
+ tSysAppUserVO.setIsInspection(1);
+ }else {
+ tSysAppUserVO.setIsInspection(0);
+ }
+ });
+ return list;
+ }
}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysEducationalInfoServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysEducationalInfoServiceImpl.java
index daade89..abaf8fa 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysEducationalInfoServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysEducationalInfoServiceImpl.java
@@ -16,6 +16,7 @@
import org.springframework.util.CollectionUtils;
import java.util.List;
+import java.util.Objects;
import java.util.Set;
/**
@@ -37,7 +38,7 @@
if (CollectionUtils.isEmpty(list)){
return pageInfo;
}
- if(query.getRoleType() == 5){
+ if(Objects.nonNull(query.getRoleType()) && query.getRoleType() == 5){
Long userId = query.getUserId();
for (TSysEducationalInfoVO sysEducationalInfoVO : list) {
Set<Long> cacheSet = redisCache.getCacheSet(Constants.SYS_EDUCATION_CLICK_COUNT + sysEducationalInfoVO.getId());
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysLiveServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysLiveServiceImpl.java
index 3b15301..c775106 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysLiveServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysLiveServiceImpl.java
@@ -81,7 +81,7 @@
// boolean memberInSet = redisCache.isMemberInSet(Constants.LIVE_APPOINTMENT_PUSH + sysLive.getId(), query.getAppUserId());
// sysLive.setAppointmentStatus(memberInSet ? 2 : 1);
- if(query.getRoleType() == 5){
+ if(Objects.nonNull(query.getRoleType()) && query.getRoleType() == 5){
Long userId = query.getUserId();
Set<Long> cacheSet = redisCache.getCacheSet(Constants.SYS_ACTIVITY_CLICK_COUNT + sysLive.getId());
if(cacheSet.contains(userId)){
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysProductIntroductionServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysProductIntroductionServiceImpl.java
index 7c69cb3..f5461df 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysProductIntroductionServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TSysProductIntroductionServiceImpl.java
@@ -15,6 +15,7 @@
import org.springframework.util.CollectionUtils;
import java.util.List;
+import java.util.Objects;
import java.util.Set;
/**
@@ -38,7 +39,7 @@
if (CollectionUtils.isEmpty(list)){
return pageInfo;
}
- if(query.getRoleType() == 5){
+ if(Objects.nonNull(query.getRoleType()) && query.getRoleType() == 5){
Long userId = query.getUserId();
for (TSysProductIntroductionVO tSysProductIntroduction : list) {
Set<Long> cacheSet = redisCache.getCacheSet(Constants.SYS_PRODUCT_CLICK_COUNT + tSysProductIntroduction.getId());
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/utils/wx/pojo/OfficeUserEncrypteData.java b/ruoyi-system/src/main/java/com/ruoyi/system/utils/wx/pojo/OfficeUserEncrypteData.java
new file mode 100644
index 0000000..f13a0e7
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/utils/wx/pojo/OfficeUserEncrypteData.java
@@ -0,0 +1,19 @@
+package com.ruoyi.system.utils.wx.pojo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author xiaochen
+ * @ClassName AppletUserDecodeData
+ * @Description
+ * 小程序加密数据体
+ *
+ */
+@Data
+public class OfficeUserEncrypteData implements Serializable {
+ private String code;
+ private String phone;
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/utils/wx/template/wxTemplateAppLiveResult/WxOfficeTemplateAppLiveResultRequest.java b/ruoyi-system/src/main/java/com/ruoyi/system/utils/wx/template/wxTemplateAppLiveResult/WxOfficeTemplateAppLiveResultRequest.java
index d890571..f0b5fe3 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/utils/wx/template/wxTemplateAppLiveResult/WxOfficeTemplateAppLiveResultRequest.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/utils/wx/template/wxTemplateAppLiveResult/WxOfficeTemplateAppLiveResultRequest.java
@@ -14,11 +14,11 @@
@ApiModelProperty(value = "消息模板id")
private String template_id;
- @ApiModelProperty(value = "订阅场景值")
- private String scene = "1000";
-
- @ApiModelProperty(value = "订阅通知")
- private String title = "课程预约结果通知";
+// @ApiModelProperty(value = "订阅场景值")
+// private String scene = "1000";
+//
+// @ApiModelProperty(value = "订阅通知")
+// private String title = "课程预约结果通知";
@ApiModelProperty(value = "消息模板data数据")
private WxOfficeTemplateAppLiveResultRequestData data;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/utils/wx/tools/WxAppletTools.java b/ruoyi-system/src/main/java/com/ruoyi/system/utils/wx/tools/WxAppletTools.java
index 8877ce5..1a4a76c 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/utils/wx/tools/WxAppletTools.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/utils/wx/tools/WxAppletTools.java
@@ -119,7 +119,7 @@
}
/**
- * 微信公众号获取openId
+ * 微信公众号/服务号获取openId
* @param resqBody
* @return
*/
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TCrmClinicVO.java b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TCrmClinicVO.java
index 88432f5..f93aba5 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/vo/TCrmClinicVO.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/vo/TCrmClinicVO.java
@@ -23,7 +23,10 @@
@ApiModelProperty(value = "当月采购金额")
private BigDecimal monthPurchaseAmount;
+ @ApiModelProperty(value = "剩余积分")
+ private Integer userPoints;
+
@ApiModelProperty(value = "业绩状态 1=未达成 2=已达成")
- private Integer performanceStatus;
+ private Integer performanceStatus = 1;
}
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
index 454dcb3..5ed8d6f 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -336,11 +336,7 @@
<if test="loginDate != null">login_date = #{loginDate},</if>
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
<if test="remark != null">remark = #{remark},</if>
- <if test="ifBlack != null">ifBlack = #{ifBlack},</if>
- <if test="districtId != null">districtId = #{districtId},</if>
- <if test="disableRemark != null">disable_remark = #{disableRemark},</if>
- <if test="operatingTime != null">operating_time = #{operatingTime},</if>
- <if test="operatingPerson != null">operating_person = #{operatingPerson},</if>
+ <if test="openId != null">open_id = #{openId},</if>
update_time = sysdate()
</set>
where user_id = #{userId}
diff --git a/ruoyi-system/src/main/resources/mapper/system/TCrmBranchMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TCrmBranchMapper.xml
index 6184c2e..7f8547d 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TCrmBranchMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TCrmBranchMapper.xml
@@ -51,5 +51,32 @@
</where>
ORDER BY create_time DESC
</select>
+ <select id="exportList" resultType="com.ruoyi.system.export.TCrmBranchExport">
+ select id, user_id, branch_name, user_name, phone, money_commission, points_commission,
+ user_points, status, create_time, update_time, create_by, update_by, disabled
+ from t_crm_branch
+ <where>
+ <if test="query.branchName != null and query.branchName != ''">
+ and branch_name like concat('%',#{query.branchName},'%')
+ </if>
+ <if test="query.userName != null and query.userName != ''">
+ and user_name like concat('%',#{query.userName},'%')
+ </if>
+ <if test="query.phone != null and query.phone != ''">
+ and phone like concat('%',#{query.phone},'%')
+ </if>
+ <if test="query.status != null">
+ and status = #{query.status}
+ </if>
+ <if test="query.branchIds != null and query.branchIds.size()>0">
+ and id in
+ <foreach item="item" collection="query.branchIds" separator="," open="(" close=")" index="">
+ #{item}
+ </foreach>
+ </if>
+ AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+ </where>
+ ORDER BY create_time DESC
+ </select>
</mapper>
diff --git a/ruoyi-system/src/main/resources/mapper/system/TCrmClinicMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TCrmClinicMapper.xml
index d106520..127ccde 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TCrmClinicMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TCrmClinicMapper.xml
@@ -17,6 +17,7 @@
<result column="qualification_picture" property="qualificationPicture" />
<result column="status" property="status" />
<result column="audit_remark" property="auditRemark" />
+ <result column="performance_count" property="performanceCount" />
<result column="create_time" property="createTime" />
<result column="update_time" property="updateTime" />
<result column="create_by" property="createBy" />
@@ -27,13 +28,13 @@
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, branch_id, salesperson_id, warehouse_id,user_id, clinic_name, person_charge_name, phone, low_procurement_money,
- clinic_address, qualification_picture, status,audit_remark, create_time, update_time, create_by, update_by, disabled
+ clinic_address, qualification_picture, status,audit_remark,performance_count, create_time, update_time, create_by, update_by, disabled
</sql>
<select id="pageList" resultType="com.ruoyi.system.vo.TCrmClinicVO">
SELECT
tcc.id, tcc.branch_id, tcc.salesperson_id, tcc.warehouse_id,tcc.user_id, tcc.clinic_name, tcc.person_charge_name,
tcc.phone, tcc.low_procurement_money, tcc.clinic_address, tcc.qualification_picture, tcc.status,tcc.audit_remark,
- tcc.create_time, tcc.update_time, tcc.create_by, tcc.update_by, tcc.disabled,
+ tcc.create_time, tcc.update_time, tcc.create_by, tcc.update_by, tcc.disabled,tcc.performance_count,
tcb.branch_name, tcs.salesperson_name, tcw.warehouse_name
from t_crm_clinic tcc
left join t_crm_branch tcb on tcc.branch_id = tcb.id
@@ -55,9 +56,22 @@
<if test="query.salespersonId != null and query.salespersonId != ''">
and tcc.salesperson_id = #{query.salespersonId}
</if>
-<!-- <if test="query.performanceStatus != null">-->
-<!-- and tcc.salesperson_id = #{query.performanceStatus}-->
-<!-- </if>-->
+ <if test="query.performanceStatus != null and query.performanceStatus == 1">
+ and tcc.low_procurement_money < (SELECT IFNULL(SUM(pay_money),0) FROM
+ t_erp_procurement
+ WHERE clinic_id = tcc.id AND status in (3,4,5)
+ AND create_time LIKE concat(#{query.createTime},'%')
+ AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+ )
+ </if>
+ <if test="query.performanceStatus != null and query.performanceStatus == 2">
+ and tcc.low_procurement_money >= (SELECT IFNULL(SUM(pay_money),0) FROM
+ t_erp_procurement
+ WHERE clinic_id = tcc.id AND status in (3,4,5)
+ AND create_time LIKE concat(#{query.createTime},'%')
+ AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+ )
+ </if>
<if test="query.status != null">
and tcc.status = #{query.status}
</if>
@@ -76,7 +90,7 @@
SELECT
tcc.id, tcc.branch_id, tcc.salesperson_id, tcc.warehouse_id,tcc.user_id, tcc.clinic_name, tcc.person_charge_name,
tcc.phone, tcc.low_procurement_money, tcc.clinic_address, tcc.qualification_picture, tcc.status,tcc.audit_remark,
- tcc.create_time, tcc.update_time, tcc.create_by, tcc.update_by, tcc.disabled,
+ tcc.create_time, tcc.update_time, tcc.create_by, tcc.update_by, tcc.disabled,tcc.performance_count,
tcb.branch_name, tcs.salesperson_name, tcw.warehouse_name
from t_crm_clinic tcc
left join t_crm_branch tcb on tcc.branch_id = tcb.id
@@ -98,9 +112,6 @@
<if test="query.salespersonId != null and query.salespersonId != ''">
and tcc.salesperson_id = #{query.salespersonId}
</if>
-<!-- <if test="query.performanceStatus != null">-->
-<!-- and tcc.salesperson_id = #{query.performanceStatus}-->
-<!-- </if>-->
<if test="query.status != null">
and tcc.status = #{query.status}
</if>
@@ -109,5 +120,95 @@
</where>
ORDER BY tcc.create_time DESC
</select>
+ <select id="exportAudit" resultType="com.ruoyi.system.export.TCrmClinicAuditExport">
+ SELECT
+ tcc.id, tcc.branch_id, tcc.salesperson_id, tcc.warehouse_id,tcc.user_id, tcc.clinic_name, tcc.person_charge_name,
+ tcc.phone, tcc.low_procurement_money, tcc.clinic_address, tcc.qualification_picture, tcc.status,tcc.audit_remark,
+ tcc.create_time, tcc.update_time, tcc.create_by, tcc.update_by, tcc.disabled,tcc.performance_count,
+ tcb.branch_name, tcs.salesperson_name, tcw.warehouse_name
+ from t_crm_clinic tcc
+ left join t_crm_branch tcb on tcc.branch_id = tcb.id
+ left join t_crm_salesperson tcs on tcc.salesperson_id = tcs.id
+ left join t_crm_warehouse tcw on tcc.warehouse_id = tcw.id
+ <where>
+ <if test="query.clinicName != null and query.clinicName != ''">
+ and tcc.clinic_name like concat('%',#{query.clinicName},'%')
+ </if>
+ <if test="query.personChargeName != null and query.personChargeName != ''">
+ and tcc.person_charge_name like concat('%',#{query.personChargeName},'%')
+ </if>
+ <if test="query.phone != null and query.phone != ''">
+ and tcc.phone like concat('%',#{query.phone},'%')
+ </if>
+ <if test="query.branchId != null and query.branchId != ''">
+ and tcc.branch_id = #{query.branchId}
+ </if>
+ <if test="query.salespersonId != null and query.salespersonId != ''">
+ and tcc.salesperson_id = #{query.salespersonId}
+ </if>
+ <if test="query.status != null">
+ and tcc.status = #{query.status}
+ </if>
+ and tcc.status in (1,2)
+ AND tcc.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+ </where>
+ ORDER BY tcc.create_time DESC
+ </select>
+ <select id="exportList" resultType="com.ruoyi.system.export.TCrmClinicListExport">
+ SELECT
+ tcc.id, tcc.branch_id, tcc.salesperson_id, tcc.warehouse_id,tcc.user_id, tcc.clinic_name, tcc.person_charge_name,
+ tcc.phone, tcc.low_procurement_money, tcc.clinic_address, tcc.qualification_picture, tcc.status,tcc.audit_remark,
+ tcc.create_time, tcc.update_time, tcc.create_by, tcc.update_by, tcc.disabled,tcc.performance_count,
+ tcb.branch_name, tcs.salesperson_name, tcw.warehouse_name
+ from t_crm_clinic tcc
+ left join t_crm_branch tcb on tcc.branch_id = tcb.id
+ left join t_crm_salesperson tcs on tcc.salesperson_id = tcs.id
+ left join t_crm_warehouse tcw on tcc.warehouse_id = tcw.id
+ <where>
+ <if test="query.clinicName != null and query.clinicName != ''">
+ and tcc.clinic_name like concat('%',#{query.clinicName},'%')
+ </if>
+ <if test="query.personChargeName != null and query.personChargeName != ''">
+ and tcc.person_charge_name like concat('%',#{query.personChargeName},'%')
+ </if>
+ <if test="query.phone != null and query.phone != ''">
+ and tcc.phone like concat('%',#{query.phone},'%')
+ </if>
+ <if test="query.branchId != null and query.branchId != ''">
+ and tcc.branch_id = #{query.branchId}
+ </if>
+ <if test="query.salespersonId != null and query.salespersonId != ''">
+ and tcc.salesperson_id = #{query.salespersonId}
+ </if>
+ <if test="query.performanceStatus != null and query.performanceStatus == 1">
+ and tcc.low_procurement_money < (SELECT IFNULL(SUM(pay_money),0) FROM
+ t_erp_procurement
+ WHERE clinic_id = tcc.id AND status in (3,4,5)
+ AND create_time LIKE concat(#{query.createTime},'%')
+ AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+ )
+ </if>
+ <if test="query.performanceStatus != null and query.performanceStatus == 2">
+ and tcc.low_procurement_money >= (SELECT IFNULL(SUM(pay_money),0) FROM
+ t_erp_procurement
+ WHERE clinic_id = tcc.id AND status in (3,4,5)
+ AND create_time LIKE concat(#{query.createTime},'%')
+ AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+ )
+ </if>
+ <if test="query.status != null">
+ and tcc.status = #{query.status}
+ </if>
+ <if test="query.branchId != null and query.userId == 2">
+ and tcc.branch_id = #{query.branchId}
+ </if>
+ <if test="query.salespersonId != null and query.userId == 3">
+ and tcc.salesperson_id = #{query.salespersonId}
+ </if>
+ and tcc.status in (3,4)
+ AND tcc.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+ </where>
+ ORDER BY tcc.create_time DESC
+ </select>
</mapper>
diff --git a/ruoyi-system/src/main/resources/mapper/system/TSysActivityMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TSysActivityMapper.xml
index f8a0e57..b2bcf80 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TSysActivityMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TSysActivityMapper.xml
@@ -38,7 +38,7 @@
<if test="query.status != null">
AND status = #{query.status}
</if>
- <if test="roleType != null and query.roleType == 5">
+ <if test="query.roleType != null and query.roleType == 5">
AND show_type in (2,3)
</if>
AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
diff --git a/ruoyi-system/src/main/resources/mapper/system/TSysAppUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TSysAppUserMapper.xml
index 5c3c9f3..4628b35 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TSysAppUserMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TSysAppUserMapper.xml
@@ -59,6 +59,7 @@
tsau.chronic_disease_id,tsau.status,tsau.last_reminder_time, tsau.create_time, tsau.update_time, tsau.create_by,
tsau.update_by, tsau.disabled
from t_sys_app_user tsau
+ left join (select id,app_user_id, max(check_time) as lastInspectionTime from t_sys_inspection limit 1) tsi on tsi.app_user_id = tsau.id
<where>
<if test="query.phone != null and query.phone != ''">
and tsau.phone = #{query.phone}
@@ -74,5 +75,74 @@
</where>
ORDER BY tsau.create_time DESC
</select>
+ <select id="exportList" resultType="com.ruoyi.system.export.TSysAppUserListExport">
+ select tsau.id, tsau.nick_name, tsau.phone, tsau.birth_time, tsau.sex, tsau.open_id,tsau.office_open_id,
+ tsau.chronic_disease_id,tsau.status,tsau.last_reminder_time, tsau.create_time, tsau.update_time, tsau.create_by,
+ tsau.update_by, tsau.disabled
+ from t_sys_app_user tsau
+ <where>
+ <if test="query.phone != null and query.phone != ''">
+ and tsau.phone = #{query.phone}
+ </if>
+ <if test="query.nickName != null and query.nickName != ''">
+ and tsau.nick_name like concat('%',#{query.nickName},'%')
+ </if>
+ <if test="query.inspectionId != null and query.inspectionId != ''">
+ and FIND_IN_SET(#{query.inspectionId},tsau.chronic_disease_id)
+ </if>
+ AND tsau.chronic_disease_id IS NOT NULL
+ AND tsau.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+ </where>
+ ORDER BY tsau.create_time DESC
+ </select>
+ <select id="exportListClinic" resultType="com.ruoyi.system.export.TSysAppUserClinicExport">
+ select tsau.id, tsau.nick_name, tsau.phone, tsau.birth_time, tsau.sex, tsau.open_id,tsau.office_open_id,
+ tsau.chronic_disease_id,tsau.status,tsau.last_reminder_time, tsau.create_time, tsau.update_time, tsau.create_by,
+ tsau.update_by, tsau.disabled
+ from t_sys_app_user tsau
+ <where>
+ <if test="query.phone != null and query.phone != ''">
+ and tsau.phone = #{query.phone}
+ </if>
+ <if test="query.nickName != null and query.nickName != ''">
+ and tsau.nick_name like concat('%',#{query.nickName},'%')
+ </if>
+ <if test="query.inspectionId != null and query.inspectionId != ''">
+ and FIND_IN_SET(#{query.inspectionId},tsau.chronic_disease_id)
+ </if>
+ AND tsau.chronic_disease_id IS NOT NULL
+ AND tsau.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+ </where>
+ ORDER BY tsau.create_time DESC
+ </select>
+ <select id="exportListAppUser" resultType="com.ruoyi.system.export.TSysAppUserExport">
+ select tsau.id, tsau.nick_name, tsau.phone, tsau.birth_time, tsau.sex, tsau.open_id,tsau.office_open_id,
+ tsau.chronic_disease_id,tsau.status,tsau.last_reminder_time, tsau.create_time, tsau.update_time, tsau.create_by,
+ tsau.update_by, tsau.disabled, tsi.lastInspectionTime
+ from t_sys_app_user tsau
+ left join (select id,app_user_id, max(check_time) as lastInspectionTime from t_sys_inspection limit 1) tsi on tsi.app_user_id = tsau.id
+ <where>
+ <if test="query.phone != null and query.phone != ''">
+ and tsau.phone = #{query.phone}
+ </if>
+ <if test="query.nickName != null and query.nickName != ''">
+ and tsau.nick_name like concat('%',#{query.nickName},'%')
+ </if>
+ <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
+ and tsau.id in (select app_user_id from t_sys_inspection where check_time between #{query.startTime} and #{query.endTime})
+ </if>
+ <if test="query.isInspection != null and query.isInspection == 1">
+ and tsau.chronic_disease_id IS NOT NULL
+ </if>
+ <if test="query.isInspection != null and query.isInspection == 0">
+ and tsau.chronic_disease_id IS NULL
+ </if>
+ <if test="query.status != null">
+ and tsau.status = #{query.status}
+ </if>
+ AND tsau.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
+ </where>
+ ORDER BY tsau.create_time DESC
+ </select>
</mapper>
diff --git a/ruoyi-system/src/main/resources/mapper/system/TSysLiveMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TSysLiveMapper.xml
index 0fb1ec0..7b905a4 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TSysLiveMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TSysLiveMapper.xml
@@ -29,7 +29,7 @@
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, live_title, live_cover, live_introduction, start_time,end_time, expected_duration, live_way, live_mode,live_url,
- live_lecturer, live_type, password, live_detail, push_type,click_count, create_time, update_time, create_by, update_by, disabled
+ live_lecturer, live_type, live_detail, push_type,click_count, create_time, update_time, create_by, update_by, disabled
</sql>
<select id="pageList" resultType="com.ruoyi.system.vo.TSysLiveVO">
SELECT
diff --git a/ruoyi-system/src/main/resources/mapper/system/TSysMessageTemplateMapper.xml b/ruoyi-system/src/main/resources/mapper/system/TSysMessageTemplateMapper.xml
index a55c7a0..8cfee2a 100644
--- a/ruoyi-system/src/main/resources/mapper/system/TSysMessageTemplateMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/TSysMessageTemplateMapper.xml
@@ -8,6 +8,7 @@
<result column="template_name" property="templateName" />
<result column="template_code" property="templateCode" />
<result column="template_content" property="templateContent" />
+ <result column="template_type" property="templateType" />
<result column="create_time" property="createTime" />
<result column="update_time" property="updateTime" />
<result column="create_by" property="createBy" />
@@ -17,7 +18,7 @@
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
- id, template_name, template_code, template_content, create_time, update_time, create_by, update_by, disabled
+ id, template_name, template_code, template_content,template_type, create_time, update_time, create_by, update_by, disabled
</sql>
<select id="pageList" resultType="com.ruoyi.system.model.TSysMessageTemplate">
SELECT
@@ -27,6 +28,7 @@
<if test="query.templateName != null and query.templateName != ''">
AND template_name LIKE concat('%',#{query.templateName},'%')
</if>
+ AND template_type = 3
AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
</where>
ORDER BY create_time DESC
--
Gitblit v1.7.1