From fc8e0ab7133c001de98649e4254fcc8af1de31d3 Mon Sep 17 00:00:00 2001 From: fyf Date: Mon, 15 May 2023 17:44:57 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A2=84=E8=AD=A6=E6=97=A5=E5=BF=97=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/example/bpa/LoginActivity.java | 2 +- .../com/example/bpa/app/BusinessServer.java | 132 +++++++++++- .../main/java/com/example/bpa/app/ICSApp.java | 5 +- .../main/java/com/example/bpa/db/QueryDB.java | 47 +++++ .../bpa/view/adapter/yjrz_adapter.java | 93 +++++++++ .../fragment/SystemCapabilitiesFragment.java | 18 +- .../bpa/view/from/ddyjrz_activity.java | 153 +++++++++++++- .../example/bpa/view/mode/ResAlertLog.java | 14 ++ .../res/layout/datatab/layout/yjrz_item.xml | 77 +++++++ .../layout/from/layout/activity_ddyjrz.xml | 196 +++++++++++++++++- 10 files changed, 713 insertions(+), 24 deletions(-) create mode 100644 app/src/main/java/com/example/bpa/view/adapter/yjrz_adapter.java create mode 100644 app/src/main/java/com/example/bpa/view/mode/ResAlertLog.java create mode 100644 app/src/main/res/layout/datatab/layout/yjrz_item.xml diff --git a/app/src/main/java/com/example/bpa/LoginActivity.java b/app/src/main/java/com/example/bpa/LoginActivity.java index 5e20e89..58df8c1 100644 --- a/app/src/main/java/com/example/bpa/LoginActivity.java +++ b/app/src/main/java/com/example/bpa/LoginActivity.java @@ -75,7 +75,7 @@ public class LoginActivity extends Activity implements View.OnClickListener { throw new RuntimeException(e); } } else { - MessageLog.ShowUserMessage(UserLogEnum.登录日志,user+"-用户密码错误!"); + MessageLog.ShowUserMessage(UserLogEnum.登录日志,user.name+"-用户密码错误!"); T.show(LoginActivity.this, "用户密码错误!"); } } diff --git a/app/src/main/java/com/example/bpa/app/BusinessServer.java b/app/src/main/java/com/example/bpa/app/BusinessServer.java index e2ebd17..8bde977 100644 --- a/app/src/main/java/com/example/bpa/app/BusinessServer.java +++ b/app/src/main/java/com/example/bpa/app/BusinessServer.java @@ -121,11 +121,11 @@ public class BusinessServer { DeviceData.Get().setDemandValue((short) recipe.value, silos.num, new IWriteCallBack() { @Override public void onSuccess() { - MessageLog.ShowUserMessage(UserLogEnum.订单处理日志,message+"下发成功!"); + MessageLog.ShowInfo(message+"下发成功!"); } @Override public void onFailure(String ErrorMsg) { - MessageLog.ShowUserMessage(UserLogEnum.订单处理日志,message+"下发失败!"+ErrorMsg); + MessageLog.ShowInfo(message+"下发失败!"+ErrorMsg); } }); } @@ -165,7 +165,133 @@ public class BusinessServer { //更新缓存商品制作列表状态 count+=goodsRecipes.size(); DataBus.getInstance().UpdateGoodsMake(good.id,"步骤【" + key+ "】:"+RecipesNames+"-配料完成!",count); - MessageLog.ShowUserMessage(UserLogEnum.订单处理日志,"["+good.name+"]步骤【" + key + "】执行完成!"); + MessageLog.ShowUserMessage(UserLogEnum.订单处理日志,"["+good.name+"]步骤【" + key + "】下发"+RecipesNames+"执行完成!"); + } + //endregion + //5.设置数据中心商品已制作完成 + DataBus.getInstance().DeleteGoodsMake(GoodId); + MessageLog.ShowUserMessage(UserLogEnum.订单处理日志,"["+good.name+"]-订单执行完成,请取餐!"); + } + Thread.sleep(1000); + } + @Override + public void RunComplete() throws InterruptedException { + } + }); + } + + + + public void test() { + ThreadManager.Get().StartLong("订单执行业务流程-新", true, new IThread() { + @Override + public void Run() throws InterruptedException { + while (Commoditys.size() > 0) { + //1.取出需要制作的订单商品 验证物料是否充足 + String GoodId = Commoditys.poll(); +// boolean IsMake=true; +// ResultA resultA= DataBus.getInstance().InspectMaterial(GoodId); +// if(resultA.IsMake==false)//如果商品物料不足 +// { +// DataBus.getInstance().UpdateGoodsMake(GoodId,resultA.Message,0); +// IsMake=false; +// } +// while (!IsMake) { +// IsMake=DataBus.getInstance().InspectMaterial(GoodId).IsMake; +// Thread.sleep(2000); +// } + //2.获取商品的配方信息 + ArrayList goods = QueryDB.GetGoodsSrecipeList(GoodId); + BPA_GOODS good= QueryDB.GetGoodsId(GoodId); + //3.根据物料配方排序Sort步骤分组 + //region 根据物料配方排序Sort步骤分组 + LinkedHashMap> rgrs = new LinkedHashMap<>(); + for (int i = 0; i < goods.size(); i++) { + if (!rgrs.containsKey(goods.get(i).sort)) + rgrs.put(goods.get(i).sort, new ArrayList<>()); + rgrs.get(goods.get(i).sort).add(goods.get(i)); + } + //endregion + //4.根据步骤分组进行物料下发 + //region 物料下发 + int count=0; + for (LinkedHashMap.Entry> entry : rgrs.entrySet()) { + final Integer key=entry.getKey(); + //当前一次性下发物料集合 + List goodsRecipes= entry.getValue(); + String RecipesNames=""; + for (ResGoodsRecipe item:goodsRecipes ){RecipesNames+=item.materialName+",";} + DataBus.getInstance().UpdateGoodsMake(good.id,"步骤【" + key+ "】准备下发物料:"+RecipesNames,count); + for (int m = 0; m < goodsRecipes.size(); m++) { + ResGoodsRecipe recipe=goodsRecipes.get(m); + int materialType = recipe.materialType; + final String message="["+good.name+"]步骤【" + key+ "】下发【"+recipe.materialName+"】"; + if(materialType==1)//1.正常物料 + { + //获取物料关联的料仓信息 + BPA_SILOS silos=null; + List siloslist = QueryDB.GetSolisByMaterialID(recipe.materialID); + for (BPA_SILOS item:siloslist) + { + //临时屏蔽物料量检测 + // if(DeviceData.Get().getCallCurrentWeight(item.num)>=recipe.value){silos=item;break;} + silos=item; + } + if (silos==null) + { + MessageLog.ShowUserMessage(UserLogEnum.订单处理日志,message+"下发失败!物料没有管理料仓!"); + }else + { + MessageLog.ShowUserMessage(UserLogEnum.订单处理日志,message+"准备下发【" + silos.num + "】号料仓PLC控制命令,需求量:=" + recipe.value); +// DeviceData.Get().setDemandValue((short) recipe.value, silos.num, new IWriteCallBack() { +// @Override +// public void onSuccess() { +// MessageLog.ShowInfo(message+"下发成功!"); +// } +// @Override +// public void onFailure(String ErrorMsg) { +// MessageLog.ShowInfo(message+"下发失败!"+ErrorMsg); +// } +// }); + Thread.sleep(1000); + } + }else if (materialType == 2)//果糖 + { +// BPA_SUGAR bs = QueryDB.GetsugarId(recipe.materialID); +// ModbusTcpServer.get().WriteBool(bs.plcvar, true); +// Thread.sleep(200); +// ModbusTcpServer.get().WriteBool(bs.plcvar, false); +// MessageLog.ShowUserMessage(UserLogEnum.订单处理日志,message+"下发成功!"); + } + } + //启动配料 +// DeviceData.Get().setChargeMixtureStart(new IWriteCallBack() { +// @Override +// public void onSuccess() { +// MessageLog.ShowInfo("["+good.name+"]步骤【" + key+ "】启动配料成功!"); +// } +// @Override +// public void onFailure(String ErrorMsg) { +// MessageLog.ShowInfo("["+good.name+"]步骤【" + key+ "】启动配料失败!"); +// } +// }); + Thread.sleep(1000); + //等待配料完成,一直等待 +// final boolean[] IsComplete = {false}; +// DeviceData.Get().OnChargeMixtureCompleteNotify = new IRun() { +// @Override +// public void Run() { +// IsComplete[0] = true; +// MessageLog.ShowUserMessage(UserLogEnum.订单处理日志,"["+good.name+"]步骤【" + key+ "】配料完成!"); +// } +// }; +// while (!IsComplete[0]) { +// Thread.sleep(100); +// } + //更新缓存商品制作列表状态 + count+=goodsRecipes.size(); + DataBus.getInstance().UpdateGoodsMake(good.id,"步骤【" + key+ "】:"+RecipesNames+"-配料完成!",count); + MessageLog.ShowUserMessage(UserLogEnum.订单处理日志,"["+good.name+"]步骤【" + key + "】下发"+RecipesNames+"执行完成!"); } //endregion //5.设置数据中心商品已制作完成 diff --git a/app/src/main/java/com/example/bpa/app/ICSApp.java b/app/src/main/java/com/example/bpa/app/ICSApp.java index 28e8453..4f6d1cb 100644 --- a/app/src/main/java/com/example/bpa/app/ICSApp.java +++ b/app/src/main/java/com/example/bpa/app/ICSApp.java @@ -43,7 +43,10 @@ public class ICSApp extends Application { //5.PLC数据监控 ModbusTcpServer.get().Connect(ConfigName.getInstance().Address, ConfigName.getInstance().Post); - //BusinessServer.Get().Init(); + //BusinessServer.Get().test(); + MessageLog.ShowAlertMessage(AlertLogEnum.传感器异常日志,"传感器异常"); + MessageLog.ShowAlertMessage(AlertLogEnum.异常订单未制作日志,"异常订单未制作日志"); + MessageLog.ShowAlertMessage(AlertLogEnum.料仓缺料日志,"料仓缺料日志"); } /** diff --git a/app/src/main/java/com/example/bpa/db/QueryDB.java b/app/src/main/java/com/example/bpa/db/QueryDB.java index 089ec0a..297ee68 100644 --- a/app/src/main/java/com/example/bpa/db/QueryDB.java +++ b/app/src/main/java/com/example/bpa/db/QueryDB.java @@ -22,6 +22,7 @@ import com.example.bpa.db.mode.BPA_SYSTEMSET; import com.example.bpa.db.mode.BPA_USER; import com.example.bpa.db.mode.ModeBase; import com.example.bpa.helper.Tools; +import com.example.bpa.view.mode.ResAlertLog; import com.example.bpa.view.mode.ResGoodsRecipe; import com.example.bpa.view.mode.ResLog; import com.example.bpa.view.mode.ResSilosMode; @@ -939,7 +940,53 @@ public class QueryDB { } return data; } + /** + * + * @return + */ + public static ArrayList GetAlertlogs(String sta, String stp, int lx, String text) { + String orderby = Desc_Time_Down;//先按排序 创建时间倒序 + String where = "isDelete=? and createTime>=? and createTime<=?"; + String[] args = new String[]{"0", sta,stp}; + if(lx!=0) + { + where = "isDelete=? and createTime>=? and createTime<=? and type=?"; + args = new String[]{"0", sta,stp,String.valueOf(lx)}; + if(!text.isEmpty()) + { + where = "isDelete=? and createTime>=? and createTime<=? and text like ? and type=?"; + args = new String[]{"0", sta,stp,"%"+text+"%",String.valueOf(lx)}; + } + }else + { + if(!text.isEmpty()) + { + where = "isDelete=? and createTime>=? and createTime<=? and text like ?"; + args = new String[]{"0", sta,stp,"%"+text+"%"}; + } + } + ArrayList Users=GetUserALL(); + ArrayList data = new ArrayList<>(); + ArrayList obj = Get(BPA_ALERTLOG.class, where, args, orderby); + for (Object k : obj) { + BPA_ALERTLOG o=(BPA_ALERTLOG) k; + ResAlertLog log=new ResAlertLog(); + log.type=o.type; + log.text=o.text; + log.id=o.id; + log.createTime=o.createTime; + log.updateTime=o.updateTime; + log.deleteTime=o.deleteTime; + log.deviceID=o.deviceID; + log.userID=o.userID; + log.isDelete=o.isDelete; + log.exp=o.exp; + + data.add(log); + } + return data; + } /** * 获取所有今日预警日志 * diff --git a/app/src/main/java/com/example/bpa/view/adapter/yjrz_adapter.java b/app/src/main/java/com/example/bpa/view/adapter/yjrz_adapter.java new file mode 100644 index 0000000..031a35e --- /dev/null +++ b/app/src/main/java/com/example/bpa/view/adapter/yjrz_adapter.java @@ -0,0 +1,93 @@ +package com.example.bpa.view.adapter; + +import android.app.Activity; +import android.content.Context; +import android.content.ContextWrapper; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ArrayAdapter; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + +import com.example.bpa.R; +import com.example.bpa.view.mode.ResAlertLog; +import com.example.bpa.view.mode.ResLog; + +import java.util.List; + + +public class yjrz_adapter extends ArrayAdapter { + private List datas; + private Context context; + + private int resource; + + public yjrz_adapter(@NonNull Context context, int resource, @NonNull List objects) { + super(context, resource, objects); + this.context = context; + this.resource=resource; + datas=objects; + } + //每个子项被滚动到屏幕内的时候会被调用 + @NonNull + @Override + public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) { + ResAlertLog log = (ResAlertLog) getItem(position);//得到当前项选中item实例 + //为每一个子项加载设定的布局 + View view = LayoutInflater.from(getContext()).inflate(this.resource, parent, false); + //分别获取 image view 和 textview 的实例 + TextView name,type,time,message; + //name = (TextView) view.findViewById(R.id.name); + type = (TextView) view.findViewById(R.id.type); + time = (TextView) view.findViewById(R.id.time); + message = (TextView) view.findViewById(R.id.message); + //name.setText(log.Name); + switch (log.type) + { + case 1: + type.setText("异常订单未制作日志"); + break; + case 2: + type.setText("料仓缺料日志"); + break; + case 3: + type.setText("传感器异常日志"); + break; + } + time.setText(log.createTime); + message.setText(log.text); + return view; + } + private Activity findActivity(@NonNull Context context) { + if (context instanceof Activity) { + return (Activity) context; + } else if (context instanceof ContextWrapper) { + return findActivity(((ContextWrapper) context).getBaseContext()); + } else { + return null; + } + } + /** + * 刷新 + * @param + */ + public void refresh(){ + Activity activity= findActivity(context); + if(activity!=null) + { + activity.runOnUiThread(new Runnable() { + @Override + public void run() { + try { + notifyDataSetChanged(); + } catch (Exception e) { + + } + } + }); + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/bpa/view/fragment/SystemCapabilitiesFragment.java b/app/src/main/java/com/example/bpa/view/fragment/SystemCapabilitiesFragment.java index 72aac6e..1d44e85 100644 --- a/app/src/main/java/com/example/bpa/view/fragment/SystemCapabilitiesFragment.java +++ b/app/src/main/java/com/example/bpa/view/fragment/SystemCapabilitiesFragment.java @@ -67,15 +67,15 @@ public class SystemCapabilitiesFragment extends Fragment { menuModes.clear(); menuModes.add(new MenuMode("物料管理", R.mipmap.wlgl)); - menuModes.add(new MenuMode("料仓设置", R.mipmap.lcsz)); + menuModes.add(new MenuMode("饮料配方管理", R.mipmap.yfpf)); + menuModes.add(new MenuMode("料仓管理", R.mipmap.lcsz)); menuModes.add(new MenuMode("电子秤校验", R.mipmap.dzcjy)); menuModes.add(new MenuMode("流速校验", R.mipmap.lsjy)); menuModes.add(new MenuMode("自动清洗", R.mipmap.zdqx)); - menuModes.add(new MenuMode("研发出料", R.mipmap.yfcl)); - menuModes.add(new MenuMode("订单预警日志", R.mipmap.gjrz)); - menuModes.add(new MenuMode("员工操作日志", R.mipmap.czrz)); + //menuModes.add(new MenuMode("研发出料", R.mipmap.yfcl)); + menuModes.add(new MenuMode("预警日志", R.mipmap.gjrz)); + menuModes.add(new MenuMode("操作日志", R.mipmap.czrz)); menuModes.add(new MenuMode("运行日志", R.mipmap.czrz)); - menuModes.add(new MenuMode("配方研发", R.mipmap.yfpf)); MyLayoutManager layout = new MyLayoutManager(); //必须,防止recyclerview高度为wrap时测量item高度0 @@ -95,7 +95,7 @@ public class SystemCapabilitiesFragment extends Fragment { case "物料管理": intent = new Intent(view.getContext(), wlgl_activity.class); break; - case "料仓设置": + case "料仓管理": intent = new Intent(view.getContext(), lcsz_activity.class); break; case "电子秤校验": @@ -110,16 +110,16 @@ public class SystemCapabilitiesFragment extends Fragment { case "研发出料": intent = new Intent(view.getContext(), yfcl_activity.class); break; - case "订单预警日志": + case "预警日志": intent = new Intent(view.getContext(), ddyjrz_activity.class); break; - case "员工操作日志": + case "操作日志": intent = new Intent(view.getContext(), ygczrz_activity.class); break; case "运行日志": intent = new Intent(view.getContext(), RunLog.class); break; - case "配方研发": + case "饮料配方管理": default: intent = new Intent(view.getContext(), yfpf_activity.class); break; diff --git a/app/src/main/java/com/example/bpa/view/from/ddyjrz_activity.java b/app/src/main/java/com/example/bpa/view/from/ddyjrz_activity.java index 4db8da6..dd6473b 100644 --- a/app/src/main/java/com/example/bpa/view/from/ddyjrz_activity.java +++ b/app/src/main/java/com/example/bpa/view/from/ddyjrz_activity.java @@ -9,15 +9,36 @@ import androidx.fragment.app.FragmentTransaction; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; +import android.graphics.Color; import android.os.Bundle; import android.view.View; import android.view.Window; import android.view.WindowManager; +import android.widget.ArrayAdapter; +import android.widget.Button; +import android.widget.EditText; import android.widget.ImageView; +import android.widget.ListView; +import android.widget.Spinner; import android.widget.TextView; +import com.bigkoo.pickerview.TimePickerView; import com.example.bpa.MainActivity; import com.example.bpa.R; +import com.example.bpa.db.QueryDB; +import com.example.bpa.helper.DateUtils; +import com.example.bpa.helper.T; +import com.example.bpa.view.adapter.ygcarz_adapter; +import com.example.bpa.view.adapter.yjrz_adapter; +import com.example.bpa.view.mode.ResAlertLog; +import com.example.bpa.view.mode.ResLog; + +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.LinkedHashMap; +import java.util.Map; /** * 订单预警日志 @@ -35,6 +56,42 @@ public class ddyjrz_activity extends AppCompatActivity implements View.OnClickLi TextView gongneng_title; //endregion + //region 操作变量 + /** + * 输入框 + */ + TextView edittext; + /** + * 查询按钮 + */ + Button button; + /** + * 表格显示 + */ + ListView datatab; + /** + * 日志数据 + */ + ArrayList bpa_logs = new ArrayList<>(); + /** + * 员工操作日志控制器 + */ + com.example.bpa.view.adapter.yjrz_adapter adapter; + /** + * 日期选择器 + */ + TimePickerView pvTime; + /** + * 开始时间-结束时间 + */ + EditText starttime, stoptime; + /** + * 日志类型 + */ + Spinner rzlx; + Map lx_map = new LinkedHashMap<>(); + //endregion + //region 私有函数 @Override protected void onCreate(Bundle savedInstanceState) { @@ -55,17 +112,104 @@ public class ddyjrz_activity extends AppCompatActivity implements View.OnClickLi private void Init(){ gongneng_fanhui = this.findViewById(R.id.gongneng_fanhui); gongneng_title = this.findViewById(R.id.gongneng_title); + edittext = this.findViewById(R.id.edittext); + button = this.findViewById(R.id.button); + datatab = this.findViewById(R.id.datatab); + starttime = this.findViewById(R.id.starttime); + stoptime = this.findViewById(R.id.stoptime); + rzlx = this.findViewById(R.id.rzlx); //通过Activity.getIntent()获取当前页面接收到的Intent。 getXxxExtra方法获取Intent传递过来的数据 - String msg=getIntent().getStringExtra("data"); + String msg = getIntent().getStringExtra("data"); gongneng_title.setText(msg); - ((TextView)this.findViewById(R.id.test_view)).setText(msg); - } + lx_map.put("全部日志",0); + lx_map.put("异常订单未制作日志",1); + lx_map.put("料仓缺料日志",2); + lx_map.put("传感器异常日志",3); + ArrayAdapter adapter2 = new ArrayAdapter<>(this, R.layout.spinner_text_item, new ArrayList<>(lx_map.keySet())); + adapter2.setDropDownViewResource(R.layout.spinner_dropdown_item); + rzlx.setAdapter(adapter2); + starttime.setText(new SimpleDateFormat("yyyy-MM-dd 00:00:00").format(new Date())); + stoptime.setText(new SimpleDateFormat("yyyy-MM-dd 23:59:59").format(new Date())); + starttime.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + if (pvTime != null) { + pvTime.show(starttime); + } + } + }); + stoptime.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + if (pvTime != null) { + pvTime.show(stoptime); + } + } + }); + CalendarTime(); + Initdata(); + } + /** + * CalendarTime + * 时间选择器 + */ + public void CalendarTime() { + //控制时间范围(如果不设置范围,则使用默认时间1900-2100年,此段代码可注释) + //因为系统Calendar的月份是从0-11的,所以如果是调用Calendar的set方法来设置时间,月份的范围也要是从0-11 + Calendar selectedDate = Calendar.getInstance(); + Calendar startDate = Calendar.getInstance(); + startDate.set(2023, 0, 23); + Calendar endDate = Calendar.getInstance(); + endDate.set(2099, 11, 28); + //时间选择器 + pvTime = new TimePickerView.Builder(this, new TimePickerView.OnTimeSelectListener() { + @Override + public void onTimeSelect(Date date, View v) {//选中事件回调 + // 这里回调过来的v,就是show()方法里面所添加的 View 参数,如果show的时候没有添加参数,v则为null + TextView btn = (TextView) v; + btn.setText(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date)); + } + }) + //年月日时分秒 的显示与否,不设置则默认全部显示 + .setType(new boolean[]{true, true, true, true, true, false}) + .setLabel("年", "月", "日", "时", "分", "秒") + .isCenterLabel(true) + .setDividerColor(Color.DKGRAY) + .setContentSize(16)//字号 + .setDate(selectedDate) + .setRangDate(startDate, endDate) + .setDecorView(null) + .build(); + } /** * 初始化按钮事件 */ private void initEvents() { gongneng_fanhui.setOnClickListener(this); + button.setOnClickListener(this); + } + + /** + * 初始化数据加载 + */ + public void Initdata() { + try { + String str= starttime.getText().toString(); + String stop= stoptime.getText().toString(); + if(DateUtils.compareDate(stop,str)) + { + T.show(ddyjrz_activity.this,"开始时间不能大于结束时间!!!"); + return; + } + String lx= rzlx.getSelectedItem().toString(); + String text= edittext.getText().toString(); + bpa_logs= QueryDB.GetAlertlogs(str,stop, lx_map.get(lx),text); + adapter = new yjrz_adapter(ddyjrz_activity.this,R.layout.yjrz_item,bpa_logs); + datatab.setAdapter(adapter); + } catch (Exception e) { + + } } //endregion @@ -81,6 +225,9 @@ public class ddyjrz_activity extends AppCompatActivity implements View.OnClickLi case R.id.gongneng_fanhui://返回按钮 this.finish(); break; + case R.id.button://查询按钮 + Initdata(); + break; } } //endregion diff --git a/app/src/main/java/com/example/bpa/view/mode/ResAlertLog.java b/app/src/main/java/com/example/bpa/view/mode/ResAlertLog.java new file mode 100644 index 0000000..280a7dc --- /dev/null +++ b/app/src/main/java/com/example/bpa/view/mode/ResAlertLog.java @@ -0,0 +1,14 @@ +package com.example.bpa.view.mode; + +import com.example.bpa.db.mode.BPA_ALERTLOG; +import com.example.bpa.db.mode.BPA_LOG; + +/** + * 返回预警Log信息 + */ +public class ResAlertLog extends BPA_ALERTLOG { + /** + * 名称 + */ + public String Name; +} \ No newline at end of file diff --git a/app/src/main/res/layout/datatab/layout/yjrz_item.xml b/app/src/main/res/layout/datatab/layout/yjrz_item.xml new file mode 100644 index 0000000..d936ecc --- /dev/null +++ b/app/src/main/res/layout/datatab/layout/yjrz_item.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/from/layout/activity_ddyjrz.xml b/app/src/main/res/layout/from/layout/activity_ddyjrz.xml index b474bf3..ade8b24 100644 --- a/app/src/main/res/layout/from/layout/activity_ddyjrz.xml +++ b/app/src/main/res/layout/from/layout/activity_ddyjrz.xml @@ -79,13 +79,195 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="10dp"> - - + + + + + + + + + + + +