增加 巡检选择状态

master
wanghao
parent 3aab607a3f
commit 51444dd042

@ -62,7 +62,7 @@ public class BFActivity extends BaseActivity implements TakePictureDialog.dialog
}
@Override
protected void sanRfid(List<Reader.TAGINFO> epcs) {
public void sanRfid(List<Reader.TAGINFO> epcs) {
var epc = epcs.get(0);
byte[] epcId = epc.EpcId;
String epc1 = HexAscii.hex2Str(Tools.Bytes2HexString(epcId, epcId.length));

@ -13,6 +13,8 @@ import android.os.Message;
import android.view.View;
import android.widget.Toast;
import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import com.example.beijing_daxing.adapter.CheckAdapter;
import com.example.beijing_daxing.base.AdapterClickCall;
import com.example.beijing_daxing.base.BaseActivity;
@ -22,6 +24,7 @@ import com.example.beijing_daxing.been.Stock;
import com.example.beijing_daxing.databinding.ActivityCheckBinding;
import com.example.beijing_daxing.dialog.InPutDialog;
import com.example.beijing_daxing.dialog.TakePictureDialog;
import com.example.beijing_daxing.uitls.CustomWatermarkTransformation;
import com.example.beijing_daxing.uitls.HexAscii;
import com.example.beijing_daxing.uitls.SharedPreferencesUtils;
import com.google.gson.reflect.TypeToken;
@ -115,7 +118,7 @@ public class CheckActivity extends BaseActivity implements AdapterClickCall, InP
// 扫描到返回数据
@SuppressLint("NotifyDataSetChanged")
@Override
protected void sanRfid(List<Reader.TAGINFO> epcs) {
public void sanRfid(List<Reader.TAGINFO> epcs) {
epcs.forEach(t -> {
var epc = Tools.Bytes2HexString(t.EpcId, t.EpcId.length);
if (tagList.contains(t)) {
@ -218,7 +221,7 @@ public class CheckActivity extends BaseActivity implements AdapterClickCall, InP
public void run() {
// sendBroadcast(broadcastIntent);
sanEpc();
handler.postDelayed(runnable, 50);
handler.postDelayed(runnable, 10);
}
};
@ -238,6 +241,11 @@ public class CheckActivity extends BaseActivity implements AdapterClickCall, InP
@Override
public void takePhotoCall(File outputImage, Bitmap bitmap) {
// Glide.with(this)
// .load(outputImage.getPath())
// .apply(RequestOptions.bitmapTransform(new CustomWatermarkTransformation()))
// .into(imageView);
files.add(outputImage);
bitmaps.add(bitmap);
binding.confirmPictureNumber2.setText(bitmaps.size() + "");

@ -9,6 +9,8 @@ import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Spinner;
import android.widget.Toast;
import com.example.beijing_daxing.adapter.CheckListAdapter;
@ -31,7 +33,7 @@ public class CheckListActivity extends BaseActivity implements AdapterClickCall
private CheckListAdapter adapter;
private List<CheckTaskInfo> list;
private ObservableBoolean createState;
private String[] stateList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@ -41,12 +43,18 @@ public class CheckListActivity extends BaseActivity implements AdapterClickCall
createState = new ObservableBoolean();
createState.set(false);
binding.setState(createState);
initRequest();
stateList = getResources().getStringArray(R.array.checkState);
binding.checkListState.setOnItemClickListener((parent, view, position, id) -> {
initRequest(stateList[position]);
});
}
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
private void initRequest() {
}
private void initRequest(String state) {
OkGo.<MyResult>post(url + "/inspection/selectTask")
.params("user", SharedPreferencesUtils.getstring("user", ""))
.params("state", SharedPreferencesUtils.getstring("user", ""))
.execute(new MyRecultCall(dialog, this) {
@SuppressLint("NotifyDataSetChanged")
@Override
@ -67,10 +75,7 @@ public class CheckListActivity extends BaseActivity implements AdapterClickCall
});
}
@Override
protected void sanRfid(List<Reader.TAGINFO> epcs) {
}
public void check_start(View view) {
OkGo.<MyResult>post(url + "/xj/createTask")
@ -81,7 +86,7 @@ public class CheckListActivity extends BaseActivity implements AdapterClickCall
super.onSuccess(response);
var body = response.body();
if (body.getCode() == 0) {
initRequest();
// initRequest();
return;
}
Toast.makeText(CheckListActivity.this, body.getMsg(), Toast.LENGTH_SHORT).show();

@ -52,7 +52,7 @@ public class FpInActivity extends BaseActivity {
}
@Override
protected void sanRfid(List<Reader.TAGINFO> epcs) {
public void sanRfid(List<Reader.TAGINFO> epcs) {
Reader.TAGINFO taginfo = epcs.get(0);
var epc = HexAscii.hex2Str(Tools.Bytes2HexString(taginfo.EpcId,taginfo.EpcId.length));
vm.setEpc(epc);

@ -50,7 +50,7 @@ public class FpOutActivity extends BaseActivity {
private List<String> tagList;
@Override
protected void sanRfid(List<Reader.TAGINFO> epcs) {
public void sanRfid(List<Reader.TAGINFO> epcs) {
if (tagList==null) return;
epcs.forEach(t -> {
var epc = Tools.Bytes2HexString(t.EpcId,t.EpcId.length);
@ -135,7 +135,7 @@ public class FpOutActivity extends BaseActivity {
public void run() {
// sendBroadcast(broadcastIntent);
sanEpc();
handler.postDelayed(runnable, 1000);
handler.postDelayed(runnable, 10);
}
};

@ -64,7 +64,7 @@ public class InActivity extends BaseActivity implements AdapterClickCall {
}
@Override
protected void sanRfid(List<Reader.TAGINFO> epcs) {
public void sanRfid(List<Reader.TAGINFO> epcs) {
epcs.stream().forEach(t -> {
var epc = Tools.Bytes2HexString(t.EpcId,t.EpcId.length);
Log.e("TAG", "sanRfid:" + epc);
@ -128,7 +128,7 @@ public class InActivity extends BaseActivity implements AdapterClickCall {
@Override
public void run() {
sanEpc();
handler.postDelayed(runnable, 50);
handler.postDelayed(runnable, 10);
}
};
public void instore_check(View view) {

@ -45,10 +45,7 @@ public class MainActivity extends BaseActivity {
// .update();
}
@Override
protected void sanRfid(List<Reader.TAGINFO> epcs) {
}
public void login_click(View view) {
String pass = loginVm.getPass();

@ -57,7 +57,7 @@ public class OutActivity extends BaseActivity implements AdapterClickCall {
}
@SuppressLint("NotifyDataSetChanged")
@Override
protected void sanRfid(List<Reader.TAGINFO> epcs) {
public void sanRfid(List<Reader.TAGINFO> epcs) {
epcs.forEach(t -> {
var epc = Tools.Bytes2HexString(t.EpcId,t.EpcId.length);
Log.e("TAG", "sanRfid:" + epc);

@ -63,7 +63,7 @@ public class StoreCheckActivity extends BaseActivity {
@SuppressLint("NotifyDataSetChanged")
@Override
protected void sanRfid(List<Reader.TAGINFO> epcs) {
public void sanRfid(List<Reader.TAGINFO> epcs) {
if (tagList == null) return;
epcs.forEach(t -> {
var epc = Tools.Bytes2HexString(t.EpcId, t.EpcId.length);
@ -156,7 +156,7 @@ public class StoreCheckActivity extends BaseActivity {
// Log.e("TAG", "发送广播读取RFID");
// sendBroadcast(broadcastIntent);
sanEpc();
handler.postDelayed(runnable, 0);
handler.postDelayed(runnable, 10);
}
};

@ -10,6 +10,9 @@ import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Build;
@ -34,14 +37,17 @@ import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.Date;
import java.util.List;
import okhttp3.MediaType;
public abstract class BaseActivity extends AppCompatActivity {
// public static String url = "http://192.168.137.1:8090/api";
public static String url = "http://119.45.202.115:8090/api";
public class BaseActivity extends AppCompatActivity {
public static String url = "http://192.168.137.1:8090/api";
// public static String url = "http://119.45.202.115:8090/api";
public ProgressDialog dialog;
public Gson gson;
public MediaType JSON = MediaType.parse("application/json; charset=utf-8");
@ -119,12 +125,15 @@ public abstract class BaseActivity extends AppCompatActivity {
}
protected abstract void sanRfid(List<Reader.TAGINFO> epcs);
public void sanRfid(List<Reader.TAGINFO> epcs){
};
public static final int CAMERA_PHOTO = 0X02;
public File outputImage;
public Uri img_uri;
public SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
public SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
// 拍照
public void takePhoto() {
@ -168,6 +177,8 @@ public abstract class BaseActivity extends AppCompatActivity {
try {
Log.e("TAG", "onActivityResult:" + img_uri.getPath());
bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(img_uri));
// 添加水印
bitmap = addWatermark(bitmap);
FileOutputStream outputStream = new FileOutputStream(outputImage);
bitmap.compress(Bitmap.CompressFormat.JPEG, 50, outputStream);
takePhotoCall(outputImage, bitmap);
@ -180,4 +191,26 @@ public abstract class BaseActivity extends AppCompatActivity {
}
}
private String[] strings=new String[]{"星期日","星期一","星期二","星期三","星期四","星期五","星期六","星期日"};
@SuppressLint("NewApi")
private Bitmap addWatermark(Bitmap src) {
int w = src.getWidth();
int h = src.getHeight();
Bitmap result = Bitmap.createBitmap(w, h, src.getConfig());
Canvas canvas = new Canvas(result);
canvas.drawBitmap(src, 0, 0, null);
Paint paint = new Paint();
paint.setColor(Color.RED);
paint.setStrokeWidth(30);
paint.setTextSize(150);
paint.setAntiAlias(true);
// 获取当前日期
LocalDate today = LocalDate.now(ZoneId.systemDefault());
// 获取当前日期是周几
DayOfWeek dayOfWeek = today.getDayOfWeek();
canvas.drawText("机位101", 10, h - 400, paint);
canvas.drawText(dateFormat.format(new Date()), 10, h - 200, paint);
canvas.drawText(strings[dayOfWeek.getValue()], 10, h - 20, paint);
return result;
}
}

@ -30,7 +30,7 @@ public class InPutDialog extends Dialog {
setContentView(binding.getRoot());
binding.dialogFalse.setOnClickListener(v -> dismiss());
binding.dialogTrue.setOnClickListener(v -> {
inPutDialogCall.inPutDialogReculi( binding.inputDialogText.getText().toString().trim());
inPutDialogCall.inPutDialogReculi( binding.inputDialogSelect.getSelectedItem().toString());
});
}

@ -0,0 +1,47 @@
package com.example.beijing_daxing.uitls;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
import com.bumptech.glide.load.resource.bitmap.BitmapTransformation;
import java.security.MessageDigest;
public class CustomWatermarkTransformation extends BitmapTransformation {
@Override
protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) {
// 获取原始图片的宽度和高度
int width = toTransform.getWidth();
int height = toTransform.getHeight();
// 创建一个新的Bitmap用于绘制带有水印的图片
Bitmap watermarkedBitmap = pool.get(width, height, Bitmap.Config.ARGB_8888);
// 创建画布,并将原始图片绘制到画布上
Canvas canvas = new Canvas(watermarkedBitmap);
canvas.drawBitmap(toTransform, 0, 0, null);
// 创建一个画笔,用于绘制水印
Paint paint = new Paint();
paint.setColor(Color.RED);
paint.setTextSize(50);
paint.setAntiAlias(true);
// 设置水印的透明度
paint.setAlpha(128);
// 在指定位置绘制水印文字
canvas.drawText("自定义水印1", width - 200, height - 50, paint);
canvas.drawText("自定义水印2", width - 200, height - 80, paint);
return watermarkedBitmap;
}
@Override
public void updateDiskCacheKey(MessageDigest messageDigest) {}
}

@ -27,6 +27,24 @@
android:layout_height="45dp"
android:letterSpacing="0"
android:text="待巡检机位列表" />
<LinearLayout
android:layout_width="match_parent"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:layout_height="45dp">
<TextView
android:layout_width="110dp"
android:layout_height="match_parent"
style="@style/info_text"
android:text="巡检状态:"/>
<Spinner
android:id="@+id/check_list_state"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textAlignment="center"
android:spinnerMode="dropdown"
android:entries="@array/checkState"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:paddingLeft="5dp"
@ -65,8 +83,7 @@
style="@style/item_text_style"
android:layout_width="115dp"
android:layout_height="match_parent"
android:text="机位编码"
android:text="机位编码(点击)"
/>
<View
@ -90,7 +107,7 @@
style="@style/item_text_style"
android:layout_width="63dp"
android:layout_height="match_parent"
android:text="操作" />
android:text="跳过" />
</LinearLayout>
@ -109,7 +126,7 @@
android:layout_height="55dp"
android:layout_margin="15dp"
android:onClick="check_start"
android:visibility="@{state?View.VISIBLE:View.GONE}"
android:text="创建巡检列表" />
android:text="创建巡检列表"
android:visibility="@{state?View.VISIBLE:View.GONE}" />
</LinearLayout>
</layout>

@ -16,7 +16,7 @@
android:layout_height="50dp"
android:gravity="center"
android:letterSpacing="0.2"
android:text="输入提示"
android:text="选择跳过巡检原因"
android:textColor="@color/black"
android:textSize="23sp" />
@ -26,8 +26,18 @@
android:layout_height="100dp"
android:layout_margin="20dp"
android:background="@drawable/san_text_bg"
android:gravity="center"
android:hint="输入巡检跳过原因"
android:gravity="center" />
android:visibility="gone" />
<Spinner
android:id="@+id/input_dialog_select"
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_margin="20dp"
android:textAlignment="center"
android:spinnerMode="dropdown"
android:entries="@array/check_j"/>
<View
android:layout_width="match_parent"
@ -44,10 +54,10 @@
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:textSize="20sp"
android:textColor="@color/yellow"
android:letterSpacing="1"
android:text="取消" />
android:text="取消"
android:textColor="@color/yellow"
android:textSize="20sp" />
<View
android:layout_width="2dp"
@ -61,10 +71,10 @@
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center"
android:textSize="20sp"
android:textColor="@color/blue"
android:letterSpacing="1"
android:text="确定" />
android:text="确定"
android:textColor="@color/blue"
android:textSize="20sp" />
</LinearLayout>
</LinearLayout>

@ -7,6 +7,13 @@
<item>报废</item>
</string-array>
<string-array name="check_j">
<item>使用中</item>
<item>安全隔离未完成</item>
<item>轮挡损坏,需要维修</item>
<item>轮挡损坏,需要报废</item>
</string-array>
<string-array name="bfyy">
<item>轮挡绳子损坏</item>
@ -14,4 +21,10 @@
<item>橡胶损坏</item>
<item>其他</item>
</string-array>
<string-array name="checkState">
<item>全部</item>
<item>待完成</item>
<item>已完成</item>
</string-array>
</resources>
Loading…
Cancel
Save