forked from kidgrow-microservices-platform

zhaoxiaohao
2020-11-25 6398ac4a3b9cf7d9f36756307aa1448e1e215e0c
添加taocan 的功能,继续完善
4 files modified
188 ■■■■■ changed files
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ProductOrderDetail.java 5 ●●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IProductOrderDetailService.java 1 ●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ProductOrderDetailController.java 26 ●●●● patch | view | raw | blame | history
kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/recharge.html 156 ●●●● patch | view | raw | blame | history
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ProductOrderDetail.java
@@ -75,6 +75,11 @@
    @NotNull(message = "读片量不能为空")
    private Integer ailightCount;
    /**
     * 总共的读片量
     */
    @NotNull(message = "总共的读片量不能为空")
    private Integer count;
    /**
     * 报告量
     */
    @NotNull(message = "报告量不能为空")
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IProductOrderDetailService.java
@@ -143,5 +143,6 @@
     * @return
     */
    int getUserdProduct(Long hospitalId,Long departmentId);
}
kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ProductOrderDetailController.java
@@ -30,9 +30,7 @@
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
@@ -440,4 +438,26 @@
        List<OrderChartVo> orderChartVo=productOrderDetailService.proCountChart();
        return ResultBody.ok().data(orderChartVo).msg("数据获取成功!") ;
    }
    /**
     * 获取软件服务周期 和 读片总量
     *
     */
    @ApiOperation(value = "获取软件服务周期")
    @GetMapping("/getContractBeginEndTimeAndNum")
    public ResultBody getContractBeginEndTimeAndNum(@RequestParam("departmentId") Long departmentId) {
       Map<String,Object> map = new HashMap<>();
        map.put("department_id",departmentId);
        map.put("enabled",true);
        map.put("is_del",false);
        List<ProductOrder> productOrders = productOrderService.listByMap(map);
        IntSummaryStatistics intSummaryStatistics = productOrders.stream().mapToInt((x) -> x.getContractNum()).summaryStatistics();
        Date minDate = productOrders.stream().map(e -> e.getContractBeginTime()).min((e1, e2) -> e1.compareTo(e2)).get();
        Date manDate = productOrders.stream().map(e -> e.getContractEndTime()).max((e1, e2) -> e1.compareTo(e2)).get();
        map = new HashMap<>();
        map.put("count",intSummaryStatistics.getSum());
        map.put("beginTime",minDate);
        map.put("endTime",manDate);
        return  ResultBody.ok().data(map);
    }
}
kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/recharge.html
@@ -79,19 +79,21 @@
                            <div class="layui-col-sm6">
                                <label class="layui-form-label">当前软件服务周期:</label>
                                <div class="layui-col-sm4" style="margin-right: 30px;">
                                    <input autocomplete="off" name="contractBeginTime_not" disabled id="contractBeginTime_not"
                                        type="text" placeholder="请输开始时间" class="layui-input" maxlength="50"/>
                                    <input autocomplete="off" name="contractBeginTime_not" disabled
                                        id="contractBeginTime_not" type="text" placeholder="请输开始时间" class="layui-input"
                                        maxlength="50" />
                                </div>
                                <div class="layui-col-sm4 ">
                                    <input autocomplete="off" name="contractEndTime_not" disabled id="contractEndTime_not" type="text"
                                        placeholder="请输入结束时间" class="layui-input" maxlength="50"  />
                                    <input autocomplete="off" name="contractEndTime_not" disabled
                                        id="contractEndTime_not" type="text" placeholder="请输入结束时间" class="layui-input"
                                        maxlength="50" />
                                </div>
                            </div>
                            <div class="layui-col-sm6">
                                <label class="layui-form-label">当前读片总量:</label>
                                <div class="layui-input-inline">
                                    <input autocomplete="off" name="contractNum_not" id="contractNum_not" disabled type="text" class="layui-input" maxlength="50"
                                         />
                                    <input autocomplete="off" name="contractNum_not" id="contractNum_not" disabled
                                        type="text" class="layui-input" maxlength="50" />
                                </div>
                            </div>
                            <!-- <div class="layui-col-sm6">
@@ -127,8 +129,9 @@
                            <div class="layui-col-sm6">
                                <label class="layui-form-label">合同读片充值量:</label>
                                <div class="layui-input-inline">
                                    <input autocomplete="off" name="contractNum" id="contractNum" onkeyup="this.value=this.value.replace(/[^\d]/g,'') " type="text" class="layui-input"
                                        maxlength="50" lay-verify="required" required />
                                    <input autocomplete="off" name="contractNum" id="contractNum"
                                        onkeyup="this.value=this.value.replace(/[^\d]/g,'') " type="text"
                                        class="layui-input" maxlength="50" lay-verify="required" required />
                                </div>
                            </div>
                        </div>
@@ -153,8 +156,8 @@
                            <div class="layui-col-sm12">
                                <label class="layui-form-label">充值名称:</label>
                                <div class="layui-input-inline">
                                    <input autocomplete="off" id="custom_proName" type="text" class="layui-input" maxlength="50"
                                        value="1000" lay-verify="required" required />
                                    <input autocomplete="off" id="custom_proName" type="text" class="layui-input"
                                        maxlength="50" value="1000" lay-verify="required" required />
                                </div>
                            </div>
                        </div>
@@ -164,8 +167,10 @@
                            <div class="layui-col-sm6">
                                <label class="layui-form-label">读片充值量:</label>
                                <div class="layui-input-inline">
                                    <input autocomplete="off" id="custom_ailightCount" onkeyup="this.value=this.value.replace(/[^\d]/g,'') " type="text" class="layui-input" maxlength="50"
                                        value="1000" lay-verify="required" required />张
                                    <input autocomplete="off" id="custom_ailightCount"
                                        onkeyup="this.value=this.value.replace(/[^\d]/g,'') " type="text"
                                        class="layui-input" maxlength="50" value="1000" lay-verify="required"
                                        required />张
                                </div>
                            </div>
                            <div class="layui-col-sm6">
@@ -184,12 +189,12 @@
                            </div>
                            <div class="layui-col-sm6">
                                <div class="layui-col-sm4" style="margin-right: 30px;">
                                    <input autocomplete="off" id="custom_beginTime"
                                        type="text" placeholder="请输开始时间" class="layui-input" maxlength="50"/>
                                    <input autocomplete="off" id="custom_beginTime" type="text" placeholder="请输开始时间"
                                        class="layui-input" maxlength="50" />
                                </div>
                                <div class="layui-col-sm4 ">
                                    <input autocomplete="off" type="text"
                                        placeholder="请输入结束时间" id="custom_endTime" class="layui-input" maxlength="50"  />
                                    <input autocomplete="off" type="text" placeholder="请输入结束时间" id="custom_endTime"
                                        class="layui-input" maxlength="50" />
                                </div>
                            </div>
                        </div>
@@ -239,7 +244,7 @@
    <input type="checkbox" lay-filter="product-tpl-isShare" value="{{d.id}}" lay-skin="switch" lay-text="共享|不共享" />
</script>
<script>
    layui.use(['form', 'table', 'util', 'config', 'laydate', 'jquery','admin'], function () {
    layui.use(['form', 'table', 'util', 'config', 'laydate', 'jquery', 'admin'], function () {
        var form = layui.form;
        var table = layui.table;
        var config = layui.config;
@@ -250,7 +255,7 @@
        var $ = layui.jquery;
        var laydate = layui.laydate;
        var contractNum=0;
        var contractNum = 0;
        //充值进行中
        var isRun = false;
@@ -404,8 +409,8 @@
            });
        }
        //回显医院基本数据
        let hospitalData = admin.getTempData('t_hospital');
        if (hospitalData != null) {
@@ -422,9 +427,11 @@
                            });
                        } else {
                            form.val('recharge-form', hospitalData);
                            $("#hospitalAreas").val(hospitalData.hospitalProvince + " " + hospitalData
                                .hospitalCity + " " +
                                hospitalData.hospitalArea);
                            var hospitalProvince = hospitalData.hospitalProvince != null ? hospitalData.hospitalProvince : "";
                            var hospitalCity = hospitalData.hospitalCity != null ? hospitalData.hospitalCity : "";
                            var hospitalArea = hospitalData.hospitalArea != null ? hospitalData.hospitalArea : "";
                            // console.log(hospitalProvince + " " + hospitalCity + " " +hospitalArea)
                            $("#hospitalAreas").val(hospitalProvince + " " + hospitalCity + " " + hospitalArea);
                            //装载产品数据
                            table.render({
@@ -539,63 +546,63 @@
                        });
                    }
                }, 'get');
                //报告数量事件
            $("#contractNum").blur(function(){
                if($("#contractNum").val()<=0){
            //报告数量事件
            $("#contractNum").blur(function () {
                if ($("#contractNum").val() <= 0) {
                    layer.msg("输入的读片量大于0");
                    $("#contractNum").val("")
                    return false;
                }
                var listData = admin.getTempData("t_tempProduct");
                var listNum=0;
                var listNum = 0;
                if (!strUtil.isEmpty(listData)) {
                    listData.forEach(item =>{
                        listNum+=item.ailightCount;
                    listData.forEach(item => {
                        listNum += item.ailightCount;
                    })
                }
                if($("#contractNum").val()<listNum){
                if ($("#contractNum").val() < listNum) {
                    layer.msg("请先删除待充值套餐");
                    $("#contractNum").val(contractNum)
                    return false;
                }else{
                    contractNum=$("#contractNum").val();
                } else {
                    contractNum = $("#contractNum").val();
                }
            })
            //自定义的确定
            $("#custom_submit").click(function(){
                var custom_proName=$("#custom_proName").val()
                var custom_ailightCount=$("#custom_ailightCount").val()
                var custom_isShare=$("#custom_isShare").prop("checked") ? 1:0;
                var termType=$("#termType").prop("checked")? 1:0;
                var custom_beginTime="";
                var custom_endTime="";
                if(termType==1){
                    custom_beginTime=$("#custom_beginTime").val();
                    custom_endTime=$("#custom_endTime").val();
                }else{
                    custom_beginTime=$("#contractBeginTime").val();
                    custom_endTime=$("#contractEndTime").val();
            $("#custom_submit").click(function () {
                var custom_proName = $("#custom_proName").val()
                var custom_ailightCount = $("#custom_ailightCount").val()
                var custom_isShare = $("#custom_isShare").prop("checked") ? 1 : 0;
                var termType = $("#termType").prop("checked") ? 1 : 0;
                var custom_beginTime = "";
                var custom_endTime = "";
                if (termType == 1) {
                    custom_beginTime = $("#custom_beginTime").val();
                    custom_endTime = $("#custom_endTime").val();
                } else {
                    custom_beginTime = $("#contractBeginTime").val();
                    custom_endTime = $("#contractEndTime").val();
                }
                var listData = admin.getTempData("t_tempProduct");
                //添加一个id,删除用
                var max=0;
                var max = 0;
                if (strUtil.isEmpty(listData)) {
                        listData = new Array();
                    }
                    listData = new Array();
                }
                listData.forEach(element => {
                    if(max<element.id){
                        max=element.id
                    if (max < element.id) {
                        max = element.id
                    }
                });
                //判断待加入产品的总数是否大于合同的总数
                var msg=isthenNum(parseInt(custom_ailightCount));
                if(msg!=null){
                var msg = isthenNum(parseInt(custom_ailightCount));
                if (msg != null) {
                    layer.msg(msg);
                    return false;
                }
                var data={
                    id: max+1,
                var data = {
                    id: max + 1,
                    ailightCount: parseInt(custom_ailightCount),
                    beginTime: custom_beginTime,
                    endTime: custom_endTime,
@@ -656,8 +663,8 @@
                data.isShare = obj.tr.find("td[data-field='isShare'] em").text();
                data.isShare = (data.isShare.indexOf("不") == 0) ? 0 : 1;
                //判断待加入产品的总数是否大于合同的总数
                var msg=isthenNum(data.ailightCount);
                if(msg!=null){
                var msg = isthenNum(data.ailightCount);
                if (msg != null) {
                    layer.msg(msg);
                    return false;
                }
@@ -676,24 +683,24 @@
                }
            }
        });
        function isthenNum(num){
            if(num<=0){
        function isthenNum(num) {
            if (num <= 0) {
                return "请输入读片量大于0";
            }
            var listData = admin.getTempData("t_tempProduct");
            var listNum=0;
            var listNum = 0;
            if (!strUtil.isEmpty(listData)) {
                listData.forEach(item =>{
                listNum+=item.ailightCount;
                listData.forEach(item => {
                    listNum += item.ailightCount;
                })
            }
            listNum+=num;
            if($("#contractNum").val()==undefined||$("#contractNum").val()==""){
                    return "请输入读片量!";
            }else{
                if($("#contractNum").val()<listNum){
            listNum += num;
            if ($("#contractNum").val() == undefined || $("#contractNum").val() == "") {
                return "请输入读片量!";
            } else {
                if ($("#contractNum").val() < listNum) {
                    return "当前产品总数不得大于合同总量";
                }else{
                } else {
                    return null;
                }
            }
@@ -798,17 +805,18 @@
                                        $.each(listData, function (index, item) {
                                            var detailData = {
                                                orderId: orderData.id + '',
                                                proId: item.termType==null? item.id + '': "0",
                                                proId: item.termType == null ? item.id + '' : "0",
                                                proType: item.proType,
                                                proName: item.proName,
                                                isShare: item.isShare,
                                                ailightCount: item.ailightCount!=null ? item.ailightCount : 0,
                                                recordCount: item.recordCount!=null ? item.recordCount : 0,
                                                ailightCount: item.ailightCount != null ? item.ailightCount : 0,
                                                recordCount: item.recordCount != null ? item.recordCount : 0,
                                                termType: item.termType,
                                                proBegintime: item.beginTime!="" ? item.beginTime+
                                                    ' 00:00:00':"",
                                                proEndtime: item.endTime !="" ? item.endTime +
                                                    ' 23:59:59':""
                                                proBegintime: item.beginTime != "" ? item.beginTime +
                                                    ' 00:00:00' : "",
                                                proEndtime: item.endTime != "" ? item.endTime +
                                                    ' 23:59:59' : "",
                                                count: item.ailightCount
                                            };
                                            listDetailData.push(detailData);
                                        })