JRT质控数据录入

news2024/12/28 4:02:43

之前有时间做了质控物维护界面,有了维护之后就应该提供可以录入业务数据的功能了,当时给质控物预留了一个“项目批次业务数据”的功能说是业务数据会给每天拷贝维护数据。这次一起补上,展示JRT怎么写质控数据录入的界面。

界面如下,需要实现一个面板式的录入界面,每个项目-浓度最多显示15个(总耗时3小时):
在这里插入图片描述

在这里插入图片描述
质控物维护可以看到运行时数据和批量修改运行时数据,到时候业务界面也都连接运行时查询和修改来达到调整业务的目的
在这里插入图片描述

在这里插入图片描述

这个界面要求把业务数据按“项目-浓度”每天铺开,保存的时候又按表存储,存在一个表行到15列的转换。界面新增和修改数据是一体的,没有明确具体是新增还是修改,实现起来比一般的存数据界面麻烦点。

表数据到多列数据
在这里插入图片描述

实体到前端的转换
在这里插入图片描述

前端到实体的转换
在这里插入图片描述
生成运行时维护数据
在这里插入图片描述

筛选判断
在这里插入图片描述

后台全代码:

import JRT.Core.CustomAttributes.Trans;
import JRT.Core.Dto.HashParam;
import JRT.Core.Dto.OutValue;
import JRT.Core.MultiPlatform.JRTContext;
import JRT.Core.Socket.MachManager;
import JRT.Core.Util.Convert;
import JRT.DAL.ORM.EntityManager.EntityManagerImpl;
import JRT.DAL.ORM.EntityManager.IEntityManager;
import JRT.Model.Bussiness.Sessions;
import JRT.Model.Entity.*;
import JRTBLLBase.BaseHttpHandler;
import JRTBLLBase.BaseHttpHandlerNoSession;
import JRTBLLBase.Helper;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

/**
 * 质控数据录入界面的后台,为质控数据录入界面服务
 */
public class ashQCDataInput extends BaseHttpHandler {

    /**
     * 查询结果数据,面板结构的
     *
     * @return
     */
    public String QueryTestResultData() throws Exception {
        int StartDate = Helper.ValidParam(JRTContext.GetRequest(Request, "StartDate"), 0);
        int EndDate = Helper.ValidParam(JRTContext.GetRequest(Request, "EndDate"), 0);
        String LevelNo = Helper.ValidParam(JRTContext.GetRequest(Request, "LevelNo"), "");
        int MaterialDR = Helper.ValidParam(JRTContext.GetRequest(Request, "MaterialDR"), 0);
        int TestCodeDR = Helper.ValidParam(JRTContext.GetRequest(Request, "TestCodeDR"), 0);
        BTQCMaterial matObj = EntityManager().DolerGet(BTQCMaterial.class, MaterialDR);
        HashParam hs = new HashParam();
        hs.Add("MaterialDR", MaterialDR);
        //得到质控浓度
        List<BTQCMaterialLevel> levList = EntityManager().FindByColVal(BTQCMaterialLevel.class, "MaterialDR", MaterialDR);
        //判断浓度
        HashMap levMap = Helper.GetSplitMap(LevelNo, ",");
        hs.Add("TestCodeDR", TestCodeDR);
        hs.Add("TestDate", StartDate);
        hs.Add("TestDate", EndDate);
        List<String> operater = new ArrayList<>();
        operater.add("=");
        operater.add("=");
        operater.add(">=");
        operater.add("<=");
        List<String> joiner = new ArrayList<>();
        //查询得到数据
        List<QCTestResult> resList = EntityManager().FindAllSimple(QCTestResult.class, hs, "TestDate asc,TestTime asc", 1000, joiner, operater);

        //要返回的数据
        List<QCTestResultDto> retList = new ArrayList<>();
        //按映射找返回的数据对象
        HashMap<String, QCTestResultDto> retMap = new HashMap<>();
        //得到所有日期
        List<Integer> allDateList = Helper.GetDatesBetween(StartDate, EndDate);
        //按日期组装返回的数据
        for (Integer curDate : allDateList) {
            for (BTQCMaterialLevel lev : levList) {
                //不是查询的浓度退出
                if (levMap.size() > 0 && !levMap.containsKey(String.valueOf(lev.LevelNo))) {
                    continue;
                }
                //创建一行数据
                QCTestResultDto one = new QCTestResultDto();
                one.MaterialDR = MaterialDR;
                one.TestDate = Helper.DateIntToStr(curDate);
                one.TestDateInt = curDate;
                one.LevelNo = lev.LevelNo;
                one.LevelNoName = lev.CName;
                one.LevelColor = lev.Color;
                one.MachineParameterDR = matObj.MachineDR;
                one.TestCodeDR = TestCodeDR;
                one.ResultList = new ArrayList<>();
                //填充当前的维护参数
                one.DealCurBTPara(EntityManager());
                //有对应日期的维护就添加到返回
                if (one.CurBTParaObj != null) {
                    retList.add(one);
                    String key = one.TestDateInt + "-" + one.LevelNo;
                    //方便业务数据找到组织实体
                    retMap.put(key, one);
                }
            }
        }
        //业务数据处理进入返回实体
        if (resList != null && resList.size() > 0) {
            for (QCTestResult one : resList) {
                String key = one.TestDate + "-" + one.LevelNo;
                if (retMap.containsKey(key)) {
                    QCTestResultDto perDto = retMap.get(key);
                    //把业务数据塞入列表
                    if (perDto.ResultList.size() < 15) {
                        perDto.ResultList.add(one);
                    }
                }
            }
        }
        //处理数据
        for (QCTestResultDto one : retList) {
            one.DealResultList(EntityManager(), UserLogin());
        }
        return Helper.Object2Json(retList);
    }
    
    /**
     * 批量保存质控数据
     *
     * @return
     */
    @Trans
    public String SaveTestResult() throws Exception {
        //前台提交的报错Json串
        String AllRowsJson = Helper.ValidParam(JRTContext.GetRequest(Request, "AllRowsJson"), "");
        //转换得到业务对象
        List<QCTestResultDto> saveList = Helper.Json2List(AllRowsJson, QCTestResultDto.class);
        if (saveList != null && saveList.size() > 0) {
            //循环处理修改、增加和删除
            for (QCTestResultDto one : saveList) {
                //把结果传回归到List
                one.DealResStrToList(EntityManager(), UserLogin());
                //单行有结果
                if (one.ResultList.size() > 0) {
                    int index = -1;
                    //遍历进行结果保存
                    for (QCTestResult res : one.ResultList) {
                        index++;
                        //修改数据
                        if (res.RowID > 0) {
                            //获得数据库的数据
                            QCTestResult dbRes = EntityManager().DolerGet(QCTestResult.class, res.RowID);
                            //数据变化就修改数据
                            if ((dbRes.Result != res.Result) || (dbRes.TextRes != res.TextRes)) {
                                //保存直接结果
                                int ret = EntityManager().Update(res, null);
                                if (ret != 1) {
                                    throw new Exception("修改质控数据异常:" + Err.GetString());
                                }
                            }
                            //数据为空就删除数据
                            else if (dbRes.Result.isEmpty()) {
                                int ret = EntityManager().Remove(res, ErrRet());
                                if (ret != 1) {
                                    throw new Exception("删除质控数据异常:" + Err.GetString());
                                }
                            }
                        }
                        //新增的数据
                        else {
                            //非空的结果就存
                            if (res.Result != null && !res.Result.isEmpty()) {
                                HashParam hs = new HashParam();
                                hs.Add("MaterialDR", res.MaterialDR);
                                hs.Add("TestCodeDR", res.TestCodeDR);
                                hs.Add("LevelNo", res.LevelNo);
                                hs.Add("TestDate", res.TestDate);
                                QCResMaterialTestCode bllPara = null;
                                //查询数据库有的数据
                                List<QCResMaterialTestCode> dbParaList = EntityManager().FindAllSimple(QCResMaterialTestCode.class, hs);
                                //有业务参数就不插入数据
                                if (dbParaList != null && dbParaList.size() > 0) {
                                    bllPara = dbParaList.get(0);
                                } else {
                                    bllPara = new QCResMaterialTestCode();
                                    Helper.CopyProperties(one.CurBTParaObj, bllPara);
                                    bllPara.TestDate = one.TestDateInt;
                                    OutValue key = new OutValue();
                                    //保存业务参数
                                    int retbll = EntityManager().Save(bllPara, key, ErrRet());
                                    if (retbll != 1) {
                                        throw new Exception("插入质控数据业务参数异常:" + Err.GetString());
                                    }
                                    bllPara.RowID = key.GetInerger();
                                }
                                //数据参照业务配置参数
                                res.ResMaterialTestCodeDR = bllPara.RowID;
                                res.TestTime = res.TestTime + index;
                                //保存直接结果
                                int ret = EntityManager().Save(res, ErrRet());
                                if (ret != 1) {
                                    throw new Exception("插入质控数据异常:" + Err.GetString());
                                }
                            }
                        }
                    }
                }
            }
        }
        return Helper.Success();
    }

    /**
     * 查询工作组数据
     *
     * @return
     */
    public String QueryWorkGroupData() throws Exception {
        //得到用户的角色
        List<SYSUserRoleDto> roleList = EntityManager().FindByColVal(SYSUserRoleDto.class, "UserDR", Convert.ToInt32(UserLogin().UserID));
        if (roleList != null && roleList.size() > 0) {
            for (SYSUserRoleDto one : roleList) {
                BTWorkGroup wgDto = EntityManager().DolerGet(BTWorkGroup.class, one.WorkGroupDR);
                one.WorkGroupName = wgDto.CName;
                one.CurWorkGroupDR = UserLogin().GroupID;
            }
        }
        return Helper.Object2Json(roleList);
    }

    /**
     * 查询仪器
     *
     * @return
     */
    public String QryMachineParameter() throws Exception {
        int WorkGroupDR = Helper.ValidParam(JRTContext.GetRequest(Request, "WorkGroupDR"), 0);
        List<BTWorkGroupMachine> wgmList = EntityManager().FindByColVal(BTWorkGroupMachine.class, "WorkGroupDR", WorkGroupDR);
        List<BTMIMachineParameter> retList = new ArrayList<>();
        if (wgmList != null && wgmList.size() > 0) {
            for (BTWorkGroupMachine wgm : wgmList) {
                //查询工作小组下的所有仪器
                List<BTMIMachineParameter> machList = EntityManager().FindByColVal(BTMIMachineParameter.class, "WorkGroupMachineDR", wgm.RowID);
                retList.addAll(machList);
            }
        }
        return Helper.Object2Json(retList);
    }


    /**
     * 查询仪器项目
     *
     * @return
     */
    public String QryMachineTestCode() throws Exception {
        int MachineParameterDR = Helper.ValidParam(JRTContext.GetRequest(Request, "MachineParameterDR"), 0);
        int StartDate = Helper.ValidParam(JRTContext.GetRequest(Request, "StartDate"), 0);
        int EndDate = Helper.ValidParam(JRTContext.GetRequest(Request, "EndDate"), 0);
        HashParam hs = new HashParam();
        hs.Add("StartDate", StartDate);
        List<String> operators = new ArrayList<>();
        operators.add("<=");
        //先找小于开始日期的最近数据
        List<BTQCMaterialTestCode> lastData = EntityManager().FindAllSimple(BTQCMaterialTestCode.class, hs, "StartDate desc", 1, null, operators);
        //然后安装最近开始日期和结束日期找模板数据
        HashParam hsFind = new HashParam();
        //结束日期
        hsFind.Add("StartDate", EndDate);
        List<String> operatorsFind = new ArrayList<>();
        operatorsFind.add("<=");
        List<String> joinerFind = new ArrayList<>();
        if (lastData != null && lastData.size() > 0) {
            joinerFind.add("and");
            operatorsFind.add(">=");
            //开始日期
            hsFind.Add("StartDate", lastData.get(0).StartDate);
        }
        //目标数据
        List<BTQCMaterialTestCodeDto> perData = EntityManager().FindAllSimple(BTQCMaterialTestCodeDto.class, hsFind, "StartDate asc", 1, joinerFind, operatorsFind);
        //返回的数据
        List<BTQCMaterialTestCodeDto> retData = new ArrayList<>();
        HashMap map = new HashMap();
        if (perData != null && perData.size() > 0) {
            for (BTQCMaterialTestCodeDto one : perData) {
                BTQCMaterial matDto = EntityManager().DolerGet(BTQCMaterial.class, one.MaterialDR);
                one.MaterialName = matDto.CName;
                BTTestCode tsDto = EntityManager().DolerGet(BTTestCode.class, one.TestCodeDR);
                one.CName = tsDto.CName;
                one.Code = tsDto.Code;
                one.Synonym = tsDto.Synonym;
                if (!map.containsKey(one.MaterialDR + "-" + one.TestCodeDR)) {
                    retData.add(one);
                    map.put(one.MaterialDR + "-" + one.TestCodeDR, true);
                }
            }
        }
        return Helper.Object2Json(perData);
    }

    /**
     * 查询质控浓度数据
     *
     * @return
     */
    public String QueryQCLeaveData() throws Exception {
        int MaterialDR = Helper.ValidParam(JRTContext.GetRequest(Request, "MaterialDR"), 0);
        List<BTQCMaterialLevel> retList = EntityManager().FindByColVal(BTQCMaterialLevel.class, "MaterialDR", MaterialDR);
        return Helper.Object2Json(retList);
    }

    /**
     * 查询质控规则
     *
     * @return
     * @throws Exception
     */
    public String QueryMatRules() throws Exception {
        int MaterialDR = Helper.ValidParam(JRTContext.GetRequest(Request, "MaterialDR"), 0);
        List<BTQCMaterialRulesDto> retList = EntityManager().FindByColVal(BTQCMaterialRulesDto.class, "MaterialDR", MaterialDR);
        if (retList != null && retList.size() > 0) {
            for (BTQCMaterialRulesDto one : retList) {
                BTQCRules ruleDto = EntityManager().DolerGet(BTQCRules.class, one.QCRulesDR);
                one.QCRulesName = ruleDto.CName;
            }
        }
        return Helper.Object2Json(retList);
    }


    /**
     * 质控数据业务实体,返回和保存质控数据录入界面的数据
     */
    public static class QCTestResultDto {
        /**
         * 处理定性结果转换
         *
         * @param resOdb 结果对象
         * @param map    转换图
         * @param resStr 结果串
         */
        private void DealTrans(QCTestResult resOdb, HashMap<String, String> map, String resStr) {
            if (resStr == null || resStr.isEmpty()) {
                resOdb.TextRes = "";
                resOdb.Result = "";
                return;
            }
            if (map.containsKey(resStr)) {
                resOdb.TextRes = resStr;
                resOdb.Result = map.get(resStr);
            } else {
                resOdb.TextRes = resStr;
                resOdb.Result = resStr;
            }
        }

        /**
         * 把结果传回归到列表对象
         */
        public void DealResStrToList(IEntityManager EntityManager, Sessions UserLogin) throws Exception {
            //得到定性转换数据
            List<BTQCResultToNumber> transList = EntityManager.FindByColVal(BTQCResultToNumber.class, "MachineParameterDR", MachineParameterDR);
            HashMap<String, String> map = new HashMap();
            if (transList != null && transList.size() > 0) {
                for (BTQCResultToNumber tran : transList) {
                    map.put(tran.OldResult, tran.NewResult);
                }
            }
            //补全数据到15
            if (ResultList.size() < 15) {
                int addNum = 15 - ResultList.size();
                for (int i = 0; i < addNum; i++) {
                    QCTestResult newObj = new QCTestResult();
                    newObj.LevelNo = LevelNo;
                    newObj.AddDate = Helper.GetNowDate();
                    newObj.AddTime = Helper.GetNowTime();
                    newObj.AddUserDR = Convert.ToInt32(UserLogin.UserID);
                    newObj.MaterialDR = MaterialDR;
                    newObj.TestCodeDR = TestCodeDR;
                    newObj.TestDate = TestDateInt;
                    newObj.TestTime = Helper.GetNowTime();
                    newObj.MachineParameterDR = MachineParameterDR;
                    ResultList.add(newObj);
                }
            }
            DealTrans(ResultList.get(0), map, Result1);
            DealTrans(ResultList.get(1), map, Result2);
            DealTrans(ResultList.get(2), map, Result3);
            DealTrans(ResultList.get(3), map, Result4);
            DealTrans(ResultList.get(4), map, Result5);
            DealTrans(ResultList.get(5), map, Result6);
            DealTrans(ResultList.get(6), map, Result7);
            DealTrans(ResultList.get(7), map, Result8);
            DealTrans(ResultList.get(8), map, Result9);
            DealTrans(ResultList.get(9), map, Result10);
            DealTrans(ResultList.get(10), map, Result11);
            DealTrans(ResultList.get(11), map, Result12);
            DealTrans(ResultList.get(12), map, Result13);
            DealTrans(ResultList.get(13), map, Result14);
            DealTrans(ResultList.get(14), map, Result15);
        }

        /**
         * 得到当前维护的参数
         *
         * @param EntityManager
         * @throws Exception
         */
        public void DealCurBTPara(IEntityManager EntityManager) throws Exception {
            Mean = 0.0;
            SD = 0.0;
            //得到当前维护的质控参数
            HashParam hs = new HashParam();
            hs.Add("MaterialDR", MaterialDR);
            hs.Add("StartDate", TestDateInt);
            List operater = new ArrayList();
            operater.add("=");
            operater.add("<=");
            List<BTQCMaterialTestCode> qcMatTsList = EntityManager.FindAllSimple(BTQCMaterialTestCode.class, hs, "StartDate desc", 1, null, operater);
            if (qcMatTsList != null && qcMatTsList.size() > 0) {
                CurBTParaObj = qcMatTsList.get(0);
                Mean = CurBTParaObj.Mean;
                SD = CurBTParaObj.SD;
                Precision = String.valueOf(CurBTParaObj.Precision);
            }
        }

        /**
         * 处理结果列表的值到结果
         */
        public void DealResultList(IEntityManager EntityManager, Sessions UserLogin) throws Exception {
            Result1 = "";
            Result2 = "";
            Result3 = "";
            Result4 = "";
            Result5 = "";
            Result6 = "";
            Result7 = "";
            Result8 = "";
            Result9 = "";
            Result10 = "";
            Result11 = "";
            Result12 = "";
            Result13 = "";
            Result14 = "";
            Result15 = "";
            AutUserName = "";
            //处理业务数据相关数据
            if (ResultList != null && ResultList.size() > 0) {
                //查询当前数据的对应维护
                BllParaObj = EntityManager.DolerGet(QCResMaterialTestCode.class, ResultList.get(0).ResMaterialTestCodeDR);
                Mean = BllParaObj.Mean;
                SD = BllParaObj.SD;
                Precision = String.valueOf(BllParaObj.Precision);
                if (ResultList.get(0).AuthUserDR != null) {
                    SYSUser usrDto = EntityManager.DolerGet(SYSUser.class, ResultList.get(0).AuthUserDR);
                    AutUserName = usrDto.CName;
                }
                //按位置放结果
                for (int i = 0; i < ResultList.size(); i++) {
                    if (i == 0) {
                        Result1 = ResultList.get(i).Result;
                    } else if (i == 1) {
                        Result2 = ResultList.get(i).Result;
                    } else if (i == 2) {
                        Result3 = ResultList.get(i).Result;
                    } else if (i == 3) {
                        Result4 = ResultList.get(i).Result;
                    } else if (i == 4) {
                        Result5 = ResultList.get(i).Result;
                    } else if (i == 5) {
                        Result6 = ResultList.get(i).Result;
                    } else if (i == 6) {
                        Result7 = ResultList.get(i).Result;
                    } else if (i == 7) {
                        Result8 = ResultList.get(i).Result;
                    } else if (i == 8) {
                        Result9 = ResultList.get(i).Result;
                    } else if (i == 9) {
                        Result10 = ResultList.get(i).Result;
                    } else if (i == 10) {
                        Result11 = ResultList.get(i).Result;
                    } else if (i == 11) {
                        Result12 = ResultList.get(i).Result;
                    } else if (i == 12) {
                        Result13 = ResultList.get(i).Result;
                    } else if (i == 13) {
                        Result14 = ResultList.get(i).Result;
                    } else if (i == 14) {
                        Result15 = ResultList.get(i).Result;
                    }
                }
            }
        }

        /**
         * 质控物
         */
        public int MaterialDR;

        /**
         * 测试日期
         */
        public int TestDateInt;

        /**
         * 测试日期
         */
        public String TestDate;

        /**
         * 浓度
         */
        public int LevelNo;

        /**
         * 项目
         */
        public int TestCodeDR;

        /**
         * 仪器
         */
        public int MachineParameterDR;

        /**
         * 浓度名称
         */
        public String LevelNoName;

        /**
         * 浓度颜色
         */
        public String LevelColor;

        /**
         * 精度
         */
        public String Precision;

        /**
         * 当前的维护参数对象
         */
        public BTQCMaterialTestCode CurBTParaObj;

        /**
         * 当前的业务参数对象
         */
        public QCResMaterialTestCode BllParaObj;

        /**
         * 结果1
         */
        public String Result1;

        /**
         * 结果2
         */
        public String Result2;

        /**
         * 结果3
         */
        public String Result3;

        /**
         * 结果4
         */
        public String Result4;

        /**
         * 结果5
         */
        public String Result5;

        /**
         * 结果6
         */
        public String Result6;

        /**
         * 结果7
         */
        public String Result7;

        /**
         * 结果8
         */
        public String Result8;

        /**
         * 结果9
         */
        public String Result9;

        /**
         * 结果10
         */
        public String Result10;

        /**
         * 结果11
         */
        public String Result11;

        /**
         * 结果12
         */
        public String Result12;

        /**
         * 结果13
         */
        public String Result13;

        /**
         * 结果14
         */
        public String Result14;

        /**
         * 结果15
         */
        public String Result15;

        /**
         * 靶值
         */
        public Double Mean;

        /**
         * SD
         */
        public Double SD;

        /**
         * 审核者
         */
        public String AutUserName;

        /**
         * 结果列表
         */
        public List<QCTestResult> ResultList;
    }


    /**
     * 质控规则
     */
    public static class BTQCMaterialRulesDto extends BTQCMaterialRules {
        /**
         * 规则名称
         */
        public String QCRulesName;
    }


    /**
     * 查询批次项目实体
     */
    public static class BTQCMaterialTestCodeDto extends BTQCMaterialTestCode {
        /**
         * 质控物名称
         */
        public String MaterialName;

        /**
         * 项目名称
         */
        public String CName;

        /**
         * 项目缩写
         */
        public String Synonym;

        /**
         * 项目代码
         */
        public String Code;
    }

    /**
     * 角色查询实体
     */
    public static class SYSUserRoleDto extends SYSUserRole {
        //工作组名称
        public String WorkGroupName;

        //当前工作组
        public String CurWorkGroupDR;
    }
}

整个代码比较符合JRT的特色,只有扁平化的业务脚本、不用SQL级联、使用DolerGet解决多级取数据、业务内定义Dto顶替视图。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1614928.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux基础】Linux基础概念

目录 前言 浅谈什么是文件&#xff1f; Linux下目录结构的认识及路径 目录结构 路径 家目录 什么是递归式的删除 重定向 输出重定向&#xff1a; 追加重定向&#xff1a; 输入重定向&#xff1a; 命令行管道 shell外壳 为什么需要shell外壳&#xff1f; shell外壳…

智能算法 | Matlab基于CBES融合自适应惯性权重和柯西变异的秃鹰搜索算法

智能算法 | Matlab基于CBES融合自适应惯性权重和柯西变异的秃鹰搜索算法 目录 智能算法 | Matlab基于CBES融合自适应惯性权重和柯西变异的秃鹰搜索算法效果一览基本介绍程序设计参考资料效果一览 基本介绍 Matlab基于CBES融合自适应惯性权重和柯西变异的秃鹰搜索算法 融合自适应…

Linux下SPI设备驱动实验:使用内核提供的读写SPI设备中的数据的函数

一. 简介 前面文章的学习&#xff0c;已经实现了 读写SPI设备中数据的功能。文章如下&#xff1a; Linux下SPI设备驱动实验&#xff1a;验证读写SPI设备中数据的函数功能-CSDN博客 本文来使用内核提供的读写SPI设备中的数据的API函数&#xff0c;来实现读写SPI设备中数据。 …

【竞技宝】中超:国安本轮4比1大胜,张稀哲表现不俗

国安在本轮中超主场跟青岛西海岸相遇,这场比赛球队进攻多点开花,最终以4比1将对手斩落马下,拿到了久违的大胜。其中,张稀哲、李可、王子铭都在比赛中有不俗表现。首先,张稀哲身为国安中场核心,他在比赛中传出了多脚有威胁的球,并且成功帮助队友得分。张稀哲在国安神兵天降的表现…

C# 6.0+JavaScript云LIS系统源码 云LIS实验室信息管理新型解决方案

C# 6.0JavaScript云LIS系统源码  云LIS实验室信息管理新型解决方案 什么是医院云LIS系统&#xff1f; 云LIS是为区域医疗提供临床实验室信息服务的计算机应用程序&#xff0c;可协助区域内所有临床实验室相互协调并完成日常检验工作&#xff0c;对区域内的检验数据进行集中管…

爱普生RX-8130CE内置电池控制 RTC

特点&#xff1a;(1)封装极小&#xff0c;集成度高RX-8130CE是一个带|2C接口的实时时钟模块&#xff0c;内部集成32.768KHz晶体振荡器。实时时钟功能不仅集成了年、月、日、星期、小时、分、秒的日历和时钟计数器&#xff0c;同时也有时间闹钟、间隔定时器、时间更新中断等功能…

关于ResNet的假说

ResNet 最核心的思想就是 恒等映射吧 那么现在来提出几个问题&#xff1a; 为什么deeper 以后train L 会增加&#xff1f;恒等映射会解决什么问题&#xff1f;能否解决梯度非常陡峭的问题&#xff1f;你想到了什么模型有类似的问题&#xff0c;如何进行改进的&#xff1f; as…

JAVA学习笔记29(集合)

1.集合 ​ *集合分为&#xff1a;单列集合、双列集合 ​ *Collection 接口有两个重要子接口 List Set&#xff0c;实现子类为单列集合 ​ *Map接口实现子类为双列集合&#xff0c;存放的King–Value ​ *集合体系图 1.1 Collection接口 1.接口实现类特点 1.collection实现…

wangEditor集成Word导入(富文本编辑器)

wangEditor集成Word导入(富文本编辑器)&#xff0c;wangEditor – 支持word上传的富文本编辑器&#xff0c;WANGEDITOR实现WORD图片自动转存&#xff0c;JAVA中将WORD转换为HTML导入到WANGEDITOR编辑器中&#xff08;解决图片问题&#xff0c;样式&#xff0c;非常完美&#xf…

Java web应用性能分析之服务端慢[网络慢]

Java web应用性能分析之服务端慢&#xff0c;如果是网络原因引起的服务端慢&#xff0c;经常会被忽略&#xff0c;很多时候我们第一时间不会去排查网络原因。出现这种情况也很正常&#xff0c;因为应用的外部网络都是超100M的大宽带服务器&#xff0c;而内部则是千兆网卡或者万…

el-tree搜索父节点,父子节点一起展示

会2024.04.22今天我学习了如何对el-tree的:filter-node-method方法进行优化&#xff0c;如果我们有多层的节点数据&#xff0c; 比如我们有这样的数据&#xff0c;当我们输入水果的时候应该出现的是水果和特级水果这两个父节点以及对应底下的子节点数据&#xff0c; 用element里…

Vue3 Vite配置环境变量

Vue3 Vite配置环境变量 相关文档配置.env文件vite.config.jspackage.json 使用 相关文档 Vite 官方中文文档&#xff1a;https://cn.vitejs.dev/环境变量和模式&#xff1a;https://cn.vitejs.dev/guide/env-and-mode.html#env-file在配置中使用环境变量&#xff1a;https://c…

如何轻松实现多微信批量自动加好友?

当我们需要在添加大量的微信好友时&#xff0c;手动逐个添加难免会感到乏味枯燥&#xff0c;还很容易出错。这时候&#xff0c;微信管理系统就能帮助我们实现微信批量自动加好友的便利。 首先&#xff0c;在微信管理系统中&#xff0c;可以将待加好友的手机号码或微信号导入系…

全自动开箱机:从原理到应用,全面解析自动化装箱技术

随着科技的飞速发展&#xff0c;自动化技术在各行各业的应用越来越广泛。其中&#xff0c;全自动开箱机作为现代物流领域的重要设备&#xff0c;以其高效、精准的特点&#xff0c;受到了广大企业的青睐。与星派全面解析全自动开箱机的原理、应用领域以及它所带来的变革。 一、…

发现博客网站的热门前端主题也是跟随前端热点的一个渠道

今天又发现了一个可以关注前端热点的渠道 csdn平台的创作者中心会有相关专业最近有热度的文章话题&#xff0c;这些话题名称本身就代表着一部分该行业的热点 以前端为例&#xff1a;

股票K线图原来可以用Python画,收藏起来!

之前在一篇文章中提到Matplotlib可视化&#xff0c;甚至可以用来画股票K线图&#xff0c;许多同学也在问代码&#xff0c;这次来发个文回应下。 Python用matplotlib绘制K线图&#xff0c;需要配合talib、numpy、mpl_finance等第三方库来使用&#xff0c;具体展示如下&#xff…

宏基因组|使用CheckM2评估分箱质量

简介 CheckM2使用机器学习快速评估基因组bin质量 与CheckM1不同&#xff0c;CheckM2采用通用训练的机器学习模型&#xff0c;无论分类学谱系如何&#xff0c;均可用于预测基因组bin的完整性和污染情况。这使得它能够在训练集中纳入许多仅具有少数&#xff08;甚至只有一个&am…

Proxyman Premium for Mac:网络调试利器,开发者首选!

Proxyman Premium for Mac是一款功能强大的网络调试和分析工具&#xff0c;专为开发者和测试人员打造。这款软件以其出色的性能和丰富的功能&#xff0c;帮助用户在网络开发和调试过程中更有效地分析和拦截网络请求&#xff0c;进行必要的修改和重发&#xff0c;从而进行更深度…

局域网屏幕桌面监控哪个软件比较好

在企业、教育机构或其他组织中&#xff0c;出于提高工作效率、保障数据安全、规范员工行为等目的&#xff0c;对局域网内电脑屏幕进行实时监控的需求日益凸显。 面对市场上众多屏幕监控软件&#xff0c;选择一款功能全面、稳定可靠且符合法规要求的产品至关重要。 在局域网屏幕…

python 如何表示大写字母

upper() 方法将字符串中的小写字母转为大写字母。 语法 upper()方法语法&#xff1a; str.upper() 参数 NA。 返回值 返回小写字母转为大写字母的字符串。 实例 以下实例展示了 upper()函数的使用方法&#xff1a; #!/usr/bin/python str "this is string example…