@@ -1,6 +1,7 @@ | |||||
package com.bonait.bnframework.business; | package com.bonait.bnframework.business; | ||||
import android.app.Activity; | |||||
import android.content.Context; | import android.content.Context; | ||||
import android.util.Log; | import android.util.Log; | ||||
@@ -12,13 +13,20 @@ import com.bonait.bnframework.common.db.mode.BPA_GOODSRECIPE; | |||||
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.message.MessageManager; | import com.bonait.bnframework.common.message.MessageManager; | ||||
import com.bonait.bnframework.common.model.APIResult; | |||||
import com.bonait.bnframework.common.model.ResAPI; | import com.bonait.bnframework.common.model.ResAPI; | ||||
import com.bonait.bnframework.common.model.mode.ActionJsonMode; | import com.bonait.bnframework.common.model.mode.ActionJsonMode; | ||||
import com.bonait.bnframework.common.model.mode.BPA_GoodsAttributeValue; | |||||
import com.bonait.bnframework.common.model.mode.BPA_GoodsTechnologyAction; | import com.bonait.bnframework.common.model.mode.BPA_GoodsTechnologyAction; | ||||
import com.bonait.bnframework.common.model.mode.BatchingInfo; | import com.bonait.bnframework.common.model.mode.BatchingInfo; | ||||
import com.bonait.bnframework.common.model.mode.BomTechnologyActionInfo; | import com.bonait.bnframework.common.model.mode.BomTechnologyActionInfo; | ||||
import com.bonait.bnframework.common.model.mode.BomTypeInfo; | |||||
import com.bonait.bnframework.common.model.mode.CloudGood; | import com.bonait.bnframework.common.model.mode.CloudGood; | ||||
import com.bonait.bnframework.common.model.mode.FoodMenuInfo; | |||||
import com.bonait.bnframework.common.model.mode.GoodsParentTypeInfo; | |||||
import com.bonait.bnframework.common.model.mode.GoodsTechnology; | import com.bonait.bnframework.common.model.mode.GoodsTechnology; | ||||
import com.bonait.bnframework.common.model.mode.GoodsTypeInfo; | |||||
import com.bonait.bnframework.common.model.mode.GoodsUintInfo; | |||||
import com.bonait.bnframework.common.model.mode.TechnologyAction; | import com.bonait.bnframework.common.model.mode.TechnologyAction; | ||||
import com.bonait.bnframework.common.model.mode.UpdateBomInfo; | import com.bonait.bnframework.common.model.mode.UpdateBomInfo; | ||||
import com.bonait.bnframework.common.model.mode.UpdateCloudGood; | import com.bonait.bnframework.common.model.mode.UpdateCloudGood; | ||||
@@ -31,7 +39,9 @@ import com.lzy.okgo.model.Response; | |||||
import java.util.ArrayList; | import java.util.ArrayList; | ||||
import java.util.HashMap; | import java.util.HashMap; | ||||
import java.util.LinkedHashMap; | |||||
import java.util.List; | import java.util.List; | ||||
import java.util.Map; | |||||
import okhttp3.MediaType; | import okhttp3.MediaType; | ||||
import okhttp3.RequestBody; | import okhttp3.RequestBody; | ||||
@@ -39,10 +49,57 @@ import okhttp3.RequestBody; | |||||
public class UpDataModel { | public class UpDataModel { | ||||
private BPA_GOODS good; | private BPA_GOODS good; | ||||
private Context context; | private Context context; | ||||
public UpDataModel(Context ct,BPA_GOODS Good){ | |||||
private Activity activity; | |||||
Map<String,String> map_cp = new LinkedHashMap<>(); | |||||
Map<String,String> map_dl = new LinkedHashMap<>(); | |||||
Map<String,String> map_xl = new LinkedHashMap<>(); | |||||
Map<String,String> map_dw = new LinkedHashMap<>(); | |||||
Map<String,String> map_fl = new LinkedHashMap<>(); | |||||
Map<String,String> map_sx = new LinkedHashMap<>(); | |||||
String sp, dl, xl, dw, fl, sxid; | |||||
public UpDataModel(Activity ac,Context ct,BPA_GOODS Good){ | |||||
good=Good; | good=Good; | ||||
context=ct; | context=ct; | ||||
activity=ac; | |||||
DataInit(); | |||||
} | |||||
private void DataInit(){ | |||||
for (FoodMenuInfo item:ConfigName.getInstance().cloudData.foodMenuInfo) | |||||
{ | |||||
map_cp.put(item.name,item.id); | |||||
} | |||||
for (GoodsParentTypeInfo item:ConfigName.getInstance().cloudData.goodsParentTypeInfo) | |||||
{ | |||||
map_dl.put(item.name,item.id); | |||||
} | |||||
for (GoodsTypeInfo item:ConfigName.getInstance().cloudData.goodsTypeInfo) | |||||
{ | |||||
map_xl.put(item.goodsType_Name,item.id); | |||||
} | |||||
for (GoodsUintInfo item:ConfigName.getInstance().cloudData.goodsUintInfo) | |||||
{ | |||||
map_dw.put(item.name,item.id); | |||||
} | |||||
for (BomTypeInfo item:ConfigName.getInstance().cloudData.bomTypeInfo) | |||||
{ | |||||
map_fl.put(item.name,item.id); | |||||
} | |||||
for (BPA_GoodsAttributeValue item:ConfigName.getInstance().cloudData.goodsAttributeValue) | |||||
{ | |||||
map_sx.put(item.attributeValue,item.id); | |||||
} | |||||
sp = map_cp.get("小炒"); | |||||
dl=map_dl.get("默认分类"); | |||||
xl=map_xl.get("默认分类"); | |||||
dw=map_dw.get("默认单位"); | |||||
fl=map_fl.get("炒菜"); | |||||
sxid=map_sx.get("默认属性值"); | |||||
} | } | ||||
public Thread task; | public Thread task; | ||||
public boolean Status=false; | public boolean Status=false; | ||||
@@ -99,11 +156,11 @@ public class UpDataModel { | |||||
update.goodsInfo.goods_Name = good.name; | update.goodsInfo.goods_Name = good.name; | ||||
//选择菜谱 大类id 小类id 单位id | //选择菜谱 大类id 小类id 单位id | ||||
update.foodMenuId = "小炒"; | |||||
update.foodMenuId = sp; | |||||
update.goodsInfo.goods_ImgUrl = good.url;//图片地址 | update.goodsInfo.goods_ImgUrl = good.url;//图片地址 | ||||
update.goodsInfo.parentTypeID = "默认分类";//大类 | |||||
update.goodsInfo.goods_TypeID = "默认分类";//小类 | |||||
update.goodsInfo.goodsUintId = "默认单位";//单位 | |||||
update.goodsInfo.parentTypeID = dl;//大类 | |||||
update.goodsInfo.goods_TypeID = xl;//小类 | |||||
update.goodsInfo.goodsUintId = dw;//单位 | |||||
String id = good.gyid; | String id = good.gyid; | ||||
if (good.gyid == null) { | if (good.gyid == null) { | ||||
@@ -114,7 +171,7 @@ public class UpDataModel { | |||||
UpdateBomInfo bom = new UpdateBomInfo(); | UpdateBomInfo bom = new UpdateBomInfo(); | ||||
bom.id = id; | bom.id = id; | ||||
bom.bomType = "炒菜"; | |||||
bom.bomType = fl; | |||||
bom.name = good.name; | bom.name = good.name; | ||||
bom.code = java.util.UUID.randomUUID().toString(); | bom.code = java.util.UUID.randomUUID().toString(); | ||||
bom.isMain = true; | bom.isMain = true; | ||||
@@ -210,7 +267,7 @@ public class UpDataModel { | |||||
info2.sort = item.sort; | info2.sort = item.sort; | ||||
info2.goodsId = good.id; | info2.goodsId = good.id; | ||||
info2.deviceId = ConfigName.getInstance().DeviceId; | info2.deviceId = ConfigName.getInstance().DeviceId; | ||||
info2.goodsAttributeId = "默认属性值"; | |||||
info2.goodsAttributeId = sxid; | |||||
update.goodsTechnologyActionInfo.add(info2); | update.goodsTechnologyActionInfo.add(info2); | ||||
} | } | ||||
} | } | ||||
@@ -222,22 +279,23 @@ public class UpDataModel { | |||||
if (isSuceess) { | if (isSuceess) { | ||||
try { | try { | ||||
String str = ConfigName.getInstance().SaasAddress + ConfigName.getInstance().UpdateGoods; | String str = ConfigName.getInstance().SaasAddress + ConfigName.getInstance().UpdateGoods; | ||||
// String str="http://192.168.1.7:5000/api/CommInteface/SendGoodsInfo"; | |||||
OkGo.<ResAPI<Boolean>>post(str).tag(this) | |||||
.upRequestBody(RequestBody.create(MediaType.parse("application/json; charset=utf-8"), new Gson().toJson(update))) | |||||
.headers(new HttpHeaders("TenantId", ConfigName.getInstance().organizeMode.companyId)) | |||||
.execute(new JsonDialogCallback<ResAPI<Boolean>>(context) { | |||||
@Override | |||||
public void onSuccess(Response<ResAPI<Boolean>> response) { | |||||
ResAPI<Boolean> allDataResAPI = response.body(); | |||||
if (allDataResAPI.succeeded) { | |||||
MessageManager.getInstance().sendMessage(MessageName.ScGood, "GoodUpdate"); | |||||
Status=true; | |||||
} else { | |||||
ToastUtils.warning("上传菜品失败!!!"); | |||||
} | |||||
} | |||||
}); | |||||
okhttp3.Response result = OkGo.<ResAPI<Boolean>>post(str).tag(this) | |||||
.upRequestBody(RequestBody.create(MediaType.parse("application/json; charset=utf-8"), new Gson().toJson(update))) | |||||
.headers(new HttpHeaders("TenantId", ConfigName.getInstance().organizeMode.companyId)) | |||||
.execute(); | |||||
if(result!=null&&result.isSuccessful()){ | |||||
APIResult res = new Gson().fromJson(result.body().string(),APIResult.class); | |||||
if (res.succeeded) { | |||||
MessageManager.getInstance().sendMessage(MessageName.ScGood, "GoodUpdate"); | |||||
Status=true; | |||||
Log.i("sync", "同步成功"); | |||||
} else { | |||||
Log.i("sync", "上传菜品失败,失败原因:"+res.errors); | |||||
Status=true; | |||||
} | |||||
} | |||||
} catch (Exception ex) { | } catch (Exception ex) { | ||||
ToastUtils.info("上传菜品异常:" + ex.getMessage()); | ToastUtils.info("上传菜品异常:" + ex.getMessage()); | ||||
} | } | ||||
@@ -0,0 +1,317 @@ | |||||
package com.bonait.bnframework.common.helper; | |||||
import android.app.Activity; | |||||
import android.content.Context; | |||||
import android.util.Log; | |||||
import com.bonait.bnframework.common.constant.ConfigName; | |||||
import com.bonait.bnframework.common.constant.MessageName; | |||||
import com.bonait.bnframework.common.db.QueryDB; | |||||
import com.bonait.bnframework.common.db.mode.BPA_GOODS; | |||||
import com.bonait.bnframework.common.db.mode.BPA_GOODSRECIPE; | |||||
import com.bonait.bnframework.common.helper.I.IRunT; | |||||
import com.bonait.bnframework.common.message.MessageManager; | |||||
import com.bonait.bnframework.common.model.APIResult; | |||||
import com.bonait.bnframework.common.model.ResAPI; | |||||
import com.bonait.bnframework.common.model.mode.ActionJsonMode; | |||||
import com.bonait.bnframework.common.model.mode.BPA_GoodsAttributeValue; | |||||
import com.bonait.bnframework.common.model.mode.BPA_GoodsTechnologyAction; | |||||
import com.bonait.bnframework.common.model.mode.BatchingInfo; | |||||
import com.bonait.bnframework.common.model.mode.BomTechnologyActionInfo; | |||||
import com.bonait.bnframework.common.model.mode.BomTypeInfo; | |||||
import com.bonait.bnframework.common.model.mode.CloudGood; | |||||
import com.bonait.bnframework.common.model.mode.FoodMenuInfo; | |||||
import com.bonait.bnframework.common.model.mode.GoodsParentTypeInfo; | |||||
import com.bonait.bnframework.common.model.mode.GoodsTechnology; | |||||
import com.bonait.bnframework.common.model.mode.GoodsTypeInfo; | |||||
import com.bonait.bnframework.common.model.mode.GoodsUintInfo; | |||||
import com.bonait.bnframework.common.model.mode.TechnologyAction; | |||||
import com.bonait.bnframework.common.model.mode.UpdateBomInfo; | |||||
import com.bonait.bnframework.common.model.mode.UpdateCloudGood; | |||||
import com.bonait.bnframework.common.oss.OssHelper; | |||||
import com.bonait.bnframework.common.utils.ToastUtils; | |||||
import com.google.gson.Gson; | |||||
import com.lzy.okgo.OkGo; | |||||
import com.lzy.okgo.model.HttpHeaders; | |||||
import java.util.ArrayList; | |||||
import java.util.HashMap; | |||||
import java.util.LinkedHashMap; | |||||
import java.util.List; | |||||
import java.util.Map; | |||||
import okhttp3.MediaType; | |||||
import okhttp3.RequestBody; | |||||
public class BatchSync { | |||||
ArrayList<BPA_GOODS> goods; | |||||
private Context context; | |||||
private Activity activity; | |||||
Map<String,String> map_cp = new LinkedHashMap<>(); | |||||
Map<String,String> map_dl = new LinkedHashMap<>(); | |||||
Map<String,String> map_xl = new LinkedHashMap<>(); | |||||
Map<String,String> map_dw = new LinkedHashMap<>(); | |||||
Map<String,String> map_fl = new LinkedHashMap<>(); | |||||
Map<String,String> map_sx = new LinkedHashMap<>(); | |||||
String sp, dl, xl, dw, fl, sxid; | |||||
int CompleteCount=0; | |||||
int FaultCount=0; | |||||
List<String> FaultGoodName=new ArrayList<>(); | |||||
public BatchSync(Activity ac, Context ct, ArrayList<BPA_GOODS> bpa_goods){ | |||||
goods= bpa_goods; | |||||
context=ct; | |||||
activity=ac; | |||||
DataInit(); | |||||
} | |||||
private void DataInit(){ | |||||
for (FoodMenuInfo item: ConfigName.getInstance().cloudData.foodMenuInfo) | |||||
{ | |||||
map_cp.put(item.name,item.id); | |||||
} | |||||
for (GoodsParentTypeInfo item:ConfigName.getInstance().cloudData.goodsParentTypeInfo) | |||||
{ | |||||
map_dl.put(item.name,item.id); | |||||
} | |||||
for (GoodsTypeInfo item:ConfigName.getInstance().cloudData.goodsTypeInfo) | |||||
{ | |||||
map_xl.put(item.goodsType_Name,item.id); | |||||
} | |||||
for (GoodsUintInfo item:ConfigName.getInstance().cloudData.goodsUintInfo) | |||||
{ | |||||
map_dw.put(item.name,item.id); | |||||
} | |||||
for (BomTypeInfo item:ConfigName.getInstance().cloudData.bomTypeInfo) | |||||
{ | |||||
map_fl.put(item.name,item.id); | |||||
} | |||||
for (BPA_GoodsAttributeValue item:ConfigName.getInstance().cloudData.goodsAttributeValue) | |||||
{ | |||||
map_sx.put(item.attributeValue,item.id); | |||||
} | |||||
sp = map_cp.get("小炒"); | |||||
dl=map_dl.get("默认分类"); | |||||
xl=map_xl.get("默认分类"); | |||||
dw=map_dw.get("默认单位"); | |||||
fl=map_fl.get("炒菜"); | |||||
sxid=map_sx.get("默认属性值"); | |||||
} | |||||
public void Start(){ | |||||
if(context==null)return; | |||||
if(goods==null)return; | |||||
WaitDialog.Show("商品同步","开始商品同步",context,activity); | |||||
for (BPA_GOODS good:goods){ | |||||
WaitDialog.AddText("总数:"+goods.size()+",成功:"+CompleteCount+",失败:"+FaultCount +"\r\n \r\n正在同步商品:"+good.name); | |||||
Log.i("sync", "总数:"+goods.size()+",成功:"+CompleteCount+",失败:"+FaultCount +",正在同步商品:"+good.name); | |||||
Boolean isSuceess = false; | |||||
try { | |||||
final Boolean[] boom = {false}; | |||||
OssHelper.getInstance().OnCharge = new IRunT() { | |||||
@Override | |||||
public void Run(Object o) { | |||||
ResAPI<String> resAPI = (ResAPI<String>) o; | |||||
if (resAPI.succeeded) { | |||||
good.url = resAPI.data; | |||||
QueryDB.UpdateGoods(good); | |||||
} | |||||
boom[0] = true; | |||||
} | |||||
}; | |||||
if(good.url!=null){ | |||||
OssHelper.getInstance().UpdataFile(context, good.url); | |||||
int time=0; | |||||
while (!boom[0]&&time<20) { | |||||
Thread.sleep(100); | |||||
time++; | |||||
} | |||||
} | |||||
} catch (Exception ex) { | |||||
} | |||||
UpdateCloudGood update = new UpdateCloudGood(); | |||||
try { | |||||
update.storeId = ConfigName.getInstance().organizeMode.id; | |||||
update.deviceId = ConfigName.getInstance().DeviceId; | |||||
update.userId = ConfigName.getInstance().user.name; | |||||
update.goodsInfo = new CloudGood(); | |||||
update.bomTechnologyActionInfo = new ArrayList<BomTechnologyActionInfo>(); | |||||
update.goodsTechnologyActionInfo = new ArrayList<BPA_GoodsTechnologyAction>(); | |||||
update.goodsInfo.id = good.id; | |||||
update.goodsInfo.createAt = good.createTime; | |||||
update.goodsInfo.isDeleted = 0; | |||||
update.goodsInfo.status = 0; | |||||
update.goodsInfo.groupId = ConfigName.getInstance().organizeMode.companyId; | |||||
update.goodsInfo.autoKey = 0; | |||||
update.goodsInfo.isWeigh = false; | |||||
update.goodsInfo.vipPrice = 0; | |||||
update.goodsInfo.price = 0; | |||||
update.goodsInfo.code = good.id; | |||||
update.goodsInfo.goods_Sort = good.sort; | |||||
update.goodsInfo.goods_Descritption = "设备上传商品"; | |||||
update.goodsInfo.goods_Name = good.name; | |||||
//选择菜谱 大类id 小类id 单位id | |||||
update.foodMenuId = sp; | |||||
update.goodsInfo.goods_ImgUrl = good.url;//图片地址 | |||||
update.goodsInfo.parentTypeID = dl;//大类 | |||||
update.goodsInfo.goods_TypeID = xl;//小类 | |||||
update.goodsInfo.goodsUintId = dw;//单位 | |||||
String id = good.gyid; | |||||
if (good.gyid == null) { | |||||
id = java.util.UUID.randomUUID().toString(); | |||||
QueryDB.UpdateGoodsGY(good.id, id); | |||||
} | |||||
QueryDB.UpdateGoodsTypeId(good.id,"默认分类"); | |||||
UpdateBomInfo bom = new UpdateBomInfo(); | |||||
bom.id = id; | |||||
bom.bomType = fl; | |||||
bom.name = good.name; | |||||
bom.code = java.util.UUID.randomUUID().toString(); | |||||
bom.isMain = true; | |||||
bom.sort = 0; | |||||
update.bomInfo = bom; | |||||
ArrayList<BPA_GOODSRECIPE> goodsrecipes = QueryDB.GetGoodsSrecipeID(good.id); | |||||
for (BPA_GOODSRECIPE item : goodsrecipes) { | |||||
GoodsTechnology goodsTechnology = null; | |||||
for (GoodsTechnology _find : ConfigName.getInstance().cloudData.goodsTechnology) { | |||||
if (_find.name.equals(item.processname)) { | |||||
goodsTechnology = _find; | |||||
break; | |||||
} | |||||
} | |||||
if (goodsTechnology != null) { | |||||
//2.根据工序变量集合-获取变量名称和值 | |||||
List<String> names = new ArrayList<>(); | |||||
final HashMap<String, String> formulation = new HashMap<>(); | |||||
//region 获取变量名称和值 | |||||
String text = item.processvalue; | |||||
List<String> data = new ArrayList<>(); | |||||
if (text.contains("|")) { | |||||
String[] res = text.split("[|]"); | |||||
for (int i = 0; i < res.length; i++) { | |||||
data.add(res[i]); | |||||
} | |||||
} else { | |||||
data.add(text); | |||||
} | |||||
for (String item1 : data) { | |||||
if (!item1.isEmpty() && item1.contains(",")) { | |||||
String[] wl = item1.split("[,]"); | |||||
if (wl != null && wl.length == 2) { | |||||
String name = wl[0]; | |||||
String val = wl[1]; | |||||
names.add(name); | |||||
formulation.put(name, val); | |||||
} | |||||
} | |||||
} | |||||
//endregion | |||||
List<ActionJsonMode> actionJsonModes = new ArrayList<>(); | |||||
//region 获取工艺集合 | |||||
if (item.materialType == 0)//物料 | |||||
{ | |||||
for (String f : names) { | |||||
BatchingInfo batchingInfo = null; | |||||
for (BatchingInfo _find : ConfigName.getInstance().cloudData.batchingInfo) { | |||||
if (_find.batching_Name.equals(f)) { | |||||
batchingInfo = _find; | |||||
break; | |||||
} | |||||
} | |||||
ActionJsonMode m = new ActionJsonMode(); | |||||
m.technologyactionId = batchingInfo != null ? batchingInfo.id :"";//模型id | |||||
m.batchingId = "";//物料id | |||||
m.actionName = f; | |||||
m.actionValue = formulation.get(f); | |||||
actionJsonModes.add(m); | |||||
} | |||||
} else//模型 | |||||
{ | |||||
for (String f : names) { | |||||
TechnologyAction technologyAction = null; | |||||
for (TechnologyAction _find : ConfigName.getInstance().cloudData.technologyAction) { | |||||
if (_find.actionName.equals(f) && _find.goodstechnologyId.equals(goodsTechnology.id)) { | |||||
technologyAction = _find; | |||||
break; | |||||
} | |||||
} | |||||
ActionJsonMode m = new ActionJsonMode(); | |||||
m.technologyactionId = technologyAction != null ? technologyAction.id : "";//模型id | |||||
m.batchingId = "";//物料id | |||||
m.actionName = f; | |||||
m.actionValue = formulation.get(f); | |||||
actionJsonModes.add(m); | |||||
} | |||||
} | |||||
//endregion | |||||
BPA_GoodsTechnologyAction info2 = new BPA_GoodsTechnologyAction(); | |||||
info2.stepName = item.processname; | |||||
info2.actionJson = new Gson().toJson(actionJsonModes); | |||||
info2.isBatch = (item.materialType == 0 ? false:true); | |||||
info2.chnologyId = goodsTechnology.id;//工艺名称id | |||||
info2.createAt = item.createTime; | |||||
info2.groupId = ConfigName.getInstance().organizeMode.companyId; | |||||
info2.id = item.id; | |||||
info2.isDeleted = 0; | |||||
info2.sort = item.sort; | |||||
info2.goodsId = good.id; | |||||
info2.deviceId = ConfigName.getInstance().DeviceId; | |||||
info2.goodsAttributeId = sxid; | |||||
update.goodsTechnologyActionInfo.add(info2); | |||||
} | |||||
} | |||||
isSuceess = true; | |||||
} catch (Exception ex) { | |||||
isSuceess = false; | |||||
ToastUtils.info("上传菜品异常:" + ex.getMessage()); | |||||
} | |||||
if (isSuceess) { | |||||
try { | |||||
String str = ConfigName.getInstance().SaasAddress + ConfigName.getInstance().UpdateGoods; | |||||
okhttp3.Response result = OkGo.<ResAPI<Boolean>>post(str).tag(this) | |||||
.upRequestBody(RequestBody.create(MediaType.parse("application/json; charset=utf-8"), new Gson().toJson(update))) | |||||
.headers(new HttpHeaders("TenantId", ConfigName.getInstance().organizeMode.companyId)) | |||||
.execute(); | |||||
if(result!=null&&result.isSuccessful()){ | |||||
APIResult res = new Gson().fromJson(result.body().string(),APIResult.class); | |||||
if (res.succeeded) { | |||||
MessageManager.getInstance().sendMessage(MessageName.ScGood, "GoodUpdate"); | |||||
CompleteCount++; | |||||
Log.i("sync", "同步成功"); | |||||
} else { | |||||
Log.i("sync", "上传菜品失败,失败原因:"+res.errors); | |||||
FaultCount++; | |||||
FaultGoodName.add(good.name); | |||||
} | |||||
} | |||||
} catch (Exception ex) { | |||||
ToastUtils.info("上传菜品异常:" + ex.getMessage()); | |||||
} | |||||
} | |||||
} | |||||
if(CompleteCount==goods.size()) { | |||||
WaitDialog.TimeOut("商品同步完成!成功:"+CompleteCount+",失败:"+FaultCount); | |||||
Log.i("sync", "商品同步完成!成功:"+CompleteCount+",失败:"+FaultCount); | |||||
} | |||||
else{ | |||||
StringBuffer sb = new StringBuffer(); | |||||
for (String error:FaultGoodName){ | |||||
sb.append(error).append("、"); | |||||
} | |||||
WaitDialog.TimeOut("商品同步完成!成功:"+CompleteCount+",失败:"+FaultCount+"\r\n \r\n失败商品:"+sb.toString().substring(0,sb.toString().length()-1)); | |||||
Log.i("sync", "商品同步完成!成功:"+CompleteCount+",失败:"+FaultCount+"\r\n \r\n失败商品:"+sb.toString().substring(0,sb.toString().length()-1)); | |||||
} | |||||
} | |||||
} |
@@ -0,0 +1,66 @@ | |||||
package com.bonait.bnframework.common.helper; | |||||
import android.app.Activity; | |||||
import android.app.ProgressDialog; | |||||
import android.content.Context; | |||||
import com.bonait.bnframework.common.utils.AlertDialogUtils; | |||||
import com.qmuiteam.qmui.widget.dialog.QMUIDialog; | |||||
import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; | |||||
public class WaitDialog { | |||||
static Context context; | |||||
static Activity activity; | |||||
static ProgressDialog progressDialog; | |||||
public static void Show(String title, String msg, Context _context, Activity _activity){ | |||||
context=_context; | |||||
activity=_activity; | |||||
if(context==null) return; | |||||
if(activity==null) return; | |||||
activity.runOnUiThread(()->{ | |||||
progressDialog = new ProgressDialog(context); | |||||
progressDialog.setTitle(title); | |||||
progressDialog.setCancelable(false); | |||||
progressDialog.setMessage(msg); | |||||
progressDialog.show(); | |||||
}); | |||||
} | |||||
public static void AddText(String info){ | |||||
// if(context==null) return; | |||||
if(activity==null) return; | |||||
if(progressDialog==null) return; | |||||
activity.runOnUiThread(()->{ progressDialog.setMessage(info);}); | |||||
} | |||||
public static void Dismiss(){ | |||||
try{ | |||||
if(activity!=null) activity.runOnUiThread(()->{if(progressDialog!=null) progressDialog.dismiss();}); | |||||
else { | |||||
if(progressDialog!=null) progressDialog.dismiss(); | |||||
} | |||||
context=null; | |||||
activity=null; | |||||
}catch (Exception E){ | |||||
} | |||||
} | |||||
public static void TimeOut(String info){ | |||||
if(activity==null) return; | |||||
if(progressDialog==null) return; | |||||
activity.runOnUiThread(()->{ progressDialog.dismiss();}); | |||||
activity.runOnUiThread(()->{ | |||||
AlertDialogUtils.showDialog(context, "提示", info, new QMUIDialogAction.ActionListener() { | |||||
@Override | |||||
public void onClick(QMUIDialog dialog, int index) { | |||||
context=null; | |||||
activity=null; | |||||
dialog.dismiss(); | |||||
} | |||||
}); | |||||
}); | |||||
} | |||||
} |
@@ -0,0 +1,14 @@ | |||||
package com.bonait.bnframework.common.model; | |||||
import kotlin.text.UStringsKt; | |||||
public class APIResult { | |||||
public int statusCode; | |||||
public Object data; | |||||
public boolean succeeded; | |||||
public String errors; | |||||
public Object extras; | |||||
public long timestamp; | |||||
} |
@@ -11,6 +11,7 @@ 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.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.helper.BatchSync; | |||||
import com.bonait.bnframework.common.helper.HttpServer; | import com.bonait.bnframework.common.helper.HttpServer; | ||||
import com.bonait.bnframework.common.helper.I.IRunT; | import com.bonait.bnframework.common.helper.I.IRunT; | ||||
import com.bonait.bnframework.common.helper.I.IThread; | import com.bonait.bnframework.common.helper.I.IThread; | ||||
@@ -20,6 +21,7 @@ import com.bonait.bnframework.common.helper.ThreadManager; | |||||
import com.bonait.bnframework.common.http.callback.json.JsonDialogCallback; | import com.bonait.bnframework.common.http.callback.json.JsonDialogCallback; | ||||
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.model.APIResult; | |||||
import com.bonait.bnframework.common.model.ResAPI; | import com.bonait.bnframework.common.model.ResAPI; | ||||
import com.bonait.bnframework.common.model.mode.ActionJsonMode; | import com.bonait.bnframework.common.model.mode.ActionJsonMode; | ||||
import com.bonait.bnframework.common.model.mode.BPA_GoodsTechnologyAction; | import com.bonait.bnframework.common.model.mode.BPA_GoodsTechnologyAction; | ||||
@@ -95,6 +97,10 @@ public class BottomNavigation2Activity extends BaseActivity { | |||||
// test(); | // test(); | ||||
// }catch (Exception e){} | // }catch (Exception e){} | ||||
// }).start(); | // }).start(); | ||||
if(ConfigName.getInstance().versionSelectionEnum.contains("一拖")){ | if(ConfigName.getInstance().versionSelectionEnum.contains("一拖")){ | ||||
hs = new HttpServer(); | hs = new HttpServer(); | ||||
new Thread(()->{ | new Thread(()->{ | ||||
@@ -116,251 +122,14 @@ public class BottomNavigation2Activity extends BaseActivity { | |||||
//AliyunIOTManager.getInstance().CloseDev(); | //AliyunIOTManager.getInstance().CloseDev(); | ||||
super.onDestroy(); | super.onDestroy(); | ||||
} | } | ||||
int count=0; | |||||
List<UpDataModel> uds = new ArrayList<>(); | |||||
private void test(){ | private void test(){ | ||||
if (ConfigName.getInstance().organizeMode == null && ConfigName.getInstance().cloudData != null) { | if (ConfigName.getInstance().organizeMode == null && ConfigName.getInstance().cloudData != null) { | ||||
ToastUtils.warning("无组织信息不能上传,请设置当前店铺信息!!!"); | ToastUtils.warning("无组织信息不能上传,请设置当前店铺信息!!!"); | ||||
return; | return; | ||||
} | } | ||||
ArrayList<BPA_GOODS> goods = QueryDB.GetGoodsALL(); | ArrayList<BPA_GOODS> goods = QueryDB.GetGoodsALL(); | ||||
for (BPA_GOODS good:goods){ | |||||
uds.add(new UpDataModel(this,good)); | |||||
break; | |||||
// Boolean isSuceess = false; | |||||
// try { | |||||
// final Boolean[] boom = {false}; | |||||
// OssHelper.getInstance().OnCharge = new IRunT() { | |||||
// @Override | |||||
// public void Run(Object o) { | |||||
// ResAPI<String> resAPI = (ResAPI<String>) o; | |||||
// if (resAPI.succeeded) { | |||||
// good.url = resAPI.data; | |||||
// QueryDB.UpdateGoods(good); | |||||
// } | |||||
// boom[0] = true; | |||||
// } | |||||
// }; | |||||
// if(good.url!=null){ | |||||
// OssHelper.getInstance().UpdataFile(this, good.url); | |||||
// while (!boom[0]) { | |||||
// Thread.sleep(100); | |||||
// } | |||||
// } | |||||
// } catch (Exception ex) { | |||||
// | |||||
// } | |||||
// UpdateCloudGood update = new UpdateCloudGood(); | |||||
// try { | |||||
// update.storeId = ConfigName.getInstance().organizeMode.id; | |||||
// update.deviceId = ConfigName.getInstance().DeviceId; | |||||
// update.userId = ConfigName.getInstance().user.name; | |||||
// update.goodsInfo = new CloudGood(); | |||||
// update.bomTechnologyActionInfo = new ArrayList<BomTechnologyActionInfo>(); | |||||
// update.goodsTechnologyActionInfo = new ArrayList<BPA_GoodsTechnologyAction>(); | |||||
// | |||||
// update.goodsInfo.id = good.id; | |||||
// update.goodsInfo.createAt = good.createTime; | |||||
// update.goodsInfo.isDeleted = 0; | |||||
// update.goodsInfo.status = 0; | |||||
// update.goodsInfo.groupId = ConfigName.getInstance().organizeMode.companyId; | |||||
// update.goodsInfo.autoKey = 0; | |||||
// update.goodsInfo.isWeigh = false; | |||||
// update.goodsInfo.vipPrice = 0; | |||||
// update.goodsInfo.price = 0; | |||||
// update.goodsInfo.code = good.id; | |||||
// update.goodsInfo.goods_Sort = good.sort; | |||||
// update.goodsInfo.goods_Descritption = "设备上传商品"; | |||||
// update.goodsInfo.goods_Name = good.name; | |||||
// | |||||
// //选择菜谱 大类id 小类id 单位id | |||||
// update.foodMenuId = "小炒"; | |||||
// update.goodsInfo.goods_ImgUrl = good.url;//图片地址 | |||||
// update.goodsInfo.parentTypeID = "默认分类";//大类 | |||||
// update.goodsInfo.goods_TypeID = "默认分类";//小类 | |||||
// update.goodsInfo.goodsUintId = "默认单位";//单位 | |||||
// | |||||
// String id = good.gyid; | |||||
// if (good.gyid == null) { | |||||
// id = java.util.UUID.randomUUID().toString(); | |||||
// QueryDB.UpdateGoodsGY(good.id, id); | |||||
// } | |||||
// QueryDB.UpdateGoodsTypeId(good.id,"默认分类"); | |||||
// | |||||
// UpdateBomInfo bom = new UpdateBomInfo(); | |||||
// bom.id = id; | |||||
// bom.bomType = "炒菜"; | |||||
// bom.name = good.name; | |||||
// bom.code = java.util.UUID.randomUUID().toString(); | |||||
// bom.isMain = true; | |||||
// bom.sort = 0; | |||||
// update.bomInfo = bom; | |||||
// | |||||
// ArrayList<BPA_GOODSRECIPE> goodsrecipes = QueryDB.GetGoodsSrecipeID(good.id); | |||||
// for (BPA_GOODSRECIPE item : goodsrecipes) { | |||||
// GoodsTechnology goodsTechnology = null; | |||||
// for (GoodsTechnology _find : ConfigName.getInstance().cloudData.goodsTechnology) { | |||||
// if (_find.name.equals(item.processname)) { | |||||
// goodsTechnology = _find; | |||||
// break; | |||||
// } | |||||
// } | |||||
// | |||||
// if (goodsTechnology != null) { | |||||
// //2.根据工序变量集合-获取变量名称和值 | |||||
// List<String> names = new ArrayList<>(); | |||||
// final HashMap<String, String> formulation = new HashMap<>(); | |||||
// //region 获取变量名称和值 | |||||
// String text = item.processvalue; | |||||
// List<String> data = new ArrayList<>(); | |||||
// if (text.contains("|")) { | |||||
// String[] res = text.split("[|]"); | |||||
// for (int i = 0; i < res.length; i++) { | |||||
// data.add(res[i]); | |||||
// } | |||||
// } else { | |||||
// data.add(text); | |||||
// } | |||||
// for (String item1 : data) { | |||||
// if (!item1.isEmpty() && item1.contains(",")) { | |||||
// String[] wl = item1.split("[,]"); | |||||
// if (wl != null && wl.length == 2) { | |||||
// String name = wl[0]; | |||||
// String val = wl[1]; | |||||
// names.add(name); | |||||
// formulation.put(name, val); | |||||
// } | |||||
// } | |||||
// } | |||||
// //endregion | |||||
// | |||||
// List<ActionJsonMode> actionJsonModes = new ArrayList<>(); | |||||
// //region 获取工艺集合 | |||||
// if (item.materialType == 0)//物料 | |||||
// { | |||||
// for (String f : names) { | |||||
// BatchingInfo batchingInfo = null; | |||||
// for (BatchingInfo _find : ConfigName.getInstance().cloudData.batchingInfo) { | |||||
// if (_find.batching_Name.equals(f)) { | |||||
// batchingInfo = _find; | |||||
// break; | |||||
// } | |||||
// } | |||||
// ActionJsonMode m = new ActionJsonMode(); | |||||
// m.technologyactionId = batchingInfo != null ? batchingInfo.id :"";//模型id | |||||
// m.batchingId = "";//物料id | |||||
// m.actionName = f; | |||||
// m.actionValue = formulation.get(f); | |||||
// actionJsonModes.add(m); | |||||
// } | |||||
// } else//模型 | |||||
// { | |||||
// for (String f : names) { | |||||
// TechnologyAction technologyAction = null; | |||||
// for (TechnologyAction _find : ConfigName.getInstance().cloudData.technologyAction) { | |||||
// if (_find.actionName.equals(f) && _find.goodstechnologyId.equals(goodsTechnology.id)) { | |||||
// technologyAction = _find; | |||||
// break; | |||||
// } | |||||
// } | |||||
// ActionJsonMode m = new ActionJsonMode(); | |||||
// m.technologyactionId = technologyAction != null ? technologyAction.id : "";//模型id | |||||
// m.batchingId = "";//物料id | |||||
// m.actionName = f; | |||||
// m.actionValue = formulation.get(f); | |||||
// actionJsonModes.add(m); | |||||
// } | |||||
// } | |||||
// //endregion | |||||
// | |||||
// BPA_GoodsTechnologyAction info2 = new BPA_GoodsTechnologyAction(); | |||||
// info2.stepName = item.processname; | |||||
// info2.actionJson = new Gson().toJson(actionJsonModes); | |||||
// info2.isBatch = (item.materialType == 0 ? false:true); | |||||
// info2.chnologyId = goodsTechnology.id;//工艺名称id | |||||
// info2.createAt = item.createTime; | |||||
// info2.groupId = ConfigName.getInstance().organizeMode.companyId; | |||||
// info2.id = item.id; | |||||
// info2.isDeleted = 0; | |||||
// info2.sort = item.sort; | |||||
// info2.goodsId = good.id; | |||||
// info2.deviceId = ConfigName.getInstance().DeviceId; | |||||
// info2.goodsAttributeId = "默认属性值"; | |||||
// update.goodsTechnologyActionInfo.add(info2); | |||||
// } | |||||
// } | |||||
// isSuceess = true; | |||||
// } catch (Exception ex) { | |||||
// isSuceess = true; | |||||
// ToastUtils.info("上传菜品异常:" + ex.getMessage()); | |||||
// } | |||||
// | |||||
// | |||||
// if (isSuceess) { | |||||
// try { | |||||
// String str = ConfigName.getInstance().SaasAddress + ConfigName.getInstance().UpdateGoods; | |||||
// // String str="http://192.168.1.7:5000/api/CommInteface/SendGoodsInfo"; | |||||
// | |||||
// | |||||
// | |||||
// okhttp3.Response res = OkGo.<ResAPI<Boolean>>post(str).tag(this) | |||||
// .upRequestBody(RequestBody.create(MediaType.parse("application/json; charset=utf-8"), new Gson().toJson(update))) | |||||
// .headers(new HttpHeaders("TenantId", ConfigName.getInstance().organizeMode.companyId)) | |||||
// .execute(); | |||||
// if(res.isSuccessful()){ | |||||
// count++; | |||||
// Log.i("count", "onSuccess: "+count); | |||||
// } | |||||
// | |||||
// | |||||
//// OkGo.<ResAPI<Boolean>>post(str).tag(this) | |||||
//// .upRequestBody(RequestBody.create(MediaType.parse("application/json; charset=utf-8"), new Gson().toJson(update))) | |||||
//// .headers(new HttpHeaders("TenantId", ConfigName.getInstance().organizeMode.companyId)) | |||||
//// .execute(new JsonDialogCallback<ResAPI<Boolean>>(this) { | |||||
//// @Override | |||||
//// public void onSuccess(Response<ResAPI<Boolean>> response) { | |||||
//// ResAPI<Boolean> allDataResAPI = response.body(); | |||||
//// if (allDataResAPI.succeeded) { | |||||
//// count++; | |||||
//// ToastUtils.info("上传菜品成功!!!"+count); | |||||
//// Log.i("count", "onSuccess: "+count); | |||||
//// MessageManager.getInstance().sendMessage(MessageName.ScGood, "GoodUpdate"); | |||||
//// } else { | |||||
//// ToastUtils.warning("上传菜品失败!!!"); | |||||
//// } | |||||
//// } | |||||
//// }); | |||||
// } catch (Exception ex) { | |||||
// ToastUtils.info("上传菜品异常:" + ex.getMessage()); | |||||
// } | |||||
// } | |||||
} | |||||
for(UpDataModel item:uds){ | |||||
item.Start(); | |||||
break; | |||||
} | |||||
new Thread(()->{ | |||||
try { | |||||
while (true){ | |||||
int count=0; | |||||
for (UpDataModel item:uds){ | |||||
if(item.Status)count++; | |||||
} | |||||
if(count==uds.size())break; | |||||
Thread.sleep(1000); | |||||
} | |||||
Log.i("tongbu", "test: 同步完成"); | |||||
uds.clear(); | |||||
}catch (Exception e){ | |||||
} | |||||
}).start(); | |||||
BatchSync bs = new BatchSync(this,this,goods); | |||||
bs.Start(); | |||||
} | } | ||||