From 528658799b844839502e824bbf540c6827588427 Mon Sep 17 00:00:00 2001 From: houruijun <411269194@kidgrow.com> Date: Tue, 20 Oct 2020 19:17:05 +0800 Subject: [PATCH] 增加到期套餐查询功能 --- kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ProductOrderDetailController.java | 17 +++ kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IProductOrderDetailService.java | 5 + kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/productEnd.html | 72 ++++++++++++++ kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/vo/ProductEndVo.java | 57 +++++++++++ kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java | 9 - kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/ProductOrderDetailMapper.java | 9 + kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/console.html | 29 +++++ kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ProductOrderDetailMapper.xml | 60 ++++++++++++ kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderDetailServiceImpl.java | 9 + 9 files changed, 254 insertions(+), 13 deletions(-) diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/vo/ProductEndVo.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/vo/ProductEndVo.java new file mode 100644 index 0000000..4d875d3 --- /dev/null +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/vo/ProductEndVo.java @@ -0,0 +1,57 @@ +package com.kidgrow.oprationcenter.vo; + +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class ProductEndVo extends Model<ProductEndVo> { + private static final long serialVersionUID = 1L; + /** + * 套餐id + */ + private String Id; + /** + * 产品id + */ + private String proId; + /** + * 套餐生效时间 + */ + private String beginTime; + /** + * 套餐结束时间 + */ + private String endTime; + /** + * 产品名称 + */ + private String proName; + /** + * 读片量 + */ + private Integer ailightCount; + /** + * 产品类型 0试用 1正式 + */ + private Integer proType; + /** + * 医院id + */ + private String hospitalId; + /** + * 医院名称 + */ + private String hospitalName; + /** + * 科室id + */ + private String departmentId; + /** + * 科室名称 + */ + private String departmentName; +} diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/ProductOrderDetailMapper.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/ProductOrderDetailMapper.java index 10d516e..132586c 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/ProductOrderDetailMapper.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/ProductOrderDetailMapper.java @@ -5,6 +5,7 @@ import com.kidgrow.oprationcenter.model.ProductOrderDetail; import com.kidgrow.oprationcenter.vo.GroupProductDetail; import com.kidgrow.oprationcenter.vo.OrderChartVo; +import com.kidgrow.oprationcenter.vo.ProductEndVo; import com.kidgrow.oprationcenter.vo.ProductOrderJoinDetail; import org.apache.ibatis.annotations.Param; @@ -86,6 +87,14 @@ List<OrderChartVo> proCountChart(); /** + * 获取最近即将到期的套餐 + * @param monthPar 月条件 + * @param aiCountPar 读片量条件 + * @return + */ + List<ProductEndVo>productEndList(Page<ProductEndVo> page,@Param("monthPar") int monthPar,@Param("aiCountPar") int aiCountPar); + + /** *获取该科室下的所有的套餐信息 *获取该科室下的所有的套餐信息 * @param hospitalId diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IProductOrderDetailService.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IProductOrderDetailService.java index a4569b7..0535615 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IProductOrderDetailService.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IProductOrderDetailService.java @@ -131,5 +131,10 @@ * @return */ PageResult<ProductOrderDetail> departmentProductDetail(Map<String, Object> params); + /** + * 获取最近即将到期的套餐 + * @return + */ + PageResult<ProductEndVo>productEndList(Map<String, Object> params); } diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderDetailServiceImpl.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderDetailServiceImpl.java index df69cd0..353c641 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderDetailServiceImpl.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderDetailServiceImpl.java @@ -214,6 +214,14 @@ return PageResult.<ProductOrderDetail>builder().data(list).code(0).count(page.getTotal()).build(); } + @Override + public PageResult<ProductEndVo> productEndList(Map<String, Object> params) { + Page<ProductEndVo> page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit")); + List<ProductEndVo> list = + baseMapper.productEndList(page,MapUtils.getIntValue(params,"monthPar"),MapUtils.getIntValue(params,"aiCountPar")); + return PageResult.<ProductEndVo>builder().data(list).code(0).count(page.getTotal()).build(); + } + /** * 获取诊断列表 * @param params @@ -236,7 +244,6 @@ List<GroupProductDetail> list = baseMapper.groupProductDetail(page,params); return PageResult.<GroupProductDetail>builder().data(list).code(0).count(page.getTotal()).build(); } - /** * 根据ProductOrderDetail对象当做查询条件进行查询 * @param productOrderDetail diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ProductOrderDetailMapper.xml b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ProductOrderDetailMapper.xml index 14d010c..892860e 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ProductOrderDetailMapper.xml +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ProductOrderDetailMapper.xml @@ -264,4 +264,64 @@ ORDER BY create_time DESC </select> + + <select id="productEndList" resultType="com.kidgrow.oprationcenter.vo.ProductEndVo"> + SELECT + id, + pro_id, + pro_begintime beginTime, + MIN( T2.pro_endtime ) endTime, + MIN( T2.ailight_count ) ailight_count, + pro_type, + pro_name, + T2.hospital_id, + hospital_name, + T2.department_id, + department_name + FROM + ( + SELECT + details.id id, + details.pro_id, + details.pro_begintime pro_begintime, + details.pro_endtime pro_endtime, + details.ailight_count, + details.pro_name pro_name, + details.pro_type pro_type, + orders.hospital_id hospital_id, + orders.hospital_name hospital_name, + orders.department_id department_id, + orders.department_name department_name + FROM + product_order_detail details + LEFT JOIN product_order orders ON orders.id = details.order_id + WHERE + details.is_del = 0 + AND details.enabled = 1 + AND orders.is_del = 0 + AND orders.enabled = 1 + AND pro_endtime BETWEEN now() AND DATE_ADD(NOW(), INTERVAL ${monthPar} MONTH) + AND ailight_count BETWEEN 1 AND ${aiCountPar} + AND pro_type=1 + ORDER BY + ailight_count, + pro_endtime + ) AS T2 + GROUP BY + department_id, + hospital_id, + department_name, + hospital_name, + id, + pro_id, + pro_type, + pro_name, + ailight_count, + pro_endtime, + pro_begintime + ORDER BY + ailight_count, + pro_endtime, + department_id + </select> </mapper> \ No newline at end of file diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ProductOrderDetailController.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ProductOrderDetailController.java index 856a219..f02a54b 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ProductOrderDetailController.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ProductOrderDetailController.java @@ -144,7 +144,22 @@ } return productOrderDetailService.groupList(params); } - + /** + * 查询到期列表 + */ + @ApiOperation(value = "查询到期列表") + @ApiImplicitParams({ + @ApiImplicitParam(name = "page", value = "分页起始位置", required = true, dataType = "Integer"), + @ApiImplicitParam(name = "limit", value = "分页结束位置", required = true, dataType = "Integer") + }) + @GetMapping("/productEnd") + public PageResult productEndList(@RequestParam Map<String, Object> params) { + if (params.size() == 0) { + params.put("page", 1); + params.put("limit", 10); + } + return productOrderDetailService.productEndList(params); + } /** * 获取医院套餐是否到期和到期时间 * data内 isend为true说明套餐到期 diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java index 132cce1..b3f05c9 100644 --- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java +++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysUserServiceImpl.java @@ -127,44 +127,35 @@ log.error(sysUserNew.toString()); LoginAppUser loginAppUser = new LoginAppUser(); SysUser sysUser = this.baseMapper.selectById(sysUserNew); - log.error("11111"); if (sysUser != null) { - log.error("22222"); BeanUtils.copyProperties(sysUser, loginAppUser); //获取用户所属组织机构列表 loginAppUser.setDefaultAuth(sysUser.getDefaultAuth()); List<SysOrganization> sysOrganizations = organizationService.findListByUserId(sysUser.getId()); //设置组织机构集合 if (sysOrganizations != null) { - log.error("33333"); loginAppUser.setOrganizations(sysOrganizations); } List<SysRole> sysRoles = roleUserService.findRolesByUserId(sysUser.getId()); // 设置角色 loginAppUser.setRoles(sysRoles); - log.error("444444"); if (!CollectionUtils.isEmpty(sysRoles)) { - log.error("55555"); Set<Long> roleIds = sysRoles.parallelStream().map(SuperEntity::getId).collect(Collectors.toSet()); List<SysMenu> menus = roleMenuMapper.findMenusByRoleIds(roleIds, CommonConstant.PERMISSION); if (!CollectionUtils.isEmpty(menus)) { - log.error("66666"); Set<String> permissions = menus.parallelStream().map(p -> p.getPath()) .collect(Collectors.toSet()); // 设置权限集合 loginAppUser.setPermissions(permissions); } } - log.error("777777"); //医院信息 DoctorUserAll doctorUserAllVo = baseMapper.findDoctorUserAllData(sysUser.getId()); if (doctorUserAllVo != null) { - log.error("88888"); loginAppUser.setDoctorUserAllVO(doctorUserAllVo); //是否医院管理员 loginAppUser.setHAdminUser(doctorUserAllVo.getIsAdminUser()); } - log.error("99999"); } return loginAppUser; } diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/console.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/console.html index f0c8180..8d31370 100644 --- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/console.html +++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/console.html @@ -62,7 +62,18 @@ </div> </div> </div> - <div class="layui-col-sm3 layui-col-md3"> + <div class="layui-col-sm2 layui-col-md2"> + <div class="layui-card"> + <div class="layui-card-header">快到期套餐 + </div> + <div class="layui-card-body layuiadmin-card-list"> + <a href="/#!productEnd"> + <p class="big-font" id="t_product_end"></p> + </a> + </div> + </div> + </div> + <div class="layui-col-sm3 layui-col-md2"> <div class="layui-card"> <div class="layui-card-header">用户反馈 </div> @@ -73,7 +84,7 @@ </div> </div> </div> - <div class="layui-col-sm3 layui-col-md3"> + <div class="layui-col-sm3 layui-col-md2"> <div class="layui-card"> <div class="layui-card-header">数据需求 </div> @@ -237,6 +248,17 @@ return null; } }, "get"); + } + // 加载套餐到期统计数据 + var loadProEndCountChart = function () { + admin.req("api-opration/productorderdetail/productEnd", {page: 1,limit: 9999,monthPar: 1 +,aiCountPar: 50}, function (data) { + if (0 === data.code) { + counts= data.count; + } else { + return null; + } + }, "get"); } //加载套餐使用图表 var loadContractChart = function () { @@ -475,6 +497,9 @@ //待审核试用套餐 loadOprationChart(0); $("#t_product").html(counts); + //套餐到期 + loadProEndCountChart(); + $("#t_product_end").html(counts); //用户反馈 loadOprationChart(2); $("#u_feedback").html(counts); diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/productEnd.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/productEnd.html new file mode 100644 index 0000000..07cbb55 --- /dev/null +++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/productEnd.html @@ -0,0 +1,72 @@ +<div class="layui-card"> + <div class="layui-card-header"> + <h2 class="header-title">套餐到期</h2> + <span class="layui-breadcrumb pull-right"> + <a href="#!console">首页</a> + <a><cite>套餐到期</cite></a> + </span> + </div> + <div class="layui-card-body"> + <div class="layui-form toolbar"> + <div class="layui-col-sm10"> + <div class="layui-col-sm3"> + 套餐时间剩余:<input type="number" class="layui-input search-input" id="monthPar" value="1" min="1" max="99" style="width: 50px;"/>个月内 + </div> + <div class="layui-col-sm2"> + 读片量剩余:<input type="number" class="layui-input search-input" id="aiCountPar" value="50" min="1" max="999" style="width: 50px;"/> + </div> + <div class="layui-col-sm2"> +  <button id="product-btn-search" class="layui-btn icon-btn"><i class="layui-icon"></i>搜索</button> + </div> + </div> + </div> + <table class="layui-table" id="product-end-table" lay-filter="product-end-table"></table> + </div> +</div> + +<script> + layui.use(['table', 'util', 'admin', 'config', 'form'], function () { + let table = layui.table; + let util = layui.util; + let admin = layui.admin; + let form = layui.form; + let config = layui.config; + + // 渲染表格 + var renderTable = function () { + var monthPar = $('#monthPar').val(); + var aiCountPar = $('#aiCountPar').val(); + table.render({ + elem: '#product-end-table', + url: config.base_server + 'api-opration/productorderdetail/productEnd', + method: 'GET', + headers: { 'Authorization': 'Bearer ' + config.getToken().access_token }, + page: true, + where:{ monthPar: monthPar, aiCountPar: aiCountPar }, + cols: [[ + { field: 'hospitalName', width: 450, title: '医院名称' }, + { field: 'departmentName', width: 140, title: '科室名称' }, + { field: 'proName', width: 200, title: '产品名称' }, + { field: 'beginTime', width: 120, title: '开始时间',templet:function(d){ + return new Date(d.beginTime).dateFormat("yyyy/MM/dd"); + } }, + { field: 'endTime', width: 120, title: '结束时间',templet:function(d){ + return new Date(d.endTime).dateFormat("yyyy/MM/dd"); + } }, + { field: 'ailightCount', width: 100, title: '剩余读片量' } + ]], + done: function (res) { + permissionsInput(res, config); + } + }); + } + + // 搜索按钮点击事件 + $('#product-btn-search').click(function () { + var monthPar = $('#monthPar').val(); + var aiCountPar = $('#aiCountPar').val(); + table.reload('product-end-table', { where: { monthPar: monthPar, aiCountPar: aiCountPar } }); + }); + renderTable(); + }); +</script> \ No newline at end of file -- Gitblit v1.8.0