Commit 888e7960 by youguoqing

调整:适配UHF_U8设备

parent c77517a7
...@@ -13,7 +13,7 @@ android { ...@@ -13,7 +13,7 @@ android {
minSdkVersion 21 minSdkVersion 21
targetSdkVersion 28 targetSdkVersion 28
versionCode 1 versionCode 1
versionName "1.1" versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
multiDexEnabled true multiDexEnabled true
} }
...@@ -38,14 +38,16 @@ dependencies { ...@@ -38,14 +38,16 @@ dependencies {
implementation 'androidx.legacy:legacy-support-v4:1.0.0' implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.multidex:multidex:2.0.1' implementation 'androidx.multidex:multidex:2.0.1'
implementation "androidx.room:room-runtime:2.2.3" implementation "androidx.room:room-runtime:2.2.3"
annotationProcessor "androidx.room:room-compiler:2.2.3" implementation 'cn.hutool:hutool-all:5.7.19'
implementation 'com.github.bumptech.glide:glide:3.7.0' implementation 'com.github.bumptech.glide:glide:3.7.0'
implementation 'com.google.code.gson:gson:2.8.9' implementation 'com.google.code.gson:gson:2.8.9'
implementation 'org.bouncycastle:bcprov-jdk15on:1.68'
implementation 'com.squareup.okhttp3:okhttp:3.14.2' implementation 'com.squareup.okhttp3:okhttp:3.14.2'
implementation 'com.squareup.okio:okio:1.17.4' implementation 'com.squareup.okio:okio:1.17.4'
implementation 'com.tencent.bugly:crashreport:3.4.4' implementation 'com.tencent.bugly:crashreport:3.4.4'
implementation 'me.jessyan:autosize:1.1.2' implementation 'me.jessyan:autosize:1.1.2'
implementation (name: 'fn_U8', ext: 'aar') implementation (name: 'fn_U8', ext: 'aar')
annotationProcessor "androidx.room:room-compiler:2.2.3"
testImplementation 'junit:junit:4.12' testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1' androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
......
[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":1,"versionName":"1.0","enabled":true,"outputFile":"app-release.apk","fullName":"release","baseName":"release"},"path":"app-release.apk","properties":{}}]
\ No newline at end of file
...@@ -35,9 +35,10 @@ ...@@ -35,9 +35,10 @@
</intent-filter> </intent-filter>
</activity> </activity>
<activity android:name=".page.MainActivity" android:screenOrientation="portrait" /> <activity android:name=".page.MainActivity" android:screenOrientation="portrait" />
<activity android:name=".page.TaskListActivity" android:screenOrientation="portrait" />
<activity android:name=".page.CheckTaskActivity" android:screenOrientation="portrait" /> <activity android:name=".page.CheckTaskActivity" android:screenOrientation="portrait" />
<activity android:name=".page.TaskInfoActivity" android:screenOrientation="portrait" /> <activity android:name=".page.TaskInfoActivity" android:screenOrientation="portrait" />
<activity android:name=".page.SetAndSaveActivity" android:screenOrientation="portrait" /> <!-- <activity android:name=".page.SetAndSaveActivity" android:screenOrientation="portrait" />-->
<activity android:name=".page.InventoryActivity" android:screenOrientation="portrait" /> <activity android:name=".page.InventoryActivity" android:screenOrientation="portrait" />
<activity android:name=".page.LoginActivity" android:screenOrientation="portrait" /> <activity android:name=".page.LoginActivity" android:screenOrientation="portrait" />
<activity android:name=".page.DeviceSetActivity" android:screenOrientation="portrait" /> <activity android:name=".page.DeviceSetActivity" android:screenOrientation="portrait" />
......
...@@ -44,4 +44,9 @@ public interface IUSeries { ...@@ -44,4 +44,9 @@ public interface IUSeries {
*/ */
boolean setParams(String paraName, String paraValue); boolean setParams(String paraName, String paraValue);
/**
* 获取盘点效率
*/
int getReadRate();
} }
...@@ -98,12 +98,12 @@ public class M11U8Service implements IUSeries{ ...@@ -98,12 +98,12 @@ public class M11U8Service implements IUSeries{
if (paraName.equals(PARA_POWER)) { if (paraName.equals(PARA_POWER)) {
ReturnBean returnBean = readerSeries.getPower(); ReturnBean returnBean = readerSeries.getPower();
if (returnBean.isSuccess()) { if (returnBean.isSuccess()) {
returnBean.getMsg(); return returnBean.getMsg();
} }
} else if (paraName.equals(TEMPERATURE)) { } else if (paraName.equals(TEMPERATURE)) {
ReturnBean returnBean = readerSeries.getReaderTemperature(); ReturnBean returnBean = readerSeries.getReaderTemperature();
if (returnBean.isSuccess()) { if (returnBean.isSuccess()) {
returnBean.getMsg(); return returnBean.getMsg();
} }
} else if (paraName.equals(SESSIONSTATE)) { } else if (paraName.equals(SESSIONSTATE)) {
return U8Property.getSessionState() + ""; return U8Property.getSessionState() + "";
...@@ -128,4 +128,8 @@ public class M11U8Service implements IUSeries{ ...@@ -128,4 +128,8 @@ public class M11U8Service implements IUSeries{
return false; return false;
} }
@Override
public int getReadRate() {
return readerSeries.getM_curInventoryBuffer().nReadRate;
}
} }
...@@ -19,7 +19,6 @@ import com.fn.useries.reader.HEAD; ...@@ -19,7 +19,6 @@ import com.fn.useries.reader.HEAD;
import com.fn.useries.reader.MessageTran; import com.fn.useries.reader.MessageTran;
import com.fn.useries.utils.StringTool; import com.fn.useries.utils.StringTool;
import com.fn.useries.utils.Tools; import com.fn.useries.utils.Tools;
import com.fntech.Loger;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
...@@ -94,14 +93,11 @@ public abstract class ReaderBase { ...@@ -94,14 +93,11 @@ public abstract class ReaderBase {
while (mShouldRunning) { while (mShouldRunning) {
try { try {
Log.i("yourTag", "start Read"); Log.i("yourTag", "start Read");
Loger.disk_log("Read", "start Read", "U8");
int nLenRead = mInStream.read(buff); int nLenRead = mInStream.read(buff);
Loger.disk_log("Read Count", "nLenRead == "+nLenRead, "U8");
if (nLenRead <= 0) { if (nLenRead <= 0) {
continue; continue;
} }
Log.i("yourTag", "串口原始返回 ===>" + Tools.Bytes2HexString(buff, nLenRead)); Log.i("yourTag", "串口原始返回 ===>" + Tools.Bytes2HexString(buff, nLenRead));
Loger.disk_log("Read", "串口原始返回 ===>" + Tools.Bytes2HexString(buff, nLenRead), "U8");
if (nLenRead > 0) { if (nLenRead > 0) {
System.arraycopy(buff, 0, btAryBuffer, len_have, nLenRead); System.arraycopy(buff, 0, btAryBuffer, len_have, nLenRead);
len_have += nLenRead; len_have += nLenRead;
...@@ -129,7 +125,6 @@ public abstract class ReaderBase { ...@@ -129,7 +125,6 @@ public abstract class ReaderBase {
} }
} else { } else {
Log.e("toolsdebug", "异常情况!协议头错误"); Log.e("toolsdebug", "异常情况!协议头错误");
Loger.disk_log("Read", "异常情况!协议头错误", "M10_U8");
/*btAryBuffer = new byte[4096]; /*btAryBuffer = new byte[4096];
buff = new byte[512];*/ buff = new byte[512];*/
len_have = 0; len_have = 0;
...@@ -142,7 +137,6 @@ public abstract class ReaderBase { ...@@ -142,7 +137,6 @@ public abstract class ReaderBase {
} }
} catch (Exception e) { } catch (Exception e) {
Log.e("toolsdebug", "读错误"); Log.e("toolsdebug", "读错误");
Loger.disk_log("读错误", "e=" + e.toString() + "\r\n" + e.getStackTrace(), "M10_U8");
onLostConnect(); onLostConnect();
return; return;
} }
...@@ -278,17 +272,11 @@ public abstract class ReaderBase { ...@@ -278,17 +272,11 @@ public abstract class ReaderBase {
synchronized (mOutStream) { // 防止并发 synchronized (mOutStream) { // 防止并发
mOutStream.write(btArySenderData); mOutStream.write(btArySenderData);
Log.e("yourTag", " 串口发送 ===> " + Tools.Bytes2HexString(btArySenderData, btArySenderData.length)); Log.e("yourTag", " 串口发送 ===> " + Tools.Bytes2HexString(btArySenderData, btArySenderData.length));
Loger.disk_log("Write",
StringTool.byteArrayToString(btArySenderData, 0,
btArySenderData.length), "U8");
} }
} catch (IOException e) { } catch (IOException e) {
Loger.disk_log("写错误", "e=" + e.getMessage() + "\r\n" + e.getStackTrace(), "M10_U8");
onLostConnect(); onLostConnect();
return -1; return -1;
} catch (Exception e) { } catch (Exception e) {
Loger.disk_log("写错误", "e=" + e.getMessage() + "\r\n" + e.getStackTrace(), "M10_U8");
return -1; return -1;
} }
...@@ -683,7 +671,7 @@ public abstract class ReaderBase { ...@@ -683,7 +671,7 @@ public abstract class ReaderBase {
* 读写器地址(0xFF公用地址) * 读写器地址(0xFF公用地址)
* @param btAryPassWord * @param btAryPassWord
* 标签访问密码,4字节 * 标签访问密码,4字节
* @param btMembank * @param btMemBank
* 操作的数据区域(0x01:User Memory, 0x02:TID Memory, 0x03:EPC Memory, * 操作的数据区域(0x01:User Memory, 0x02:TID Memory, 0x03:EPC Memory,
* 0x04:Access Password, 0x05:Kill Password) * 0x04:Access Password, 0x05:Kill Password)
* @param btLockType * @param btLockType
...@@ -953,7 +941,7 @@ public abstract class ReaderBase { ...@@ -953,7 +941,7 @@ public abstract class ReaderBase {
/** /**
* 发送裸数据。 * 发送裸数据。
* *
* @param btReadId * @param btAryBuf
* 读写器地址(0xFF公用地址) * 读写器地址(0xFF公用地址)
* @return 成功 :0, 失败:-1 * @return 成功 :0, 失败:-1
*/ */
......
package com.stm.asset.adapter; package com.stm.asset.adapter;
import android.content.Context; import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.BaseAdapter; import android.widget.BaseAdapter;
import android.widget.TextView; import android.widget.TextView;
import com.fn.useries.reader.model.InventoryBuffer; import com.reader.helper.InventoryBuffer;
import com.fn.useries.utils.Tools;
import com.stm.asset.R; import com.stm.asset.R;
import com.stm.asset.utils.StringUtils; import com.stm.asset.utils.StringUtils;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -29,6 +28,7 @@ public class InventoryAdapter extends BaseAdapter { ...@@ -29,6 +28,7 @@ public class InventoryAdapter extends BaseAdapter {
public InventoryAdapter(Context context) { public InventoryAdapter(Context context) {
inflater = LayoutInflater.from(context); inflater = LayoutInflater.from(context);
dataList = new ArrayList<>();
} }
@Override @Override
...@@ -65,10 +65,12 @@ public class InventoryAdapter extends BaseAdapter { ...@@ -65,10 +65,12 @@ public class InventoryAdapter extends BaseAdapter {
InventoryBuffer.InventoryTagMap inventoryTagMap = dataList.get(position); InventoryBuffer.InventoryTagMap inventoryTagMap = dataList.get(position);
// viewHolder.idTxt.setText(String.valueOf(position+1)); // viewHolder.idTxt.setText(String.valueOf(position+1));
try { try {
String epcStr = inventoryTagMap.strEPC; // TODO 暂时特殊处理
byte[] bytes = Tools.stringToByteArray(epcStr); // String epcStr = inventoryTagMap.strEPC;
String str = new String(bytes, StandardCharsets.UTF_8); // byte[] bytes = Tools.stringToByteArray(epcStr);
viewHolder.epcTxt.setText(str); // String str = new String(bytes, StandardCharsets.UTF_8);
// viewHolder.epcTxt.setText(str);
viewHolder.epcTxt.setText(inventoryTagMap.strEPC.replaceAll(" ", ""));
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
...@@ -97,11 +99,14 @@ public class InventoryAdapter extends BaseAdapter { ...@@ -97,11 +99,14 @@ public class InventoryAdapter extends BaseAdapter {
if (!StringUtils.isEmptyOrNull(epcStr)) { if (!StringUtils.isEmptyOrNull(epcStr)) {
if (!hasItem(epcStr)) { if (!hasItem(epcStr)) {
try { try {
byte[] bytes = Tools.stringToByteArray(epcStr); // TODO 暂时特殊处理
String str = new String(bytes, StandardCharsets.UTF_8).trim(); Log.i("InventoryAdapter", "epcStr:" + epcStr.replaceAll(" ", ""));
if (StringUtils.isNumber(str)) { dataList.add(item);
dataList.add(item); // byte[] bytes = Tools.stringToByteArray(epcStr);
} // String str = new String(bytes, StandardCharsets.UTF_8).replaceAll(" ", "");
// if (StringUtils.isNumber(str)) {
// dataList.add(item);
// }
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
......
package com.stm.asset.adapter;
import android.annotation.SuppressLint;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.stm.asset.R;
import com.stm.asset.model.TaskInfo;
import com.stm.asset.page.TaskListActivity;
import com.stm.asset.utils.ViewUtil;
import java.util.ArrayList;
import java.util.List;
public class TaskListAdapter extends BaseAdapter {
private final LayoutInflater inflater;
private LinearLayout.LayoutParams lp1,lp2;
private TaskListActivity taskListActivity;
private List<TaskInfo> dataList;
public TaskListAdapter(TaskListActivity activity, int rightWidth) {
inflater = LayoutInflater.from(activity);
this.taskListActivity = activity;
this.lp1 = new LinearLayout.LayoutParams(ViewUtil.getScreenWidth(activity), LinearLayout.LayoutParams.MATCH_PARENT);
this.lp2 = new LinearLayout.LayoutParams(rightWidth, LinearLayout.LayoutParams.MATCH_PARENT);
}
@Override
public int getCount() {
return dataList == null ? 0 : dataList.size();
}
@Override
public Object getItem(int position) {
return dataList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@SuppressLint("InflateParams")
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if (convertView == null) {
viewHolder = new ViewHolder();
convertView =inflater.inflate(R.layout.view_task_list_item, null);
viewHolder.leftLayout = convertView.findViewById(R.id.task_left_layout);
viewHolder.rightLayout = convertView.findViewById(R.id.task_right_layout);
viewHolder.inventoryLayout = convertView.findViewById(R.id.task_right_inventory_layout);
viewHolder.nameTxt = convertView.findViewById(R.id.task_list_name_txt);
viewHolder.userTxt = convertView.findViewById(R.id.task_list_creator_txt);
viewHolder.deptTxt = convertView.findViewById(R.id.task_list_dept_txt);
viewHolder.leftLayout.setLayoutParams(lp1);
viewHolder.rightLayout.setLayoutParams(lp2);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
TaskInfo taskInfo = dataList.get(position);
viewHolder.nameTxt.setText(taskInfo.getInventoryName());
viewHolder.userTxt.setText(taskInfo.getInventoryEmpName());
viewHolder.deptTxt.setText(taskInfo.getInventoryDeptName());
viewHolder.inventoryLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
taskListActivity.gotoCheckPage(taskInfo.getId());
}
});
return convertView;
}
public void setData(List<TaskInfo> data, boolean reset) {
if (dataList == null) {
dataList = new ArrayList<>();
}
if (reset) {
dataList.clear();
}
if (data != null && data.size() > 0) {
dataList.addAll(data);
}
notifyDataSetChanged();
}
private static class ViewHolder {
private TextView nameTxt, userTxt, deptTxt;
private LinearLayout leftLayout, rightLayout, inventoryLayout;
}
}
...@@ -2,10 +2,9 @@ package com.stm.asset.base; ...@@ -2,10 +2,9 @@ package com.stm.asset.base;
public class ConfigKey { public class ConfigKey {
public final static String GATEWAYIP = "mfms.citictrust.com.cn"; public final static String GATEWAYIP = "stream.hulianmofang.cn";
public final static String GATWAYPORT = ""; public final static String GATWAYPORT = "18885";
// http://10.50.251.101 18081 测试地址 // http://stream.hulianmofang.cn 18885 演示地址
// https://fms.citictrust.com.cn 生产地址
public final static String PLAYFORM = "FMPAPP"; public final static String PLAYFORM = "FMPAPP";
// CJFKAPP 长江养老 // CJFKAPP 长江养老
...@@ -14,6 +13,6 @@ public class ConfigKey { ...@@ -14,6 +13,6 @@ public class ConfigKey {
public final static String SIGNATUREPASSWORD = "stream123"; // 测试环境请配置成stream123(生产环境具体再通知) public final static String SIGNATUREPASSWORD = "stream123"; // 测试环境请配置成stream123(生产环境具体再通知)
public final static String HTTPS_CERTIFICATION_NAME = "feiyongmofang.cer"; public final static String HTTPS_CERTIFICATION_NAME = "feiyongmofang.cer";
public final static boolean DEBUG = true; // 是否打印测试数据 public final static boolean DEBUG = true; // 是否打印测试数据
public final static boolean ISOPENHTTPS = true; // 是否开启https请求方式 public final static boolean ISOPENHTTPS = false; // 是否开启https请求方式
} }
...@@ -4,10 +4,11 @@ public class InterfaceKey { ...@@ -4,10 +4,11 @@ public class InterfaceKey {
private final static String GETWAY = "GATEWAY/"; private final static String GETWAY = "GATEWAY/";
public final static String UNIONLOGINAPP = GETWAY + "app/login"; // 登录 public final static String UNIONLOGINAPP = "FMP/" + "login"; // 登录
public final static String QURYPAGEHOMEUSERINFO = GETWAY + "app/quryPageHomeUserInfo"; // 获取用户信息 public final static String QURYPAGEHOMEUSERINFO = "FMP/" + "quryPageHomeUserInfo"; // 获取用户信息
public final static String QUERYVERSIONAPP = GETWAY + "queryAppVersionApp"; // 查询版本号 public final static String QUERYVERSIONAPP = "FMP/" + "queryAppVersionApp"; // 查询版本号
public final static String SCANINVENTORY = GETWAY + "app/ams/scanInventory"; // 上传资产编号 public final static String QUERYINVENTORYMAINPAGE = "FMP/" + "ams/inventory/queryInventoryMainPage"; // 查询盘点任务
public final static String SCANINVENTORY = "FMP/" + "ams/inventory/mergeInventoryDetailByAssetNum"; // 上传资产编号
......
...@@ -4,6 +4,8 @@ import com.stm.asset.base.InterfaceKey; ...@@ -4,6 +4,8 @@ import com.stm.asset.base.InterfaceKey;
import com.stm.asset.json.CommonMapJson; import com.stm.asset.json.CommonMapJson;
import com.stm.asset.json.CommonStringJson; import com.stm.asset.json.CommonStringJson;
import com.stm.asset.json.ListUserInfo; import com.stm.asset.json.ListUserInfo;
import com.stm.asset.json.TaskListJson;
import com.stm.asset.utils.SM2Util;
/** /**
* 类名称:HttpService * 类名称:HttpService
...@@ -26,13 +28,14 @@ public class HttpService { ...@@ -26,13 +28,14 @@ public class HttpService {
public void unionLoginApp(String accout, String password, RequestCallback<CommonStringJson> requestCallback) { public void unionLoginApp(String accout, String password, RequestCallback<CommonStringJson> requestCallback) {
RequestParams params = new RequestParams(); RequestParams params = new RequestParams();
params.addBodyParameter("username", accout); params.addBodyParameter("username", SM2Util.encrypt(accout));
params.addBodyParameter("password", password); params.addBodyParameter("password", SM2Util.encrypt(password));
HttpUtil.getInstance().sendJson(InterfaceKey.UNIONLOGINAPP, params, requestCallback); HttpUtil.getInstance().sendJson(InterfaceKey.UNIONLOGINAPP, params, requestCallback);
} }
public void quryPageHomeUserInfo(String accessToken, RequestCallback<ListUserInfo> requestCallback) { public void quryPageHomeUserInfo(String accessToken, RequestCallback<ListUserInfo> requestCallback) {
RequestParams params = new RequestParams(); RequestParams params = new RequestParams();
params.addHeader("Acess-Token", accessToken);
params.addBodyParameter("accessToken", accessToken); params.addBodyParameter("accessToken", accessToken);
HttpUtil.getInstance().sendJson(InterfaceKey.QURYPAGEHOMEUSERINFO, params, requestCallback); HttpUtil.getInstance().sendJson(InterfaceKey.QURYPAGEHOMEUSERINFO, params, requestCallback);
} }
...@@ -42,9 +45,19 @@ public class HttpService { ...@@ -42,9 +45,19 @@ public class HttpService {
HttpUtil.getInstance().sendJson(InterfaceKey.QUERYVERSIONAPP, params, requestCallback); HttpUtil.getInstance().sendJson(InterfaceKey.QUERYVERSIONAPP, params, requestCallback);
} }
public void scanInventory(String numberList, RequestCallback<CommonStringJson> requestCallback) { public void queryInventoryMainPage(int pageNum, int pageSize, RequestCallback<TaskListJson> requestCallback) {
RequestParams params = new RequestParams(); RequestParams params = new RequestParams();
params.addBodyParameter("numList", numberList); params.addBodyParameter("pageNum", String.valueOf(pageNum));
params.addBodyParameter("pageSize", String.valueOf(pageSize));
params.addBodyParameter("pageStatus", "amsInventoryExecution");
params.addBodyParameter("inventoryType", "0");
HttpUtil.getInstance().sendJson(InterfaceKey.QUERYINVENTORYMAINPAGE, params, requestCallback);
}
public void scanInventory(String mainId, String numberList, RequestCallback<CommonStringJson> requestCallback) {
RequestParams params = new RequestParams();
params.addBodyParameter("mainId", mainId);
params.addBodyParameter("assetNumListStr", numberList);
HttpUtil.getInstance().sendJson(InterfaceKey.SCANINVENTORY, params, requestCallback); HttpUtil.getInstance().sendJson(InterfaceKey.SCANINVENTORY, params, requestCallback);
} }
......
...@@ -42,10 +42,10 @@ public class HttpUtil { ...@@ -42,10 +42,10 @@ public class HttpUtil {
e.printStackTrace(); e.printStackTrace();
} }
} }
builder.callTimeout(6000, TimeUnit.MILLISECONDS); builder.callTimeout(20000, TimeUnit.MILLISECONDS);
builder.connectTimeout(6000, TimeUnit.MILLISECONDS); builder.connectTimeout(20000, TimeUnit.MILLISECONDS);
builder.readTimeout(30000, TimeUnit.MILLISECONDS); builder.readTimeout(60000, TimeUnit.MILLISECONDS);
builder.writeTimeout(30000, TimeUnit.MILLISECONDS); builder.writeTimeout(60000, TimeUnit.MILLISECONDS);
okHttpClient = builder.build(); okHttpClient = builder.build();
} }
...@@ -70,12 +70,13 @@ public class HttpUtil { ...@@ -70,12 +70,13 @@ public class HttpUtil {
Log.i("HttpUtil", String.format("请求方法: %s", url)); Log.i("HttpUtil", String.format("请求方法: %s", url));
builder.url(url); builder.url(url);
if (requestParams.getHeaders() != null && requestParams.getHeaders().size() > 0) { if (requestParams.getHeaders() != null && requestParams.getHeaders().size() > 0) {
Log.i("HttpUtil", String.format("请求参数 head:%s", new Gson().toJson(requestParams.getHeaders())));
for (Map.Entry<String, String> headerEntry : requestParams.getHeaders().entrySet()) { for (Map.Entry<String, String> headerEntry : requestParams.getHeaders().entrySet()) {
builder.header(headerEntry.getKey(), headerEntry.getValue()); builder.header(headerEntry.getKey(), headerEntry.getValue());
} }
} }
if (requestParams.getBodyParams() != null && requestParams.getBodyParams().size() > 0) { if (requestParams.getBodyParams() != null && requestParams.getBodyParams().size() > 0) {
Log.i("HttpUtil", String.format("请求参数:%s", new Gson().toJson(requestParams.getBodyParams()))); Log.i("HttpUtil", String.format("请求参数 body:%s", new Gson().toJson(requestParams.getBodyParams())));
// RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), new Gson().toJson(requestParams.getBodyParams())); // RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), new Gson().toJson(requestParams.getBodyParams()));
// builder.post(requestBody); // builder.post(requestBody);
FormBody.Builder bodyBuilder = new FormBody.Builder(); FormBody.Builder bodyBuilder = new FormBody.Builder();
...@@ -123,12 +124,13 @@ public class HttpUtil { ...@@ -123,12 +124,13 @@ public class HttpUtil {
Log.i("HttpUtil", String.format("请求方法: %s", url)); Log.i("HttpUtil", String.format("请求方法: %s", url));
builder.url(url); builder.url(url);
if (requestParams.getHeaders() != null && requestParams.getHeaders().size() > 0) { if (requestParams.getHeaders() != null && requestParams.getHeaders().size() > 0) {
Log.i("HttpUtil", String.format("请求参数 head:%s", new Gson().toJson(requestParams.getHeaders())));
for (Map.Entry<String, String> headerEntry : requestParams.getHeaders().entrySet()) { for (Map.Entry<String, String> headerEntry : requestParams.getHeaders().entrySet()) {
builder.header(headerEntry.getKey(), headerEntry.getValue()); builder.header(headerEntry.getKey(), headerEntry.getValue());
} }
} }
if (requestParams.getBodyParams() != null && requestParams.getBodyParams().size() > 0) { if (requestParams.getBodyParams() != null && requestParams.getBodyParams().size() > 0) {
Log.i("HttpUtil", String.format("请求参数:%s", new Gson().toJson(requestParams.getBodyParams()))); Log.i("HttpUtil", String.format("请求参数 body:%s", new Gson().toJson(requestParams.getBodyParams())));
// RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), new Gson().toJson(requestParams.getBodyParams())); // RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), new Gson().toJson(requestParams.getBodyParams()));
// builder.post(requestBody); // builder.post(requestBody);
FormBody.Builder bodyBuilder = new FormBody.Builder(); FormBody.Builder bodyBuilder = new FormBody.Builder();
......
...@@ -19,6 +19,7 @@ public class RequestParams { ...@@ -19,6 +19,7 @@ public class RequestParams {
private Map<String, String> bodyParams; private Map<String, String> bodyParams;
public RequestParams() { public RequestParams() {
addCommonHead();
addCommonParams(); addCommonParams();
} }
...@@ -50,21 +51,27 @@ public class RequestParams { ...@@ -50,21 +51,27 @@ public class RequestParams {
bodyParams.put(name, value); bodyParams.put(name, value);
} }
private void addCommonHead() {
if (this.headers == null) {
this.headers = new HashMap<>();
}
long currentTime = System.currentTimeMillis();
headers.put("Current-Time", String.valueOf(currentTime));
headers.put("Authenticator-Data", MD5Util.getAuthenticator(currentTime));
if (StmApplication.getInstance().getUserInfo() != null) {
headers.put("Acess-Token", PropertyUtil.getAccessToken(StmApplication.getInstance().getApplicationContext()));
}
}
private void addCommonParams(){ private void addCommonParams(){
if (bodyParams == null) { if (bodyParams == null) {
bodyParams = new HashMap<>(); bodyParams = new HashMap<>();
} }
bodyParams.put("machinecode", "h5"); bodyParams.put("machinecode", "phone");
bodyParams.put("machinetype", "h5"); bodyParams.put("machinetype", "phone");
bodyParams.put("channelcode", "APP"); bodyParams.put("channelcode", "VUE");
bodyParams.put("terminalcode", "fee"); bodyParams.put("terminalcode", "fee");
bodyParams.put("platform", PropertyUtil.getHttpPlatform(StmApplication.getInstance().getApplicationContext())); bodyParams.put("platform", PropertyUtil.getHttpPlatform(StmApplication.getInstance().getApplicationContext()));
long currentTime = System.currentTimeMillis();
bodyParams.put("currenttime", String.valueOf(currentTime));
bodyParams.put("authenticator", MD5Util.getAuthenticator(currentTime));
if (StmApplication.getInstance().getUserInfo() != null) {
bodyParams.put("accessToken", PropertyUtil.getAccessToken(StmApplication.getInstance().getApplicationContext()));
}
} }
} }
\ No newline at end of file
package com.stm.asset.json;
import com.stm.asset.model.TaskInfo;
import java.io.Serializable;
import java.util.List;
public class TaskJsonInfo implements Serializable {
private static final long serialVersionUID = 7340008696696353349L;
private String pageNum;
private String pageSize;
private String size;
private String total;
private String pages;
private List<TaskInfo> list;
public String getPageNum() {
return pageNum;
}
public void setPageNum(String pageNum) {
this.pageNum = pageNum;
}
public String getPageSize() {
return pageSize;
}
public void setPageSize(String pageSize) {
this.pageSize = pageSize;
}
public String getSize() {
return size;
}
public void setSize(String size) {
this.size = size;
}
public String getTotal() {
return total;
}
public void setTotal(String total) {
this.total = total;
}
public String getPages() {
return pages;
}
public void setPages(String pages) {
this.pages = pages;
}
public List<TaskInfo> getList() {
return list;
}
public void setList(List<TaskInfo> list) {
this.list = list;
}
}
package com.stm.asset.json;
import com.stm.asset.model.LoginInfo;
public class TaskListJson extends BaseInfo {
private static final long serialVersionUID = 1987319819308033456L;
private TaskJsonInfo rspData;
public void setRspData(TaskJsonInfo rspData) {
this.rspData = rspData;
}
public TaskJsonInfo getRspData() {
return rspData==null?new TaskJsonInfo():rspData;
}
}
package com.stm.asset.model;
import java.io.Serializable;
/**
* 类名称:TaskInfo
* 类描述:盘点任务实体类
* 创建人:story
* 创建时间:2023-03-27
*/
public class TaskInfo implements Serializable {
private static final long serialVersionUID = -2803924680531753060L;
private String id;
private String inventoryName; // 任务名称
private String statusName; // 任务状态
private String inventoryEmpName; // 盘点人
private String inventoryDeptName; // 盘点部门
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getInventoryName() {
return inventoryName;
}
public void setInventoryName(String inventoryName) {
this.inventoryName = inventoryName;
}
public String getStatusName() {
return statusName;
}
public void setStatusName(String statusName) {
this.statusName = statusName;
}
public String getInventoryEmpName() {
return inventoryEmpName;
}
public void setInventoryEmpName(String inventoryEmpName) {
this.inventoryEmpName = inventoryEmpName;
}
public String getInventoryDeptName() {
return inventoryDeptName;
}
public void setInventoryDeptName(String inventoryDeptName) {
this.inventoryDeptName = inventoryDeptName;
}
}
...@@ -31,6 +31,7 @@ public class CheckTaskActivity extends BaseFragmentActivity implements View.OnCl ...@@ -31,6 +31,7 @@ public class CheckTaskActivity extends BaseFragmentActivity implements View.OnCl
private TaskFragment unfinishedTaskFgm; private TaskFragment unfinishedTaskFgm;
private TaskFragment finishedTaskFgm; private TaskFragment finishedTaskFgm;
private LoadingDialog loadingDialog; private LoadingDialog loadingDialog;
private String mainId = null;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
...@@ -41,12 +42,15 @@ public class CheckTaskActivity extends BaseFragmentActivity implements View.OnCl ...@@ -41,12 +42,15 @@ public class CheckTaskActivity extends BaseFragmentActivity implements View.OnCl
private void initView() { private void initView() {
initTitle(); initTitle();
titleTxt.setText("盘点任务"); titleTxt.setText("资产盘点");
if (getIntent().getExtras() != null) {
mainId = getIntent().getExtras().getString("mainId");
}
findViewById(R.id.common_title_back_layout).setOnClickListener(this); findViewById(R.id.common_title_back_layout).setOnClickListener(this);
unfinishedTxt = findViewById(R.id.task_unfinished_txt); unfinishedTxt = findViewById(R.id.task_unfinished_txt);
finishedTxt = findViewById(R.id.task_finished_txt); finishedTxt = findViewById(R.id.task_finished_txt);
unfinishedTxt.setText("未盘点任务(0)"); unfinishedTxt.setText("未盘点资产(0)");
finishedTxt.setText("已完成任务"); finishedTxt.setText("已完成资产");
unfinishedTxt.setSelected(true); unfinishedTxt.setSelected(true);
finishedTxt.setSelected(false); finishedTxt.setSelected(false);
unfinishedTxt.setOnClickListener(this); unfinishedTxt.setOnClickListener(this);
...@@ -89,15 +93,19 @@ public class CheckTaskActivity extends BaseFragmentActivity implements View.OnCl ...@@ -89,15 +93,19 @@ public class CheckTaskActivity extends BaseFragmentActivity implements View.OnCl
} }
public void setUnfinishedNum(int num) { public void setUnfinishedNum(int num) {
String str = "未盘点任务(" + num + ")"; String str = "未盘点资产(" + num + ")";
unfinishedTxt.setText(str); unfinishedTxt.setText(str);
} }
public void setFinishedNum(int num) { public void setFinishedNum(int num) {
String str = "已完成任务"; String str = "已完成资产";
finishedTxt.setText(str); finishedTxt.setText(str);
} }
public String getMainId() {
return mainId;
}
public LoadingDialog getLoadingDialog() { public LoadingDialog getLoadingDialog() {
return loadingDialog; return loadingDialog;
} }
......
...@@ -2,6 +2,7 @@ package com.stm.asset.page; ...@@ -2,6 +2,7 @@ package com.stm.asset.page;
import android.graphics.Color; import android.graphics.Color;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler;
import android.util.Log; import android.util.Log;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
...@@ -19,7 +20,9 @@ import com.fn.useries.utils.MusicPlayer; ...@@ -19,7 +20,9 @@ import com.fn.useries.utils.MusicPlayer;
import com.stm.asset.R; import com.stm.asset.R;
import com.stm.asset.base.BaseActivity; import com.stm.asset.base.BaseActivity;
import com.stm.asset.base.StmApplication; import com.stm.asset.base.StmApplication;
import com.stm.asset.utils.StringUtils;
import com.stm.asset.utils.ViewUtil; import com.stm.asset.utils.ViewUtil;
import com.stm.asset.view.LoadingDialog;
import com.stm.asset.view.TextMoveLayout; import com.stm.asset.view.TextMoveLayout;
/** /**
...@@ -40,12 +43,15 @@ public class DeviceSetActivity extends BaseActivity implements View.OnClickListe ...@@ -40,12 +43,15 @@ public class DeviceSetActivity extends BaseActivity implements View.OnClickListe
private M11U8Service mUSeries; private M11U8Service mUSeries;
private int screenWidth; private int screenWidth;
private boolean firstIn = true;
private LoadingDialog loadingDialog;
@Override @Override
protected void onCreate(@Nullable Bundle savedInstanceState) { protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_device_set); setContentView(R.layout.activity_device_set);
initView(); initView();
loadingDialog = new LoadingDialog(this);
} }
private void initView() { private void initView() {
...@@ -61,7 +67,7 @@ public class DeviceSetActivity extends BaseActivity implements View.OnClickListe ...@@ -61,7 +67,7 @@ public class DeviceSetActivity extends BaseActivity implements View.OnClickListe
powerLayout = findViewById(R.id.set_power_layout); powerLayout = findViewById(R.id.set_power_layout);
powerSb = findViewById(R.id.set_power_sb); powerSb = findViewById(R.id.set_power_sb);
powerSb.setOnSeekBarChangeListener(new OnSeekBarChangeListenerImp()); powerSb.setOnSeekBarChangeListener(new OnSeekBarChangeListenerImp());
powerSb.setMax(13); powerSb.setMax(33);
layoutParams = new ViewGroup.LayoutParams(screenWidth, 40); layoutParams = new ViewGroup.LayoutParams(screenWidth, 40);
temperatureEt = findViewById(R.id.set_temperature_et); temperatureEt = findViewById(R.id.set_temperature_et);
...@@ -81,9 +87,17 @@ public class DeviceSetActivity extends BaseActivity implements View.OnClickListe ...@@ -81,9 +87,17 @@ public class DeviceSetActivity extends BaseActivity implements View.OnClickListe
mUSeries.initService(); mUSeries.initService();
powerLayout.removeAllViews(); powerLayout.removeAllViews();
powerLayout.addView(moveTextDBM, layoutParams); powerLayout.addView(moveTextDBM, layoutParams);
if (mUSeries != null) { loadingDialog.show();
getPower(); if (mUSeries != null && firstIn) {
getInventoryParams(); new Handler().postDelayed(new Runnable() {
@Override
public void run() {
loadingDialog.dismiss();
firstIn = false;
getPower();
getInventoryParams();
}
}, 1500);
} }
} }
...@@ -95,16 +109,14 @@ public class DeviceSetActivity extends BaseActivity implements View.OnClickListe ...@@ -95,16 +109,14 @@ public class DeviceSetActivity extends BaseActivity implements View.OnClickListe
private void getPower() { private void getPower() {
try { try {
Thread.sleep(800);
String outPowerSetParams = mUSeries.getParams(M11U8Service.PARA_POWER); String outPowerSetParams = mUSeries.getParams(M11U8Service.PARA_POWER);
Log.i("DeviceSetActivity", "M10_U8:getPower " + outPowerSetParams); Log.i("DeviceSetActivity", "M10_U8:getPower " + outPowerSetParams);
if (outPowerSetParams.trim().equalsIgnoreCase(ERROR.RECEVICE_INCOMPLETE)) { StmApplication.getInstance().getAppExecutors().mainThread().execute(new Runnable() {
MusicPlayer.getInstance().play(MusicPlayer.Type.MUSIC_ERROR); @Override
StmApplication.getInstance().showToastShort(getResources().getString(R.string.device_set_get_power_fail) + " " + outPowerSetParams); public void run() {
return; refreshPowerView(outPowerSetParams);
} }
refreshPowerView(outPowerSetParams); });
// 显示软件提示音
} catch (Exception e) { } catch (Exception e) {
Log.i("DeviceSetActivity", "M10_U8:getPowerParamsException " + e.toString()); Log.i("DeviceSetActivity", "M10_U8:getPowerParamsException " + e.toString());
} }
...@@ -137,15 +149,19 @@ public class DeviceSetActivity extends BaseActivity implements View.OnClickListe ...@@ -137,15 +149,19 @@ public class DeviceSetActivity extends BaseActivity implements View.OnClickListe
temperatureEt.setText(""); temperatureEt.setText("");
try { try {
String strTemperature = mUSeries.getParams(M11U8Service.TEMPERATURE); String strTemperature = mUSeries.getParams(M11U8Service.TEMPERATURE);
if (strTemperature.trim().equalsIgnoreCase(ERROR.RECEVICE_INCOMPLETE)) {// 接收异常 Log.i("DeviceSetActivity", "M10_U8:getTemperature " + strTemperature);
if (!StringUtils.isEmptyOrNull(strTemperature)) {
StmApplication.getInstance().getAppExecutors().mainThread().execute(new Runnable() {
@Override
public void run() {
MusicPlayer.getInstance().play(MusicPlayer.Type.OK);
temperatureEt.setText(strTemperature);
}
});
} else {
MusicPlayer.getInstance().play(MusicPlayer.Type.MUSIC_ERROR); MusicPlayer.getInstance().play(MusicPlayer.Type.MUSIC_ERROR);
StmApplication.getInstance().showToastShort(ERROR.RECEVICE_INCOMPLETE);
return;
} }
MusicPlayer.getInstance().play(MusicPlayer.Type.OK);
temperatureEt.setText(strTemperature);
} catch (Exception e) { } catch (Exception e) {
MusicPlayer.getInstance().play(MusicPlayer.Type.MUSIC_ERROR);
Log.i("DeviceSetActivity", "M10_U8:getTemperatureParamsException" + e.toString()); Log.i("DeviceSetActivity", "M10_U8:getTemperatureParamsException" + e.toString());
e.printStackTrace(); e.printStackTrace();
} }
......
...@@ -2,6 +2,7 @@ package com.stm.asset.page; ...@@ -2,6 +2,7 @@ package com.stm.asset.page;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.view.View; import android.view.View;
import android.widget.Button; import android.widget.Button;
import android.widget.ListView; import android.widget.ListView;
...@@ -11,9 +12,8 @@ import androidx.annotation.Nullable; ...@@ -11,9 +12,8 @@ import androidx.annotation.Nullable;
import androidx.room.Room; import androidx.room.Room;
import com.fn.useries.operation.M11U8Service; import com.fn.useries.operation.M11U8Service;
import com.fn.useries.reader.model.InventoryBuffer;
import com.fn.useries.reader.server.ReaderHelper;
import com.fn.useries.utils.Tools; import com.fn.useries.utils.Tools;
import com.reader.helper.InventoryBuffer;
import com.series.inter.InventoryInterface; import com.series.inter.InventoryInterface;
import com.stm.asset.R; import com.stm.asset.R;
import com.stm.asset.adapter.InventoryAdapter; import com.stm.asset.adapter.InventoryAdapter;
...@@ -40,13 +40,12 @@ public class InventoryActivity extends BaseActivity implements View.OnClickListe ...@@ -40,13 +40,12 @@ public class InventoryActivity extends BaseActivity implements View.OnClickListe
private TextView txtCountTxt; private TextView txtCountTxt;
private M11U8Service mUSeries; private M11U8Service mUSeries;
private ReaderHelper mReaderHelper;
private InventoryBuffer m_curInventoryBuffer;
private Handler mHandler; private Handler mHandler;
private boolean isInventory; private boolean isInventory;
private long mRefreshTime; private long mRefreshTime;
private InventoryAdapter inventoryAdapter; private InventoryAdapter inventoryAdapter;
private InventoryInfoDao inventoryInfoDao; private InventoryInfoDao inventoryInfoDao;
private int inventoryTotal = 0; // 盘存到的标签数
@Override @Override
protected void onCreate(@Nullable Bundle savedInstanceState) { protected void onCreate(@Nullable Bundle savedInstanceState) {
...@@ -55,8 +54,6 @@ public class InventoryActivity extends BaseActivity implements View.OnClickListe ...@@ -55,8 +54,6 @@ public class InventoryActivity extends BaseActivity implements View.OnClickListe
initView(); initView();
mHandler = new Handler(); mHandler = new Handler();
try { try {
mReaderHelper = ReaderHelper.getDefaultHelper();
m_curInventoryBuffer = mReaderHelper.getCurInventoryBuffer();
InventoryInfoDatabase database = Room.databaseBuilder(this, InventoryInfoDatabase.class, "inventoryInfoDemo").build(); InventoryInfoDatabase database = Room.databaseBuilder(this, InventoryInfoDatabase.class, "inventoryInfoDemo").build();
inventoryInfoDao = database.inventoryInfoDao(); inventoryInfoDao = database.inventoryInfoDao();
mUSeries = M11U8Service.getInstance(); mUSeries = M11U8Service.getInstance();
...@@ -103,13 +100,20 @@ public class InventoryActivity extends BaseActivity implements View.OnClickListe ...@@ -103,13 +100,20 @@ public class InventoryActivity extends BaseActivity implements View.OnClickListe
beginBtn.setText(R.string.inventory_btn_doing); beginBtn.setText(R.string.inventory_btn_doing);
isInventory = true; isInventory = true;
mRefreshTime = new Date().getTime(); mRefreshTime = new Date().getTime();
inventoryTotal = 0;
mUSeries.startInventory(new InventoryInterface() { mUSeries.startInventory(new InventoryInterface() {
@Override @Override
public void success(Object obj) { public void success(Object obj) {
InventoryBuffer.InventoryTagMap tag = (InventoryBuffer.InventoryTagMap) obj; StmApplication.getInstance().getAppExecutors().mainThread().execute(new Runnable() {
List<InventoryBuffer.InventoryTagMap> list = new ArrayList<>(); @Override
list.add(tag); public void run() {
inventoryAdapter.setData(list, false); inventoryTotal++;
InventoryBuffer.InventoryTagMap tag = (InventoryBuffer.InventoryTagMap) obj;
List<InventoryBuffer.InventoryTagMap> list = new ArrayList<>();
list.add(tag);
inventoryAdapter.setData(list, false);
}
});
} }
@Override @Override
...@@ -139,11 +143,14 @@ public class InventoryActivity extends BaseActivity implements View.OnClickListe ...@@ -139,11 +143,14 @@ public class InventoryActivity extends BaseActivity implements View.OnClickListe
List<InventoryInfo> insertList = new ArrayList<>(); List<InventoryInfo> insertList = new ArrayList<>();
for (InventoryBuffer.InventoryTagMap map : dataList) { for (InventoryBuffer.InventoryTagMap map : dataList) {
try { try {
String epcStr = map.strEPC; // TODO 暂时特殊处理
byte[] bytes = Tools.stringToByteArray(epcStr); // String epcStr = map.strEPC;
String str = new String(bytes, StandardCharsets.UTF_8); // byte[] bytes = Tools.stringToByteArray(epcStr);
// String str = new String(bytes, StandardCharsets.UTF_8);
// InventoryInfo inventoryInfo = new InventoryInfo();
// inventoryInfo.setNumber(str.replaceAll(" ", ""));
InventoryInfo inventoryInfo = new InventoryInfo(); InventoryInfo inventoryInfo = new InventoryInfo();
inventoryInfo.setNumber(str.trim()); inventoryInfo.setNumber(map.strEPC.replaceAll(" ", ""));
inventoryInfo.setStatus("0"); inventoryInfo.setStatus("0");
inventoryInfo.setUserName(StmApplication.getInstance().getUserInfo().getUsername()); inventoryInfo.setUserName(StmApplication.getInstance().getUserInfo().getUsername());
insertList.add(inventoryInfo); insertList.add(inventoryInfo);
...@@ -159,6 +166,7 @@ public class InventoryActivity extends BaseActivity implements View.OnClickListe ...@@ -159,6 +166,7 @@ public class InventoryActivity extends BaseActivity implements View.OnClickListe
@Override @Override
public void run() { public void run() {
StmApplication.getInstance().showToastShort("保存成功"); StmApplication.getInstance().showToastShort("保存成功");
inventoryTotal = 0;
inventoryAdapter.setData(null, true); inventoryAdapter.setData(null, true);
} }
}); });
...@@ -172,21 +180,25 @@ public class InventoryActivity extends BaseActivity implements View.OnClickListe ...@@ -172,21 +180,25 @@ public class InventoryActivity extends BaseActivity implements View.OnClickListe
private Runnable mRefreshRunnable = new Runnable() { private Runnable mRefreshRunnable = new Runnable() {
public void run() { public void run() {
refreshText(); StmApplication.getInstance().getAppExecutors().mainThread().execute(new Runnable() {
mHandler.postDelayed(this, 2000); @Override
public void run() {
refreshText();
}
});
mHandler.postDelayed(this, 1000);
} }
}; };
private void refreshText() { private void refreshText() {
String countTxtFormat = InventoryActivity.this.getString(R.string.inventory_count_text); String countTxtFormat = InventoryActivity.this.getString(R.string.inventory_count_text);
long now = new Date().getTime(); long now = new Date().getTime();
String text = String.format(countTxtFormat, inventoryAdapter.getCount(), mReaderHelper.getInventoryTotal(), m_curInventoryBuffer.nReadRate, (now - mRefreshTime) / 1000); int time = (int) ((now - mRefreshTime) / 1000);
// List<InventoryBuffer.InventoryTagMap> list = m_curInventoryBuffer.lsTagList; if (time == 0) {
// if (list.size() > 0) { time = 1;
// InventoryBuffer.InventoryTagMap item = list.get(0); }
// String str = "strPC:" + item.strPC + " strCRC:" + item.strCRC + " strEPC:" + item.strEPC + " btAntId:" + item.btAntId + " strRSSI:" + item.strRSSI + " nReadCount:" + item.nReadCount + " strFreq:" + item.strFreq + " nAnt1:" + item.nAnt1 + " nAnt2:" + item.nAnt2 + " nAnt3:" + item.nAnt3 + " nAnt4:" + item.nAnt4; int rate = inventoryTotal / time;
// StmApplication.getInstance().showToastShort(str); String text = String.format(countTxtFormat, inventoryAdapter.getCount(), inventoryTotal, rate, time);
// }
txtCountTxt.setText(text); txtCountTxt.setText(text);
} }
} }
...@@ -101,7 +101,7 @@ public class MainActivity extends BaseActivity implements View.OnClickListener { ...@@ -101,7 +101,7 @@ public class MainActivity extends BaseActivity implements View.OnClickListener {
case R.id.main_inventory_data_layout: case R.id.main_inventory_data_layout:
if (userInfo != null) { if (userInfo != null) {
Intent gotoTaskIntent = new Intent(); Intent gotoTaskIntent = new Intent();
gotoTaskIntent.setClass(MainActivity.this, CheckTaskActivity.class); gotoTaskIntent.setClass(MainActivity.this, TaskListActivity.class);
startActivity(gotoTaskIntent); startActivity(gotoTaskIntent);
} else { } else {
Intent loginIntent = new Intent(); Intent loginIntent = new Intent();
...@@ -119,6 +119,7 @@ public class MainActivity extends BaseActivity implements View.OnClickListener { ...@@ -119,6 +119,7 @@ public class MainActivity extends BaseActivity implements View.OnClickListener {
loginIntent.setClass(MainActivity.this, LoginActivity.class); loginIntent.setClass(MainActivity.this, LoginActivity.class);
startActivity(loginIntent); startActivity(loginIntent);
} }
break;
case R.id.main_settings_layout: case R.id.main_settings_layout:
Intent deviceSetIntent = new Intent(); Intent deviceSetIntent = new Intent();
deviceSetIntent.setClass(MainActivity.this, DeviceSetActivity.class); deviceSetIntent.setClass(MainActivity.this, DeviceSetActivity.class);
...@@ -145,7 +146,7 @@ public class MainActivity extends BaseActivity implements View.OnClickListener { ...@@ -145,7 +146,7 @@ public class MainActivity extends BaseActivity implements View.OnClickListener {
} }
private void showExitDialog() { private void showExitDialog() {
int dialog_width = (int) (ViewUtil.getScreenWidth(this) * 4 / 5.0); int dialog_width = (int) (ViewUtil.getScreenWidth(this) * 3 / 5.0);
final CommonAlertDialog dialog = new CommonAlertDialog(MainActivity.this); final CommonAlertDialog dialog = new CommonAlertDialog(MainActivity.this);
dialog.setViewParams(new LinearLayout.LayoutParams(dialog_width, -2)); dialog.setViewParams(new LinearLayout.LayoutParams(dialog_width, -2));
dialog.show(); dialog.show();
......
...@@ -26,6 +26,7 @@ import com.stm.asset.http.RequestCallback; ...@@ -26,6 +26,7 @@ import com.stm.asset.http.RequestCallback;
import com.stm.asset.json.CommonStringJson; import com.stm.asset.json.CommonStringJson;
import com.stm.asset.model.InventoryInfo; import com.stm.asset.model.InventoryInfo;
import com.stm.asset.utils.NetworkUtil; import com.stm.asset.utils.NetworkUtil;
import com.stm.asset.utils.StringUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -120,7 +121,7 @@ public class TaskFragment extends BaseFragment implements View.OnClickListener { ...@@ -120,7 +121,7 @@ public class TaskFragment extends BaseFragment implements View.OnClickListener {
public void onClick(View view) { public void onClick(View view) {
switch (view.getId()) { switch (view.getId()) {
case R.id.task_upload_btn: case R.id.task_upload_btn:
if (NetworkUtil.isNetworkAvailable(checkTaskActivity)) { if (NetworkUtil.isNetworkAvailable(checkTaskActivity) && !StringUtils.isEmptyOrNull(checkTaskActivity.getMainId())) {
if (inventoryInfoList != null && inventoryInfoList.size() > 0) { if (inventoryInfoList != null && inventoryInfoList.size() > 0) {
List<String> strList = new ArrayList<>(); List<String> strList = new ArrayList<>();
for (InventoryInfo info : inventoryInfoList) { for (InventoryInfo info : inventoryInfoList) {
...@@ -142,7 +143,7 @@ public class TaskFragment extends BaseFragment implements View.OnClickListener { ...@@ -142,7 +143,7 @@ public class TaskFragment extends BaseFragment implements View.OnClickListener {
sbf.append("]"); sbf.append("]");
} }
checkTaskActivity.getLoadingDialog().show(); checkTaskActivity.getLoadingDialog().show();
HttpService.getInstance().scanInventory(sbf.toString(), scan_cb); HttpService.getInstance().scanInventory(checkTaskActivity.getMainId(), sbf.toString(), scan_cb);
} }
} else { } else {
StmApplication.getInstance().showToastShort(getString(R.string.net_settings)); StmApplication.getInstance().showToastShort(getString(R.string.net_settings));
...@@ -207,47 +208,66 @@ public class TaskFragment extends BaseFragment implements View.OnClickListener { ...@@ -207,47 +208,66 @@ public class TaskFragment extends BaseFragment implements View.OnClickListener {
public void onSuccess(CommonStringJson responseInfo) { public void onSuccess(CommonStringJson responseInfo) {
checkTaskActivity.getLoadingDialog().dismiss(); checkTaskActivity.getLoadingDialog().dismiss();
if (responseInfo.isSucess()) { if (responseInfo.isSucess()) {
String str = responseInfo.getRspData(); StmApplication.getInstance().showToastShort("上传成功");
Map<String, Object> failedMap = new Gson().fromJson(str, new TypeToken<Map<String, Object>>(){}.getType()); // 处理盘点数据状态
if (failedMap != null && failedMap.get("numList") != null) { StmApplication.getInstance().getAppExecutors().diskIO().execute(new Runnable() {
List<String> numList = (List<String>) failedMap.get("numList"); @Override
if (numList != null && numList.size() > 0) { public void run() {
StmApplication.getInstance().showToastShort(String.valueOf(failedMap.get("msg"))); if (inventoryInfoList != null && inventoryInfoList.size() > 0) {
// 处理盘点失败数据 for (InventoryInfo inventoryInfo : inventoryInfoList) {
StmApplication.getInstance().getAppExecutors().diskIO().execute(new Runnable() { inventoryInfo.setStatus("2");
@Override inventoryInfoDao.updateInventory(inventoryInfo);
public void run() {
if (inventoryInfoList != null && inventoryInfoList.size() > 0) {
for (InventoryInfo inventoryInfo : inventoryInfoList) {
boolean success = true;
for (String itemStr : numList) {
if (itemStr.equals(inventoryInfo.getNumber())) {
success = false;
}
}
if (success) {
inventoryInfo.setStatus("2");
inventoryInfoDao.updateInventory(inventoryInfo);
} else {
inventoryInfo.setStatus("1");
inventoryInfoDao.updateInventory(inventoryInfo);
}
}
StmApplication.getInstance().getAppExecutors().mainThread().execute(new Runnable() {
@Override
public void run() {
checkTaskActivity.refreshData();
}
});
}
} }
}); StmApplication.getInstance().getAppExecutors().mainThread().execute(new Runnable() {
} else { @Override
StmApplication.getInstance().showToastShort("上传成功"); public void run() {
checkTaskActivity.refreshData();
}
});
}
} }
} else { });
StmApplication.getInstance().showToastShort("上传成功"); // String str = responseInfo.getRspData();
} // Map<String, Object> failedMap = new Gson().fromJson(str, new TypeToken<Map<String, Object>>(){}.getType());
// if (failedMap != null && failedMap.get("numList") != null) {
// List<String> numList = (List<String>) failedMap.get("numList");
// if (numList != null && numList.size() > 0) {
// StmApplication.getInstance().showToastShort(String.valueOf(failedMap.get("msg")));
// // 处理盘点失败数据
// StmApplication.getInstance().getAppExecutors().diskIO().execute(new Runnable() {
// @Override
// public void run() {
// if (inventoryInfoList != null && inventoryInfoList.size() > 0) {
// for (InventoryInfo inventoryInfo : inventoryInfoList) {
// boolean success = true;
// for (String itemStr : numList) {
// if (itemStr.equals(inventoryInfo.getNumber())) {
// success = false;
// }
// }
// if (success) {
// inventoryInfo.setStatus("2");
// inventoryInfoDao.updateInventory(inventoryInfo);
// } else {
// inventoryInfo.setStatus("1");
// inventoryInfoDao.updateInventory(inventoryInfo);
// }
// }
// StmApplication.getInstance().getAppExecutors().mainThread().execute(new Runnable() {
// @Override
// public void run() {
// checkTaskActivity.refreshData();
// }
// });
// }
// }
// });
// } else {
// StmApplication.getInstance().showToastShort("上传成功");
// }
// } else {
// StmApplication.getInstance().showToastShort("上传成功");
// }
} else { } else {
StmApplication.getInstance().showToastShort(responseInfo.getRspMsg()); StmApplication.getInstance().showToastShort(responseInfo.getRspMsg());
} }
......
package com.stm.asset.page;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AbsListView;
import android.widget.RelativeLayout;
import androidx.annotation.Nullable;
import com.stm.asset.R;
import com.stm.asset.adapter.TaskListAdapter;
import com.stm.asset.base.BaseActivity;
import com.stm.asset.base.StmApplication;
import com.stm.asset.http.HttpException;
import com.stm.asset.http.HttpService;
import com.stm.asset.http.RequestCallback;
import com.stm.asset.json.TaskListJson;
import com.stm.asset.utils.NetworkUtil;
import com.stm.asset.utils.ViewUtil;
import com.stm.asset.view.LoadingDialog;
import com.stm.asset.view.SwipeListView;
public class TaskListActivity extends BaseActivity {
private RelativeLayout noneLayout;
private SwipeListView listView;
private TaskListAdapter taskListAdapter;
private LoadingDialog loadingDialog;
private int pageNum = 0;
private final static int PAGE_SIZE = 10;
private boolean isLoadFinish;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_task_list);
initView();
}
private void initView() {
initTitle();
titleTxt.setText("盘点任务");
listView = findViewById(R.id.task_data_list);
listView.setRightViewWidth(ViewUtil.dip2px(this, 160));
listView.setOnScrollListener(new ListScrollListener());
taskListAdapter = new TaskListAdapter(this, listView.getRightViewWidth());
listView.setAdapter(taskListAdapter);
noneLayout = findViewById(R.id.task_data_none_layout);
loadingDialog = new LoadingDialog(this);
}
@Override
protected void onResume() {
super.onResume();
refreshData();
}
private void loadData() {
if (NetworkUtil.isNetworkAvailable(this)) {
loadingDialog.show();
StmApplication.getInstance().getAppExecutors().networkIO().execute(new Runnable() {
@Override
public void run() {
pageNum++;
HttpService.getInstance().queryInventoryMainPage(pageNum, PAGE_SIZE, queryTask_cb);
}
});
} else {
StmApplication.getInstance().showToastShort(getString(R.string.net_settings));
}
}
private void refreshData() {
pageNum = 0;
loadData();
}
public void gotoCheckPage(String id) {
listView.hiddenCurrentRight();
Intent intent = new Intent();
intent.setClass(this, CheckTaskActivity.class);
intent.putExtra("mainId", id);
startActivity(intent);
}
private RequestCallback<TaskListJson> queryTask_cb = new RequestCallback<TaskListJson>(TaskListJson.class) {
@Override
public void onSuccess(TaskListJson responseInfo) {
StmApplication.getInstance().getAppExecutors().mainThread().execute(new Runnable() {
@Override
public void run() {
loadingDialog.dismiss();
if (responseInfo.isSucess()) {
taskListAdapter.setData(responseInfo.getRspData().getList(), pageNum == 1);
isLoadFinish = (pageNum == Integer.parseInt(responseInfo.getRspData().getPages()));
} else {
StmApplication.getInstance().showToastShort(responseInfo.getRspMsg());
isLoadFinish = true;
}
if (taskListAdapter.getCount() == 0) {
noneLayout.setVisibility(View.VISIBLE);
} else {
noneLayout.setVisibility(View.GONE);
}
}
});
}
@Override
public void onFailure(HttpException error, String msg) {
loadingDialog.dismiss();
if (taskListAdapter.getCount() == 0) {
noneLayout.setVisibility(View.VISIBLE);
}
StmApplication.getInstance().showToastShort(msg);
}
};
/**
* SCROLL_STATE_FLING:开始滑动 SCROLL_STATE_TOUCH_SCROLL:正在滑动
* SCROLL_STATE_IDLE:停止滑动
*/
private class ListScrollListener implements AbsListView.OnScrollListener {
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
}
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
if (scrollState == AbsListView.OnScrollListener.SCROLL_STATE_IDLE) {
if (view.getLastVisiblePosition() == view.getCount() - 1) {
if (!isLoadFinish)
loadData();
}
}
}
}
}
package com.stm.asset.utils;
import cn.hutool.core.util.HexUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SmUtil;
import cn.hutool.crypto.asymmetric.KeyType;
import cn.hutool.crypto.asymmetric.SM2;
import org.bouncycastle.jcajce.provider.asymmetric.ec.BCECPublicKey;
/**
* SM2国密工具类
* @author LIULEI
*/
public class SM2Util {
private final static String publicKey = "043aa5e5b9b5f4f74596e964359ac229c3f6fe0ec651b46406d42b345984b6abc1d0abbe82618a8dd56df08b0e9b7fd1a363e492ff3e24f140a7d1ced1f1aa9f20";
private final static String publicQKey = "043aa5e5b9b5f4f74596e964359ac229c3f6fe0ec651b46406d42b345984b6abc1d0abbe82618a8dd56df08b0e9b7fd1a363e492ff3e24f140a7d1ced1f1aa9f20";
private final static String privateKey = "MIGTAgEAMBMGByqGSM49AgEGCCqBHM9VAYItBHkwdwIBAQQgoy5Dj/P5Dw+xhkPLz7riyylgBOkUDKmxfb0a4PzVCgigCgYIKoEcz1UBgi2hRANCAAQ6peW5tfT3RZbpZDWawinD9v4OxlG0ZAbUKzRZhLarwdCrvoJhio3VbfCLDpt/0aNj5JL/PiTxQKfRztHxqp8g";
public static void getSm2KeyPair() {
SM2 sm2 = SmUtil.sm2();
/* 公钥 */
String publicKey = sm2.getPublicKeyBase64();
System.out.println("publicKey>>【" + publicKey + "】");
/* js端公钥 JS代码实现 SM2的方案,都是直接使用的私钥的d值和公钥的q值直接进行的加解密,所以后端返回的最好是从公钥里面提取的q值,以q值作为js端的加密公钥 */
String publicQKey = HexUtil.encodeHexStr(((BCECPublicKey)sm2.getPublicKey()).getQ().getEncoded(false));
System.out.println("publicQKey>>【" + publicQKey + "】");
/* 私钥 */
String privateKey = sm2.getPrivateKeyBase64();
System.out.println("privateKey>>【" + privateKey + "】");
}
/**
* 公钥加密
* @param data
* @param publicKey
* @return
*/
public static String encrypt(String data, String publicKey) {
SM2 sm2 = SmUtil.sm2(null, publicKey);
String encryptStr = sm2.encryptBcd(data, KeyType.PublicKey);
return encryptStr;
}
/**
* 公钥加密
* @param data
* @return
*/
public static String encrypt(String data) {
return encrypt(data, publicKey);
}
/**
* 私钥解密 公钥加密密文
* @param encryptStr
* @param privateKey
* @return
*/
public static String decrypt(String encryptStr, String privateKey) {
if (!encryptStr.startsWith("04")) {
encryptStr = "04".concat(encryptStr);
}
SM2 sm2 = SmUtil.sm2(privateKey, null);
String decryptStr = StrUtil.utf8Str(sm2.decryptFromBcd(encryptStr, KeyType.PrivateKey));
return decryptStr;
}
/**
* 私钥解密 公钥加密密文
* @param encryptStr
* @return
*/
public static String decrypt(String encryptStr) {
return decrypt(encryptStr, privateKey);
}
public static void main(String[] args) {
getSm2KeyPair();
}
}
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@color/common_layout_click_color" android:state_pressed="true"></item>
<item android:drawable="@android:color/white"></item>
</selector>
\ No newline at end of file
...@@ -41,7 +41,7 @@ ...@@ -41,7 +41,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textColor="@color/common_txt_value" android:textColor="@color/common_txt_value"
android:textSize="@dimen/normal_text_size"/> android:textSize="@dimen/msmall_text_size"/>
</HorizontalScrollView> </HorizontalScrollView>
<LinearLayout <LinearLayout
...@@ -58,7 +58,7 @@ ...@@ -58,7 +58,7 @@
android:layout_marginStart="@dimen/xxlarge_padding" android:layout_marginStart="@dimen/xxlarge_padding"
android:layout_marginEnd="@dimen/xlarge_padding" android:layout_marginEnd="@dimen/xlarge_padding"
android:background="@drawable/bg_shape_btn" android:background="@drawable/bg_shape_btn"
android:textSize="@dimen/xlarge_text_size" android:textSize="@dimen/small_text_size"
android:textColor="@android:color/white" android:textColor="@android:color/white"
android:text="@string/inventory_btn_begin"/> android:text="@string/inventory_btn_begin"/>
...@@ -70,7 +70,7 @@ ...@@ -70,7 +70,7 @@
android:layout_marginStart="@dimen/xlarge_padding" android:layout_marginStart="@dimen/xlarge_padding"
android:layout_marginEnd="@dimen/xxlarge_padding" android:layout_marginEnd="@dimen/xxlarge_padding"
android:background="@drawable/bg_shape_btn" android:background="@drawable/bg_shape_btn"
android:textSize="@dimen/xlarge_text_size" android:textSize="@dimen/small_text_size"
android:textColor="@android:color/white" android:textColor="@android:color/white"
android:text="@string/inventory_btn_finish"/> android:text="@string/inventory_btn_finish"/>
...@@ -82,17 +82,12 @@ ...@@ -82,17 +82,12 @@
android:layout_marginStart="@dimen/xlarge_padding" android:layout_marginStart="@dimen/xlarge_padding"
android:layout_marginEnd="@dimen/xxlarge_padding" android:layout_marginEnd="@dimen/xxlarge_padding"
android:background="@drawable/bg_shape_btn" android:background="@drawable/bg_shape_btn"
android:textSize="@dimen/xlarge_text_size" android:textSize="@dimen/small_text_size"
android:textColor="@android:color/white" android:textColor="@android:color/white"
android:text="@string/inventory_btn_save"/> android:text="@string/inventory_btn_save"/>
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
...@@ -3,8 +3,7 @@ ...@@ -3,8 +3,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent">
tools:context=".page.SetAndSaveActivity">
<include <include
android:id="@+id/base_set_title" android:id="@+id/base_set_title"
......
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".page.TaskListActivity">
<include
android:id="@+id/task_list_title"
layout="@layout/view_common_title"
app:layout_constraintTop_toTopOf="parent"/>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="@dimen/top_title_bar_height_size"
app:layout_constraintBottom_toBottomOf="parent"
android:orientation="vertical">
<com.stm.asset.view.SwipeListView
android:id="@+id/task_data_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="@dimen/task_list_margin_top"
android:layout_marginBottom="@dimen/task_list_margin_bottom"
android:dividerHeight="@dimen/xxsmall_padding"
android:divider="@color/colorPrimary"
android:fadingEdge="none"
android:overScrollMode="never"
android:scrollbars="none"/>
<include
android:id="@+id/task_data_none_layout"
layout="@layout/view_common_list_none"
android:visibility="gone" />
</FrameLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/task_left_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="@dimen/normal_padding"
android:background="@drawable/bg_common_layout_click_white"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/check_task_item_height">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_gravity="center_vertical"
android:gravity="start"
android:textColor="@color/common_txt_key"
android:textSize="@dimen/msmall_text_size"
android:text="@string/task_list_item_name"/>
<TextView
android:id="@+id/task_list_name_txt"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="4"
android:layout_gravity="center_vertical"
android:gravity="end"
android:textColor="@color/common_txt_value"
android:textSize="@dimen/msmall_text_size"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/check_task_item_height">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_gravity="center_vertical"
android:gravity="start"
android:textColor="@color/common_txt_key"
android:textSize="@dimen/msmall_text_size"
android:text="@string/task_list_item_user"/>
<TextView
android:id="@+id/task_list_creator_txt"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="4"
android:layout_gravity="center_vertical"
android:gravity="end"
android:textColor="@color/common_txt_value"
android:textSize="@dimen/msmall_text_size"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="@dimen/check_task_item_height">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_gravity="center_vertical"
android:gravity="start"
android:textColor="@color/common_txt_key"
android:textSize="@dimen/msmall_text_size"
android:text="@string/task_list_item_dept"/>
<TextView
android:id="@+id/task_list_dept_txt"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="4"
android:layout_gravity="center_vertical"
android:gravity="end"
android:textColor="@color/common_txt_value"
android:textSize="@dimen/msmall_text_size"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/task_right_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/task_list_item_lien_color"
android:orientation="horizontal">
<LinearLayout
android:id="@+id/task_right_inventory_layout"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@color/colorPrimary"
android:gravity="center">
<TextView
android:id="@+id/pos_right_edit_txt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/task_list_inventory_btn"
android:textColor="@android:color/white"
android:textSize="@dimen/small_text_size" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="SlidingMenu">
<attr name="mode">
<enum name="left" value="0" />
<enum name="right" value="1" />
</attr>
<attr name="viewAbove" format="reference" />
<attr name="viewBehind" format="reference" />
<attr name="behindOffset" format="dimension" />
<attr name="behindWidth" format="dimension" />
<attr name="behindScrollScale" format="float" />
<attr name="touchModeAbove">
<enum name="margin" value="0" />
<enum name="fullscreen" value="1" />
</attr>
<attr name="touchModeBehind">
<enum name="margin" value="0" />
<enum name="fullscreen" value="1" />
</attr>
<attr name="shadowDrawable" format="reference" />
<attr name="shadowWidth" format="dimension" />
<attr name="fadeEnabled" format="boolean" />
<attr name="fadeDegree" format="float" />
<attr name="selectorEnabled" format="boolean" />
<attr name="selectorDrawable" format="reference" />
</declare-styleable>
<declare-styleable name="swipelistviewstyle">
<attr name="right_width" format="dimension"></attr>
</declare-styleable>
<declare-styleable name="memoAtt">
<attr name="length" format="integer"></attr>
<attr name="hint" format="string"></attr>
<attr name="textsize" format="integer"></attr>
<attr name="minline" format="integer"></attr>
</declare-styleable>
<declare-styleable name="chatcirleview">
<attr name="bgColor" format="color" />
<attr name="textSize" format="dimension" />
<attr name="textValue" format="string" />
</declare-styleable>
<declare-styleable name="ReportView">
<attr name="storkeWidth" format="integer"></attr>
<attr name="centerTextSize" format="dimension"></attr>
<attr name="titleTextSize" format="dimension"></attr>
<attr name="backgroundColor" format="color"></attr>
<attr name="showColor" format="color"></attr>
<attr name="textColor" format="color"></attr>
<attr name="textColorSecondary" format="color"></attr>
<attr name="marginTop" format="integer"></attr>
</declare-styleable>
<declare-styleable name="SwitchButton">
<attr name="tintColor" format="reference|color" />
<attr name="thumbTintColor" format="reference|color" />
<attr name="strokeWidth" format="reference|dimension" />
<attr name="isOn" format="reference|boolean" />
</declare-styleable>
<declare-styleable name="SideBarView">
<attr name="barstring" format="string" />
</declare-styleable>
</resources>
\ No newline at end of file
...@@ -8,6 +8,10 @@ ...@@ -8,6 +8,10 @@
<color name="common_txt_value">#202020</color> <color name="common_txt_value">#202020</color>
<color name="common_txt_key">#6b6b6b</color> <color name="common_txt_key">#6b6b6b</color>
<color name="common_while_click">#E2E2E2</color> <color name="common_while_click">#E2E2E2</color>
<color name="common_layout_click_color">#E2E2E2</color>
<!-- 盘点任务列表 -->
<color name="task_list_item_lien_color">#DBDBDB</color>
<!-- 太保安全键盘 --> <!-- 太保安全键盘 -->
<color name="deepDark">#222222</color> <color name="deepDark">#222222</color>
......
...@@ -44,6 +44,10 @@ ...@@ -44,6 +44,10 @@
<dimen name="inventory_btn_margin_bottom">30dp</dimen> <dimen name="inventory_btn_margin_bottom">30dp</dimen>
<!-- 盘点任务列表页面 --> <!-- 盘点任务列表页面 -->
<dimen name="task_list_margin_top">2dp</dimen>
<dimen name="task_list_margin_bottom">8dp</dimen>
<!-- 盘点任务列表页面 -->
<dimen name="check_task_item_height">35dp</dimen> <dimen name="check_task_item_height">35dp</dimen>
<dimen name="check_task_tab_height">50dp</dimen> <dimen name="check_task_tab_height">50dp</dimen>
<dimen name="check_task_margin_bottom">20dp</dimen> <dimen name="check_task_margin_bottom">20dp</dimen>
......
...@@ -2,4 +2,32 @@ ...@@ -2,4 +2,32 @@
<resources> <resources>
<item name="special_define_set_radio" type="id" /> <item name="special_define_set_radio" type="id" />
<item name="special_define_set_text" type="id" /> <item name="special_define_set_text" type="id" />
<item name="selected_view" type="id"/>
<item type="id" name="parent_id"></item>
<item type="id" name="child_id"></item>
<item type="id" name="bill_item_key"></item>
<item type="id" name="bill_item_pindex"></item>
<item type="id" name="bill_item_mindex"></item>
<item type="id" name="bill_item_index"></item>
<item type="id" name="right_item"></item>
<item type="id" name="bill_column_index"></item>
<item type="id" name="bill_column_code"></item>
<item type="id" name="auto_focus"/>
<item type="id" name="decode"/>
<item type="id" name="decode_failed"/>
<item type="id" name="decode_succeeded"/>
<item type="id" name="encode_failed"/>
<item type="id" name="encode_succeeded"/>
<item type="id" name="launch_product_query"/>
<item type="id" name="quit"/>
<item type="id" name="restart_preview"/>
<item type="id" name="return_scan_result"/>
<item type="id" name="search_book_contents_failed"/>
<item type="id" name="search_book_contents_succeeded"/>
</resources> </resources>
\ No newline at end of file
...@@ -22,6 +22,12 @@ ...@@ -22,6 +22,12 @@
<string name="inventory_count_text" formatted="false">已盘:%d个,总数:%d条,速度:%d个/秒,耗时:%d秒</string> <string name="inventory_count_text" formatted="false">已盘:%d个,总数:%d条,速度:%d个/秒,耗时:%d秒</string>
<string name="inventory_item_epc">资产编码</string> <string name="inventory_item_epc">资产编码</string>
<!-- 后台返回盘点任务列表页面 -->
<string name="task_list_item_name">任务名称</string>
<string name="task_list_item_user">创建人</string>
<string name="task_list_item_dept">创建部门</string>
<string name="task_list_inventory_btn">盘\u3000\点</string>
<!-- 盘点任务列表页面 --> <!-- 盘点任务列表页面 -->
<string name="check_task_item_name">资产名称</string> <string name="check_task_item_name">资产名称</string>
<string name="check_task_item_number">资产编码</string> <string name="check_task_item_number">资产编码</string>
......
...@@ -3,8 +3,12 @@ ...@@ -3,8 +3,12 @@
buildscript { buildscript {
repositories { repositories {
google() google()
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/'}
maven { url'https://maven.aliyun.com/repository/public/' }
maven { url'https://maven.aliyun.com/repository/google/' }
maven { url'https://maven.aliyun.com/repository/jcenter/' }
maven { url'https://maven.aliyun.com/repository/central/' }
jcenter() jcenter()
} }
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:3.5.2' classpath 'com.android.tools.build:gradle:3.5.2'
...@@ -17,8 +21,12 @@ buildscript { ...@@ -17,8 +21,12 @@ buildscript {
allprojects { allprojects {
repositories { repositories {
google() google()
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/'}
maven { url'https://maven.aliyun.com/repository/public/' }
maven { url'https://maven.aliyun.com/repository/google/' }
maven { url'https://maven.aliyun.com/repository/jcenter/' }
maven { url'https://maven.aliyun.com/repository/central/' }
jcenter() jcenter()
} }
} }
......
...@@ -17,4 +17,5 @@ org.gradle.jvmargs=-Xmx1536m ...@@ -17,4 +17,5 @@ org.gradle.jvmargs=-Xmx1536m
android.useAndroidX=true android.useAndroidX=true
# Automatically convert third-party libraries to use AndroidX # Automatically convert third-party libraries to use AndroidX
android.enableJetifier=true android.enableJetifier=true
# SM2
android.jetifier.blacklist=bcprov-jdk15on
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment