phis-feign/src/main/java/com/hz/his/dto/report/AppointmentVisitVo.java
New file @@ -0,0 +1,21 @@ package com.hz.his.dto.report; import lombok.Data; @Data public class AppointmentVisitVo { private String shopName; private String shopId; private String startTime; private String endTime; //是否只查询上海门店 1是 0否 private Integer isShanghai; //状态-取消 public static final Integer STATUS_CANCEL = 2; } phis-feign/src/main/java/com/hz/his/dto/report/BaseQueryVo.java
New file @@ -0,0 +1,121 @@ package com.hz.his.dto.report; /** * 基础查询参数拓展类 * @author wzh */ public class BaseQueryVo { /** 页数 */ private Integer pageNum = 1; /** 条数 */ private Integer pageSize = 20; /** 搜索内容 */ private String keyWord; /** 标识 */ private String id; /** 名称 */ private String name; /** 用户标识 */ private String userId; /** RK 入库,CK出库 */ private String header; /** 是否按未填写顺序排序 */ private Integer isOrderBy; /** 是否必打标签顺序排序 */ private Integer isMustTag; /** 标签类型编号 */ private String tagTypeNo; public BaseQueryVo() { } public Integer getPageNum() { return pageNum == null || pageNum < 1 ? 1 : pageNum; } public void setPageNum(Integer pageNum) { this.pageNum = pageNum; } public Integer getPageSize() { return pageSize == null || pageSize < 1 ? 20 : pageSize; } public void setPageSize(Integer pageSize) { this.pageSize = pageSize; } public String getKeyWord() { return keyWord; } public void setKeyWord(String keyWord) { this.keyWord = keyWord; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getUserId() { return userId; } public void setUserId(String userId) { this.userId = userId; } public String getHeader() { return header; } public void setHeader(String header) { this.header = header; } public Integer getIsOrderBy() { return isOrderBy; } public void setIsOrderBy(Integer isOrderBy) { this.isOrderBy = isOrderBy; } public Integer getIsMustTag() { return isMustTag; } public void setIsMustTag(Integer isMustTag) { this.isMustTag = isMustTag; } public String getTagTypeNo() { return tagTypeNo; } public void setTagTypeNo(String tagTypeNo) { this.tagTypeNo = tagTypeNo; } } phis-feign/src/main/java/com/hz/his/dto/report/ClinicPerfReqDto.java
New file @@ -0,0 +1,24 @@ package com.hz.his.dto.report; import lombok.Data; /** * 诊所现金业绩VO * @USER: fhx * @DATE: 2022/12/29 **/ @Data public class ClinicPerfReqDto extends BaseQueryVo{ //门店id private String shopId; //开始时间 private String startTime; //结束时间 private String endTime; //关键词(用户名/CIQ) private String keyWord; //订单号 private String orderNo; } phis-feign/src/main/java/com/hz/his/dto/report/CoreProjectReportDto.java
New file @@ -0,0 +1,35 @@ package com.hz.his.dto.report; import com.hz.his.dto.PageDto; import lombok.Data; import java.util.List; /** * 核心项目报表扩展 * @author fwq * */ @Data public class CoreProjectReportDto extends PageDto { /**核心项目分类编号*/ private String typeNumberNo; /**核心项目分类父级标识*/ private String parentId; /**核心项目分类标识*/ private String typeId; /**核心项目类型*/ private Integer type; /**门店列表*/ private List<String> shopIdList; /**开始时间*/ private String startTime; /**结束时间*/ private String endTime; /**登录员工标识*/ private String loginEmpId; /**登录员工名称*/ private String loginCnName; /**登录员工唯一字符串*/ private String loginEmpStr; } phis-feign/src/main/java/com/hz/his/dto/report/EmployeeReportDto.java
@@ -12,6 +12,10 @@ public class EmployeeReportDto { /**员工标识*/ private String employeeId; /**门店标识*/ private String shopId; /**登录员工唯一字符串*/ private String roleStr; /**员工标识集合*/ private List<String> employeeIdList; /**门店标识集合*/ phis-feign/src/main/java/com/hz/his/dto/report/OperationalStatementsVo.java
New file @@ -0,0 +1,47 @@ package com.hz.his.dto.report; import com.hx.util.StringUtils; import lombok.Data; import java.util.ArrayList; import java.util.Date; import java.util.List; @Data public class OperationalStatementsVo { /**年份:yyyy*/ private String year; /**月份:yyyy-MM*/ private String month; /**月份:yyyy-MM-dd*/ private String day; /**门店标识*/ private String shopId; private List<String> shopIdList; /**开始时间*/ private Date startTime; /**结束时间*/ private Date endTime; /**登录员工标识*/ private String loginEmpId; /**登录员工名称*/ private String loginCnName; /**登录员工唯一字符串*/ private String loginEmpStr; public List<String> getShopIdList() { if(shopIdList == null){ shopIdList = new ArrayList<>(); } if(StringUtils.noNull(shopId)&&!shopIdList.contains(shopId)){ shopIdList.add(shopId); } return shopIdList; } public void setShopIdList(List<String> shopIdList) { this.shopIdList = shopIdList; } } phis-feign/src/main/java/com/hz/his/dto/report/PerformanceReqParamsVo.java
New file @@ -0,0 +1,97 @@ package com.hz.his.dto.report; import com.hz.his.dto.PageDto; import lombok.Data; /** * 业绩接口请求参数vo * @USER: fhx * @DATE: 2022/12/14 **/ @Data public class PerformanceReqParamsVo extends BaseQueryVo { public static final int NO = 0; public static final int YES = 1; private Integer tabType; /**登录员工标识*/ private String loginEmpId; /**登录员工名称*/ private String loginCnName; /**登录员工唯一字符串*/ private String loginEmpStr; //开单开始时间 private String orderStartTime; //开单结束时间 private String orderEndTime; //执行开始时间 private String deductStartTime; //执行结束时间 private String deductEndTime; //所属门店id private String belongShopId; //服务门店id private String serviceShopId; //开单门店id private String orderShopId; //收银门店id private String cashierShopId; //订单类型 private String orderType; //订单号 private String orderNo; //渠道分类id private String channelsTypeId; //渠道id private String channelId; //客户 private String userName; //客户类别 private String userClass; //项目类别 private String basicType; //项目内容 private String commonName; //业务分类 private String businessTypeName; //营销分类 private String marketingType; //执行医生id private String deductionDoctorId; //护士id private String nurseCorpUserId; //所属咨询师id private String belongConsultantId; //医生执行业绩-角色 private String doctorPrefRole; //医生执行业绩-人员 (医生、医助、麻醉师) private String doctorPrefName; //护士执行业绩-角色 private String nursePrefRole; //护士执行业绩-人员 private String nursePrefName; //咨询师执行业绩-角色 private String consultantPrefRole; //咨询师执行业绩-人员 private String consultantPrefName; //汇总方式字段-------------- //汇总是否按门店 private Integer sumIsShop = NO; //汇总角色 private String sumRole; public PerformanceReqParamsVo() { } } phis-feign/src/main/java/com/hz/his/feign/service/platform/bi/BiAppReportService.java
New file @@ -0,0 +1,98 @@ package com.hz.his.feign.service.platform.bi; import com.hx.resultTool.Result; import com.hz.his.dto.report.AppointmentVisitVo; import com.hz.his.dto.report.ConsultantCashReportDto; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; /** * 预约报表 * 这里这个name 需要填写 请求的服务提供者的注册到nacos Server上面的服务名,path 是请求接口前缀 */ @FeignClient(name = "phiskin-bi-view-user", path = "/bi-view", contextId = "bi-app-report") public interface BiAppReportService { /** * 客人到店准时分析报表 */ @PostMapping("/report/appointment/store/analysis") Result storeAnalysis(@RequestBody AppointmentVisitVo appointmentVisitVo); /** * 门店取消概况 */ @PostMapping("/report/appointment/shop/cancel") Result shopCancel(@RequestBody AppointmentVisitVo appointmentVisitVo); /** * 会员各等级取消概况 */ @PostMapping("/report/appointment/userLevel/cancel") Result userLevelCancel(@RequestBody AppointmentVisitVo appointmentVisitVo); /** * 咨询师取消率 */ @PostMapping("/report/appointment/consultant/cancel") Result consultantCancel(@RequestBody AppointmentVisitVo appointmentVisitVo); /** * 门店迟到15分钟以上情况 */ @PostMapping("/report/appointment/shop/timediff") Result shopTimediff(@RequestBody AppointmentVisitVo appointmentVisitVo); /** * 各等级迟到15分钟以上人数 */ @PostMapping("/report/appointment/userLevel/timediff") Result userLevelTimediff(@RequestBody AppointmentVisitVo appointmentVisitVo); /** * 咨询师迟到率 */ @PostMapping("/report/appointment/consultant/timediff") Result consultantTimediff(@RequestBody AppointmentVisitVo appointmentVisitVo); /** * 门店迟到时间分布 */ @PostMapping("/report/appointment/shop/late") Result shopLate(@RequestBody AppointmentVisitVo appointmentVisitVo); /** * 咨询师当日新增预约概况 */ @PostMapping("/report/appointment/consultant/add") Result consultantAdd(@RequestBody AppointmentVisitVo appointmentVisitVo); /** * 咨询师临时改项&增项概况 */ @PostMapping("/report/appointment/update/project") Result updateProject(@RequestBody AppointmentVisitVo appointmentVisitVo); /** * 门店升级VIP(含当日准会员升级) */ @PostMapping("/report/appointment/level/upgrade") Result levelUpgrade(@RequestBody AppointmentVisitVo appointmentVisitVo); /** * 升级VIP(含当日准会员升级) */ @PostMapping("/report/appointment/up/level") Result upLevel(@RequestBody AppointmentVisitVo appointmentVisitVo); /** * 初诊公众号绑定概况 */ @PostMapping("/report/appointment/gzh/binding") Result gzhBinding(@RequestBody AppointmentVisitVo appointmentVisitVo); } phis-feign/src/main/java/com/hz/his/feign/service/platform/bi/BiClinicPerfService.java
New file @@ -0,0 +1,44 @@ package com.hz.his.feign.service.platform.bi; import com.hx.resultTool.Result; import com.hz.his.dto.report.ClinicPerfReqDto; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; /** * 诊所业绩 * 这里这个name 需要填写 请求的服务提供者的注册到nacos Server上面的服务名,path 是请求接口前缀 */ @FeignClient(name = "phiskin-bi-view-user", path = "/bi-view", contextId = "bi-clinic-perf") public interface BiClinicPerfService { /** * 诊所现金业绩 */ @PostMapping("/admin/consultant/perf/list") Result cashList(@RequestBody ClinicPerfReqDto reqDto); /** * 诊所现金业绩-支付类型汇总 */ @PostMapping("/admin/clinic/perf/cashPayTypeSummary") Result cashPayTypeSummary(@RequestBody ClinicPerfReqDto reqDto); /** * 诊所执行业绩 */ @PostMapping("/admin/clinic/perf/deduct/list") Result deductList(@RequestBody ClinicPerfReqDto reqDto); /** * 收银详细列表 */ @PostMapping("/admin/clinic/perf/cashierDetailList") Result cashierDetailList(@RequestBody ClinicPerfReqDto reqDto); } phis-feign/src/main/java/com/hz/his/feign/service/platform/bi/BiConsultantPerfService.java
New file @@ -0,0 +1,44 @@ package com.hz.his.feign.service.platform.bi; import com.hx.resultTool.Result; import com.hz.his.dto.report.ClinicPerfReqDto; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; /** * 咨询师执行业绩 * 这里这个name 需要填写 请求的服务提供者的注册到nacos Server上面的服务名,path 是请求接口前缀 */ @FeignClient(name = "phiskin-bi-view-user", path = "/bi-view", contextId = "bi-consultant-perf") public interface BiConsultantPerfService { /** * 咨询师执行业绩 */ @PostMapping("/admin/clinic/perf/cash/list") Result cashList(@RequestBody ClinicPerfReqDto reqDto); /** * 诊所现金业绩-支付类型汇总 */ @PostMapping("/admin/clinic/perf/cashPayTypeSummary") Result cashPayTypeSummary(@RequestBody ClinicPerfReqDto reqDto); /** * 诊所执行业绩 */ @PostMapping("/admin/clinic/perf/deduct/list") Result deductList(@RequestBody ClinicPerfReqDto reqDto); /** * 收银详细列表 */ @PostMapping("/admin/clinic/perf/cashierDetailList") Result cashierDetailList(@RequestBody ClinicPerfReqDto reqDto); }