@@ -4,10 +4,10 @@ | |||||
<selectionStates> | <selectionStates> | ||||
<SelectionState runConfigName="app"> | <SelectionState runConfigName="app"> | ||||
<option name="selectionMode" value="DROPDOWN" /> | <option name="selectionMode" value="DROPDOWN" /> | ||||
<DropdownSelection timestamp="2024-09-29T02:30:16.584496100Z"> | |||||
<DropdownSelection timestamp="2024-11-13T06:44:01.611004100Z"> | |||||
<Target type="DEFAULT_BOOT"> | <Target type="DEFAULT_BOOT"> | ||||
<handle> | <handle> | ||||
<DeviceId pluginId="Default" identifier="serial=192.168.1.6:5555;connection=26244323" /> | |||||
<DeviceId pluginId="Default" identifier="serial=127.0.0.1:7555;connection=ca7fdfd1" /> | |||||
</handle> | </handle> | ||||
</Target> | </Target> | ||||
</DropdownSelection> | </DropdownSelection> | ||||
@@ -211,4 +211,14 @@ dependencies { | |||||
//选择器 时间 | //选择器 时间 | ||||
implementation 'com.contrarywind:Android-PickerView:3.2.6' | implementation 'com.contrarywind:Android-PickerView:3.2.6' | ||||
//retrofit2网络请求 | |||||
api 'com.squareup.retrofit2:converter-gson:2.5.0' | |||||
api "com.squareup.retrofit2:retrofit:2.5.0" | |||||
api "com.squareup.retrofit2:adapter-rxjava2:2.5.0" | |||||
api "com.squareup.retrofit2:converter-scalars:2.5.0" | |||||
//调试okhttp请求(建议debug使用) | |||||
api 'com.localebro:okhttpprofiler:1.0.8' | |||||
} | } |
@@ -13,7 +13,7 @@ | |||||
"attributes": [], | "attributes": [], | ||||
"versionCode": 111, | "versionCode": 111, | ||||
"versionName": "1.1.1", | "versionName": "1.1.1", | ||||
"outputFile": "boluo-xiaochao-v111-202411091521-release.apk" | |||||
"outputFile": "boluo-xiaochao-v111-202411121114-release.apk" | |||||
} | } | ||||
], | ], | ||||
"elementType": "File" | "elementType": "File" |
@@ -13,6 +13,8 @@ import android.util.Log; | |||||
import androidx.core.content.ContextCompat; | import androidx.core.content.ContextCompat; | ||||
import com.bonait.bnframework.api.ServerManager; | |||||
import com.bonait.bnframework.api.net.HttpUtil; | |||||
import com.bonait.bnframework.business.ConfigData; | import com.bonait.bnframework.business.ConfigData; | ||||
import com.bonait.bnframework.common.constant.ConfigName; | import com.bonait.bnframework.common.constant.ConfigName; | ||||
import com.bonait.bnframework.common.constant.DataBus; | import com.bonait.bnframework.common.constant.DataBus; | ||||
@@ -97,5 +99,6 @@ public class MainApplication extends Application { | |||||
put(4, "444"); | put(4, "444"); | ||||
}}; | }}; | ||||
ThreadManager.get().inti(); | ThreadManager.get().inti(); | ||||
HttpUtil.init(ServerManager.mainUrl); | |||||
} | } | ||||
} | } |
@@ -1,46 +1,28 @@ | |||||
package com.bonait.bnframework.api; | package com.bonait.bnframework.api; | ||||
import com.bonait.bnframework.common.API.APIResultT; | |||||
import com.bonait.bnframework.common.model.GoodsData; | |||||
import com.bonait.bnframework.model.ResResult; | |||||
import com.bonait.bnframework.model.UploadTData; | |||||
import java.util.ArrayList; | |||||
import okhttp3.RequestBody; | |||||
import retrofit2.Call; | import retrofit2.Call; | ||||
import retrofit2.http.GET; | |||||
import retrofit2.http.Body; | |||||
import retrofit2.http.POST; | |||||
import retrofit2.http.Url; | import retrofit2.http.Url; | ||||
/** | /** | ||||
* 接口服务 | * 接口服务 | ||||
*/ | */ | ||||
public interface Api { | public interface Api { | ||||
// /** | |||||
// * 上报日志文件 | |||||
// * | |||||
// * @param url | |||||
// * @param account 账号 | |||||
// * @param device 设备 | |||||
// * @param faultCode 故障代码 | |||||
// * @param sceneCode 场景code | |||||
// * @param serialNo 序列号 | |||||
// * @param file 文件 | |||||
// * @return | |||||
// */ | |||||
// @Multipart | |||||
// @POST | |||||
// Call<BaseResp<String>> upLoadLogFile(@Url String url, | |||||
// @Query("account") String account, | |||||
// @Query("device") String device, | |||||
// @Query("faultCode") String faultCode, | |||||
// @Query("sceneCode") String sceneCode, | |||||
// @Query("serialNo") String serialNo, | |||||
// @Part MultipartBody.Part file); | |||||
/** | /** | ||||
* 获取搜索关键字 | |||||
* | |||||
* @param url | |||||
* @return | |||||
* 上传上传设备日志文件 | |||||
*/ | */ | ||||
@GET | |||||
Call<APIResultT<GoodsData>> getGoodsData(@Url String url); | |||||
@POST | |||||
Call<ResResult<ArrayList<UploadTData>>> uploadDeviceLog(@Url String url, | |||||
@Body RequestBody body); | |||||
} | } |
@@ -1,5 +1,9 @@ | |||||
package com.bonait.bnframework.api; | package com.bonait.bnframework.api; | ||||
import com.apkfuns.logutils.LogUtils; | |||||
import com.bonait.bnframework.model.ResResult; | |||||
import java.net.SocketTimeoutException; | import java.net.SocketTimeoutException; | ||||
import retrofit2.Call; | import retrofit2.Call; | ||||
@@ -7,53 +11,42 @@ import retrofit2.Callback; | |||||
import retrofit2.Response; | import retrofit2.Response; | ||||
/** | /** | ||||
* @author Nov | |||||
* @date 19.11.25 | |||||
*/ | */ | ||||
public class CommonResponse<T> implements Callback<T> { | |||||
/** | |||||
* 服务器请求失败 | |||||
*/ | |||||
public static final int APP_NET_ERROR = 99999; | |||||
/** | |||||
* 服务器请求成功,但是数据返回为空 | |||||
*/ | |||||
public static final int APP_DATA_NULL = 99998; | |||||
public class BaseResponse implements Callback<ResResult> { | |||||
/** | |||||
* 服务器请求成功,但是数据返回错误 | |||||
*/ | |||||
public static final int APP_DATA_ERROR = 99997; | |||||
/** | /** | ||||
* 回调 | * 回调 | ||||
*/ | */ | ||||
private IHttpCallBack callback; | private IHttpCallBack callback; | ||||
public CommonResponse(IHttpCallBack callback) { | |||||
public BaseResponse(IHttpCallBack callback) { | |||||
this.callback = callback; | this.callback = callback; | ||||
} | } | ||||
@Override | @Override | ||||
public void onResponse(Call<T> call, Response<T> response) { | |||||
T data = response.body(); | |||||
public void onResponse(Call<ResResult> call, Response<ResResult> response) { | |||||
ResResult body = response.body(); | |||||
if (null == response) { | if (null == response) { | ||||
callError("response=null", APP_DATA_ERROR, "response =null"); | |||||
callError("response=null", Constant.APP_DATA_ERROR, "response =null"); | |||||
return; | return; | ||||
} | } | ||||
if (null == data) { | |||||
callError("data=null", APP_DATA_ERROR, response.message()); | |||||
if (null == body) { | |||||
callError("body=null", Constant.APP_DATA_ERROR, response.message()); | |||||
return; | return; | ||||
} | } | ||||
callSuccess(data); | |||||
if (body.getStatusCode() != Constant.CMS_STATUS_OK) { | |||||
callError("code!=200", body.getStatusCode(), body.getErrors()); | |||||
return; | |||||
} | |||||
callSuccess( body.getData()); | |||||
} | } | ||||
@Override | @Override | ||||
public void onFailure(Call<T> call, Throwable t) { | |||||
//LogUtils.d("接口出错....."+t.getMessage() + " "+call.request().url()); | |||||
callFail(APP_NET_ERROR, t); | |||||
public void onFailure(Call<ResResult> call, Throwable t) { | |||||
LogUtils.d("接口出错....."+t.getMessage() + " "+call.request().url()); | |||||
callFail(Constant.APP_NET_ERROR, t); | |||||
} | } | ||||
@@ -64,13 +57,14 @@ public class CommonResponse<T> implements Callback<T> { | |||||
* @param e | * @param e | ||||
*/ | */ | ||||
private void callFail(final int code, final Throwable e) { | private void callFail(final int code, final Throwable e) { | ||||
if (null == callback) { | if (null == callback) { | ||||
return; | return; | ||||
} | } | ||||
if (e instanceof SocketTimeoutException) { | if (e instanceof SocketTimeoutException) { | ||||
callback.onFailed(code, e, "请求超时"); | callback.onFailed(code, e, "请求超时"); | ||||
} else { | } else { | ||||
callback.onFailed(code, e, "接口请求错误"); | |||||
callback.onFailed(code, e, "接口请求错误,请检查网络"); | |||||
} | } | ||||
e.printStackTrace(); | e.printStackTrace(); | ||||
@@ -88,7 +82,7 @@ public class CommonResponse<T> implements Callback<T> { | |||||
return; | return; | ||||
} | } | ||||
//LogUtils.d("请求数据处理错误....."); | //LogUtils.d("请求数据处理错误....."); | ||||
callback.onError(code); | |||||
callback.onError(code,msg); | |||||
reportErrorInfo(code + "", msg); | reportErrorInfo(code + "", msg); | ||||
} | } | ||||
@@ -0,0 +1,130 @@ | |||||
package com.bonait.bnframework.api; | |||||
import com.apkfuns.logutils.LogUtils; | |||||
import com.bonait.bnframework.model.ResResult; | |||||
import com.bonait.bnframework.model.UploadTData; | |||||
import java.net.SocketTimeoutException; | |||||
import java.util.List; | |||||
import retrofit2.Call; | |||||
import retrofit2.Callback; | |||||
import retrofit2.Response; | |||||
/** | |||||
*/ | |||||
public class BaseUpResponse implements Callback<ResResult> { | |||||
/** | |||||
* 回调 | |||||
*/ | |||||
private IHttpCallBack callback; | |||||
public BaseUpResponse(IHttpCallBack callback) { | |||||
this.callback = callback; | |||||
} | |||||
@Override | |||||
public void onResponse(Call<ResResult> call, Response<ResResult> response) { | |||||
ResResult body = response.body(); | |||||
if (null == response) { | |||||
callError("response=null", Constant.APP_DATA_ERROR, "response =null"); | |||||
return; | |||||
} | |||||
if (null == body) { | |||||
callError("body=null", Constant.APP_DATA_ERROR, response.message()); | |||||
return; | |||||
} | |||||
if (body.getStatusCode() != Constant.CMS_STATUS_OK) { | |||||
callError("code!=200", body.getStatusCode(), body.getErrors()); | |||||
return; | |||||
} | |||||
if(body.getData()!=null){ | |||||
List<UploadTData> data = (List<UploadTData>) body.getData(); | |||||
StringBuilder desc = new StringBuilder(); | |||||
if(data!=null && !data.isEmpty()){ | |||||
for(UploadTData bean:data){ | |||||
if(bean.code!=30000){ | |||||
desc.append("{").append(bean.getCode()).append(bean.getMessage()).append("[").append(bean.getName()).append("]}"); | |||||
} | |||||
} | |||||
if(desc.length()>0){ | |||||
callError("",body.statusCode,desc.toString()); | |||||
return; | |||||
} | |||||
} | |||||
} | |||||
callSuccess( body.getData()); | |||||
} | |||||
@Override | |||||
public void onFailure(Call<ResResult> call, Throwable t) { | |||||
LogUtils.d("接口出错....."+t.getMessage() + " "+call.request().url()); | |||||
callFail(Constant.APP_NET_ERROR, t); | |||||
} | |||||
/** | |||||
* 回调失败 | |||||
* | |||||
* @param code | |||||
* @param e | |||||
*/ | |||||
private void callFail(final int code, final Throwable e) { | |||||
if (null == callback) { | |||||
return; | |||||
} | |||||
if (e instanceof SocketTimeoutException) { | |||||
callback.onFailed(code, e, "请求超时"); | |||||
} else { | |||||
callback.onFailed(code, e, "接口请求错误,请检查网络"); | |||||
} | |||||
e.printStackTrace(); | |||||
reportErrorInfo(code + "", e.getMessage()); | |||||
} | |||||
/** | |||||
* 回调错误 | |||||
* | |||||
* @param code | |||||
*/ | |||||
private void callError(String type, final int code, String msg) { | |||||
if (null == callback) { | |||||
return; | |||||
} | |||||
//LogUtils.d("请求数据处理错误....."); | |||||
callback.onError(code,msg); | |||||
reportErrorInfo(code + "", msg); | |||||
} | |||||
/** | |||||
* 回调成功 | |||||
* | |||||
* @param t | |||||
*/ | |||||
private void callSuccess(final Object t) { | |||||
if (null == callback) { | |||||
return; | |||||
} | |||||
callback.onSuccess(t); | |||||
} | |||||
/** | |||||
* 上报错误信息 | |||||
* | |||||
* @param code | |||||
* @param description | |||||
*/ | |||||
private void reportErrorInfo(String code, String description) { | |||||
} | |||||
} |
@@ -0,0 +1,40 @@ | |||||
package com.bonait.bnframework.api; | |||||
/** | |||||
* @author Nov | |||||
* @date 19.11.25 | |||||
* 常量类 | |||||
*/ | |||||
public class Constant { | |||||
/** | |||||
* 服务器请求失败 | |||||
*/ | |||||
public static final int APP_NET_ERROR = 99999; | |||||
/** | |||||
* 服务器请求成功,但是数据返回为空 | |||||
*/ | |||||
public static final int APP_DATA_NULL = 99998; | |||||
/** | |||||
* 服务器请求成功,但是数据返回错误 | |||||
*/ | |||||
public static final int APP_DATA_ERROR = 99997; | |||||
/** | |||||
* 服务器请求成功,但是HTTP响应状态码异常 | |||||
*/ | |||||
public static final int APP_HTTP_STATUS_CODE_EXCEPTION = 99996; | |||||
/*******************桌面平台******************/ | |||||
public static final int DP_STATUS_OK = 1; | |||||
/*******************cms******************/ | |||||
/** | |||||
* 操作成功 | |||||
*/ | |||||
public static final int CMS_STATUS_OK = 200; | |||||
} |
@@ -17,7 +17,7 @@ public interface IHttpCallBack<T> { | |||||
* | * | ||||
* @param failCode 失败原因Code 非法请求:ServerUtil.CODE_FAIL_ILLEGAL;其它失败:ServerUtil.CODE_FAIL; 等 | * @param failCode 失败原因Code 非法请求:ServerUtil.CODE_FAIL_ILLEGAL;其它失败:ServerUtil.CODE_FAIL; 等 | ||||
*/ | */ | ||||
public void onError(int failCode); | |||||
public void onError(int failCode,String msg); | |||||
/** | /** | ||||
* Http请求失败 | * Http请求失败 | ||||
@@ -1,12 +1,21 @@ | |||||
package com.bonait.bnframework.api; | package com.bonait.bnframework.api; | ||||
import android.content.Context; | |||||
import com.bonait.bnframework.MainApplication; | |||||
import com.bonait.bnframework.api.net.HttpUtil; | |||||
import com.bonait.bnframework.business.RecordManager; | |||||
import com.bonait.bnframework.common.constant.ConfigName; | import com.bonait.bnframework.common.constant.ConfigName; | ||||
import com.bonait.bnframework.common.model.GoodsData; | |||||
import com.bonait.bnframework.common.model.upload.UploadRes; | |||||
import com.bonait.bnframework.common.db.file.DBHelper; | |||||
import com.bonait.bnframework.common.db.mode.BPA_ALERTLOG; | |||||
import com.bonait.bnframework.common.db.mode.BPA_LOG_RECORD; | |||||
import com.bonait.bnframework.common.utils.PreferenceUtils; | |||||
import com.bonait.bnframework.ui.widget.NewToastUtil; | |||||
import com.bonait.bnframework.ui.widget.WaitProcessUtil; | |||||
import java.util.ArrayList; | |||||
import java.util.List; | |||||
import java.util.Map; | |||||
import java.io.File; | |||||
import java.text.SimpleDateFormat; | |||||
import java.util.Date; | |||||
import okhttp3.MediaType; | import okhttp3.MediaType; | ||||
import okhttp3.MultipartBody; | import okhttp3.MultipartBody; | ||||
@@ -15,42 +24,81 @@ import retrofit2.Call; | |||||
public class ServerManager { | public class ServerManager { | ||||
public static final String mainUrl = "https://cfv.black-pa.com/"; | |||||
/** | /** | ||||
* 热搜 | |||||
* | |||||
* @param callback | |||||
* 上传日志文件 | |||||
*/ | */ | ||||
public static void getGoodsData(IHttpCallBack<GoodsData> callback) { | |||||
String url = "https://cfv.black-pa.com/kitchbase"+"/api/goods/Getdevicegoods?deviceId="+ ConfigName.getInstance().DeviceAutoKey; | |||||
Call call = HttpUtil.getService(Api.class).getGoodsData(url); | |||||
comEnqueue(call, callback); | |||||
public static void uploadDeviceLog(File file,IHttpCallBack<Object> callback) { | |||||
String url = mainUrl + "saasbase/api/ExternalPlatform/Device/uploadDeviceLog"; | |||||
RecordManager.getInstance().addLogRecord("上传日志","上传日志文件"+url+" filename:"+file.getName()); | |||||
RequestBody body = new MultipartBody.Builder().setType(MultipartBody.FORM) | |||||
.addFormDataPart("formFile", ConfigName.getInstance().versionSelectionEnum+"-"+ | |||||
ConfigName.getInstance().DeviceAutoKey+"-"+file.getName()+"-"+ | |||||
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()), | |||||
RequestBody.create(MediaType.parse("application/octet-stream"),file)) | |||||
.build(); | |||||
Call call = HttpUtil.getService(Api.class).uploadDeviceLog(url,body); | |||||
resUpEnqueue(call, callback); | |||||
} | |||||
public static void uploadDeviceLog(Context context ,File file,boolean showTip){ | |||||
if(!file.exists()){ | |||||
NewToastUtil.getInstance().showToastError("日志文件不存在!"); | |||||
return; | |||||
} | |||||
if(showTip && context!=null){ | |||||
WaitProcessUtil.getInstance().show(context,"请稍等","正在上传文件,请耐心等待..."); | |||||
} | |||||
ServerManager.uploadDeviceLog(file,new IHttpCallBack<Object>() { | |||||
@Override | |||||
public void onSuccess(Object responseData) { | |||||
PreferenceUtils.setInt(ConfigName.SHARE_KEY_loginNum,1); | |||||
DBHelper.getInstance(MainApplication.getContext()).DeleteCreateTables(BPA_LOG_RECORD.class,null); | |||||
DBHelper.getInstance(MainApplication.getContext()).DeleteCreateTables(BPA_ALERTLOG.class,null); | |||||
NewToastUtil.getInstance().showToast("上传文件成功"); | |||||
RecordManager.getInstance().addLogRecord("上传日志","上传文件成功"); | |||||
if(showTip){ | |||||
WaitProcessUtil.getInstance().dismiss(); | |||||
} | |||||
} | |||||
@Override | |||||
public void onError(int failCode,String msg) { | |||||
NewToastUtil.getInstance().showToast("上传文件失败 "+msg); | |||||
RecordManager.getInstance().addLogRecord("上传日志","上传文件失败 "+failCode+" "+msg); | |||||
if(showTip){ | |||||
WaitProcessUtil.getInstance().dismiss(); | |||||
} | |||||
} | |||||
@Override | |||||
public void onFailed(int failCode, Throwable throwable, String message) { | |||||
NewToastUtil.getInstance().showToast("上传文件失败"); | |||||
RecordManager.getInstance().addLogRecord("上传日志","上传文件失败 "+failCode+" "+message); | |||||
if(showTip){ | |||||
WaitProcessUtil.getInstance().dismiss(); | |||||
} | |||||
} | |||||
}); | |||||
} | } | ||||
/** | /** | ||||
* 获取消息数据 | |||||
* | |||||
* @param device 设备 | |||||
* @param faultCode 故障代码 | |||||
* @param sceneCode 场景code | |||||
* @param file 文件 | |||||
* @param callback | |||||
* @param call | |||||
* @param callBack | |||||
*/ | */ | ||||
public static void upLoadLogFile(String device, String faultCode, String sceneCode, MultipartBody.Part file, IHttpCallBack<UploadRes<String>> callback) { | |||||
// String url = "/logfile/upload"; | |||||
// Call<UploadRes<String>> call = HttpUtil.getService(Api.class).upLoadLogFile(url, itvName, device, faultCode, sceneCode, serialNo, file); | |||||
// CommonResponse<UploadRes<String>> response = new CommonResponse<>(callback); | |||||
// call.enqueue(response); | |||||
private static void resUpEnqueue(Call call, IHttpCallBack callBack) { | |||||
BaseUpResponse response = new BaseUpResponse(callBack); | |||||
call.enqueue(response); | |||||
} | } | ||||
/** | /** | ||||
* >>>>>>> .merge_file_a00276 | |||||
* cms同步请求 | |||||
* | |||||
* @param call | * @param call | ||||
* @param callBack | * @param callBack | ||||
*/ | */ | ||||
private static void comEnqueue(Call call, IHttpCallBack callBack) { | |||||
CommonResponse hrh = new CommonResponse(callBack); | |||||
call.enqueue(hrh); | |||||
private static void resEnqueue(Call call, IHttpCallBack callBack) { | |||||
BaseResponse response = new BaseResponse(callBack); | |||||
call.enqueue(response); | |||||
} | } | ||||
} | } |
@@ -1,51 +0,0 @@ | |||||
//package com.amt.module_common.net.interceptor | |||||
// | |||||
//import okhttp3.* | |||||
// | |||||
///** | |||||
// * @author Nov | |||||
// * @date 23.11.23 | |||||
// */ | |||||
//class AccountSNInterceptor : Interceptor { | |||||
// override fun intercept(chain: Interceptor.Chain): Response { | |||||
// val request = addAccountSN(chain.request()) | |||||
// return chain.proceed(request) | |||||
// } | |||||
// | |||||
// /** | |||||
// * 添加公共字段 | |||||
// */ | |||||
// private fun addAccountSN(request: Request): Request { | |||||
// val oldRequest: Request = request //旧连接LoginActivity | |||||
// var newRequest: Request //添加公共参数后的新连接 | |||||
// val method = oldRequest.method() | |||||
// if (method.equals("GET")) { | |||||
// var httpUrl = oldRequest.url() | |||||
// httpUrl = httpUrl.newBuilder() | |||||
//// .addEncodedQueryParameter("publicParamsSN", LocalDataManager.sn()) | |||||
// .build() | |||||
// newRequest = oldRequest.newBuilder().url(httpUrl).build() | |||||
// } else if (method.equals("POST")) { | |||||
// val oldBody = oldRequest.body() | |||||
// newRequest = oldRequest | |||||
// oldBody?.let { | |||||
// newRequest = if (it is FormBody) { | |||||
// val newBody = FormBody.Builder() | |||||
//// newBody.addEncoded("publicParamsAccount", LocalDataManager.userId()) | |||||
// if (it.contentLength() > 0) { | |||||
// val formBody1 = it | |||||
// for (i in 0 until formBody1.size()) { | |||||
// newBody.addEncoded(formBody1.encodedName(i), formBody1.encodedValue(i)) | |||||
// } | |||||
// } | |||||
// oldRequest.newBuilder().post(newBody.build()).build() | |||||
// } else { | |||||
// oldRequest | |||||
// } | |||||
// } | |||||
// } else { | |||||
// newRequest = oldRequest | |||||
// } | |||||
// return newRequest | |||||
// } | |||||
//} |
@@ -1,21 +0,0 @@ | |||||
package com.bonait.bnframework.api.interceptor; | |||||
import java.io.IOException; | |||||
import okhttp3.Interceptor; | |||||
import okhttp3.Request; | |||||
import okhttp3.Response; | |||||
/** | |||||
* 请求拦截器,修改请求header | |||||
* | |||||
* @author: wx | |||||
* @date: 2022/12/21 | |||||
*/ | |||||
public class RequestInterceptor implements Interceptor { | |||||
@Override | |||||
public Response intercept(Chain chain) throws IOException { | |||||
Request request = chain.request().newBuilder().addHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8").build(); | |||||
return chain.proceed(request); | |||||
} | |||||
} |
@@ -1,73 +0,0 @@ | |||||
package com.bonait.bnframework.api.interceptor; | |||||
import android.text.TextUtils; | |||||
import android.util.Base64; | |||||
import com.google.gson.JsonObject; | |||||
import java.io.IOException; | |||||
import java.util.HashMap; | |||||
import java.util.Map; | |||||
import okhttp3.Interceptor; | |||||
import okhttp3.Request; | |||||
import okhttp3.Response; | |||||
/** | |||||
* 系统属性 | |||||
* | |||||
* @author: wx | |||||
* @date: 2023/2/23 | |||||
*/ | |||||
public class StbInfoInterceptor implements Interceptor { | |||||
@Override | |||||
public Response intercept(Chain chain) throws IOException { | |||||
JsonObject jb = new JsonObject(); | |||||
// try { | |||||
// if (DataSaveUtil.Companion.getInstance().decodeBoolean(SpConfig.SP_KEY_USER_IS_LOGIN)) { | |||||
// jb.addProperty("account", LocalDataManager.INSTANCE.userId()); | |||||
// }else { | |||||
// jb.addProperty("account", ""); | |||||
// } | |||||
// jb.addProperty("areaCode", LocalDataManager.INSTANCE.areaId()); | |||||
// jb.addProperty("groupCode", LocalDataManager.INSTANCE.userGroup()); | |||||
// jb.addProperty("liveGroup", LocalDataManager.INSTANCE.liveGroup()); | |||||
// jb.addProperty("manufacturer", LocalDataManager.INSTANCE.manufacturer()); | |||||
// jb.addProperty("model", LocalDataManager.INSTANCE.model()); | |||||
// jb.addProperty("mac", LocalDataManager.INSTANCE.mac()); | |||||
// jb.addProperty("softVersion", LocalDataManager.INSTANCE.softVersion()); | |||||
// jb.addProperty("hardVersion", LocalDataManager.INSTANCE.hardware()); | |||||
// jb.addProperty("apkVersion", AppUtil.INSTANCE.getVersionCode()); | |||||
// LogUtil.d("stbInfo:" + jb); | |||||
// } catch (Exception e) { | |||||
// e.printStackTrace(); | |||||
// } | |||||
byte[] datas = jb.toString().getBytes("UTF-8"); | |||||
String base64String = Base64.encodeToString(datas, Base64.DEFAULT); | |||||
String base64String1 = encodeHeadInfo(base64String); | |||||
Request request = chain.request().newBuilder() | |||||
// .addHeader("stbInfo", base64String1) | |||||
.build(); | |||||
return chain.proceed(request); | |||||
} | |||||
/** | |||||
* 过滤特殊符号 | |||||
* | |||||
* @param headInfo | |||||
* @return | |||||
*/ | |||||
private String encodeHeadInfo(String headInfo) { | |||||
StringBuffer stringBuffer = new StringBuffer(); | |||||
for (int i = 0, length = headInfo.length(); i < length; i++) { | |||||
char c = headInfo.charAt(i); | |||||
if (c <= '\u001f' || c >= '\u007f') { | |||||
stringBuffer.append(String.format("", (int) c)); | |||||
} else { | |||||
stringBuffer.append(c); | |||||
} | |||||
} | |||||
return stringBuffer.toString(); | |||||
} | |||||
} |
@@ -1,9 +1,8 @@ | |||||
package com.bonait.bnframework.api; | |||||
package com.bonait.bnframework.api.net; | |||||
import com.bonait.bnframework.BuildConfig; | import com.bonait.bnframework.BuildConfig; | ||||
import com.bonait.bnframework.api.interceptor.ConnectRetryInterceptor; | |||||
import com.bonait.bnframework.api.interceptor.RequestInterceptor; | |||||
import com.bonait.bnframework.api.interceptor.StbInfoInterceptor; | |||||
import com.bonait.bnframework.api.net.interceptor.ConnectRetryInterceptor; | |||||
import com.bonait.bnframework.api.net.interceptor.RequestInterceptor; | |||||
import com.google.gson.GsonBuilder; | import com.google.gson.GsonBuilder; | ||||
import com.localebro.okhttpprofiler.OkHttpProfilerInterceptor; | import com.localebro.okhttpprofiler.OkHttpProfilerInterceptor; | ||||
@@ -42,8 +41,7 @@ public class HttpUtil { | |||||
.readTimeout(10, TimeUnit.SECONDS) | .readTimeout(10, TimeUnit.SECONDS) | ||||
.writeTimeout(10, TimeUnit.SECONDS); | .writeTimeout(10, TimeUnit.SECONDS); | ||||
//过多的打印会导致盒子io异常 | |||||
builderOk.addInterceptor(new RequestInterceptor()); | |||||
builderOk.addInterceptor(new RequestInterceptor()); | |||||
// if (Config.isShowHttpLog) { | // if (Config.isShowHttpLog) { | ||||
builderOk.addInterceptor(new HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY)); | builderOk.addInterceptor(new HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY)); | ||||
// } else { | // } else { | ||||
@@ -54,8 +52,6 @@ public class HttpUtil { | |||||
builderOk.addInterceptor(new OkHttpProfilerInterceptor()); | builderOk.addInterceptor(new OkHttpProfilerInterceptor()); | ||||
} | } | ||||
builderOk.addInterceptor(new ConnectRetryInterceptor(3)); | builderOk.addInterceptor(new ConnectRetryInterceptor(3)); | ||||
// builderOk.addInterceptor(new StbInfoInterceptor()); | |||||
// builderOk.addInterceptor(new AccountSNInterceptor()); | |||||
OkHttpClient okHttpClient = builderOk.connectionPool(new ConnectionPool()).build(); | OkHttpClient okHttpClient = builderOk.connectionPool(new ConnectionPool()).build(); | ||||
builder.client(okHttpClient); | builder.client(okHttpClient); | ||||
mRetrofit = builder.build(); | mRetrofit = builder.build(); |
@@ -1,7 +1,9 @@ | |||||
package com.bonait.bnframework.api.interceptor; | |||||
package com.bonait.bnframework.api.net.interceptor; | |||||
import org.greenrobot.eventbus.EventBus; | |||||
import com.bonait.bnframework.ui.widget.NewToastUtil; | |||||
import org.jetbrains.annotations.NotNull; | import org.jetbrains.annotations.NotNull; | ||||
import java.io.IOException; | import java.io.IOException; | ||||
@@ -15,9 +17,6 @@ import okhttp3.Response; | |||||
/** | /** | ||||
* 网络请求重试拦截器 | * 网络请求重试拦截器 | ||||
* | |||||
* @author: wx | |||||
* @date: 2022/12/21 | |||||
*/ | */ | ||||
public class ConnectRetryInterceptor implements Interceptor { | public class ConnectRetryInterceptor implements Interceptor { | ||||
// 最大重试次数 | // 最大重试次数 | ||||
@@ -61,9 +60,10 @@ public class ConnectRetryInterceptor implements Interceptor { | |||||
} | } | ||||
} | } | ||||
//连续3次请求错误 | //连续3次请求错误 | ||||
// if(failTimeList.size() >=3){ | |||||
if(failTimeList.size() >=3){ | |||||
// EventBus.getDefault().post(new EventBusMessage(EventBusType.FETCH_FAULT_DETECT,0)); | // EventBus.getDefault().post(new EventBusMessage(EventBusType.FETCH_FAULT_DETECT,0)); | ||||
// } | |||||
// NewToastUtil.getInstance().showToastError("接口连接失败"); | |||||
} | |||||
} else { | } else { | ||||
failTimeList.add(curTimeMillis); | failTimeList.add(curTimeMillis); | ||||
} | } |
@@ -0,0 +1,24 @@ | |||||
package com.bonait.bnframework.api.net.interceptor; | |||||
import com.bonait.bnframework.ui.viewmodel.UpdateDataService; | |||||
import java.io.IOException; | |||||
import okhttp3.Interceptor; | |||||
import okhttp3.Request; | |||||
import okhttp3.Response; | |||||
/** | |||||
* 请求拦截器,修改请求header | |||||
*/ | |||||
public class RequestInterceptor implements Interceptor { | |||||
@Override | |||||
public Response intercept(Chain chain) throws IOException { | |||||
Request request = chain.request().newBuilder() | |||||
.addHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8") | |||||
.addHeader("key", UpdateDataService.key) | |||||
.build(); | |||||
return chain.proceed(request); | |||||
} | |||||
} |
@@ -422,62 +422,62 @@ public class ConfigData { | |||||
} | } | ||||
} | } | ||||
public void GetMainConsoleData(){ | |||||
String url = "http://" + ConfigName.getInstance().MainAddress+":35000/api/GetMainConsoleData"; | |||||
OkGo.<String>post(url).tag(this).execute(new StringCallback() { | |||||
@Override | |||||
public void onSuccess(Response<String> response) { | |||||
ConfigData.getInstance().GoodsSync(response.body()); | |||||
} | |||||
@Override | |||||
public void onError(Response<String> val){ | |||||
ToastUtils.info("获取主控数据失败!","Failed to obtain the main control data!"); | |||||
} | |||||
}); | |||||
} | |||||
public boolean GoodsSync(String goods){ | |||||
try{ | |||||
ReceiveData rd = new Gson().fromJson(goods, ReceiveData.class); | |||||
DBHelper.getInstance(MainApplication.getContext()).DeleteCreateTables(BPA_GOODS.class,null); | |||||
DBListDataUtil.addGOODSList(rd.goods); | |||||
DBHelper.getInstance(MainApplication.getContext()).DeleteCreateTables(BPA_GOODS_CLASSIFY.class,null); | |||||
PropClassifyDBUtil.addList(rd.classifies); | |||||
DBHelper.getInstance(MainApplication.getContext()).DeleteCreateTables(BPA_ATTRIBUTE.class,null); | |||||
AttributeDBUtil.addList(rd.attributes); | |||||
DBHelper.getInstance(MainApplication.getContext()).DeleteCreateTables(BPA_SUBATTRIBUTE.class,null); | |||||
SubAttributeDBUtil.addList(rd.subattributes); | |||||
DBHelper.getInstance(MainApplication.getContext()).DeleteCreateTables(BPA_GOODS_SUBATTRIBUTE_GROUP.class,null); | |||||
SubAttributeGroupDBUtil.addList(rd.groups); | |||||
DBHelper.getInstance(MainApplication.getContext()).DeleteCreateTables(BPA_MATERIAL.class,"id"); | |||||
DBListDataUtil.addMATERIALList(rd.material); | |||||
DBHelper.getInstance(MainApplication.getContext()).DeleteCreateTables(BPA_GOODS_PROCESS_DETAIL.class,null); | |||||
GoodsProcessDetailDBUtil.addList(rd.goodsrecipes); | |||||
DBHelper.getInstance(MainApplication.getContext()).DeleteCreateTables(BPA_PROCESS.class,null); | |||||
DBListDataUtil.addPROCESSList(rd.processes); | |||||
DBHelper.getInstance(MainApplication.getContext()).DeleteCreateTables(BPA_PROCESSModel.class,null); | |||||
DBListDataUtil.addPROCESSModelList(rd.processModels); | |||||
ToastUtils.info("接收主控数据成功!","The master control data is received successfully!"); | |||||
EventBus.getDefault().post(new DownGoodsEvent()); | |||||
return true; | |||||
}catch (Exception ex){ | |||||
// MessageLog.ShowError("解析数据失败!,"+ex.getMessage()); | |||||
ToastUtils.info("解析数据失败!,"+ex.getMessage(),"Parsing failure!,"+ex.getMessage()); | |||||
return false; | |||||
} | |||||
} | |||||
// public void GetMainConsoleData(){ | |||||
// String url = "http://" + ConfigName.getInstance().MainAddress+":35000/api/GetMainConsoleData"; | |||||
// OkGo.<String>post(url).tag(this).execute(new StringCallback() { | |||||
// @Override | |||||
// public void onSuccess(Response<String> response) { | |||||
// ConfigData.getInstance().GoodsSync(response.body()); | |||||
// } | |||||
// | |||||
// @Override | |||||
// public void onError(Response<String> val){ | |||||
// ToastUtils.info("获取主控数据失败!","Failed to obtain the main control data!"); | |||||
// } | |||||
// }); | |||||
// } | |||||
// | |||||
// public boolean GoodsSync(String goods){ | |||||
// try{ | |||||
// ReceiveData rd = new Gson().fromJson(goods, ReceiveData.class); | |||||
// | |||||
// DBHelper.getInstance(MainApplication.getContext()).DeleteCreateTables(BPA_GOODS.class,null); | |||||
// DBListDataUtil.addGOODSList(rd.goods); | |||||
// | |||||
// DBHelper.getInstance(MainApplication.getContext()).DeleteCreateTables(BPA_GOODS_CLASSIFY.class,null); | |||||
// PropClassifyDBUtil.addList(rd.classifies); | |||||
// | |||||
// DBHelper.getInstance(MainApplication.getContext()).DeleteCreateTables(BPA_ATTRIBUTE.class,null); | |||||
// AttributeDBUtil.addList(rd.attributes); | |||||
// | |||||
// DBHelper.getInstance(MainApplication.getContext()).DeleteCreateTables(BPA_SUBATTRIBUTE.class,null); | |||||
// SubAttributeDBUtil.addList(rd.subattributes); | |||||
// | |||||
// DBHelper.getInstance(MainApplication.getContext()).DeleteCreateTables(BPA_GOODS_SUBATTRIBUTE_GROUP.class,null); | |||||
// SubAttributeGroupDBUtil.addList(rd.groups); | |||||
// | |||||
// DBHelper.getInstance(MainApplication.getContext()).DeleteCreateTables(BPA_MATERIAL.class,"id"); | |||||
// DBListDataUtil.addMATERIALList(rd.material); | |||||
// | |||||
// DBHelper.getInstance(MainApplication.getContext()).DeleteCreateTables(BPA_GOODS_PROCESS_DETAIL.class,null); | |||||
// GoodsProcessDetailDBUtil.addList(rd.goodsrecipes); | |||||
// | |||||
// DBHelper.getInstance(MainApplication.getContext()).DeleteCreateTables(BPA_PROCESS.class,null); | |||||
// DBListDataUtil.addPROCESSList(rd.processes); | |||||
// | |||||
// | |||||
// DBHelper.getInstance(MainApplication.getContext()).DeleteCreateTables(BPA_PROCESSModel.class,null); | |||||
// DBListDataUtil.addPROCESSModelList(rd.processModels); | |||||
// | |||||
// ToastUtils.info("接收主控数据成功!","The master control data is received successfully!"); | |||||
// EventBus.getDefault().post(new DownGoodsEvent()); | |||||
// return true; | |||||
// }catch (Exception ex){ | |||||
//// MessageLog.ShowError("解析数据失败!,"+ex.getMessage()); | |||||
// ToastUtils.info("解析数据失败!,"+ex.getMessage(),"Parsing failure!,"+ex.getMessage()); | |||||
// return false; | |||||
// } | |||||
// } | |||||
/** | /** | ||||
* 获取组织信息 | * 获取组织信息 | ||||
@@ -520,176 +520,6 @@ public class ConfigData { | |||||
}*/ | }*/ | ||||
} | } | ||||
/** | |||||
* 同步云端数据 | |||||
*/ | |||||
public void SyncDataInTheCloud(Context context, Handler mHandler) { | |||||
if (NetworkUtils.checkNetworkAvailable(context)) { | |||||
//region 拉取物料数据 | |||||
if (ConfigName.getInstance().organizeMode == null) { | |||||
return; | |||||
} | |||||
OkGo.<ResAPI<ResALLData>>get(String.format(ConfigName.getInstance().SaasAddress + ConfigName.getInstance().GetBaseDataModel, ConfigName.getInstance().organizeMode.id, ConfigName.getInstance().DeviceAutoKey)).tag(context).headers(new HttpHeaders("TenantId", ConfigName.getInstance().organizeMode.companyId)).execute(new JsonDialogCallback<ResAPI<ResALLData>>(context) { | |||||
@Override | |||||
public void onSuccess(Response<ResAPI<ResALLData>> response) { | |||||
ResAPI<ResALLData> allDataResAPI = response.body(); | |||||
if (allDataResAPI.succeeded && allDataResAPI.data != null) { | |||||
BPA_CLOUDDATA data = new BPA_CLOUDDATA(); | |||||
ConfigName.getInstance().cloudData = allDataResAPI.data; | |||||
ArrayList<BPA_CLOUDDATA> cloudList = new ArrayList<>(); | |||||
ArrayList<BPA_MATERIAL> materials = new ArrayList<>(); | |||||
DBHelper.getInstance(MainApplication.getContext()).DeleteCreateTables(BPA_MATERIAL.class,null); | |||||
DBHelper.getInstance(MainApplication.getContext()).DeleteCreateTables(BPA_CLOUDDATA.class,null); | |||||
//region 物料管理 | |||||
List<BatchingInfo> bayc = allDataResAPI.data.batchingInfo; | |||||
if (allDataResAPI.data.batchingInfo != null) { | |||||
data = new BPA_CLOUDDATA(); | |||||
data.id = java.util.UUID.randomUUID().toString(); | |||||
data.name = "物料集合"; | |||||
data.text = new Gson().toJson(bayc); | |||||
cloudList.add(data); | |||||
Integer I = 0; | |||||
for (BatchingInfo item : bayc) { | |||||
BPA_MATERIAL bpa_material = new BPA_MATERIAL(); | |||||
bpa_material.id = item.id; | |||||
bpa_material.name = item.batching_Name; | |||||
bpa_material.imgUrl = ""; | |||||
bpa_material.createTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(new Date().getTime() + I * 1000)); | |||||
bpa_material.deviceID = ConfigName.getInstance().DeviceId; | |||||
bpa_material.userID = ConfigName.getInstance().user.userID; | |||||
materials.add(bpa_material); | |||||
I++; | |||||
} | |||||
} | |||||
DBListDataUtil.addMATERIALList(materials); | |||||
//endregion | |||||
//region 工艺模型 | |||||
if (allDataResAPI.data.goodsTechnology != null) { | |||||
data = new BPA_CLOUDDATA(); | |||||
data.id = java.util.UUID.randomUUID().toString(); | |||||
data.name = "工艺模型"; | |||||
data.text = new Gson().toJson(allDataResAPI.data.goodsTechnology); | |||||
cloudList.add(data); | |||||
DBHelper.getInstance(MainApplication.getContext()).DeleteCreateTables(BPA_PROCESS.class,null); | |||||
List<BPA_PROCESS> processes = new ArrayList<>(); | |||||
Integer I = 0; | |||||
for (GoodsTechnology item : allDataResAPI.data.goodsTechnology) { | |||||
BPA_PROCESS bpa_process = new BPA_PROCESS(); | |||||
bpa_process.id = item.id; | |||||
bpa_process.name = item.name; | |||||
bpa_process.createTime = item.createAt; | |||||
bpa_process.sort = I; | |||||
processes.add(bpa_process); | |||||
I++; | |||||
} | |||||
DBListDataUtil.addPROCESSList(processes); | |||||
} | |||||
//endregion | |||||
//region 工艺模型详细信息 | |||||
if (allDataResAPI.data.technologyAction != null) { | |||||
data = new BPA_CLOUDDATA(); | |||||
data.id = java.util.UUID.randomUUID().toString(); | |||||
data.name = "工艺模型详细信息"; | |||||
data.text = new Gson().toJson(allDataResAPI.data.technologyAction); | |||||
cloudList.add(data); | |||||
DBHelper.getInstance(MainApplication.getContext()).DeleteCreateTables(BPA_PROCESSModel.class,null); | |||||
List<BPA_PROCESSModel> models = new ArrayList<>(); | |||||
for (TechnologyAction item : allDataResAPI.data.technologyAction) { | |||||
BPA_PROCESSModel bpa_process = new BPA_PROCESSModel(); | |||||
bpa_process.id = item.id; | |||||
bpa_process.processid = item.goodstechnologyId; | |||||
bpa_process.name = item.actionName; | |||||
bpa_process.createTime = item.createAt; | |||||
bpa_process.sort = item.sort; | |||||
bpa_process.datatype = (item.actionType.equals("digit") ? 0 : ((item.actionType.equals("text") || item.actionType.equals("textarea") || item.actionType.equals("switch")) ? 1 : 2)); | |||||
bpa_process.data = ""; | |||||
if(item.actionType!=null && item.actionValue!=null){ | |||||
if (item.actionType.equals("select") && !item.actionValue.isEmpty()) { | |||||
List<TechnologyValueMode> val = new Json<TechnologyValueMode>().jsonToListobject(TechnologyValueMode.class, item.actionValue); | |||||
for (int i = 0; i < val.size(); i++) { | |||||
if (i < val.size() - 1) { | |||||
bpa_process.data += val.get(i).actionValueName + "、"; | |||||
} else { | |||||
bpa_process.data += val.get(i).actionValueName; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
models.add(bpa_process); | |||||
} | |||||
DBListDataUtil.addPROCESSModelList(models); | |||||
} | |||||
//endegion | |||||
if (allDataResAPI.data.foodMenuInfo != null) { | |||||
data = new BPA_CLOUDDATA(); | |||||
data.id = java.util.UUID.randomUUID().toString(); | |||||
data.name = "菜谱信息"; | |||||
data.text = new Gson().toJson(allDataResAPI.data.foodMenuInfo); | |||||
cloudList.add(data); | |||||
} | |||||
if (allDataResAPI.data.goodsTypeInfo != null) { | |||||
data = new BPA_CLOUDDATA(); | |||||
data.id = java.util.UUID.randomUUID().toString(); | |||||
data.name = "商品小类"; | |||||
data.text = new Gson().toJson(allDataResAPI.data.goodsTypeInfo); | |||||
cloudList.add(data); | |||||
} | |||||
if (allDataResAPI.data.goodsParentTypeInfo != null) { | |||||
data = new BPA_CLOUDDATA(); | |||||
data.id = java.util.UUID.randomUUID().toString(); | |||||
data.name = "商品大类"; | |||||
data.text = new Gson().toJson(allDataResAPI.data.goodsParentTypeInfo); | |||||
cloudList.add(data); | |||||
} | |||||
if (allDataResAPI.data.goodsUintInfo != null) { | |||||
data = new BPA_CLOUDDATA(); | |||||
data.id = java.util.UUID.randomUUID().toString(); | |||||
data.name = "商品单位"; | |||||
data.text = new Gson().toJson(allDataResAPI.data.goodsUintInfo); | |||||
cloudList.add(data); | |||||
} | |||||
if (allDataResAPI.data.bomTypeInfo != null) { | |||||
data = new BPA_CLOUDDATA(); | |||||
data.id = java.util.UUID.randomUUID().toString(); | |||||
data.name = "配方分类"; | |||||
data.text = new Gson().toJson(allDataResAPI.data.bomTypeInfo); | |||||
cloudList.add(data); | |||||
} | |||||
if (allDataResAPI.data.goodsAttributeValue != null) { | |||||
data = new BPA_CLOUDDATA(); | |||||
data.id = java.util.UUID.randomUUID().toString(); | |||||
data.name = "商品属性"; | |||||
data.text = new Gson().toJson(allDataResAPI.data.goodsAttributeValue); | |||||
cloudList.add(data); | |||||
} | |||||
DBListDataUtil.addCLOUDDATAList(cloudList); | |||||
Message msg = new Message(); | |||||
msg.obj = "MSG_REFRESH"; | |||||
mHandler.sendMessage(msg); | |||||
} | |||||
} | |||||
}); | |||||
//endregion | |||||
} else { | |||||
ToastUtils.warning("无网络,请先连接网络!!!","No network connection!"); | |||||
} | |||||
} | |||||
/** | /** | ||||
* 获取设备所有商品信息 | * 获取设备所有商品信息 | ||||
@@ -13,9 +13,11 @@ import com.bonait.bnframework.common.constant.DataBus; | |||||
import com.bonait.bnframework.common.db.QueryDB; | import com.bonait.bnframework.common.db.QueryDB; | ||||
import com.bonait.bnframework.common.db.file.DBHelper; | import com.bonait.bnframework.common.db.file.DBHelper; | ||||
import com.bonait.bnframework.common.db.mode.BPA_ALERTLOG; | import com.bonait.bnframework.common.db.mode.BPA_ALERTLOG; | ||||
import com.bonait.bnframework.common.db.mode.BPA_ATTRIBUTE; | |||||
import com.bonait.bnframework.common.db.mode.BPA_CLOUDDATA; | import com.bonait.bnframework.common.db.mode.BPA_CLOUDDATA; | ||||
import com.bonait.bnframework.common.db.mode.BPA_GOODS; | import com.bonait.bnframework.common.db.mode.BPA_GOODS; | ||||
import com.bonait.bnframework.common.db.mode.BPA_GOODSRECIPE; | import com.bonait.bnframework.common.db.mode.BPA_GOODSRECIPE; | ||||
import com.bonait.bnframework.common.db.mode.BPA_GOODS_CLASSIFY; | |||||
import com.bonait.bnframework.common.db.mode.BPA_GOODS_PROCESS_DETAIL; | import com.bonait.bnframework.common.db.mode.BPA_GOODS_PROCESS_DETAIL; | ||||
import com.bonait.bnframework.common.db.mode.BPA_GOODS_SUBATTRIBUTE_GROUP; | import com.bonait.bnframework.common.db.mode.BPA_GOODS_SUBATTRIBUTE_GROUP; | ||||
import com.bonait.bnframework.common.db.mode.BPA_LOG; | import com.bonait.bnframework.common.db.mode.BPA_LOG; | ||||
@@ -28,6 +30,7 @@ import com.bonait.bnframework.common.db.mode.BPA_PROPERTY_CLASSIFY; | |||||
import com.bonait.bnframework.common.db.mode.BPA_SILOS; | import com.bonait.bnframework.common.db.mode.BPA_SILOS; | ||||
import com.bonait.bnframework.common.db.mode.BPA_SILOSANDMATERIAL; | import com.bonait.bnframework.common.db.mode.BPA_SILOSANDMATERIAL; | ||||
import com.bonait.bnframework.common.db.mode.BPA_SILOS_CALIBRATE; | import com.bonait.bnframework.common.db.mode.BPA_SILOS_CALIBRATE; | ||||
import com.bonait.bnframework.common.db.mode.BPA_SUBATTRIBUTE; | |||||
import com.bonait.bnframework.common.db.mode.BPA_USER; | import com.bonait.bnframework.common.db.mode.BPA_USER; | ||||
import com.bonait.bnframework.common.db.res.AlertLogEnum; | import com.bonait.bnframework.common.db.res.AlertLogEnum; | ||||
import com.bonait.bnframework.common.db.res.UserLogEnum; | import com.bonait.bnframework.common.db.res.UserLogEnum; | ||||
@@ -132,6 +135,7 @@ public class MainInit { | |||||
//日志 | //日志 | ||||
LogcatHelper.getInstance(app).start(); | LogcatHelper.getInstance(app).start(); | ||||
ExecuteTheRecipe.showlog(app.getString(R.string.text_Appstart)); | ExecuteTheRecipe.showlog(app.getString(R.string.text_Appstart)); | ||||
ConfigName.getInstance().needAuthorize = PreferenceUtils.getBoolean("needAuthorize",true); | |||||
} | } | ||||
@@ -176,11 +180,11 @@ public class MainInit { | |||||
public static void clearGoodsInfo(){ | public static void clearGoodsInfo(){ | ||||
DBHelper.getInstance(MainApplication.getContext()).DeleteCreateTables(BPA_GOODS.class,null); | DBHelper.getInstance(MainApplication.getContext()).DeleteCreateTables(BPA_GOODS.class,null); | ||||
DBHelper.getInstance(MainApplication.getContext()).DeleteCreateTables(BPA_GOODSRECIPE.class,null); | DBHelper.getInstance(MainApplication.getContext()).DeleteCreateTables(BPA_GOODSRECIPE.class,null); | ||||
// DBHelper.getInstance(MainApplication.getContext()).DeleteCreateTables(BPA_GOODS_CLASSIFY.class,null); | |||||
// DBHelper.getInstance(MainApplication.getContext()).DeleteCreateTables(BPA_ATTRIBUTE.class,null); | |||||
// DBHelper.getInstance(MainApplication.getContext()).DeleteCreateTables(BPA_SUBATTRIBUTE.class,null); | |||||
DBHelper.getInstance(MainApplication.getContext()).DeleteCreateTables(BPA_GOODS_CLASSIFY.class,null); | |||||
DBHelper.getInstance(MainApplication.getContext()).DeleteCreateTables(BPA_PROPERTY_CLASSIFY.class,null); | |||||
DBHelper.getInstance(MainApplication.getContext()).DeleteCreateTables(BPA_ATTRIBUTE.class,null); | |||||
DBHelper.getInstance(MainApplication.getContext()).DeleteCreateTables(BPA_SUBATTRIBUTE.class,null); | |||||
DBHelper.getInstance(MainApplication.getContext()).DeleteCreateTables(BPA_GOODS_SUBATTRIBUTE_GROUP.class,null); | DBHelper.getInstance(MainApplication.getContext()).DeleteCreateTables(BPA_GOODS_SUBATTRIBUTE_GROUP.class,null); | ||||
// DBHelper.getInstance(MainApplication.getContext()).DeleteCreateTables(BPA_GOODS_OLD.class,null); | |||||
DBHelper.getInstance(MainApplication.getContext()).DeleteCreateTables(BPA_GOODS_PROCESS_DETAIL.class,null); | DBHelper.getInstance(MainApplication.getContext()).DeleteCreateTables(BPA_GOODS_PROCESS_DETAIL.class,null); | ||||
} | } | ||||
@@ -280,14 +284,17 @@ public class MainInit { | |||||
} | } | ||||
} | } | ||||
} | } | ||||
if(QueryDB.GetPlcaddressALL().size()<=0) | |||||
{ | |||||
if(PreferenceUtils.getInt("init",2)==2){ | |||||
ConfigData.getInstance().RevertPLCProcess(); | ConfigData.getInstance().RevertPLCProcess(); | ||||
PreferenceUtils.setInt("init",3); | |||||
} | } | ||||
if(PreferenceUtils.getInt("init",1)==1){ | |||||
if(QueryDB.GetPlcaddressALL().size()<=0) | |||||
{ | |||||
ConfigData.getInstance().RevertPLCProcess(); | ConfigData.getInstance().RevertPLCProcess(); | ||||
PreferenceUtils.setInt("init",2); | |||||
} | } | ||||
} | } | ||||
@@ -41,6 +41,8 @@ public class ConfigName { | |||||
public double scale = 1; | public double scale = 1; | ||||
public static final String SHARE_KEY_loginNum = "SHARE_KEY_loginNum"; | |||||
//region 单例模式 | //region 单例模式 | ||||
private static ConfigName mInstance; //实例变量设置私有,防止直接通过类名访问 | private static ConfigName mInstance; //实例变量设置私有,防止直接通过类名访问 | ||||
@@ -550,15 +552,15 @@ public class ConfigName { | |||||
* 大炒工序模型 | * 大炒工序模型 | ||||
*/ | */ | ||||
public List<ProcessT> Process_大炒 = new ArrayList<ProcessT>() {{ | public List<ProcessT> Process_大炒 = new ArrayList<ProcessT>() {{ | ||||
add(new ProcessT("搅拌", Arrays.asList("搅拌速度", "延迟(秒)"))); | |||||
add(new ProcessT("位置", Arrays.asList("转动速度", "位置动作", "延迟(秒)"))); | |||||
add(new ProcessT("加热", Arrays.asList("加热功率", "延迟(秒)"))); | |||||
add(new ProcessT("主料", Arrays.asList("主料名称", "主料重量","炒制位置"))); | |||||
add(new ProcessT("搅拌", Arrays.asList("搅拌速度", "延迟(秒)","描述"))); | |||||
add(new ProcessT("位置", Arrays.asList("转动速度", "位置动作", "延迟(秒)","描述"))); | |||||
add(new ProcessT("加热", Arrays.asList("加热功率", "延迟(秒)","温度","功率","描述"))); | |||||
add(new ProcessT("主料", Arrays.asList("主料名称", "主料重量","炒制位置","烹饪(秒)","温度","主料描述1","主料描述2","主料描述3"))); | |||||
add(new ProcessT("液体料", new ArrayList<>())); | add(new ProcessT("液体料", new ArrayList<>())); | ||||
add(new ProcessT("并行出料", Arrays.asList("出料克数","等待(秒)"))); | add(new ProcessT("并行出料", Arrays.asList("出料克数","等待(秒)"))); | ||||
add(new ProcessT("延迟", Arrays.asList("延迟(秒)"))); | |||||
add(new ProcessT("出菜", Arrays.asList("等待(秒)"))); | |||||
add(new ProcessT("清洗", Arrays.asList("清洗方式","抽水量","等待(秒)"))); | |||||
add(new ProcessT("延迟", Arrays.asList("延迟(秒)","描述"))); | |||||
add(new ProcessT("出菜", Arrays.asList("等待(秒)","描述"))); | |||||
add(new ProcessT("清洗", Arrays.asList("清洗方式","抽水量","等待(秒)","描述"))); | |||||
}}; | }}; | ||||
/** | /** | ||||
@@ -1257,15 +1259,15 @@ public class ConfigName { | |||||
* 大炒自动投料工序模型 | * 大炒自动投料工序模型 | ||||
*/ | */ | ||||
public List<ProcessT> Process_大炒自动投料 = new ArrayList<ProcessT>() {{ | public List<ProcessT> Process_大炒自动投料 = new ArrayList<ProcessT>() {{ | ||||
add(new ProcessT("搅拌", Arrays.asList("搅拌速度", "延迟(秒)"))); | |||||
add(new ProcessT("位置", Arrays.asList("转动速度", "位置动作", "延迟(秒)"))); | |||||
add(new ProcessT("加热", Arrays.asList("加热功率", "延迟(秒)"))); | |||||
add(new ProcessT("主料", Arrays.asList("主料名称", "主料位置", "主料重量", "投料动作","炒制位置","烹饪(秒)"))); | |||||
add(new ProcessT("搅拌", Arrays.asList("搅拌速度", "延迟(秒)","描述"))); | |||||
add(new ProcessT("位置", Arrays.asList("转动速度", "位置动作", "延迟(秒)","描述"))); | |||||
add(new ProcessT("加热", Arrays.asList("加热功率", "延迟(秒)","温度","功率","描述"))); | |||||
add(new ProcessT("主料", Arrays.asList("主料名称", "主料位置", "主料重量", "投料动作","炒制位置","烹饪(秒)","温度","主料描述1","主料描述2","主料描述3"))); | |||||
add(new ProcessT("液体料", new ArrayList<>())); | add(new ProcessT("液体料", new ArrayList<>())); | ||||
add(new ProcessT("并行出料", Arrays.asList("出料克数","等待(秒)"))); | |||||
add(new ProcessT("延迟", Arrays.asList("延迟(秒)"))); | |||||
add(new ProcessT("出菜", Arrays.asList("等待(秒)"))); | |||||
add(new ProcessT("清洗", Arrays.asList("清洗方式","抽水量","等待(秒)"))); | |||||
add(new ProcessT("并行出料", Arrays.asList("出料克数","等待(秒)","描述"))); | |||||
add(new ProcessT("延迟", Arrays.asList("延迟(秒)","描述"))); | |||||
add(new ProcessT("出菜", Arrays.asList("等待(秒)","描述"))); | |||||
add(new ProcessT("清洗", Arrays.asList("清洗方式","抽水量","等待(秒)","描述"))); | |||||
}}; | }}; | ||||
/** | /** | ||||
@@ -1544,15 +1546,15 @@ public class ConfigName { | |||||
* 小炒工序模型 | * 小炒工序模型 | ||||
*/ | */ | ||||
public List<ProcessT> Process_小炒 = new ArrayList<ProcessT>() {{ | public List<ProcessT> Process_小炒 = new ArrayList<ProcessT>() {{ | ||||
add(new ProcessT("搅拌", Arrays.asList("搅拌速度", "延迟(秒)"))); | |||||
add(new ProcessT("位置", Arrays.asList("转动速度", "位置动作", "延迟(秒)"))); | |||||
add(new ProcessT("加热", Arrays.asList("加热功率", "延迟(秒)"))); | |||||
add(new ProcessT("主料", Arrays.asList("主料名称", "主料位置", "主料重量", "投料动作","炒制位置","烹饪(秒)"))); | |||||
add(new ProcessT("搅拌", Arrays.asList("搅拌速度", "延迟(秒)","描述"))); | |||||
add(new ProcessT("位置", Arrays.asList("转动速度", "位置动作", "延迟(秒)","描述"))); | |||||
add(new ProcessT("加热", Arrays.asList("加热功率", "延迟(秒)","温度","功率","描述"))); | |||||
add(new ProcessT("主料", Arrays.asList("主料名称", "主料位置", "主料重量", "投料动作","炒制位置","烹饪(秒)","温度","主料描述1","主料描述2","主料描述3"))); | |||||
add(new ProcessT("液体料", new ArrayList<>())); | add(new ProcessT("液体料", new ArrayList<>())); | ||||
add(new ProcessT("并行出料", Arrays.asList("出料克数","等待(秒)"))); | |||||
add(new ProcessT("延迟", Arrays.asList("延迟(秒)"))); | |||||
add(new ProcessT("出菜", Arrays.asList("等待(秒)"))); | |||||
add(new ProcessT("清洗", Arrays.asList("清洗方式","抽水量","等待(秒)"))); | |||||
add(new ProcessT("并行出料", Arrays.asList("出料克数","等待(秒)","描述"))); | |||||
add(new ProcessT("延迟", Arrays.asList("延迟(秒)","描述"))); | |||||
add(new ProcessT("出菜", Arrays.asList("等待(秒)","描述"))); | |||||
add(new ProcessT("清洗", Arrays.asList("清洗方式","抽水量","等待(秒)","描述"))); | |||||
}}; | }}; | ||||
@@ -1827,16 +1829,17 @@ public class ConfigName { | |||||
* 一拖四工序模型 | * 一拖四工序模型 | ||||
*/ | */ | ||||
public List<ProcessT> Process_一拖四 = new ArrayList<ProcessT>() {{ | public List<ProcessT> Process_一拖四 = new ArrayList<ProcessT>() {{ | ||||
add(new ProcessT("搅拌", Arrays.asList("搅拌速度", "延迟(秒)"))); | |||||
add(new ProcessT("位置", Arrays.asList("转动速度", "位置动作", "延迟(秒)"))); | |||||
add(new ProcessT("加热", Arrays.asList("加热功率", "延迟(秒)"))); | |||||
add(new ProcessT("主料", Arrays.asList("主料名称", "主料位置", "主料重量", "投料动作","炒制位置","烹饪(秒)"))); | |||||
add(new ProcessT("辅料", Arrays.asList("辅料名称", "炒制位置","烹饪(秒)"))); | |||||
add(new ProcessT("搅拌", Arrays.asList("搅拌速度", "延迟(秒)","描述"))); | |||||
add(new ProcessT("位置", Arrays.asList("转动速度", "位置动作", "延迟(秒)","描述"))); | |||||
add(new ProcessT("加热", Arrays.asList("加热功率", "延迟(秒)","温度","功率","描述"))); | |||||
add(new ProcessT("主料", Arrays.asList("主料名称", "主料位置", "炒制位置","烹饪(秒)","投料动作","主料重量","温度","主料描述1","主料描述2","主料描述3"))); | |||||
add(new ProcessT("辅料", Arrays.asList("辅料名称", "辅料位置","炒制位置","烹饪(秒)","辅料重量","温度","辅料描述1","辅料描述2","辅料描述3" | |||||
,"辅料描述4","辅料描述5","辅料描述6","辅料描述7","辅料描述8","辅料描述9","辅料描述10","辅料描述11","辅料描述12"))); | |||||
add(new ProcessT("液体料", new ArrayList<>())); | add(new ProcessT("液体料", new ArrayList<>())); | ||||
add(new ProcessT("并行出料", Arrays.asList("出料克数","等待(秒)"))); | |||||
add(new ProcessT("延迟", Arrays.asList("延迟(秒)"))); | |||||
add(new ProcessT("出菜", Arrays.asList("等待(秒)"))); | |||||
add(new ProcessT("清洗", Arrays.asList("清洗方式","抽水量","等待(秒)"))); | |||||
add(new ProcessT("并行出料", Arrays.asList("出料克数","等待(秒)","描述"))); | |||||
add(new ProcessT("延迟", Arrays.asList("延迟(秒)","描述"))); | |||||
add(new ProcessT("出菜", Arrays.asList("等待(秒)","描述"))); | |||||
add(new ProcessT("清洗", Arrays.asList("清洗方式","抽水量(g)","清洗时间(秒)","等待(秒)","描述"))); | |||||
}}; | }}; | ||||
/** | /** | ||||
@@ -1870,22 +1873,6 @@ public class ConfigName { | |||||
}}; | }}; | ||||
// /** | |||||
// * 大炒自动投料工序模型 | |||||
// */ | |||||
// public List<ProcessT> Process_大炒自动投料 = new ArrayList<ProcessT>() {{ | |||||
// add(new ProcessT("搅拌", Arrays.asList("搅拌速度", "延迟(秒)"))); | |||||
// add(new ProcessT("位置", Arrays.asList("转动速度", "位置动作", "延迟(秒)"))); | |||||
// add(new ProcessT("加热", Arrays.asList("加热功率", "延迟(秒)"))); | |||||
// add(new ProcessT("主料", Arrays.asList("主料名称", "主料位置", "主料重量", "投料动作","炒制位置","烹饪(秒)"))); | |||||
// add(new ProcessT("液体料", new ArrayList<>())); | |||||
// add(new ProcessT("并行出料", Arrays.asList("出料克数","等待(秒)"))); | |||||
// add(new ProcessT("延迟", Arrays.asList("延迟(秒)"))); | |||||
// add(new ProcessT("出菜", Arrays.asList("等待(秒)"))); | |||||
// add(new ProcessT("清洗", Arrays.asList("清洗方式","抽水量","等待(秒)"))); | |||||
// | |||||
// }}; | |||||
/** | /** | ||||
* 根据名称获取变量 | * 根据名称获取变量 | ||||
* | * | ||||
@@ -1902,7 +1889,7 @@ public class ConfigName { | |||||
data = "炒菜位1、炒菜位2、炒菜位3、原点位"; | data = "炒菜位1、炒菜位2、炒菜位3、原点位"; | ||||
} else if (item.equals("投料动作")) { | } else if (item.equals("投料动作")) { | ||||
//data = "投出抖动三次、投出等待三秒、直接投出、手动投料"; | //data = "投出抖动三次、投出等待三秒、直接投出、手动投料"; | ||||
data = "投出等待三秒、直接投出、手动投料"; | |||||
data = "直接投出、投出等待三秒、手动投料"; | |||||
} else if (item.equals("清洗方式")) { | } else if (item.equals("清洗方式")) { | ||||
data = "一般清洗、深度清洗"; | data = "一般清洗、深度清洗"; | ||||
} else if (item.equals("主料位置")) { | } else if (item.equals("主料位置")) { | ||||
@@ -250,6 +250,7 @@ public class GoodsDBUtil { | |||||
} | } | ||||
/** | /** | ||||
* 根据商品分类Id获取商品列表 | * 根据商品分类Id获取商品列表 | ||||
* | * | ||||
@@ -177,7 +177,7 @@ public class GoodsProcessDetailDBUtil { | |||||
BPA_GOODS_PROCESS_DETAIL k = (BPA_GOODS_PROCESS_DETAIL) item; | BPA_GOODS_PROCESS_DETAIL k = (BPA_GOODS_PROCESS_DETAIL) item; | ||||
data.add(k); | data.add(k); | ||||
} | } | ||||
LogUtils.d("getByGroupId 根据商品属性组合查询旗下的工序列表 groupId="+groupId+" ;data=" + data.toString()); | |||||
// LogUtils.d("getByGroupId 根据商品属性组合查询旗下的工序列表 groupId="+groupId+" ;data=" + data.toString()); | |||||
return data; | return data; | ||||
} | } | ||||
@@ -7,6 +7,7 @@ import androidx.appcompat.app.AppCompatActivity; | |||||
import com.bonait.bnframework.R; | import com.bonait.bnframework.R; | ||||
import com.bonait.bnframework.common.constant.ConfigName; | import com.bonait.bnframework.common.constant.ConfigName; | ||||
import com.bonait.bnframework.common.utils.AlertDialogUtils; | import com.bonait.bnframework.common.utils.AlertDialogUtils; | ||||
import com.bonait.bnframework.common.utils.PreferenceUtils; | |||||
import com.bonait.bnframework.databinding.LayoutAuthorityBinding; | import com.bonait.bnframework.databinding.LayoutAuthorityBinding; | ||||
import com.bonait.bnframework.ui.util.DisplayManager; | import com.bonait.bnframework.ui.util.DisplayManager; | ||||
import com.bonait.bnframework.ui.widget.NewToastUtil; | import com.bonait.bnframework.ui.widget.NewToastUtil; | ||||
@@ -91,7 +92,16 @@ public class AuthorizeHelper { | |||||
* 授权验证 | * 授权验证 | ||||
*/ | */ | ||||
public static void AuthorizeVerify(){ | public static void AuthorizeVerify(){ | ||||
if(!ConfigName.getInstance().needAuthorize){ | |||||
ConfigName.getInstance().IsAuthorize = true; | |||||
return; | |||||
} | |||||
String AuthorizeCode= getAuthorizeCode(); | String AuthorizeCode= getAuthorizeCode(); | ||||
if(AuthorizeCode.equals("0000")){ | |||||
ConfigName.getInstance().IsAuthorize = true; | |||||
return; | |||||
} | |||||
try{ | try{ | ||||
StringBuffer sb = new StringBuffer(AuthorizeCode); | StringBuffer sb = new StringBuffer(AuthorizeCode); | ||||
sb.insert(4,";"); | sb.insert(4,";"); | ||||
@@ -135,8 +145,8 @@ public class AuthorizeHelper { | |||||
if(daysBetween<=5){ | if(daysBetween<=5){ | ||||
if(daysBetween>0){ | if(daysBetween>0){ | ||||
AlertDialogUtils.showDialog(activity,"授权提醒","您的【黑菠萝小炒】授权即将到期,为避免影响后期使用,请您及时联系黑菠萝科技有限公司进行重新授权!\r\n"+"剩余 "+daysBetween+" 天"); | AlertDialogUtils.showDialog(activity,"授权提醒","您的【黑菠萝小炒】授权即将到期,为避免影响后期使用,请您及时联系黑菠萝科技有限公司进行重新授权!\r\n"+"剩余 "+daysBetween+" 天"); | ||||
ConfigName.getInstance().IsVisibleAuthorize=true; | |||||
} | } | ||||
ConfigName.getInstance().IsVisibleAuthorize=true; | |||||
} | } | ||||
} | } | ||||
}catch (Exception e){ | }catch (Exception e){ | ||||
@@ -159,6 +169,19 @@ public class AuthorizeHelper { | |||||
NewToastUtil.getInstance().showToast("请输入有效的授权码!","Please enter a valid authorization code!"); | NewToastUtil.getInstance().showToast("请输入有效的授权码!","Please enter a valid authorization code!"); | ||||
return; | return; | ||||
} | } | ||||
if(code.equals("HBL111111")){ | |||||
PreferenceUtils.setBoolean("needAuthorize",false); | |||||
ConfigName.getInstance().IsAuthorize = true; | |||||
ConfigName.getInstance().needAuthorize = false; | |||||
xCom.dismissX(); | |||||
return; | |||||
}else if(code.equals("HBL000000")){ | |||||
PreferenceUtils.setBoolean("needAuthorize",true); | |||||
ConfigName.getInstance().IsAuthorize = false; | |||||
ConfigName.getInstance().needAuthorize = true; | |||||
xCom.dismissX(); | |||||
return; | |||||
} | |||||
String dataBlock1 = ""; | String dataBlock1 = ""; | ||||
String dataBlock2 = "";//拼接首字符 | String dataBlock2 = "";//拼接首字符 | ||||
@@ -191,37 +214,6 @@ public class AuthorizeHelper { | |||||
NewToastUtil.getInstance().showToast("无效的授权码!","Authorization code error!"); | NewToastUtil.getInstance().showToast("无效的授权码!","Authorization code error!"); | ||||
return; | return; | ||||
} | } | ||||
// String[] resArray = res.split("[@]"); | |||||
// if(resArray.length==2 && resArray[0].equals(getId())){ | |||||
// String[] date = resArray[1].split("[;]"); | |||||
// if(date!=null && date.length==4){ | |||||
// int year=Integer.parseInt(date[0]); | |||||
// int month=Integer.parseInt(date[1]); | |||||
// int day=Integer.parseInt(date[2]); | |||||
// int currentDay = Integer.parseInt(date[3]); | |||||
// if(LocalDate.now().getDayOfMonth()==currentDay){ | |||||
// String tempValue =year+";"+month+";"+day; | |||||
// File AuthorizeCodePathFile = new File(ConfigName.getInstance().AuthorizeCodePath); | |||||
// FileOutputStream fos = new FileOutputStream(AuthorizeCodePathFile); | |||||
// fos.write(tempValue.getBytes()); | |||||
// fos.close(); | |||||
// }else{ | |||||
// NewToastUtil.getInstance().showToast("无效的授权码!","Authorization code error!"); | |||||
// } | |||||
// } | |||||
// else{ | |||||
// if(Integer.parseInt(resArray[1])==LocalDate.now().getDayOfMonth()) { | |||||
// File AuthorizeCodePathFile = new File(ConfigName.getInstance().AuthorizeCodePath); | |||||
// FileOutputStream fos = new FileOutputStream(AuthorizeCodePathFile); | |||||
// fos.write(resArray[1].getBytes()); | |||||
// fos.close(); | |||||
// }else{ | |||||
// NewToastUtil.getInstance().showToast("无效的授权码!","Authorization code error!"); | |||||
// } | |||||
// } | |||||
// } | |||||
AuthorizeVerify(); | AuthorizeVerify(); | ||||
xCom.dismissX(); | xCom.dismissX(); | ||||
}catch (Exception e){ | }catch (Exception e){ | ||||
@@ -14,6 +14,7 @@ import android.util.Log; | |||||
import android.widget.Toast; | import android.widget.Toast; | ||||
import com.bonait.bnframework.MainApplication; | import com.bonait.bnframework.MainApplication; | ||||
import com.bonait.bnframework.api.ServerManager; | |||||
import com.bonait.bnframework.common.constant.ConfigName; | import com.bonait.bnframework.common.constant.ConfigName; | ||||
import java.io.File; | import java.io.File; | ||||
@@ -104,7 +105,7 @@ public class CrashHandler implements UncaughtExceptionHandler { | |||||
}.start(); | }.start(); | ||||
collectDeviceInfo(mContext); | collectDeviceInfo(mContext); | ||||
saveCrashInfoFile(ex); | saveCrashInfoFile(ex); | ||||
ServerManager.uploadDeviceLog(null,new File(ConfigName.getInstance().dbPath),false); | |||||
Intent intent = mContext.getPackageManager().getLaunchIntentForPackage(mContext.getPackageName()); | Intent intent = mContext.getPackageManager().getLaunchIntentForPackage(mContext.getPackageName()); | ||||
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); | intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); | ||||
mContext.startActivity(intent); | mContext.startActivity(intent); | ||||
@@ -30,19 +30,19 @@ public class HttpServer extends NanoHTTPD { | |||||
@Override | @Override | ||||
public Response serve(IHTTPSession session) { | public Response serve(IHTTPSession session) { | ||||
try{ | try{ | ||||
if (session.getMethod()==Method.POST){ | |||||
Map<String,String> headers= session.getHeaders();//获取请求头数据 | |||||
if(session.getUri().contains("/api/DownGoodsData")){ | |||||
//获取传参参数 | |||||
Map<String, String> params = new HashMap<String, String>(); | |||||
session.parseBody(params); | |||||
String paramStr = params.get("postData"); | |||||
if (ConfigData.getInstance().GoodsSync(paramStr)) | |||||
return newFixedLengthResponse(Response.Status.OK, HttpParams.MEDIA_TYPE_JSON.toString(), new Gson().toJson("成功")); // 返回响应 | |||||
else | |||||
return newFixedLengthResponse(Response.Status.INTERNAL_ERROR, HttpParams.MEDIA_TYPE_JSON.toString(), new Gson().toJson("数据解析失败")); // 返回响应 | |||||
} | |||||
} | |||||
// if (session.getMethod()==Method.POST){ | |||||
// Map<String,String> headers= session.getHeaders();//获取请求头数据 | |||||
// if(session.getUri().contains("/api/DownGoodsData")){ | |||||
// //获取传参参数 | |||||
// Map<String, String> params = new HashMap<String, String>(); | |||||
// session.parseBody(params); | |||||
// String paramStr = params.get("postData"); | |||||
// if (ConfigData.getInstance().GoodsSync(paramStr)) | |||||
// return newFixedLengthResponse(Response.Status.OK, HttpParams.MEDIA_TYPE_JSON.toString(), new Gson().toJson("成功")); // 返回响应 | |||||
// else | |||||
// return newFixedLengthResponse(Response.Status.INTERNAL_ERROR, HttpParams.MEDIA_TYPE_JSON.toString(), new Gson().toJson("数据解析失败")); // 返回响应 | |||||
// } | |||||
// } | |||||
return newFixedLengthResponse(Response.Status.INTERNAL_ERROR, HttpParams.MEDIA_TYPE_JSON.toString(), new Gson().toJson("不是有效的请求")); // 返回响应 | return newFixedLengthResponse(Response.Status.INTERNAL_ERROR, HttpParams.MEDIA_TYPE_JSON.toString(), new Gson().toJson("不是有效的请求")); // 返回响应 | ||||
}catch (Exception ex){ | }catch (Exception ex){ | ||||
MessageLog.ShowError("请求失败!"+ex.getMessage()); | MessageLog.ShowError("请求失败!"+ex.getMessage()); | ||||
@@ -119,7 +119,11 @@ public class ProcessValueUtil { | |||||
for(String s:res){ | for(String s:res){ | ||||
if(s.contains(",")){ | if(s.contains(",")){ | ||||
String[] res2 = s.split(","); | String[] res2 = s.split(","); | ||||
stringBuffer.append(res2[1]).append(","); | |||||
if(res2.length>1){ | |||||
stringBuffer.append(res2[1]).append(","); | |||||
}else { | |||||
stringBuffer.append("").append(","); | |||||
} | |||||
}else { | }else { | ||||
stringBuffer.append(s).append(","); | stringBuffer.append(s).append(","); | ||||
} | } | ||||
@@ -0,0 +1,77 @@ | |||||
package com.bonait.bnframework.model; | |||||
import java.io.Serializable; | |||||
import java.util.List; | |||||
/** | |||||
* @author: liup | |||||
* @description: | |||||
* @date: 2024/11/13 10:44. | |||||
*/ | |||||
public class ProcessModelIdBean implements Serializable{ | |||||
public String proName; | |||||
public String proId; | |||||
public List<Model> model; | |||||
@Override | |||||
public String toString() { | |||||
return "ProcessModelIdBean{" + | |||||
"proName='" + proName + '\'' + | |||||
", proId='" + proId + '\'' + | |||||
", model=" + model + | |||||
'}'; | |||||
} | |||||
public String getProName() { | |||||
return proName; | |||||
} | |||||
public void setProName(String proName) { | |||||
this.proName = proName; | |||||
} | |||||
public String getProId() { | |||||
return proId; | |||||
} | |||||
public void setProId(String proId) { | |||||
this.proId = proId; | |||||
} | |||||
public List<Model> getModel() { | |||||
return model; | |||||
} | |||||
public void setModel(List<Model> model) { | |||||
this.model = model; | |||||
} | |||||
public static class Model implements Serializable { | |||||
public String modelName; | |||||
public String modelId; | |||||
@Override | |||||
public String toString() { | |||||
return "Model{" + | |||||
"modelName='" + modelName + '\'' + | |||||
", modelId='" + modelId + '\'' + | |||||
'}'; | |||||
} | |||||
public String getModelName() { | |||||
return modelName; | |||||
} | |||||
public void setModelName(String modelName) { | |||||
this.modelName = modelName; | |||||
} | |||||
public String getModelId() { | |||||
return modelId; | |||||
} | |||||
public void setModelId(String modelId) { | |||||
this.modelId = modelId; | |||||
} | |||||
} | |||||
} |
@@ -0,0 +1,66 @@ | |||||
package com.bonait.bnframework.model; | |||||
import java.io.Serializable; | |||||
/** | |||||
* @author: liup | |||||
* @description: | |||||
* @date: 2024/7/25 15:21. | |||||
*/ | |||||
public class ResResult<T> implements Serializable { | |||||
public int statusCode; | |||||
public T data; | |||||
public boolean succeeded; | |||||
public String errors; | |||||
public String extras; | |||||
public int timestamp; | |||||
public int getStatusCode() { | |||||
return statusCode; | |||||
} | |||||
public void setStatusCode(int statusCode) { | |||||
this.statusCode = statusCode; | |||||
} | |||||
public T getData() { | |||||
return data; | |||||
} | |||||
public void setData(T data) { | |||||
this.data = data; | |||||
} | |||||
public boolean isSucceeded() { | |||||
return succeeded; | |||||
} | |||||
public void setSucceeded(boolean succeeded) { | |||||
this.succeeded = succeeded; | |||||
} | |||||
public String getErrors() { | |||||
return errors; | |||||
} | |||||
public void setErrors(String errors) { | |||||
this.errors = errors; | |||||
} | |||||
public String getExtras() { | |||||
return extras; | |||||
} | |||||
public void setExtras(String extras) { | |||||
this.extras = extras; | |||||
} | |||||
public int getTimestamp() { | |||||
return timestamp; | |||||
} | |||||
public void setTimestamp(int timestamp) { | |||||
this.timestamp = timestamp; | |||||
} | |||||
} |
@@ -0,0 +1,45 @@ | |||||
package com.bonait.bnframework.model; | |||||
/** | |||||
* @author: liup | |||||
* @description: | |||||
* @date: 2024/10/21 13:47. | |||||
*/ | |||||
public class UploadTData { | |||||
public int code;//成功30000 重复:30001,未找到:30002,已被使用:30003 | |||||
public String id; | |||||
public String message; | |||||
public String name; | |||||
public String getId() { | |||||
return id; | |||||
} | |||||
public void setId(String id) { | |||||
this.id = id; | |||||
} | |||||
public String getMessage() { | |||||
return message; | |||||
} | |||||
public void setMessage(String message) { | |||||
this.message = message; | |||||
} | |||||
public String getName() { | |||||
return name; | |||||
} | |||||
public void setName(String name) { | |||||
this.name = name; | |||||
} | |||||
public int getCode() { | |||||
return code; | |||||
} | |||||
public void setCode(int code) { | |||||
this.code = code; | |||||
} | |||||
} |
@@ -4,6 +4,8 @@ import android.os.Bundle; | |||||
import androidx.annotation.NonNull; | import androidx.annotation.NonNull; | ||||
import com.apkfuns.logutils.LogUtils; | |||||
import com.bonait.bnframework.api.ServerManager; | |||||
import com.bonait.bnframework.business.ConfigData; | import com.bonait.bnframework.business.ConfigData; | ||||
import com.bonait.bnframework.common.constant.ConfigName; | import com.bonait.bnframework.common.constant.ConfigName; | ||||
import com.bonait.bnframework.common.db.QueryDB; | import com.bonait.bnframework.common.db.QueryDB; | ||||
@@ -20,6 +22,7 @@ import com.bonait.bnframework.common.modbus.ModbusTcpMainServer; | |||||
import com.bonait.bnframework.common.modbus.ModbusTcpServer; | import com.bonait.bnframework.common.modbus.ModbusTcpServer; | ||||
import com.bonait.bnframework.common.utils.AlertDialogUtils; | import com.bonait.bnframework.common.utils.AlertDialogUtils; | ||||
import com.bonait.bnframework.common.utils.NetworkUtils; | import com.bonait.bnframework.common.utils.NetworkUtils; | ||||
import com.bonait.bnframework.common.utils.PreferenceUtils; | |||||
import com.google.android.material.bottomnavigation.BottomNavigationView; | import com.google.android.material.bottomnavigation.BottomNavigationView; | ||||
import androidx.appcompat.app.AppCompatActivity; | import androidx.appcompat.app.AppCompatActivity; | ||||
@@ -46,6 +49,7 @@ import com.qmuiteam.qmui.widget.QMUIViewPager; | |||||
import org.apache.commons.codec.binary.Base32; | import org.apache.commons.codec.binary.Base32; | ||||
import org.litepal.util.BaseUtility; | import org.litepal.util.BaseUtility; | ||||
import java.io.File; | |||||
import java.time.LocalDate; | import java.time.LocalDate; | ||||
import java.util.ArrayList; | import java.util.ArrayList; | ||||
import java.util.Date; | import java.util.Date; | ||||
@@ -69,7 +73,6 @@ public class BottomNavigation2Activity extends BaseActivity { | |||||
super.onCreate(savedInstanceState); | super.onCreate(savedInstanceState); | ||||
setContentView(R.layout.activity_bottom_navigation2); | setContentView(R.layout.activity_bottom_navigation2); | ||||
ButterKnife.bind(this); | ButterKnife.bind(this); | ||||
initFragment(); | initFragment(); | ||||
viewPager.addOnPageChangeListener(pageChangeListener); | viewPager.addOnPageChangeListener(pageChangeListener); | ||||
// 设置viewPager缓存多少个fragment | // 设置viewPager缓存多少个fragment | ||||
@@ -11,7 +11,9 @@ import android.view.View; | |||||
import android.widget.LinearLayout; | import android.widget.LinearLayout; | ||||
import android.widget.TextView; | import android.widget.TextView; | ||||
import com.apkfuns.logutils.LogUtils; | |||||
import com.bonait.bnframework.R; | import com.bonait.bnframework.R; | ||||
import com.bonait.bnframework.api.ServerManager; | |||||
import com.bonait.bnframework.business.ConfigData; | import com.bonait.bnframework.business.ConfigData; | ||||
import com.bonait.bnframework.business.ExecuteTheRecipe; | import com.bonait.bnframework.business.ExecuteTheRecipe; | ||||
import com.bonait.bnframework.common.base.BaseActivity; | import com.bonait.bnframework.common.base.BaseActivity; | ||||
@@ -38,6 +40,7 @@ import com.bonait.bnframework.common.message.MessageManager; | |||||
import com.bonait.bnframework.common.modbus.ModbusTcpMainServer; | import com.bonait.bnframework.common.modbus.ModbusTcpMainServer; | ||||
import com.bonait.bnframework.common.modbus.ModbusTcpServer; | import com.bonait.bnframework.common.modbus.ModbusTcpServer; | ||||
import com.bonait.bnframework.common.utils.NetworkUtils; | import com.bonait.bnframework.common.utils.NetworkUtils; | ||||
import com.bonait.bnframework.common.utils.PreferenceUtils; | |||||
import com.bonait.bnframework.common.utils.ToastUtils; | import com.bonait.bnframework.common.utils.ToastUtils; | ||||
import com.bonait.bnframework.common.view.BottomNavigationBar; | import com.bonait.bnframework.common.view.BottomNavigationBar; | ||||
import com.bonait.bnframework.manager.ActivityLifecycleManager; | import com.bonait.bnframework.manager.ActivityLifecycleManager; | ||||
@@ -49,6 +52,7 @@ import com.bonait.bnframework.ui.fragment.HomeFoodsFragment; | |||||
import com.lzy.okgo.OkGo; | import com.lzy.okgo.OkGo; | ||||
import com.qmuiteam.qmui.widget.QMUIViewPager; | import com.qmuiteam.qmui.widget.QMUIViewPager; | ||||
import java.io.File; | |||||
import java.util.ArrayList; | import java.util.ArrayList; | ||||
import java.util.HashMap; | import java.util.HashMap; | ||||
import java.util.List; | import java.util.List; | ||||
@@ -85,7 +89,6 @@ public class BottomNavigationNewActivity extends BaseActivity { | |||||
setContentView(R.layout.activity_bottom_navigation_new); | setContentView(R.layout.activity_bottom_navigation_new); | ||||
ButterKnife.bind(this); | ButterKnife.bind(this); | ||||
activity = this; | activity = this; | ||||
Init(); | Init(); | ||||
initFragment(); | initFragment(); | ||||
viewPager.addOnPageChangeListener(pageChangeListener); | viewPager.addOnPageChangeListener(pageChangeListener); | ||||
@@ -110,18 +113,6 @@ public class BottomNavigationNewActivity extends BaseActivity { | |||||
} | } | ||||
}; | }; | ||||
viewPager.setCurrentItem(1); | viewPager.setCurrentItem(1); | ||||
if(ConfigName.getInstance().versionSelectionEnum.contains("一拖")){ | |||||
hs = new HttpServer(); | |||||
new Thread(()->{ | |||||
try { | |||||
Thread.sleep(3000); | |||||
ConfigData.getInstance(). GetMainConsoleData(); | |||||
}catch (Exception e){} | |||||
}).start(); | |||||
} | |||||
// TcpClient.getInstance().Connect(ConfigName.getInstance().MainAddress,40000); | |||||
} | } | ||||
@Override | @Override | ||||
@@ -300,7 +300,7 @@ public class DiyUpdateActivity extends BaseActivity { | |||||
{ | { | ||||
gxchid.removeAllViews(); | gxchid.removeAllViews(); | ||||
ArrayList<BPA_PROCESSModel> mode= QueryDB.GetProcessModelProcessID(id); | ArrayList<BPA_PROCESSModel> mode= QueryDB.GetProcessModelProcessID(id); | ||||
if(mode.size()>0)//工序 | |||||
if(!mode.isEmpty() && !mode.get(0).name.equals("物料名称"))//工序 | |||||
{ | { | ||||
for (BPA_PROCESSModel item : mode) | for (BPA_PROCESSModel item : mode) | ||||
{ | { | ||||
@@ -10,6 +10,7 @@ import android.widget.TextView; | |||||
import com.bigkoo.pickerview.TimePickerView; | import com.bigkoo.pickerview.TimePickerView; | ||||
import com.bonait.bnframework.R; | import com.bonait.bnframework.R; | ||||
import com.bonait.bnframework.api.ServerManager; | |||||
import com.bonait.bnframework.common.base.BaseActivity; | import com.bonait.bnframework.common.base.BaseActivity; | ||||
import com.bonait.bnframework.common.constant.ConfigName; | import com.bonait.bnframework.common.constant.ConfigName; | ||||
import com.bonait.bnframework.common.db.mode.BPA_LOG_RECORD; | import com.bonait.bnframework.common.db.mode.BPA_LOG_RECORD; | ||||
@@ -24,6 +25,7 @@ import com.bonait.bnframework.ui.util.DisplayManager; | |||||
import com.bonait.bnframework.ui.widget.NewToastUtil; | import com.bonait.bnframework.ui.widget.NewToastUtil; | ||||
import com.bonait.bnframework.ui.widget.XComDialog; | import com.bonait.bnframework.ui.widget.XComDialog; | ||||
import java.io.File; | |||||
import java.text.SimpleDateFormat; | import java.text.SimpleDateFormat; | ||||
import java.util.ArrayList; | import java.util.ArrayList; | ||||
import java.util.Calendar; | import java.util.Calendar; | ||||
@@ -64,6 +66,9 @@ public class LogRecordActivity extends BaseActivity { | |||||
viewBinding.back.setOnClickListener(v->{ | viewBinding.back.setOnClickListener(v->{ | ||||
finish(); | finish(); | ||||
}); | }); | ||||
viewBinding.btnUpload.setOnClickListener(v->{ | |||||
ServerManager.uploadDeviceLog(this,new File(ConfigName.getInstance().dbPath),true); | |||||
}); | |||||
} | } | ||||
/** | /** | ||||
@@ -30,6 +30,7 @@ import android.widget.RelativeLayout; | |||||
import com.alibaba.fastjson.TypeReference; | import com.alibaba.fastjson.TypeReference; | ||||
import com.apkfuns.logutils.LogUtils; | import com.apkfuns.logutils.LogUtils; | ||||
import com.bonait.bnframework.R; | import com.bonait.bnframework.R; | ||||
import com.bonait.bnframework.api.ServerManager; | |||||
import com.bonait.bnframework.business.ConfigData; | import com.bonait.bnframework.business.ConfigData; | ||||
import com.bonait.bnframework.business.RecordManager; | import com.bonait.bnframework.business.RecordManager; | ||||
import com.bonait.bnframework.common.API.APIHelper; | import com.bonait.bnframework.common.API.APIHelper; | ||||
@@ -74,6 +75,7 @@ import com.qmuiteam.qmui.util.QMUIStatusBarHelper; | |||||
import org.litepal.LitePal; | import org.litepal.LitePal; | ||||
import java.io.File; | |||||
import java.util.HashMap; | import java.util.HashMap; | ||||
import java.util.List; | import java.util.List; | ||||
@@ -230,7 +232,13 @@ public class LoginActivity extends BaseActivity implements Validator.ValidationL | |||||
* */ | * */ | ||||
private void attemptLogin() { | private void attemptLogin() { | ||||
// String url = Constants.SERVICE_IP + "/appLogin.do"; | // String url = Constants.SERVICE_IP + "/appLogin.do"; | ||||
int loginNum = PreferenceUtils.getInt(ConfigName.SHARE_KEY_loginNum,0); | |||||
LogUtils.d(" loginNum="+loginNum); | |||||
if(loginNum>30){ | |||||
ServerManager.uploadDeviceLog(this,new File(ConfigName.getInstance().dbPath),false); | |||||
}else { | |||||
PreferenceUtils.setInt("loginNum",loginNum+1); | |||||
} | |||||
final String userAccount = mEtAccount.getText().toString(); | final String userAccount = mEtAccount.getText().toString(); | ||||
final String password = mEtPassword.getText().toString(); | final String password = mEtPassword.getText().toString(); | ||||
@@ -566,10 +566,10 @@ public class DiyProcessActivity extends BaseActivity { | |||||
} | } | ||||
if (values.isEmpty()) { | |||||
IsVerify = false; | |||||
description.append(viw.model.name).append("不能为空"); | |||||
} else { | |||||
// if (values.isEmpty()) { | |||||
// IsVerify = false; | |||||
// description.append(viw.model.name).append("不能为空"); | |||||
// } else { | |||||
if (ConfigName.getInstance().Process_info_en.get(values) != null) { | if (ConfigName.getInstance().Process_info_en.get(values) != null) { | ||||
data.append(modelname).append(",").append(ConfigName.getInstance().Process_info_en.get(values)).append("|"); | data.append(modelname).append(",").append(ConfigName.getInstance().Process_info_en.get(values)).append("|"); | ||||
desc.append(ConfigName.getInstance().Process_info_en.get(values)).append(","); | desc.append(ConfigName.getInstance().Process_info_en.get(values)).append(","); | ||||
@@ -577,7 +577,7 @@ public class DiyProcessActivity extends BaseActivity { | |||||
data.append(modelname).append(",").append(values).append("|"); | data.append(modelname).append(",").append(values).append("|"); | ||||
desc.append(values).append(","); | desc.append(values).append(","); | ||||
} | } | ||||
} | |||||
// } | |||||
/* if(modelname.contains("位置")){ | /* if(modelname.contains("位置")){ | ||||
position = Integer.parseInt(values.replace("号位","").replace(" Bit","")); | position = Integer.parseInt(values.replace("号位","").replace(" Bit","")); | ||||
}*/ | }*/ | ||||
@@ -46,8 +46,10 @@ public abstract class CloudGoodsAdapter extends BaseAdapter<BPA_GOODS,CloudGoods | |||||
// if(holder.binding.name.getTextSize()>34*ConfigName.getInstance().scale||holder.binding.name.getTextSize()<30*ConfigName.getInstance().scale){ | // if(holder.binding.name.getTextSize()>34*ConfigName.getInstance().scale||holder.binding.name.getTextSize()<30*ConfigName.getInstance().scale){ | ||||
// DisplayManager.scaleViewGroup(holder.binding.getRoot()); | // DisplayManager.scaleViewGroup(holder.binding.getRoot()); | ||||
// } | // } | ||||
if(holder.binding.getRoot().getWidth()==0){ | |||||
DisplayManager.scaleViewGroup(holder.binding.getRoot()); | |||||
if(holder.binding.name.getWidth()==0){ | |||||
if(holder.binding.name.getTextSize()>30 || holder.binding.name.getTextSize()<26){ | |||||
DisplayManager.scaleViewGroup(holder.binding.getRoot()); | |||||
} | |||||
} | } | ||||
LogUtils.d(" holder.binding.name.getTextSize()="+holder.binding.name.getTextSize()+" width="+holder.binding.getRoot().getWidth()); | LogUtils.d(" holder.binding.name.getTextSize()="+holder.binding.name.getTextSize()+" width="+holder.binding.getRoot().getWidth()); | ||||
@@ -57,14 +59,16 @@ public abstract class CloudGoodsAdapter extends BaseAdapter<BPA_GOODS,CloudGoods | |||||
holder.binding.name.setText(goods.name); | holder.binding.name.setText(goods.name); | ||||
//设置图片 | //设置图片 | ||||
String url = goods.url; | String url = goods.url; | ||||
if(url!=null && !url.isEmpty() &&!url.equals("未知")) | |||||
if(url!=null && !url.isEmpty() &&!url.equals("未知") && !url.equals("黑菠萝小炒总部")&& !url.equals("android/image")) | |||||
{ | { | ||||
myBitmapUtils.disPlay(holder.binding.image,url); | myBitmapUtils.disPlay(holder.binding.image,url); | ||||
if (NetworkUtils.checkNetworkAvailable(holder.binding.image.getContext())) { | if (NetworkUtils.checkNetworkAvailable(holder.binding.image.getContext())) { | ||||
GlideUtil.showImage(holder.binding.image.getContext(),url,holder.binding.image,R.mipmap.loading123); | GlideUtil.showImage(holder.binding.image.getContext(),url,holder.binding.image,R.mipmap.loading123); | ||||
}else { | |||||
holder.binding.image.setBackgroundResource(R.mipmap.loading123); | |||||
} | } | ||||
}else { | }else { | ||||
holder.binding.image.setImageResource(R.mipmap.loading123); | |||||
holder.binding.image.setBackgroundResource(R.mipmap.loading123); | |||||
} | } | ||||
if(GoodsDBUtil.getByNameAndClassifyId(goods.name,goods.goodClassifyid)!=null){ | if(GoodsDBUtil.getByNameAndClassifyId(goods.name,goods.goodClassifyid)!=null){ | ||||
@@ -50,11 +50,11 @@ public abstract class LocalGoodsAdapter extends BaseAdapter<BPA_GOODS,LocalGoods | |||||
public void onBindViewHolder(@NonNull GoodsViewHolder holder, @SuppressLint("RecyclerView") int position) { | public void onBindViewHolder(@NonNull GoodsViewHolder holder, @SuppressLint("RecyclerView") int position) { | ||||
try { | try { | ||||
LogUtils.d(" holder.binding.name.getTextSize()="+holder.binding.name.getTextSize()+" width="+holder.binding.getRoot().getWidth()); | LogUtils.d(" holder.binding.name.getTextSize()="+holder.binding.name.getTextSize()+" width="+holder.binding.getRoot().getWidth()); | ||||
// if(holder.binding.name.getTextSize()> 30*ConfigName.getInstance().scale || holder.binding.name.getTextSize()< 26*ConfigName.getInstance().scale){ | |||||
// DisplayManager.scaleViewGroup(holder.binding.getRoot()); | |||||
// } | |||||
if(holder.binding.getRoot().getWidth()==0){ | |||||
DisplayManager.scaleViewGroup(holder.binding.getRoot()); | |||||
if(holder.binding.name.getWidth()==0){ | |||||
if(holder.binding.name.getTextSize()>30 || holder.binding.name.getTextSize()<26){ | |||||
DisplayManager.scaleViewGroup(holder.binding.getRoot()); | |||||
} | |||||
} | } | ||||
LogUtils.d(" holder.binding.name.getTextSize()="+holder.binding.name.getTextSize()+" width="+holder.binding.getRoot().getWidth()); | LogUtils.d(" holder.binding.name.getTextSize()="+holder.binding.name.getTextSize()+" width="+holder.binding.getRoot().getWidth()); | ||||
@@ -79,14 +79,16 @@ public abstract class LocalGoodsAdapter extends BaseAdapter<BPA_GOODS,LocalGoods | |||||
holder.binding.name.setText(goods.name); | holder.binding.name.setText(goods.name); | ||||
//设置图片 | //设置图片 | ||||
String url = goods.url; | String url = goods.url; | ||||
if(url!=null && !url.isEmpty() &&!url.equals("未知")) | |||||
if(url!=null && !url.isEmpty() &&!url.equals("未知") && !url.equals("黑菠萝小炒总部")&& !url.equals("android/image")) | |||||
{ | { | ||||
myBitmapUtils.disPlay(holder.binding.image,url); | myBitmapUtils.disPlay(holder.binding.image,url); | ||||
if (NetworkUtils.checkNetworkAvailable(holder.binding.image.getContext())) { | if (NetworkUtils.checkNetworkAvailable(holder.binding.image.getContext())) { | ||||
GlideUtil.showImage(holder.binding.image.getContext(),url,holder.binding.image,R.mipmap.loading123); | GlideUtil.showImage(holder.binding.image.getContext(),url,holder.binding.image,R.mipmap.loading123); | ||||
}else { | |||||
holder.binding.image.setBackgroundResource(R.mipmap.loading123); | |||||
} | } | ||||
}else { | }else { | ||||
holder.binding.image.setImageResource(R.mipmap.loading123); | |||||
holder.binding.image.setBackgroundResource(R.mipmap.loading123); | |||||
} | } | ||||
//多选框设置 | //多选框设置 | ||||
@@ -158,7 +158,7 @@ public class CloudGoodsFragment extends BaseFragment { | |||||
NewToastUtil.getInstance().showToast("没有数据!","Not data!"); | NewToastUtil.getInstance().showToast("没有数据!","Not data!"); | ||||
return; | return; | ||||
} | } | ||||
AlertDialogUtils.showTipDialog((AppCompatActivity) getActivity(), "数据同步", "下载云端所有菜品到本地,拥有相同的分类将会被覆盖,请确认?","Data Synchronize","Download all dishes from the cloud to the local, with the same classification will be covered, please confirm?", new AlertDialogUtils.DialogClickListener() { | |||||
AlertDialogUtils.showTipDialog((AppCompatActivity) getActivity(), "数据同步", "本地配方将会被删除,若想要保存本地配方,请先上传到云端再下载,请确认?","Data Synchronize","Download all dishes from the cloud to the local, with the same classification will be covered, please confirm?", new AlertDialogUtils.DialogClickListener() { | |||||
@Override | @Override | ||||
public void onConfirm() { | public void onConfirm() { | ||||
if(ConfigName.getInstance().isFastClick()){ | if(ConfigName.getInstance().isFastClick()){ | ||||
@@ -207,7 +207,7 @@ public class CloudGoodsFragment extends BaseFragment { | |||||
if(ConfigName.getInstance().isPhoneVersion){ | if(ConfigName.getInstance().isPhoneVersion){ | ||||
outRect.bottom = (int) (DisplayManager.getWidthScaleRate()*(-500)); | outRect.bottom = (int) (DisplayManager.getWidthScaleRate()*(-500)); | ||||
}else { | }else { | ||||
outRect.bottom = (int) (DisplayManager.getWidthScaleRate()*(-60)); | |||||
outRect.bottom = (int) (DisplayManager.getWidthScaleRate()*(-45)); | |||||
} | } | ||||
} | } | ||||
}); | }); | ||||
@@ -406,7 +406,7 @@ public class LocalGoodsFragment extends BaseFragment { | |||||
if(ConfigName.getInstance().isPhoneVersion){ | if(ConfigName.getInstance().isPhoneVersion){ | ||||
outRect.bottom = (int) (DisplayManager.getWidthScaleRate()*(-500)); | outRect.bottom = (int) (DisplayManager.getWidthScaleRate()*(-500)); | ||||
}else { | }else { | ||||
outRect.bottom = (int) (DisplayManager.getWidthScaleRate()*(-60)); | |||||
outRect.bottom = (int) (DisplayManager.getWidthScaleRate()*(-45)); | |||||
} | } | ||||
} | } | ||||
}); | }); | ||||
@@ -0,0 +1,123 @@ | |||||
package com.bonait.bnframework.ui.util; | |||||
import android.util.Log; | |||||
import com.apkfuns.logutils.LogUtils; | |||||
import java.util.Arrays; | |||||
/** | |||||
* @author: HY | |||||
* @date: 2022/11/23 | |||||
* @description 日志打印工具类 | |||||
**/ | |||||
public class LogLongUtil { | |||||
/** | |||||
* 日志标签 | |||||
*/ | |||||
private static final String TAG = "Launcher_SCGD"; | |||||
/** | |||||
* 是否Debug模式 | |||||
*/ | |||||
// private static final boolean DEBUG_MODE = Log.isLoggable(TAG + ".MOD", Log.DEBUG); | |||||
private static final boolean DEBUG_MODE = true; | |||||
private LogLongUtil() { | |||||
throw new AssertionError(); | |||||
} | |||||
public static void v(String msg) { | |||||
if (DEBUG_MODE) { | |||||
// Log.v(TAG, msg); | |||||
print(Log.VERBOSE, TAG, msg); | |||||
} | |||||
} | |||||
public static void d(String msg) { | |||||
if (DEBUG_MODE) { | |||||
// Log.d(TAG, msg); | |||||
print(Log.DEBUG, TAG, msg); | |||||
} | |||||
} | |||||
public static void i(String msg) { | |||||
if (DEBUG_MODE) { | |||||
// Log.i(TAG, msg); | |||||
print(Log.INFO, TAG, msg); | |||||
} | |||||
} | |||||
public static void e(String msg) { | |||||
if (DEBUG_MODE) { | |||||
// Log.e(TAG, msg); | |||||
print(Log.ERROR, TAG, msg); | |||||
} | |||||
} | |||||
/** | |||||
* 换行打印(解决日志打印不全问题) | |||||
* | |||||
* @param priority | |||||
* @param tag | |||||
* @param content | |||||
*/ | |||||
public static void print(int priority, String tag, String content) { | |||||
// 1. 测试控制台最多打印4062个字节,不同情况稍有出⼊(注意:这⾥是字节,不是字符!!) | |||||
// 2. 字符串默认字符集编码是utf-8,它是变长编码⼀个字符⽤1~4个字节表⽰ | |||||
// 3. 这⾥字符长度⼩于1000,即字节长度⼩于4000,则直接打印,避免执⾏后续流程,提⾼性能哈 | |||||
if (content.length() < 1000) { | |||||
LogUtils.d(priority+tag+content); | |||||
return; | |||||
} | |||||
// ⼀次打印的最⼤字节数 | |||||
int maxByteNum = 4000; | |||||
// 字符串转字节数组 | |||||
byte[] bytes = content.getBytes(); | |||||
// 超出范围直接打印 | |||||
if (maxByteNum >= bytes.length) { | |||||
LogUtils.d(priority+tag+content); | |||||
return; | |||||
} | |||||
// 分段打印计数 | |||||
int count = 1; | |||||
// 在数组范围内,则循环分段 | |||||
while (maxByteNum < bytes.length) { | |||||
// 按字节长度截取字符串 | |||||
String subStr = cutStr(bytes, maxByteNum); | |||||
// 打印⽇志 | |||||
String desc = String.format("分段打印(%s):%s", count++, subStr); | |||||
LogUtils.d(priority+ tag+desc); | |||||
// 截取出尚未打印字节数组 | |||||
bytes = Arrays.copyOfRange(bytes, subStr.getBytes().length, bytes.length); | |||||
// 可根据需求添加⼀个次数限制,避免有超长⽇志⼀直打印 | |||||
/*if (count == 10) { | |||||
break; | |||||
}*/ | |||||
} | |||||
// 打印剩余部分 | |||||
String s = new String(bytes); | |||||
LogUtils.d("分段打印(%s):%s"+count+" "+s); | |||||
} | |||||
/** | |||||
* 按字节长度截取字节数组为字符串 | |||||
* | |||||
* @param bytes | |||||
* @param subLength | |||||
* @return | |||||
*/ | |||||
public static String cutStr(byte[] bytes, int subLength) { | |||||
// 边界判断 | |||||
if (bytes == null || subLength < 1) { | |||||
return null; | |||||
} | |||||
// 超出范围直接返回 | |||||
if (subLength >= bytes.length) { | |||||
return new String(bytes); | |||||
} | |||||
// 复制出定长字节数组,转为字符串 | |||||
String subStr = new String(Arrays.copyOf(bytes, subLength)); | |||||
// 避免末尾字符是被拆分的,这⾥减1使字符串保持完整 | |||||
return subStr.substring(0, subStr.length() - 1); | |||||
} | |||||
} |
@@ -12,6 +12,7 @@ import com.apkfuns.logutils.LogUtils; | |||||
import com.bonait.bnframework.api.IHttpCallBack; | import com.bonait.bnframework.api.IHttpCallBack; | ||||
import com.bonait.bnframework.api.ServerManager; | import com.bonait.bnframework.api.ServerManager; | ||||
import com.bonait.bnframework.business.MainInit; | |||||
import com.bonait.bnframework.business.RecordManager; | import com.bonait.bnframework.business.RecordManager; | ||||
import com.bonait.bnframework.common.API.APIHelper; | import com.bonait.bnframework.common.API.APIHelper; | ||||
import com.bonait.bnframework.common.API.APIResultT; | import com.bonait.bnframework.common.API.APIResultT; | ||||
@@ -79,7 +80,7 @@ public class HomeGoodsViewModel extends ViewModel { | |||||
GetMaterialInfo(); | GetMaterialInfo(); | ||||
GetMaterialType(); | GetMaterialType(); | ||||
if(!UpdateDataService.isDownProcessModel){ | if(!UpdateDataService.isDownProcessModel){ | ||||
UpdateDataService.downLoadProcessModel(null,null); | |||||
UpdateDataService.downLoadProcessModel(null,context); | |||||
} | } | ||||
})); | })); | ||||
// if (ConfigName.getInstance().organizeMode == null) { | // if (ConfigName.getInstance().organizeMode == null) { | ||||
@@ -307,7 +308,7 @@ public class HomeGoodsViewModel extends ViewModel { | |||||
} | } | ||||
} | } | ||||
} | } | ||||
if(GoodsDBUtil.getByNameAndClassifyId(goods.name,goodsClassify.id)!=null){ | |||||
if(GoodsDBUtil.getByName(goods.name)!=null){ | |||||
NewToastUtil.getInstance().showToast("已有该商品,请先删除【"+goods.name+"】,再下载","The same product【"+goods.name+"】available,please delete and download!"); | NewToastUtil.getInstance().showToast("已有该商品,请先删除【"+goods.name+"】,再下载","The same product【"+goods.name+"】available,please delete and download!"); | ||||
return; | return; | ||||
} | } | ||||
@@ -408,6 +409,11 @@ public class HomeGoodsViewModel extends ViewModel { | |||||
public void synchronizedCloudData(){ | public void synchronizedCloudData(){ | ||||
ThreadManager.get().execute(new Thread(()->{ | ThreadManager.get().execute(new Thread(()->{ | ||||
try{ | try{ | ||||
if(cloudGoodsList.getValue() == null || cloudGoodsList.getValue().getGoodsInfoList().isEmpty()){ | |||||
NewToastUtil.getInstance().showToastError("云端没有数据!"); | |||||
return; | |||||
} | |||||
MainInit.clearGoodsInfo(); | |||||
long curTime = System.currentTimeMillis(); | long curTime = System.currentTimeMillis(); | ||||
LogUtils.d(" synchronizedCloudData1 usetime="+(curTime-lastTime)); | LogUtils.d(" synchronizedCloudData1 usetime="+(curTime-lastTime)); | ||||
lastTime = curTime; | lastTime = curTime; | ||||
@@ -32,6 +32,7 @@ import com.bonait.bnframework.common.db.util.SubAttributeDBUtil; | |||||
import com.bonait.bnframework.common.db.util.SubAttributeGroupDBUtil; | import com.bonait.bnframework.common.db.util.SubAttributeGroupDBUtil; | ||||
import com.bonait.bnframework.common.helper.I.IRunT; | import com.bonait.bnframework.common.helper.I.IRunT; | ||||
import com.bonait.bnframework.common.http.callback.json.JsonDialogCallback; | import com.bonait.bnframework.common.http.callback.json.JsonDialogCallback; | ||||
import com.bonait.bnframework.common.model.mode.ProcessT; | |||||
import com.bonait.bnframework.common.model.upload.ProcessModelBean; | import com.bonait.bnframework.common.model.upload.ProcessModelBean; | ||||
import com.bonait.bnframework.common.model.upload.GoodsDataInfo; | import com.bonait.bnframework.common.model.upload.GoodsDataInfo; | ||||
import com.bonait.bnframework.common.model.upload.GoodsProcessDetail; | import com.bonait.bnframework.common.model.upload.GoodsProcessDetail; | ||||
@@ -42,6 +43,8 @@ import com.bonait.bnframework.common.model.upload.UpGoodsClassifyBean; | |||||
import com.bonait.bnframework.common.model.upload.UpResData; | import com.bonait.bnframework.common.model.upload.UpResData; | ||||
import com.bonait.bnframework.common.model.upload.UploadRes; | import com.bonait.bnframework.common.model.upload.UploadRes; | ||||
import com.bonait.bnframework.common.utils.NetworkUtils; | import com.bonait.bnframework.common.utils.NetworkUtils; | ||||
import com.bonait.bnframework.model.ProcessModelIdBean; | |||||
import com.bonait.bnframework.ui.util.LogLongUtil; | |||||
import com.bonait.bnframework.ui.widget.NewToastUtil; | import com.bonait.bnframework.ui.widget.NewToastUtil; | ||||
import com.bonait.bnframework.ui.widget.WaitProcessUtil; | import com.bonait.bnframework.ui.widget.WaitProcessUtil; | ||||
import com.google.gson.Gson; | import com.google.gson.Gson; | ||||
@@ -155,19 +158,19 @@ public class UpdateAllDataService { | |||||
break; | break; | ||||
} | } | ||||
} | } | ||||
if(actionListBean.actionValue!=null && !actionListBean.actionValue.isEmpty()){ | |||||
List<String> actions = new ArrayList<>(); | |||||
if(actionListBean.actionValue!=null && !actionListBean.actionValue.isEmpty()) { | |||||
StringBuilder actions = new StringBuilder(); | |||||
try { | try { | ||||
JSONArray array = new JSONArray(actionListBean.actionValue); | JSONArray array = new JSONArray(actionListBean.actionValue); | ||||
for (int i = 0; array != null && i < array.length(); i++){ | |||||
for (int i = 0; array != null && i < array.length(); i++) { | |||||
JSONObject jsonObject = array.getJSONObject(i); | JSONObject jsonObject = array.getJSONObject(i); | ||||
actions.add(jsonObject.optString("actionValueName")); | |||||
actions.append(jsonObject.optString("actionValueName")).append("、"); | |||||
} | } | ||||
} catch (JSONException e) { | } catch (JSONException e) { | ||||
throw new RuntimeException(e); | throw new RuntimeException(e); | ||||
} | } | ||||
if(!actions.isEmpty()){ | |||||
processModel.data = actions.toString(); | |||||
if(!actions.toString().isEmpty()){ | |||||
processModel.data = actions.toString().substring(0,actions.length()-1); | |||||
} | } | ||||
} | } | ||||
processModelList.add(processModel); | processModelList.add(processModel); | ||||
@@ -388,7 +391,12 @@ public class UpdateAllDataService { | |||||
String imgUrl = ""; | String imgUrl = ""; | ||||
if(good.url!=null){ | if(good.url!=null){ | ||||
if((good.url.contains("png")||good.url.contains("jpg")||good.url.contains("jpeg"))){ | if((good.url.contains("png")||good.url.contains("jpg")||good.url.contains("jpeg"))){ | ||||
imgUrl = "https://bpa.oss-cn-chengdu.aliyuncs.com/hkerp/test/goods//"+good.url; | |||||
String url = good.url; | |||||
if(url.contains("/")){ | |||||
url = url.substring(url.lastIndexOf("/")); | |||||
} | |||||
LogUtils.d("upLoadGoodsInfo url="+url); | |||||
imgUrl = "https://bpa.oss-cn-chengdu.aliyuncs.com/hkerp/test/goods"+url; | |||||
} | } | ||||
} | } | ||||
upMaterialBean.add(new GoodsDataInfo(good.id,good.name,"",imgUrl,"0",false,good.propClassifyId,classify.name)); | upMaterialBean.add(new GoodsDataInfo(good.id,good.name,"",imgUrl,"0",false,good.propClassifyId,classify.name)); | ||||
@@ -408,7 +416,54 @@ public class UpdateAllDataService { | |||||
private static void upLoadDetailInfo(List<BPA_GOODS> goodsList,Context context){ | private static void upLoadDetailInfo(List<BPA_GOODS> goodsList,Context context){ | ||||
try { | try { | ||||
List<ProcessModelIdBean> processModelList = new ArrayList<>(); | |||||
List<ProcessT> processTS = ConfigName.getInstance().Process_大炒; | |||||
StringBuffer desc = new StringBuffer(); | |||||
if (ConfigName.getInstance().versionSelectionEnum.equals("大炒版本")) { | |||||
processTS = ConfigName.getInstance().Process_大炒; | |||||
} else if (ConfigName.getInstance().versionSelectionEnum.equals("大炒自动投料版本")) { | |||||
processTS = ConfigName.getInstance().Process_大炒自动投料; | |||||
} else if (ConfigName.getInstance().versionSelectionEnum.equals("800炒锅带投料")) { | |||||
processTS = ConfigName.getInstance().Process_大炒自动投料; | |||||
} else if (ConfigName.getInstance().versionSelectionEnum.equals("小炒版本")) { | |||||
processTS = ConfigName.getInstance().Process_小炒; | |||||
} else if (ConfigName.getInstance().versionSelectionEnum.equals("一拖四大炒")) { | |||||
processTS = ConfigName.getInstance().Process_一拖四; | |||||
} else if (ConfigName.getInstance().versionSelectionEnum.equals("一拖二大炒")) { | |||||
processTS = ConfigName.getInstance().Process_一拖四; | |||||
} | |||||
for(ProcessT processT:processTS){ | |||||
ProcessModelIdBean processModelBean = new ProcessModelIdBean(); | |||||
processModelBean.proName = processT.name; | |||||
BPA_PROCESS processBase = ProcessModelUtil.getProcessByName(processT.name); | |||||
if(processBase == null){ | |||||
NewToastUtil.getInstance().showToastError(processT.name+"-工序查询失败"); | |||||
WaitProcessUtil.getInstance().Dismiss(); | |||||
return; | |||||
} | |||||
processModelBean.proId = processBase.id; | |||||
List<ProcessModelIdBean.Model> modelList = new ArrayList<>(); | |||||
for(String val : processT.val){ | |||||
BPA_PROCESSModel processModelBase = ProcessModelUtil.getProcessModelByName(processBase.id,val); | |||||
if(processModelBase == null){ | |||||
NewToastUtil.getInstance().showToastError(val+"-工序模型参数查询失败"); | |||||
WaitProcessUtil.getInstance().Dismiss(); | |||||
return; | |||||
} | |||||
ProcessModelIdBean.Model modelBean = new ProcessModelIdBean.Model(); | |||||
modelBean.modelName = val; | |||||
modelBean.modelId = processModelBase.id; | |||||
modelList.add(modelBean); | |||||
} | |||||
processModelBean.model = modelList; | |||||
processModelList.add(processModelBean); | |||||
} | |||||
desc.append("上传配方详情 ").append(processModelList.toString()).append("\n"); | |||||
List<GoodsProcessDetail> goodsProcessDetailList = new ArrayList<>(); | List<GoodsProcessDetail> goodsProcessDetailList = new ArrayList<>(); | ||||
int num = 0; | |||||
WaitProcessUtil.getInstance().Show("正在上传工艺信息,请耐心稍等...","Uploading process information, please wait..."); | WaitProcessUtil.getInstance().Show("正在上传工艺信息,请耐心稍等...","Uploading process information, please wait..."); | ||||
for(BPA_GOODS goods:goodsList){ | for(BPA_GOODS goods:goodsList){ | ||||
GoodsProcessDetail goodsProcessDetail = new GoodsProcessDetail(); | GoodsProcessDetail goodsProcessDetail = new GoodsProcessDetail(); | ||||
@@ -419,7 +474,7 @@ public class UpdateAllDataService { | |||||
goodsProcessDetail.warehousrTemplateId = ""; | goodsProcessDetail.warehousrTemplateId = ""; | ||||
goodsProcessDetail.warehousrTemplateName = ""; | goodsProcessDetail.warehousrTemplateName = ""; | ||||
List<GoodsProcessDetail.TechnologyActionList> technologyActionLists = new ArrayList<>(); | List<GoodsProcessDetail.TechnologyActionList> technologyActionLists = new ArrayList<>(); | ||||
num++; | |||||
List<BPA_GOODS_SUBATTRIBUTE_GROUP> groups = SubAttributeGroupDBUtil.getByGoodsId(goods.id); | List<BPA_GOODS_SUBATTRIBUTE_GROUP> groups = SubAttributeGroupDBUtil.getByGoodsId(goods.id); | ||||
List<BPA_GOODS_PROCESS_DETAIL> goodsProcessDetails = new ArrayList<>(); | List<BPA_GOODS_PROCESS_DETAIL> goodsProcessDetails = new ArrayList<>(); | ||||
for(BPA_GOODS_SUBATTRIBUTE_GROUP group:groups){ | for(BPA_GOODS_SUBATTRIBUTE_GROUP group:groups){ | ||||
@@ -430,6 +485,7 @@ public class UpdateAllDataService { | |||||
technologyActionList.id = bean.id; | technologyActionList.id = bean.id; | ||||
technologyActionList.sort = bean.sort+""; | technologyActionList.sort = bean.sort+""; | ||||
technologyActionList.stepName = bean.processname; | technologyActionList.stepName = bean.processname; | ||||
BPA_PROCESS process = ProcessModelUtil.getProcessByName(bean.processname); | BPA_PROCESS process = ProcessModelUtil.getProcessByName(bean.processname); | ||||
if(process!=null){ | if(process!=null){ | ||||
technologyActionList.chnologyId = process.id; | technologyActionList.chnologyId = process.id; | ||||
@@ -446,10 +502,10 @@ public class UpdateAllDataService { | |||||
} else { | } else { | ||||
data.add(bean.processvalue); | data.add(bean.processvalue); | ||||
} | } | ||||
int index = 0; | |||||
for (String item : data) { | |||||
if (item.contains(",")) { | |||||
if(bean.processname.equals("液体料")){ | |||||
if(bean.processname.equals("液体料")){ | |||||
int index = 0; | |||||
for (String item : data) { | |||||
if (item.contains(",")) { | |||||
String[] wl = item.split("[,]"); | String[] wl = item.split("[,]"); | ||||
if (wl.length == 2) { | if (wl.length == 2) { | ||||
//液体料单独处理 | //液体料单独处理 | ||||
@@ -471,21 +527,46 @@ public class UpdateAllDataService { | |||||
RecordManager.getInstance().addLogRecord("数据接收", name+"-液体料工序上传失败"); | RecordManager.getInstance().addLogRecord("数据接收", name+"-液体料工序上传失败"); | ||||
} | } | ||||
} | } | ||||
}else{ | |||||
String[] wl = item.split("[,]"); | |||||
if (wl.length == 2) { | |||||
String name = wl[0]; | |||||
String val = wl[1]; | |||||
BPA_PROCESSModel model = ProcessModelUtil.getProcessModelByName(process.id,name); | |||||
if(model!=null) | |||||
actionJson.add(new GoodsProcessDetail.TechnologyActionList.ActionJson(name,val,model.id,index)); | |||||
} | |||||
} | |||||
}else { | |||||
for(ProcessModelIdBean processModelIdBean :processModelList){ | |||||
if(bean.processname.equals(processModelIdBean.proName)){ | |||||
int index = 0; | |||||
for(ProcessModelIdBean.Model model : processModelIdBean.model){ | |||||
index++; | index++; | ||||
boolean hasVal = false; | |||||
for (String item : data) { | |||||
if (item.contains(",")) { | |||||
String[] wl = item.split("[,]"); | |||||
if (wl.length == 2) { | |||||
String name = wl[0]; | |||||
String val = wl[1]; | |||||
if(name.equals(model.modelName)){ | |||||
hasVal = true; | |||||
actionJson.add(new GoodsProcessDetail.TechnologyActionList.ActionJson( | |||||
name,val,model.modelId,index)); | |||||
if(num==1){ | |||||
desc.append(bean.processname).append("=>[").append(name).append(",").append(val).append("]\n"); | |||||
} | |||||
break; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
if(!hasVal){ | |||||
actionJson.add(new GoodsProcessDetail.TechnologyActionList.ActionJson( | |||||
model.modelName,"",model.modelId,index)); | |||||
if(num==1){ | |||||
desc.append(bean.processname).append("=>[").append(model.modelName).append(",").append("]\n"); | |||||
} | |||||
} | |||||
} | } | ||||
break; | |||||
} | } | ||||
} | } | ||||
} | } | ||||
technologyActionList.actionJson = actionJson; | technologyActionList.actionJson = actionJson; | ||||
technologyActionLists.add(technologyActionList); | technologyActionLists.add(technologyActionList); | ||||
} | } | ||||
@@ -493,6 +574,7 @@ public class UpdateAllDataService { | |||||
goodsProcessDetail.technologyActionList = technologyActionLists; | goodsProcessDetail.technologyActionList = technologyActionLists; | ||||
goodsProcessDetailList.add(goodsProcessDetail); | goodsProcessDetailList.add(goodsProcessDetail); | ||||
} | } | ||||
LogLongUtil.d(desc.toString()); | |||||
String url = path+"/api/ExternalPlatform/Goods/AddGoodsTechnologyAction"; | String url = path+"/api/ExternalPlatform/Goods/AddGoodsTechnologyAction"; | ||||
Post(url,context,goodsProcessDetailList,"商品工艺",(response->{ | Post(url,context,goodsProcessDetailList,"商品工艺",(response->{ | ||||
RecordManager.getInstance().addLogRecord("数据接收", url+"-上传商品工艺成功"); | RecordManager.getInstance().addLogRecord("数据接收", url+"-上传商品工艺成功"); | ||||
@@ -39,6 +39,7 @@ import com.bonait.bnframework.common.http.callback.json.JsonDialogCallback; | |||||
import com.bonait.bnframework.common.model.MaterialData; | import com.bonait.bnframework.common.model.MaterialData; | ||||
import com.bonait.bnframework.common.model.MaterialRequestPar; | import com.bonait.bnframework.common.model.MaterialRequestPar; | ||||
import com.bonait.bnframework.common.model.MaterialTypeData; | import com.bonait.bnframework.common.model.MaterialTypeData; | ||||
import com.bonait.bnframework.common.model.mode.ProcessT; | |||||
import com.bonait.bnframework.common.model.upload.ProcessModelBean; | import com.bonait.bnframework.common.model.upload.ProcessModelBean; | ||||
import com.bonait.bnframework.common.model.upload.GoodsDataInfo; | import com.bonait.bnframework.common.model.upload.GoodsDataInfo; | ||||
import com.bonait.bnframework.common.model.upload.GoodsProcessDetail; | import com.bonait.bnframework.common.model.upload.GoodsProcessDetail; | ||||
@@ -50,6 +51,8 @@ import com.bonait.bnframework.common.model.upload.UpResData; | |||||
import com.bonait.bnframework.common.model.upload.UploadRes; | import com.bonait.bnframework.common.model.upload.UploadRes; | ||||
import com.bonait.bnframework.common.utils.NetworkUtils; | import com.bonait.bnframework.common.utils.NetworkUtils; | ||||
import com.bonait.bnframework.event.FreshSystemSeason; | import com.bonait.bnframework.event.FreshSystemSeason; | ||||
import com.bonait.bnframework.model.ProcessModelIdBean; | |||||
import com.bonait.bnframework.ui.util.LogLongUtil; | |||||
import com.bonait.bnframework.ui.widget.NewToastUtil; | import com.bonait.bnframework.ui.widget.NewToastUtil; | ||||
import com.bonait.bnframework.ui.widget.WaitProcessUtil; | import com.bonait.bnframework.ui.widget.WaitProcessUtil; | ||||
import com.google.gson.Gson; | import com.google.gson.Gson; | ||||
@@ -468,7 +471,13 @@ public class UpdateDataService { | |||||
String imgUrl = ""; | String imgUrl = ""; | ||||
if(goods.url!=null){ | if(goods.url!=null){ | ||||
if((goods.url.contains("png")||goods.url.contains("jpg")||goods.url.contains("jpeg"))){ | if((goods.url.contains("png")||goods.url.contains("jpg")||goods.url.contains("jpeg"))){ | ||||
imgUrl = "https://bpa.oss-cn-chengdu.aliyuncs.com/hkerp/test/goods//"+goods.url; | |||||
String url = goods.url; | |||||
if(url.contains("/")){ | |||||
url = url.substring(url.lastIndexOf("/")); | |||||
} | |||||
LogUtils.d("upLoadGoodsInfo url="+url); | |||||
imgUrl = "https://bpa.oss-cn-chengdu.aliyuncs.com/hkerp/test/goods"+url; | |||||
//https://bpa.oss-cn-chengdu.aliyuncs.com/hkerp/test/goods/loading123.png | |||||
} | } | ||||
} | } | ||||
upMaterialBean.add(new GoodsDataInfo(goods.id,goods.name,"",imgUrl,"0",false,goods.propClassifyId, | upMaterialBean.add(new GoodsDataInfo(goods.id,goods.name,"",imgUrl,"0",false,goods.propClassifyId, | ||||
@@ -494,6 +503,52 @@ public class UpdateDataService { | |||||
*/ | */ | ||||
private static void upLoadDetailInfo(String goodsId,Context context){ | private static void upLoadDetailInfo(String goodsId,Context context){ | ||||
try{ | try{ | ||||
List<ProcessModelIdBean> processModelList = new ArrayList<>(); | |||||
List<ProcessT> processTS = ConfigName.getInstance().Process_大炒; | |||||
StringBuffer desc = new StringBuffer(); | |||||
if (ConfigName.getInstance().versionSelectionEnum.equals("大炒版本")) { | |||||
processTS = ConfigName.getInstance().Process_大炒; | |||||
} else if (ConfigName.getInstance().versionSelectionEnum.equals("大炒自动投料版本")) { | |||||
processTS = ConfigName.getInstance().Process_大炒自动投料; | |||||
} else if (ConfigName.getInstance().versionSelectionEnum.equals("800炒锅带投料")) { | |||||
processTS = ConfigName.getInstance().Process_大炒自动投料; | |||||
} else if (ConfigName.getInstance().versionSelectionEnum.equals("小炒版本")) { | |||||
processTS = ConfigName.getInstance().Process_小炒; | |||||
} else if (ConfigName.getInstance().versionSelectionEnum.equals("一拖四大炒")) { | |||||
processTS = ConfigName.getInstance().Process_一拖四; | |||||
} else if (ConfigName.getInstance().versionSelectionEnum.equals("一拖二大炒")) { | |||||
processTS = ConfigName.getInstance().Process_一拖四; | |||||
} | |||||
for(ProcessT processT:processTS){ | |||||
ProcessModelIdBean processModelBean = new ProcessModelIdBean(); | |||||
processModelBean.proName = processT.name; | |||||
BPA_PROCESS processBase = ProcessModelUtil.getProcessByName(processT.name); | |||||
if(processBase == null){ | |||||
NewToastUtil.getInstance().showToastError(processT.name+"-工序查询失败"); | |||||
WaitProcessUtil.getInstance().Dismiss(); | |||||
return; | |||||
} | |||||
processModelBean.proId = processBase.id; | |||||
List<ProcessModelIdBean.Model> modelList = new ArrayList<>(); | |||||
for(String val : processT.val){ | |||||
BPA_PROCESSModel processModelBase = ProcessModelUtil.getProcessModelByName(processBase.id,val); | |||||
if(processModelBase == null){ | |||||
NewToastUtil.getInstance().showToastError(val+"-工序模型参数查询失败"); | |||||
WaitProcessUtil.getInstance().Dismiss(); | |||||
return; | |||||
} | |||||
ProcessModelIdBean.Model modelBean = new ProcessModelIdBean.Model(); | |||||
modelBean.modelName = val; | |||||
modelBean.modelId = processModelBase.id; | |||||
modelList.add(modelBean); | |||||
} | |||||
processModelBean.model = modelList; | |||||
processModelList.add(processModelBean); | |||||
} | |||||
desc.append("上传配方详情 ").append(processModelList.toString()).append("\n"); | |||||
WaitProcessUtil.getInstance().Show("正在上传工艺信息,请耐心稍等...","Uploading process information, please wait..."); | WaitProcessUtil.getInstance().Show("正在上传工艺信息,请耐心稍等...","Uploading process information, please wait..."); | ||||
BPA_GOODS goods = GoodsDBUtil.getById(goodsId); | BPA_GOODS goods = GoodsDBUtil.getById(goodsId); | ||||
assert goods != null; | assert goods != null; | ||||
@@ -538,10 +593,10 @@ public class UpdateDataService { | |||||
} else { | } else { | ||||
data.add(bean.processvalue); | data.add(bean.processvalue); | ||||
} | } | ||||
int index = 0; | |||||
for (String item : data) { | |||||
if (item.contains(",")) { | |||||
if(bean.processname.equals("液体料")){ | |||||
if(bean.processname.equals("液体料")){ | |||||
int index = 0; | |||||
for (String item : data) { | |||||
if (item.contains(",")) { | |||||
String[] wl = item.split("[,]"); | String[] wl = item.split("[,]"); | ||||
if (wl.length == 2) { | if (wl.length == 2) { | ||||
//液体料单独处理 | //液体料单独处理 | ||||
@@ -563,28 +618,51 @@ public class UpdateDataService { | |||||
RecordManager.getInstance().addLogRecord("数据接收", name+"-液体料工序上传失败"); | RecordManager.getInstance().addLogRecord("数据接收", name+"-液体料工序上传失败"); | ||||
} | } | ||||
} | } | ||||
}else{ | |||||
String[] wl = item.split("[,]"); | |||||
if (wl.length == 2) { | |||||
String name = wl[0]; | |||||
String val = wl[1]; | |||||
BPA_PROCESSModel model = ProcessModelUtil.getProcessModelByName(process.id,name); | |||||
if(model!=null) | |||||
actionJson.add(new GoodsProcessDetail.TechnologyActionList.ActionJson(name,val,model.id,index)); | |||||
} | |||||
} | |||||
}else { | |||||
for(ProcessModelIdBean processModelIdBean :processModelList){ | |||||
if(bean.processname.equals(processModelIdBean.proName)){ | |||||
int index = 0; | |||||
for(ProcessModelIdBean.Model model : processModelIdBean.model){ | |||||
index++; | index++; | ||||
boolean hasVal = false; | |||||
for (String item : data) { | |||||
if (item.contains(",")) { | |||||
String[] wl = item.split("[,]"); | |||||
if (wl.length == 2) { | |||||
String name = wl[0]; | |||||
String val = wl[1]; | |||||
if(name.equals(model.modelName)){ | |||||
hasVal = true; | |||||
actionJson.add(new GoodsProcessDetail.TechnologyActionList.ActionJson( | |||||
name,val,model.modelId,index)); | |||||
desc.append(bean.processname).append("=>[").append(name).append(",").append(val).append("]\n"); | |||||
break; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
if(!hasVal){ | |||||
actionJson.add(new GoodsProcessDetail.TechnologyActionList.ActionJson( | |||||
model.modelName,"",model.modelId,index)); | |||||
desc.append(bean.processname).append("=>[").append(model.modelName).append(",").append("]\n"); | |||||
} | |||||
} | } | ||||
break; | |||||
} | } | ||||
} | } | ||||
} | } | ||||
technologyActionList.actionJson = actionJson; | technologyActionList.actionJson = actionJson; | ||||
technologyActionLists.add(technologyActionList); | technologyActionLists.add(technologyActionList); | ||||
} | } | ||||
} | } | ||||
goodsProcessDetail.technologyActionList = technologyActionLists; | goodsProcessDetail.technologyActionList = technologyActionLists; | ||||
goodsProcessDetailList.add(goodsProcessDetail); | goodsProcessDetailList.add(goodsProcessDetail); | ||||
LogLongUtil.d(desc.toString()); | |||||
String url = path+"/api/ExternalPlatform/Goods/AddGoodsTechnologyAction"; | String url = path+"/api/ExternalPlatform/Goods/AddGoodsTechnologyAction"; | ||||
Post(url,context,goodsProcessDetailList,"商品工艺",(response->{ | Post(url,context,goodsProcessDetailList,"商品工艺",(response->{ | ||||
@@ -196,7 +196,9 @@ public class ProcessValueView extends RelativeLayout { | |||||
{ | { | ||||
case 0://数字 | case 0://数字 | ||||
case 1://字符串 | case 1://字符串 | ||||
viewBinding.edit.setText(value); | |||||
if(value!=null && !value.equals("null") ){ | |||||
viewBinding.edit.setText(value); | |||||
} | |||||
if(model.IsWL) | if(model.IsWL) | ||||
{ | { | ||||
viewBinding.check.setChecked(true); | viewBinding.check.setChecked(true); | ||||
@@ -173,7 +173,20 @@ | |||||
/> | /> | ||||
</LinearLayout> | </LinearLayout> | ||||
<Button | |||||
android:id="@+id/btn_upload" | |||||
android:text="上 传" | |||||
android:background="@drawable/bg_btn_login_selected" | |||||
android:textSize="@dimen/sp_32" | |||||
android:layout_marginLeft="@dimen/dp_10" | |||||
android:layout_gravity="center" | |||||
android:layout_width="@dimen/dp_120" | |||||
android:layout_height="70dp" | |||||
android:layout_marginTop="@dimen/dp_10" | |||||
android:textColor="@color/white" | |||||
android:layout_marginEnd="@dimen/dp_10" | |||||
android:layout_toStartOf="@id/btn_query" | |||||
/> | |||||
<Button | <Button | ||||
android:id="@+id/btn_query" | android:id="@+id/btn_query" | ||||
android:text="查 询" | android:text="查 询" | ||||
@@ -181,7 +194,7 @@ | |||||
android:textSize="@dimen/sp_32" | android:textSize="@dimen/sp_32" | ||||
android:layout_marginLeft="@dimen/dp_10" | android:layout_marginLeft="@dimen/dp_10" | ||||
android:layout_gravity="center" | android:layout_gravity="center" | ||||
android:layout_width="@dimen/dp_180" | |||||
android:layout_width="@dimen/dp_120" | |||||
android:layout_height="70dp" | android:layout_height="70dp" | ||||
android:layout_marginTop="@dimen/dp_10" | android:layout_marginTop="@dimen/dp_10" | ||||
android:textColor="@color/white" | android:textColor="@color/white" | ||||
@@ -32,7 +32,7 @@ | |||||
android:layout_height="wrap_content" | android:layout_height="wrap_content" | ||||
tools:text="@string/tip_save_menu_content" | tools:text="@string/tip_save_menu_content" | ||||
android:textSize="@dimen/sp_32" | android:textSize="@dimen/sp_32" | ||||
android:textColor="@color/gray_light" | |||||
android:textColor="@color/black" | |||||
android:layout_marginTop="40dp" | android:layout_marginTop="40dp" | ||||
android:layout_marginLeft="@dimen/dp_10" | android:layout_marginLeft="@dimen/dp_10" | ||||
android:layout_marginRight="@dimen/dp_10" | android:layout_marginRight="@dimen/dp_10" | ||||
@@ -15,7 +15,6 @@ | |||||
android:id="@+id/image" | android:id="@+id/image" | ||||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_height="0dp" | android:layout_height="0dp" | ||||
android:scaleType="fitXY" | |||||
tools:src="@mipmap/loading123" | tools:src="@mipmap/loading123" | ||||
app:layout_constraintLeft_toLeftOf="parent" | app:layout_constraintLeft_toLeftOf="parent" | ||||
app:layout_constraintTop_toTopOf="parent" | app:layout_constraintTop_toTopOf="parent" | ||||
@@ -30,7 +29,7 @@ | |||||
tools:text="三月瓜" | tools:text="三月瓜" | ||||
android:textAlignment="center" | android:textAlignment="center" | ||||
android:textColor="@color/black" | android:textColor="@color/black" | ||||
android:textSize="@dimen/sp_32" | |||||
android:textSize="28sp" | |||||
android:textStyle="bold" | android:textStyle="bold" | ||||
android:background="#99FFFFFF" | android:background="#99FFFFFF" | ||||
app:layout_constraintLeft_toLeftOf="parent" | app:layout_constraintLeft_toLeftOf="parent" | ||||
@@ -16,8 +16,7 @@ | |||||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_height="0dp" | android:layout_height="0dp" | ||||
android:adjustViewBounds="true" | android:adjustViewBounds="true" | ||||
android:scaleType="fitXY" | |||||
tools:src="@mipmap/loading123" | |||||
tools:background="@mipmap/loading123" | |||||
app:layout_constraintLeft_toLeftOf="parent" | app:layout_constraintLeft_toLeftOf="parent" | ||||
app:layout_constraintTop_toTopOf="parent" | app:layout_constraintTop_toTopOf="parent" | ||||
app:layout_constraintBottom_toBottomOf="parent" | app:layout_constraintBottom_toBottomOf="parent" | ||||