Browse Source

预警日志上传

master
fyf 1 year ago
parent
commit
fc8e0ab713
10 changed files with 713 additions and 24 deletions
  1. +1
    -1
      app/src/main/java/com/example/bpa/LoginActivity.java
  2. +129
    -3
      app/src/main/java/com/example/bpa/app/BusinessServer.java
  3. +4
    -1
      app/src/main/java/com/example/bpa/app/ICSApp.java
  4. +47
    -0
      app/src/main/java/com/example/bpa/db/QueryDB.java
  5. +93
    -0
      app/src/main/java/com/example/bpa/view/adapter/yjrz_adapter.java
  6. +9
    -9
      app/src/main/java/com/example/bpa/view/fragment/SystemCapabilitiesFragment.java
  7. +150
    -3
      app/src/main/java/com/example/bpa/view/from/ddyjrz_activity.java
  8. +14
    -0
      app/src/main/java/com/example/bpa/view/mode/ResAlertLog.java
  9. +77
    -0
      app/src/main/res/layout/datatab/layout/yjrz_item.xml
  10. +189
    -7
      app/src/main/res/layout/from/layout/activity_ddyjrz.xml

+ 1
- 1
app/src/main/java/com/example/bpa/LoginActivity.java View File

@@ -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, "用户密码错误!");
}
}


+ 129
- 3
app/src/main/java/com/example/bpa/app/BusinessServer.java View File

@@ -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<ResGoodsRecipe> goods = QueryDB.GetGoodsSrecipeList(GoodId);
BPA_GOODS good= QueryDB.GetGoodsId(GoodId);
//3.根据物料配方排序Sort步骤分组
//region 根据物料配方排序Sort步骤分组
LinkedHashMap<Integer, List<ResGoodsRecipe>> 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<Integer, List<ResGoodsRecipe>> entry : rgrs.entrySet()) {
final Integer key=entry.getKey();
//当前一次性下发物料集合
List<ResGoodsRecipe> 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<BPA_SILOS> 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.设置数据中心商品已制作完成


+ 4
- 1
app/src/main/java/com/example/bpa/app/ICSApp.java View File

@@ -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.料仓缺料日志,"料仓缺料日志");
}

/**


+ 47
- 0
app/src/main/java/com/example/bpa/db/QueryDB.java View File

@@ -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<ResAlertLog> 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<BPA_USER> Users=GetUserALL();
ArrayList<ResAlertLog> data = new ArrayList<>();
ArrayList<Object> 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;
}
/**
* 获取所有今日预警日志
*


+ 93
- 0
app/src/main/java/com/example/bpa/view/adapter/yjrz_adapter.java View File

@@ -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<ResAlertLog> {
private List<ResAlertLog> datas;
private Context context;

private int resource;

public yjrz_adapter(@NonNull Context context, int resource, @NonNull List<ResAlertLog> 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) {

}
}
});
}
}
}

+ 9
- 9
app/src/main/java/com/example/bpa/view/fragment/SystemCapabilitiesFragment.java View File

@@ -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;


+ 150
- 3
app/src/main/java/com/example/bpa/view/from/ddyjrz_activity.java View File

@@ -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<ResAlertLog> bpa_logs = new ArrayList<>();
/**
* 员工操作日志控制器
*/
com.example.bpa.view.adapter.yjrz_adapter adapter;
/**
* 日期选择器
*/
TimePickerView pvTime;
/**
* 开始时间-结束时间
*/
EditText starttime, stoptime;
/**
* 日志类型
*/
Spinner rzlx;
Map<String,Integer> 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<String> 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

+ 14
- 0
app/src/main/java/com/example/bpa/view/mode/ResAlertLog.java View File

@@ -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;
}

+ 77
- 0
app/src/main/res/layout/datatab/layout/yjrz_item.xml View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TableLayout
android:background="@mipmap/bgxz"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_gravity="center"
android:stretchColumns="0">
<TableRow
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal">
<!-- <RelativeLayout-->
<!-- android:layout_width="0dp"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_weight="1">-->
<!-- <TextView-->
<!-- android:id="@+id/name"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_marginLeft="20dp"-->
<!-- android:layout_alignParentLeft="true"-->
<!-- android:text="员工名称"-->
<!-- android:textColor="@color/foreground"-->
<!-- android:textSize="@dimen/textSize" />-->
<!-- </RelativeLayout>-->
<RelativeLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<TextView
android:id="@+id/type"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_alignParentLeft="true"
android:text="日志类型"
android:textColor="@color/foreground"
android:textSize="@dimen/textSize" />
</RelativeLayout>
<RelativeLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2">
<TextView
android:id="@+id/time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_alignParentLeft="true"
android:text="日志时间"
android:textColor="@color/foreground"
android:textSize="@dimen/textSize" />
</RelativeLayout>
<RelativeLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="4">
<TextView
android:id="@+id/message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_alignParentLeft="true"
android:text="日志描述日志描述"
android:textColor="@color/foreground"
android:textSize="@dimen/textSize" />
</RelativeLayout>

</TableRow>
</TableLayout>
</RelativeLayout>

+ 189
- 7
app/src/main/res/layout/from/layout/activity_ddyjrz.xml View File

@@ -79,13 +79,195 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="10dp">
<TextView
android:id="@+id/test_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/foreground"
android:textSize="@dimen/TitleSize">
</TextView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="50dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true">
<EditText
android:id="@+id/starttime"
android:layout_width="140dp"
android:layout_height="wrap_content"
android:inputType="text"
android:padding="3dp"
android:textColor="@color/foreground"
android:theme="@style/MyEditText1"
android:background="@drawable/round_corners_bg"
android:layout_marginLeft="5dp"
android:maxLines="1"
android:focusable="false"
android:text="2023-02-33 00:00:00"
android:textSize="@dimen/textSize"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:textColor="@color/foreground"
android:text="--">
</TextView>
<EditText
android:id="@+id/stoptime"
android:layout_width="140dp"
android:layout_height="wrap_content"
android:inputType="text"
android:padding="3dp"
android:focusable="false"
android:textColor="@color/foreground"
android:theme="@style/MyEditText1"
android:background="@drawable/round_corners_bg"
android:layout_marginLeft="5dp"
android:maxLines="1"
android:text="2023-02-33 00:00:00"
android:textSize="@dimen/textSize"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:textColor="@color/foreground"
android:text="日志类型">
</TextView>
<Spinner
android:id="@+id/rzlx"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/commonSpinnerStyle"/>
<EditText
android:id="@+id/edittext"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:inputType="text"
android:padding="3dp"
android:textColor="@color/foreground"
android:theme="@style/MyEditText1"
android:background="@drawable/round_corners_bg"
android:layout_marginLeft="5dp"
android:hint="请输入查询条件"
android:maxLines="1"
android:textSize="@dimen/textSize"/>
<Button
android:id="@+id/button"
android:text="查询"
android:background="@drawable/btn_button"
android:textSize="@dimen/textSize"
android:textColor="@color/foreground"
android:layout_marginLeft="5dp"
android:layout_gravity="center"
android:layout_width="60dp"
android:layout_height="26dp"
/>
</LinearLayout>

</RelativeLayout>

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="10dp"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:background="@mipmap/bgbtbj"
android:layout_height="26dp">
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#FF03668F" />
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_alignParentBottom="true"
android:background="#FF03668F" />
<TableLayout
android:layout_centerVertical="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_gravity="center"
android:stretchColumns="0">
<TableRow
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal">
<!-- <RelativeLayout-->
<!-- android:layout_width="0dp"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_weight="1">-->
<!-- <TextView-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_marginLeft="20dp"-->
<!-- android:layout_alignParentLeft="true"-->
<!-- android:text="订单名称"-->
<!-- android:textColor="@color/dataGridColumnHeaderColor"-->
<!-- android:textSize="@dimen/textSize" />-->
<!-- </RelativeLayout>-->
<RelativeLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_alignParentLeft="true"
android:text="日志类型"
android:textColor="@color/dataGridColumnHeaderColor"
android:textSize="@dimen/textSize" />
</RelativeLayout>
<RelativeLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="2">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_alignParentLeft="true"
android:text="日志时间"
android:textColor="@color/dataGridColumnHeaderColor"
android:textSize="@dimen/textSize" />
</RelativeLayout>
<RelativeLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="4">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_alignParentLeft="true"
android:text="日志描述"
android:textColor="@color/dataGridColumnHeaderColor"
android:textSize="@dimen/textSize" />
</RelativeLayout>

</TableRow>
</TableLayout>
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@+id/datatab"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="#00000000"
android:dividerHeight="3dp"
android:layout_marginTop="3dp"
/>
</RelativeLayout>
</LinearLayout>
</RelativeLayout>
</LinearLayout>
</RelativeLayout>
</RelativeLayout>
</LinearLayout>

Loading…
Cancel
Save