一个电商网站建设需要哪些技术,曲阜文化建设示范区网站,wordpress数据多,万户网络做网站怎么样得益于前期的基础投入#xff0c;借助代码生成的加持#xff0c;本来计划用一周实现质控物维护界面#xff0c;实际用来四小时左右完成质控物维护主体#xff0c;效率大大超过预期。
JRT从设计之初就是为了证明Spring打包模式不适合软件服务模式#xff0c;觉得Spring打包…得益于前期的基础投入借助代码生成的加持本来计划用一周实现质控物维护界面实际用来四小时左右完成质控物维护主体效率大大超过预期。
JRT从设计之初就是为了证明Spring打包模式不适合软件服务模式觉得Spring打包模式开发效率太低、维护不现实、做不到分钟级别的需求响应。从开发环境、部署、脚本化、码表、代码生成、打印导出都用java实现等都是优秀考虑的效率。
质控物是下面这个界面涉及增删改数据9个表查树三个表工作量自己估计别看表多增删改查的功能点多基于JRT、实际写的代码不多都是用生成代码加级联查询组装的。 代码结构没多余概念只有界面和后台
主体后台-可以看后台了解JRT推荐的业务范式
import JRT.Core.CustomAttributes.Trans;
import JRT.Core.Dto.OutValue;
import JRT.Core.Util.ReflectUtil;
import JRTBLLBase.BaseHttpHandler;
import JRTBLLBase.Helper;
import JRT.Core.Dto.HashParam;
import JRT.Core.Dto.ParamDto;
import JRT.Core.Dto.OutParam;
import JRT.Model.Entity.*;
import JRT.Core.Util.Convert;
import JRT.Core.MultiPlatform.JRTContext;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;/**
*由代码生成器生成的后台代码
*/
public class ashBTQCMaterial extends BaseHttpHandler {/*** 得到仪器树* return*/public String GetMachineTree() throws Exception{ListMachineTreeDto retListnew ArrayList();//得到用户可以访问的工作组ListSYSUserRole roleListEntityManager().FindByColVal(SYSUserRole.class,UserDR,UserLogin().UserID);if(roleList!nullroleList.size()0){HashMap hasOutWGnew HashMap();for(SYSUserRole role:roleList){//每个工作组只输出一次if(hasOutWG.containsKey(role.WorkGroupDR)){continue;}hasOutWG.put(role.WorkGroupDR,true);//工作组树节点MachineTreeDto wgTreenew MachineTreeDto();wgTree.RowIDrole.WorkGroupDR;wgTree.idWG-role.WorkGroupDR;BTWorkGroup wgDtoEntityManager().DolerGet(BTWorkGroup.class,role.WorkGroupDR);wgTree.textwgDto.CName;wgTree.childrennew ArrayList();wgTree.TypeWG;retList.add(wgTree);//查询所有工作小组ListBTWorkGroupMachine wgmListEntityManager().FindByColVal(BTWorkGroupMachine.class,WorkGroupDR,role.WorkGroupDR);if(wgmList!nullwgmList.size()0){for(BTWorkGroupMachine wgm:wgmList){//工作小组树节点MachineTreeDto wgmTreenew MachineTreeDto();wgmTree.RowIDwgm.RowID;wgmTree.idWGM-wgm.RowID;wgmTree.textwgm.CName;wgmTree.childrennew ArrayList();wgmTree.TypeWGM;wgTree.children.add(wgmTree);//查询工作小组下的所有仪器ListBTMIMachineParameter machListEntityManager().FindByColVal(BTMIMachineParameter.class,WorkGroupMachineDR,wgm.RowID);if(machList!nullmachList.size()0){for(BTMIMachineParameter mi:machList){//仪器树节点MachineTreeDto miTreenew MachineTreeDto();miTree.RowIDmi.RowID;miTree.idMI-mi.RowID;miTree.textmi.CName;miTree.TypeMI;wgmTree.children.add(miTree);}}}}}}//删除没有仪器的节点DealNoMachineTree(retList);return Helper.Object2Json(retList);}/*** 保存数据,前台按表的属性名提交* return 字符串*/Transpublic String SaveBTQCMaterial() throws Exception{BTQCMaterial dtonew BTQCMaterial();//主键 dto.RowIDHelper.ValidParam(JRTContext.GetRequest(Request, RowID), dto.RowID);//代码 dto.CodeHelper.ValidParam(JRTContext.GetRequest(Request, Code), dto.Code);//名称 dto.CNameHelper.ValidParam(JRTContext.GetRequest(Request, CName), dto.CName);//仪器 dto.MachineDRHelper.ValidParam(JRTContext.GetRequest(Request, MachineDR), dto.MachineDR);//浓度数 dto.LevelsHelper.ValidParam(JRTContext.GetRequest(Request, Levels), dto.Levels);//波长 dto.WaveLengthHelper.ValidParam(JRTContext.GetRequest(Request, WaveLength), dto.WaveLength);//是否自动入库 {1:true,0:false}dto.AutoSaveHelper.ValidParam(JRTContext.GetRequest(Request, AutoSave), dto.AutoSave);//说明 dto.RemarkHelper.ValidParam(JRTContext.GetRequest(Request, Remark), dto.Remark);//序号 dto.SequenceHelper.ValidParam(JRTContext.GetRequest(Request, Sequence), dto.Sequence);//激活 {1:true,0:false}dto.ActiveHelper.ValidParam(JRTContext.GetRequest(Request, Active), dto.Active);//是否覆盖数据 {1:true,0:false}dto.IsOverWriteDataHelper.ValidParam(JRTContext.GetRequest(Request, IsOverWriteData), dto.IsOverWriteData);//不允许日间质控 {1:true,0:false}dto.NotAllowDayHelper.ValidParam(JRTContext.GetRequest(Request, NotAllowDay), dto.NotAllowDay);//日间质控没做不显示 {1:true,0:false}dto.NotShowNullDayHelper.ValidParam(JRTContext.GetRequest(Request, NotShowNullDay), dto.NotShowNullDay);OutValue keynew OutValue();int ret0;//更新if(dto.RowID0){retEntityManager().Update(dto,null, ErrRet(), null, null, null);}//插入数据else{retEntityManager().Save(dto,key,ErrRet());if(ret1) {for (int i 0; i dto.Levels; i) {BTQCMaterialLevel levDto new BTQCMaterialLevel();levDto.CName 浓度 (i 1);levDto.Color ;levDto.LevelNo i 1;levDto.MaterialDR dto.RowID;EntityManager().Save(levDto,key,ErrRet());}}else{throw new Exception(Err.GetString());}}if(ret1){return Helper.Success();}else{return Helper.Error();}}/*** 删除数据多个RowID以上尖号分割* return 字符串*/Transpublic String DeleteBTQCMaterial() throws Exception{String RowIDSHelper.ValidParam(JRTContext.GetRequest(Request, RowIDS), );if(RowIDS.isEmpty()){return Helper.Error(请传入要删除数据的RowID,多个以^分割!);}//分割主键String [] arrRowIDS.split(^);//out参数OutParam outnew OutParam();//循环删除数据for(int i0;iarr.length;i){int id Convert.ToInt32(arr[i]);//删除质控浓度EntityManager().RemoveByColVal(BTQCMaterialLevel.class, MaterialDR, id);//删除质控标识EntityManager().RemoveByColVal(BTQCMachineQC.class, MaterialDR, id);//删除质控规则EntityManager().RemoveByColVal(BTQCMaterialRules.class, MaterialDR, id);int retEntityManager().RemoveById(BTQCMaterial.class,id,out);if(ret!1){return Helper.Error(out);}}return Helper.Success();}/*** 查询选择树的仪器* return 字符串*/public String QrySelectMachine() throws Exception {ListBTMIMachineParameter retist new ArrayList();//工作组String WorkGroupDR Helper.ValidParam(JRTContext.GetRequest(Request, WorkGroupDR), );//工作小组String WorkGroupMachineDR Helper.ValidParam(JRTContext.GetRequest(Request, WorkGroupMachineDR), );//仪器String MachineDR Helper.ValidParam(JRTContext.GetRequest(Request, MachineDR), );//选择工作组if(!WorkGroupDR.isEmpty()) {//查工作小组ListBTWorkGroupMachine wgmListEntityManager().FindByColVal(BTWorkGroupMachine.class,WorkGroupDR,Integer.valueOf(WorkGroupDR));if(wgmList!nullwgmList.size()0){for(BTWorkGroupMachine wgm:wgmList){//查仪器ListBTMIMachineParameter miListEntityManager().FindByColVal(BTMIMachineParameter.class,WorkGroupMachineDR,wgm.RowID);retist.addAll(miList);}}}//选择工作小组else if(!WorkGroupMachineDR.isEmpty()) {//查仪器ListBTMIMachineParameter miListEntityManager().FindByColVal(BTMIMachineParameter.class,WorkGroupMachineDR,Integer.valueOf(WorkGroupMachineDR));retist.addAll(miList);}//选择仪器else if(!MachineDR.isEmpty()) {BTMIMachineParameter miEntityManager().DolerGet(BTMIMachineParameter.class,Integer.valueOf(MachineDR));retist.add(mi);}return Helper.Object2Json(retist);}/*** 查询数据,前台按表的属性名提交* return 字符串*/public String QryBTQCMaterial() throws Exception{ListBTQCMaterialDto retlistnew ArrayList();//工作组String WorkGroupDRHelper.ValidParam(JRTContext.GetRequest(Request, WorkGroupDR), );//工作小组String WorkGroupMachineDRHelper.ValidParam(JRTContext.GetRequest(Request, WorkGroupMachineDR), );//仪器String MachineDRHelper.ValidParam(JRTContext.GetRequest(Request, MachineDR), );//存仪器ListBTMIMachineParameter machListnew ArrayList();//选择工作组if(!WorkGroupDR.isEmpty()) {//查工作小组ListBTWorkGroupMachine wgmListEntityManager().FindByColVal(BTWorkGroupMachine.class,WorkGroupDR,Integer.valueOf(WorkGroupDR));if(wgmList!nullwgmList.size()0){for(BTWorkGroupMachine wgm:wgmList){//查仪器ListBTMIMachineParameter miListEntityManager().FindByColVal(BTMIMachineParameter.class,WorkGroupMachineDR,wgm.RowID);machList.addAll(miList);}}}//选择工作小组else if(!WorkGroupMachineDR.isEmpty()) {//查仪器ListBTMIMachineParameter miListEntityManager().FindByColVal(BTMIMachineParameter.class,WorkGroupMachineDR,Integer.valueOf(WorkGroupMachineDR));machList.addAll(miList);}//选择仪器else if(!MachineDR.isEmpty()) {BTMIMachineParameter miEntityManager().DolerGet(BTMIMachineParameter.class,Integer.valueOf(MachineDR));machList.add(mi);}if(machList.size()0){for(BTMIMachineParameter mi:machList){ListBTQCMaterialDto miMatsEntityManager().FindByColVal(BTQCMaterialDto.class,MachineDR,mi.RowID);if(miMats!nullmiMats.size()0) {for(BTQCMaterialDto one:miMats){one.WorkGroupMachineDRmi.WorkGroupMachineDR;BTWorkGroupMachine wgmEntityManager().DolerGet(BTWorkGroupMachine.class,mi.WorkGroupMachineDR);one.WorkGroupMachineNamewgm.CName;one.WorkGroupDRwgm.WorkGroupDR;BTWorkGroup wgEntityManager().DolerGet(BTWorkGroup.class,wgm.WorkGroupDR);one.WorkGroupNamewg.CName;one.MachineNamemi.CName;}retlist.addAll(miMats);}}}return Helper.Object2Json(retlist);}/*** 保存数据,前台按表的属性名提交* return 字符串*/public String SaveBTQCMaterialTestCode() throws Exception{BTQCMaterialTestCode dtonew BTQCMaterialTestCode();//主键dto.RowIDHelper.ValidParam(JRTContext.GetRequest(Request, RowID), dto.RowID);//质控物dto.MaterialDRHelper.ValidParam(JRTContext.GetRequest(Request, MaterialDR), dto.MaterialDR);//项目dto.TestCodeDRHelper.ValidParam(JRTContext.GetRequest(Request, TestCodeDR), dto.TestCodeDR);//浓度dto.LevelNoHelper.ValidParam(JRTContext.GetRequest(Request, LevelNo), dto.LevelNo);//开始日期dto.StartDateHelper.ValidParam(JRTContext.GetRequest(Request, StartDate), dto.StartDate);//靶子dto.MeanHelper.ValidParam(JRTContext.GetRequest(Request, Mean), dto.Mean);//标准差dto.SDHelper.ValidParam(JRTContext.GetRequest(Request, SD), dto.SD);//设置CVdto.SetCVHelper.ValidParam(JRTContext.GetRequest(Request, SetCV), dto.SetCV);//目标CVdto.TargetCVHelper.ValidParam(JRTContext.GetRequest(Request, TargetCV), dto.TargetCV);//质控品批号dto.LotNoHelper.ValidParam(JRTContext.GetRequest(Request, LotNo), dto.LotNo);//质控物厂家dto.MatManufacturerHelper.ValidParam(JRTContext.GetRequest(Request, MatManufacturer), dto.MatManufacturer);//厂家均值dto.ManufacturerMeanHelper.ValidParam(JRTContext.GetRequest(Request, ManufacturerMean), dto.ManufacturerMean);//厂家标准差dto.ManufacturerSDHelper.ValidParam(JRTContext.GetRequest(Request, ManufacturerSD), dto.ManufacturerSD);//试剂批号dto.RgLotHelper.ValidParam(JRTContext.GetRequest(Request, RgLot), dto.RgLot);//试剂厂家dto.RgManufacturerHelper.ValidParam(JRTContext.GetRequest(Request, RgManufacturer), dto.RgManufacturer);//测试方法dto.TestMethodHelper.ValidParam(JRTContext.GetRequest(Request, TestMethod), dto.TestMethod);//计算类型dto.CalcTypeHelper.ValidParam(JRTContext.GetRequest(Request, CalcType), dto.CalcType);//精度dto.PrecisionHelper.ValidParam(JRTContext.GetRequest(Request, Precision), dto.Precision);//稀释倍数dto.DilutionsHelper.ValidParam(JRTContext.GetRequest(Request, Dilutions), dto.Dilutions);//说明dto.RemarkHelper.ValidParam(JRTContext.GetRequest(Request, Remark), dto.Remark);//浓度单位dto.LevelUnitHelper.ValidParam(JRTContext.GetRequest(Request, LevelUnit), dto.LevelUnit);//CV来源dto.CVSourceHelper.ValidParam(JRTContext.GetRequest(Request, CVSource), dto.CVSource);//生产日期dto.ProductDateHelper.ValidParam(JRTContext.GetRequest(Request, ProductDate), dto.ProductDate);//有效日期dto.ExpiryDateHelper.ValidParam(JRTContext.GetRequest(Request, ExpiryDate), dto.ExpiryDate);//关闭日期dto.ClosingDateHelper.ValidParam(JRTContext.GetRequest(Request, ClosingDate), dto.ClosingDate);//校正液批次dto.AmendLiquidLotHelper.ValidParam(JRTContext.GetRequest(Request, AmendLiquidLot), dto.AmendLiquidLot);//主波长dto.WaveLengthMianHelper.ValidParam(JRTContext.GetRequest(Request, WaveLengthMian), dto.WaveLengthMian);//波长dto.WaveLengthHelper.ValidParam(JRTContext.GetRequest(Request, WaveLength), dto.WaveLength);//生效日期dto.RgEffectiveDateHelper.ValidParam(JRTContext.GetRequest(Request, RgEffectiveDate), dto.RgEffectiveDate);//校准液有效期dto.AmendLiquidDateHelper.ValidParam(JRTContext.GetRequest(Request, AmendLiquidDate), dto.AmendLiquidDate);//校准液dto.AmendLiquidHelper.ValidParam(JRTContext.GetRequest(Request, AmendLiquid), dto.AmendLiquid);//偏离图SDdto.DeviationRatioSDHelper.ValidParam(JRTContext.GetRequest(Request, DeviationRatioSD), dto.DeviationRatioSD);//规则说明dto.RuleRemarkHelper.ValidParam(JRTContext.GetRequest(Request, RuleRemark), dto.RuleRemark);//序号dto.SequenceHelper.ValidParam(JRTContext.GetRequest(Request, Sequence), dto.Sequence);//激活 {1:true,0:false}dto.ActiveHelper.ValidParam(JRTContext.GetRequest(Request, Active), dto.Active);//计算靶值dto.FloatMeanHelper.ValidParam(JRTContext.GetRequest(Request, FloatMean), dto.FloatMean);//计算标准差dto.FloatSDHelper.ValidParam(JRTContext.GetRequest(Request, FloatSD), dto.FloatSD);//累计总数dto.AccSumHelper.ValidParam(JRTContext.GetRequest(Request, AccSum), dto.AccSum);//累计均值dto.AccMeanHelper.ValidParam(JRTContext.GetRequest(Request, AccMean), dto.AccMean);//累计标准差dto.AccSDHelper.ValidParam(JRTContext.GetRequest(Request, AccSD), dto.AccSD);//在控个数dto.InControlNumHelper.ValidParam(JRTContext.GetRequest(Request, InControlNum), dto.InControlNum);//在控均值dto.InControlMeanHelper.ValidParam(JRTContext.GetRequest(Request, InControlMean), dto.InControlMean);//在控标准差dto.InControlSDHelper.ValidParam(JRTContext.GetRequest(Request, InControlSD), dto.InControlSD);OutParam outnew OutParam();int ret0;//更新if(dto.RowID0){retEntityManager().Update(dto,null, out, null, null, null);}//插入数据else{retEntityManager().Save(dto,out);}if(ret1){return Helper.Success();}else{return Helper.Error(out);}}/*** 删除数据多个RowID以上尖号分割* return 字符串*/public String DeleteBTQCMaterialTestCode() throws Exception{String RowIDSHelper.ValidParam(JRTContext.GetRequest(Request, RowIDS), );if(RowIDS.isEmpty()){return Helper.Error(请传入要删除数据的RowID,多个以^分割!);}//分割主键String [] arrRowIDS.split(^);//out参数OutParam outnew OutParam();//循环删除数据for(int i0;iarr.length;i){int retEntityManager().RemoveById(BTQCMaterialTestCode.class,Convert.ToInt32(arr[i]),out);if(ret!1){return Helper.Error(out);}}return Helper.Success();}/*** 查询数据,前台按表的属性名提交* return 字符串*/public String QryBTQCMaterialTestCode() throws Exception{//分页int pageSize Helper.ValidParam(JRT.Core.MultiPlatform.JRTContext.GetRequest(Request, rows), -1);int pageIndex Helper.ValidParam(JRT.Core.MultiPlatform.JRTContext.GetRequest(Request, page), -1);//质控物int MaterialDRHelper.ValidParam(JRTContext.GetRequest(Request, MaterialDR), 0);//按项目和浓度筛选String TestCodeDRHelper.ValidParam(JRTContext.GetRequest(Request, TestCodeDR), );String LevelNoHelper.ValidParam(JRTContext.GetRequest(Request, LevelNo), );//筛选String FilterHelper.ValidParam(JRTContext.GetRequest(Request, Filter), );//质控浓度数据ListBTQCMaterialLevel levListEntityManager().FindByColVal(BTQCMaterialLevel.class,MaterialDR,MaterialDR);HashParam hsnew HashParam();hs.Add(MaterialDR,MaterialDR);if(!TestCodeDR.isEmpty()){hs.Add(TestCodeDR,Convert.ToInt32(TestCodeDR));}if(!LevelNo.isEmpty()){hs.Add(LevelNo,Convert.ToInt32(LevelNo));}OutValue totalNumnew OutValue();//分页查询ListBTQCMaterialTestCodeDto dataListEntityManager().FindAll(BTQCMaterialTestCodeDto.class,hs,StartDate desc,pageSize,pageIndex,,null,null,totalNum);ListBTQCMaterialTestCodeDto retListnew ArrayList();if(dataList!nulldataList.size()0){for(BTQCMaterialTestCodeDto one:dataList){one.LevelNoName;for(BTQCMaterialLevel lev:levList){if(lev.LevelNoone.LevelNo){one.LevelNoNamelev.CName;}}//项目数据BTTestCode tsDtoEntityManager().DolerGet(BTTestCode.class,one.TestCodeDR);one.TestCodeCodetsDto.Code;one.TestCodeDRtsDto.RowID;one.TestCodeSynonymtsDto.Synonym;one.TestCodeNametsDto.CName;boolean isPerDatafalse;if(!Filter.isEmpty()one.LevelNoName.contains(Filter)){isPerDatatrue;}if(!Filter.isEmpty()one.TestCodeName.contains(Filter)){isPerDatatrue;}if(!Filter.isEmpty()one.TestCodeCode.equals(Filter)){isPerDatatrue;}if(!Filter.isEmpty()one.LotNo.equals(Filter)){isPerDatatrue;}if(!Filter.isEmpty()one.RgLot.equals(Filter)){isPerDatatrue;}if(!Filter.isEmpty()one.Remark.contains(Filter)){isPerDatatrue;}if(!Filter.isEmpty()one.MatManufacturer.equals(Filter)){isPerDatatrue;}if(!Filter.isEmpty()one.RgManufacturer.equals(Filter)){isPerDatatrue;}if(Filter.isEmpty()||isPerDatatrue){retList.add(one);}}}return Helper.MakeTotalJson(retList,totalNum);}/*** 查询能够开通的项目或者已经开通的项目* return*/public String QueryOpenTestCode() throws Exception{//查是否有开通项目boolean HasOpenHelper.ValidParam(JRTContext.GetRequest(Request, HasOpen), false);//质控物主键int MaterialDRHelper.ValidParam(JRTContext.GetRequest(Request, MaterialDR), 0);//得到质控物的数据BTQCMaterial matDtoEntityManager().DolerGet(BTQCMaterial.class,MaterialDR);//仪器数据BTMIMachineParameter machDtoEntityManager().DolerGet(BTMIMachineParameter.class,matDto.MachineDR);//查询仪器项目ListBTMIMachineTestCode machTsListEntityManager().FindByColVal(BTMIMachineTestCode.class,MachineParameterDR,matDto.MachineDR);//质控浓度数据ListBTQCMaterialLevel levListEntityManager().FindByColVal(BTQCMaterialLevel.class,MaterialDR,MaterialDR);//返回列表ListBTMIMachineTestCodeDto retListnew ArrayList();if(machTsList!nullmachTsList.size()0){for(int i0;imachTsList.size();i){//没激活的不要if(machTsList.get(i).Active!nullmachTsList.get(i).Activefalse){continue;}for(int j1;jmatDto.Levels;j){HashParam hsnew HashParam();hs.Add(MaterialDR,matDto.RowID);hs.Add(TestCodeDR,machTsList.get(i).TestCodeDR);hs.Add(LevelNo,j);//按条件检查是否有数据boolean hasOpenEntityManager().CheckHasData(BTQCMaterialTestCode.class,hs,null,null);//根据开通决定输出if(hasOpenHasOpen){BTMIMachineTestCodeDto onenew BTMIMachineTestCodeDto();one.MaterialDRmatDto.RowID;one.MachineDRmachDto.RowID;one.LevelNoj;one.LevelNoName;for(BTQCMaterialLevel lev:levList){if(lev.LevelNoj){one.LevelNoNamelev.CName;}}//项目数据BTTestCode tsDtoEntityManager().DolerGet(BTTestCode.class,machTsList.get(i).TestCodeDR);one.TestCodeCodetsDto.Code;one.TestCodeDRtsDto.RowID;one.TestCodeSynonymtsDto.Synonym;one.TestCodeNametsDto.CName;retList.add(one);}}}}return Helper.Object2Json(retList);}/*** 开通质控项目* return*/Transpublic String OpenBTQCMaterialTestCode() throws Exception{int MaterialDRHelper.ValidParam(JRTContext.GetRequest(Request, MaterialDR), 0);int MaterialLotDRHelper.ValidParam(JRTContext.GetRequest(Request, MaterialLotDR), 0);String OpenTsLevHelper.ValidParam(JRTContext.GetRequest(Request, OpenTsLev), );String [] arrOpenTsLev.split(\\^);//公共信息BTQCMaterialLot lotDtoEntityManager().DolerGet(BTQCMaterialLot.class,MaterialLotDR);OutValue keynew OutValue();for(String one:arr){String [] tsLevone.split(-);int TestCodeDRConvert.ToInt32(tsLev[0]);int LevelNoConvert.ToInt32(tsLev[1]);BTQCMaterialTestCode dtonew BTQCMaterialTestCode();//拷贝相同的属性值ReflectUtil.CopyProperties(lotDto,dto);dto.MaterialDRMaterialDR;dto.TestCodeDRTestCodeDR;dto.LevelNoLevelNo;int retEntityManager().Save(dto,key,ErrRet());if(ret!1){throw new Exception(Err.GetString());}}return Helper.Success();}/*** 查询数据,前台按表的属性名提交* return 字符串*/public String QryQCResMaterialTestCode() throws Exception{//分页int pageSize Helper.ValidParam(JRT.Core.MultiPlatform.JRTContext.GetRequest(Request, rows), -1);int pageIndex Helper.ValidParam(JRT.Core.MultiPlatform.JRTContext.GetRequest(Request, page), -1);//质控物int MaterialDRHelper.ValidParam(JRTContext.GetRequest(Request, MaterialDR), 0);//按项目和浓度筛选String TestCodeDRHelper.ValidParam(JRTContext.GetRequest(Request, TestCodeDR), );String LevelNoHelper.ValidParam(JRTContext.GetRequest(Request, LevelNo), );//筛选String FilterHelper.ValidParam(JRTContext.GetRequest(Request, Filter), );//质控浓度数据ListBTQCMaterialLevel levListEntityManager().FindByColVal(BTQCMaterialLevel.class,MaterialDR,MaterialDR);HashParam hsnew HashParam();hs.Add(MaterialDR,MaterialDR);if(!TestCodeDR.isEmpty()){hs.Add(TestCodeDR,Convert.ToInt32(TestCodeDR));}if(!LevelNo.isEmpty()){hs.Add(LevelNo,Convert.ToInt32(LevelNo));}OutValue totalNumnew OutValue();//分页查询ListQCResMaterialTestCodeDto dataListEntityManager().FindAll(QCResMaterialTestCodeDto.class,hs,TestDate desc,pageSize,pageIndex,,null,null,totalNum);ListQCResMaterialTestCodeDto retListnew ArrayList();if(dataList!nulldataList.size()0){for(QCResMaterialTestCodeDto one:dataList){one.LevelNoName;for(BTQCMaterialLevel lev:levList){if(lev.LevelNoone.LevelNo){one.LevelNoNamelev.CName;}}//项目数据BTTestCode tsDtoEntityManager().DolerGet(BTTestCode.class,one.TestCodeDR);one.TestCodeCodetsDto.Code;one.TestCodeDRtsDto.RowID;one.TestCodeSynonymtsDto.Synonym;one.TestCodeNametsDto.CName;boolean isPerDatafalse;if(!Filter.isEmpty()one.LevelNoName.contains(Filter)){isPerDatatrue;}if(!Filter.isEmpty()one.TestCodeName.contains(Filter)){isPerDatatrue;}if(!Filter.isEmpty()one.TestCodeCode.equals(Filter)){isPerDatatrue;}if(!Filter.isEmpty()one.LotNo.equals(Filter)){isPerDatatrue;}if(!Filter.isEmpty()one.RgLot.equals(Filter)){isPerDatatrue;}if(!Filter.isEmpty()one.Remark.contains(Filter)){isPerDatatrue;}if(!Filter.isEmpty()one.MatManufacturer.equals(Filter)){isPerDatatrue;}if(!Filter.isEmpty()one.RgManufacturer.equals(Filter)){isPerDatatrue;}if(Filter.isEmpty()||isPerDatatrue){retList.add(one);}}}return Helper.MakeTotalJson(retList,totalNum);}/*** 去除没有仪器的树节点* param retList 树节点集合*/private void DealNoMachineTree(ListMachineTreeDto retList) throws Exception{if(retList!nullretList.size()0){for(int i0;iretList.size();i){//没有工作小组的工作组删掉if(retList.get(i).children.size()0){retList.remove(i);i--;}else{//检查每个工作小组for(int j0;jretList.get(i).children.size();j){//工作小组下没有仪器if(retList.get(i).children.get(j).children.size()0){retList.get(i).children.remove(j);j--;}}//没有小组就把工作组节点也删了if(retList.get(i).children.size()0){retList.remove(i);i--;}}}}}/*** 质控业务数据的批次项目信息*/public static class QCResMaterialTestCodeDto extends QCResMaterialTestCode{/*** 浓度名称*/public String LevelNoName;/*** 项目代码*/public String TestCodeCode;/*** 项目名称*/public String TestCodeName;/*** 项目缩写*/public String TestCodeSynonym;}/*** 返回仪器项目的数据*/public static class BTMIMachineTestCodeDto{/*** 质控物主键*/public int MaterialDR;/*** 仪器主键*/public int MachineDR;/*** 项目主键*/public int TestCodeDR;/*** 浓度*/public int LevelNo;/*** 浓度名称*/public String LevelNoName;/*** 项目代码*/public String TestCodeCode;/*** 项目名称*/public String TestCodeName;/*** 项目缩写*/public String TestCodeSynonym;}/*** 质控仪器树实体*/public static class MachineTreeDto {/*** 数据唯一键*/public int RowID;/*** 树id*/public String id;/*** 树文本*/public String text;/*** 是否选择*/public String checked;/*** 子节点*/public ListMachineTreeDto children;/*** 节点类型*/public String Type;}/*** 质控物实体*/public static class BTQCMaterialDto extends BTQCMaterial{/*** 工作组主键*/public int WorkGroupDR;/*** 工作组名称*/public String WorkGroupName;/*** 工作小组主键*/public int WorkGroupMachineDR;/*** 工作小组名称*/public String WorkGroupMachineName;/*** 仪器名称*/public String MachineName;}/*** 质控项目的返回实体*/public static class BTQCMaterialTestCodeDto extends BTQCMaterialTestCode{/*** 浓度名称*/public String LevelNoName;/*** 项目代码*/public String TestCodeCode;/*** 项目名称*/public String TestCodeName;/*** 项目缩写*/public String TestCodeSynonym;}}
主体界面代码太多博客放不下放个质控规则维护的界面前端前后台交互通过ajax
!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
html xmlnshttp://www.w3.org/1999/xhtml
headmeta http-equivContent-Type contenttext/html;charsetutf-8 /title质控规则维护/titlelink relshortcut icon href../../resource/common/images/favicon.ico /script src../../resource/common/js/JRTBSBase.js typetext/javascript/scriptlink href../../resource/plug/spectrum/css/spectrum.css relstylesheet typetext/css /script src../../resource/plug/spectrum/js/spectrum.js typetext/javascript/scriptscript languagejavascript typetext/javascriptSYSPageCommonInfo.Init();var BasePath ;var ResourcePath ;var WebServicAddress SYSPageCommonInfo.Data.WebServicAddress;var UserID SYSPageCommonInfo.Data.Sesssion.UserID;var GroupID SYSPageCommonInfo.Data.Sesssion.GroupID;var SessionStr SYSPageCommonInfo.Data.SessionStr;/scriptscript typetext/javascript//全局变量var me {actionUrl: ../ashx/ashBTQCRules.ashx};//jquery入口$(function () {//规则颜色$(#txtBTQCRulesColor).spectrum({showInput: true,showPalette: true,color: ,cancelText:取消,chooseText:选择,clearText:清空选择,palette: [[#333333, #449be2, #50b90c, #39c6c8, afd17e, #A85B93],[#FFD572, #ff32a1, #d952d1, #9152d9, #494dee, #327eb2],[#f3723b, #21be97, #2ab66a, #aade5f, #ffb746, #ff793e],[#ff5252, #f16e57, #fd930c, #d07605, #955606, #8be451],[#ec90da, #338001, #fda632, #0670c6, #135890, #afd17e],[#c00eb5, #891082, #7dba56, #f4d44f, #6abfef, c0c0c0]]});//质控状态$(#txtBTQCRulesStatus).combogrid({panelWidth: 350,idField: RowID,width: 205,textField: CName,data:[{RowID:W,CName:警告},{RowID:R,CName:失控}],columns: [[{ field: RowID, title: 主键, width: 60 },{ field: CName, title: 名称, width: 260 }]]});//新增数据点击$(#btnAddBTQCRules).click(function () {$(#txtBTQCRulesRowID).val(); $(#winEditBTQCRules).window({title: TranslateDataMTHD(Add Data, 新增数据, ),modal: true});});//修改数据点击$(#btnUpdateBTQCRules).click(function () {UpdateBTQCRules();});//修改数据function UpdateBTQCRules(row){var selectRow $(#dgBTQCRules).datagrid(getSelected);if(row!null){selectRowrow;}if (selectRow null) {$.messager.alert(TranslateDataMTHD(Info, 提示, ), TranslateDataMTHD(Please select the data to modify, 请选择要修改的数据!, ), info);return;}$(#formBTQCRules).form(load, selectRow);$(#txtBTQCRulesColor).spectrum(set,selectRow.Color);$(#winEditBTQCRules).window({title: TranslateDataMTHD(Update Data, 修改数据, ),modal: true});}//删除数据点击$(#btnDeleteBTQCRules).click(function () {var checkRow $(#dgBTQCRules).datagrid(getChecked);var selectRow $(#dgBTQCRules).datagrid(getSelected);if ((checkRow null || checkRow.length 0)selectRownull) {$.messager.alert(TranslateDataMTHD(Info, 提示, ), TranslateDataMTHD(Please select the data to delete, 请勾选要删除的数据!, ), info);return;}if ((checkRow null || checkRow.length 0)) {checkRow[selectRow];}var RowIDS ;for (var i 0; i checkRow.length; i) {if (i 0) {RowIDS checkRow[i].RowID;}else {RowIDS ^ checkRow[i].RowID;}}$.messager.confirm(TranslateDataMTHD(Info, 提示, ), TranslateDataMTHD(Do you want to delete the selected data, 是否要删除选择的数据?, ) , function (r) {if (r) {//开启等待$.messager.progress({ text: TranslateDataMTHD(Deleting data,正在删除数据, ), interval: 500 });setTimeout(function () {$.messager.progress(close);}, 8000);//往后台提交数据$.ajax({type: post,dataType: json,cache: false, //async: true, //为true时异步不等待后台返回值为false时强制等待-asirurl: me.actionUrl ?MethodDeleteBTQCRules,data: { RowIDS: RowIDS },success: function (data, status) {$.messager.progress(close);if (!FilterBackData(data)) {return;}if (!data.IsOk) {$.messager.alert(TranslateDataMTHD(Error message, 错误提示, ), TranslateDataMTHD(failed to dalete data, error message:, 删除失败,错误信息, ) data.Message);}else {QryBTQCRules();$.messager.show({title: TranslateDataMTHD(Info, 提示, ),msg: TranslateDataMTHD(Successfully deleted!, 删除成功, ),timeout: 500,showType: slide});}}});}});});//保存数据$(#btnSaveBTQCRules).click(function () {var saveData jQuery.parseJSON($(#formBTQCRules).serializeObject());var Color $(#txtBTQCRulesColor).spectrum(get).toHexString();saveData.ColorColor;//开启等待$.messager.progress({ text: TranslateDataMTHD(Saving data,正在保存数据, ), interval: 500 });setTimeout(function () {$.messager.progress(close);}, 8000);//往后台提交数据$.ajax({type: post,dataType: json,cache: false, //async: true, //为true时异步不等待后台返回值为false时强制等待-asirurl: me.actionUrl ?MethodSaveBTQCRules,data: saveData,success: function (data, status) {$.messager.progress(close);if (!FilterBackData(data)) {return;}if (!data.IsOk) {$.messager.alert(TranslateDataMTHD(Error message, 错误提示, ), TranslateDataMTHD(failed to dalete data, error message:, 删除失败,错误信息, ) data.Message);}else {QryBTQCRules();$.messager.show({title: TranslateDataMTHD(Info, 提示, ),msg: TranslateDataMTHD(Successfully saveed!, 保存成功, ),timeout: 500,showType: slide});$(#winEditBTQCRules).window(close);}}});});//关闭窗口$(#btnCloseBTQCRules).click(function () {$(#winEditBTQCRules).window(close);});//构造查询事件$(#txtFilterBTQCRules).searchbox({searcher: function (value, name) {QryBTQCRules();},prompt: TranslateDataMTHD(Enter query, 回车查询, )});//激活布尔渲染$(#txtBTQCRulesActive).combobox({valueField:RowID,textField:CName,width: 205,data: [{RowID:false,CName:TranslateDataMTHD(No, 否, )},{RowID:true,CName:TranslateDataMTHD(Yes, 是, )}]});//BTQCRules表格$(#dgBTQCRules).datagrid({remoteSort:false,singleSelect: true,toolbar: #dgBTQCRulesToolBar,fit: true,onSelect: function (index, row) {//方便拷贝到子表查询用var selectBTQCRules$(#dgBTQCRules).datagrid(getSelected);},onDblClickRow: function (index, row) {UpdateBTQCRules(row);},columns: [[{ field: ChkFlag, title: TranslateDataMTHD(Check, 选择, ), width: 20, sortable: true, align: center, checkbox: true },{ field: RowID, title: TranslateDataMTHD(RowID, 主键, ) , width: 50, sortable: true },{ field: Code, title: TranslateDataMTHD(Code, 代码, ) , width: 60, sortable: true },{ field: CName, title: TranslateDataMTHD(CName, 名称, ) , width: 120, sortable: true },{ field: Status, title: TranslateDataMTHD(Status, 状态, ) , width: 80, sortable: true },{ field: Color, title: TranslateDataMTHD(Color, 颜色, ) , width: 80, sortable: true,formatter: function (value, rowData, rowIndex) {if (value ) {var LevelNoIndex rowData.LevelNo - 1;value AllLineColor[LevelNoIndex];}return span stylecolor: value ;font-weight:bold; TranslateDataMTHD(Color, 颜色, ) /span}},{ field: Remark, title: TranslateDataMTHD(Remark, 说明, ) , width: 650, sortable: true },{ field: Sequence, title: TranslateDataMTHD(Sequence, 序号, ) , width: 60, sortable: true },{ field: Active, title: TranslateDataMTHD(Active, 激活, ) , width: 60, sortable: true,formatter: function (value, rowData, rowIndex) {return rowData.Active true ? img src../images/icon/active.png alt激活 title激活/ : img src../images/icon/cross.png alt未激活 title未激活/;}}]]});//查询BTQCRulesfunction QryBTQCRules() {var Filter $(#txtFilterBTQCRules).searchbox(getValue);//开启等待,默认注释在单击事件调用的逻辑启用等待会冲掉双击事件,按需要开启//$.messager.progress({ text: TranslateDataMTHD(Querying data,正在查询数据, ), interval: 500 });//setTimeout(function () {//$.messager.progress(close);//}, 8000);$.ajax({type: post,dataType: json,cache: false, //async: true, //为true时异步不等待后台返回值为false时强制等待-asirurl: me.actionUrl ?MethodQryBTQCRules,data: { Filter: Filter },success: function (data, status) {//结束等待//$.messager.progress(close);if (!FilterBackData(data)) {return;}$(#dgBTQCRules).datagrid(loadData, data);}});};//执行查询数据QryBTQCRules();});/script
/head
bodydiv classeasyui-layout fittrue styleborder: none;div data-optionsregion:center,title: styleborder: none;div iddgBTQCRulesToolBar stylepadding: 3px 0px 3px 10px;a idbtnAddBTQCRules href# classeasyui-linkbutton data-optionsiconCls:icon-add plaintrue listranslatehtml~Add新增/aa idbtnUpdateBTQCRules href# classeasyui-linkbutton data-optionsiconCls:icon-write-order plaintrue listranslatehtml~Mod修改/aa idbtnDeleteBTQCRules href# classeasyui-linkbutton data-optionsiconCls:icon-cancel plaintrue listranslatehtml~Del删除/ainput idtxtFilterBTQCRules stylemargin-left: 14px; width: 240px;/input/divtable iddgBTQCRules title iconclsicon-paper listranslatetitle~BTQCRules/table/divdiv idwinEditBTQCRules stylepadding: 10px 0px 0px 10px;width:550px;height:318px;display: none;form idformBTQCRules nameedit_form methodpostinput typehidden idtxtBTQCRulesRowID nameRowID value0 /tabletrtd classlisar jrttranslatehtml~Code代码/tdtd classlisalinput idtxtBTQCRulesCode typetext nameCode stylewidth:200px; classeasyui-validatebox maxlength10//tdtd classlisar jrttranslatehtml~CName名称/tdtd classlisalinput idtxtBTQCRulesCName typetext nameCName stylewidth:200px; classeasyui-validatebox maxlength40//td/trtrtd classlisar jrttranslatehtml~Status状态/tdtd classlisalinput idtxtBTQCRulesStatus typetext nameStatus stylewidth:200px; classeasyui-validatebox maxlength1//tdtd classlisar jrttranslatehtml~Color颜色/tdtd classlisalinput idtxtBTQCRulesColor typetext nameColor stylewidth:200px; classeasyui-validatebox maxlength10//td/trtrtd classlisar jrttranslatehtml~Remark说明/tdtd classlisal colspan3textarea idtxtBTQCRulesRemark nameRemark stylewidth:460px;height: 90px; resize: none; rows3 classeasyui-validatebox maxlength200 cols40 /textarea/td/trtrtd classlisar jrttranslatehtml~Sequence序号/tdtd classlisalinput idtxtBTQCRulesSequence typetext nameSequence stylewidth:200px; classeasyui-validatebox maxlength10//tdtd classlisar jrttranslatehtml~Active激活/tdtd classlisalinput idtxtBTQCRulesActive typetext nameActive stylewidth:200px; classeasyui-validatebox maxlength1//td/tr/tablediv regionsouth borderfale styletext-align: center; padding: 5px 0 0;a idbtnSaveBTQCRules href# classeasyui-linkbutton plainfalse listranslatehtml~Save保存/aspan classsp6/spana idbtnCloseBTQCRules href# classeasyui-linkbutton plainfalse listranslatehtml~Cancel取消/a/div/form/div/div
/body
/html