@@ -0,0 +1,340 @@ | |||||
<?xml version="1.0" encoding="UTF-8"?> | |||||
<project version="4"> | |||||
<component name="direct_access_persist.xml"> | |||||
<option name="deviceSelectionList"> | |||||
<list> | |||||
<PersistentDeviceSelectionData> | |||||
<option name="api" value="27" /> | |||||
<option name="brand" value="DOCOMO" /> | |||||
<option name="codename" value="F01L" /> | |||||
<option name="id" value="F01L" /> | |||||
<option name="manufacturer" value="FUJITSU" /> | |||||
<option name="name" value="F-01L" /> | |||||
<option name="screenDensity" value="360" /> | |||||
<option name="screenX" value="720" /> | |||||
<option name="screenY" value="1280" /> | |||||
</PersistentDeviceSelectionData> | |||||
<PersistentDeviceSelectionData> | |||||
<option name="api" value="34" /> | |||||
<option name="brand" value="OPPO" /> | |||||
<option name="codename" value="OP573DL1" /> | |||||
<option name="id" value="OP573DL1" /> | |||||
<option name="manufacturer" value="OPPO" /> | |||||
<option name="name" value="CPH2557" /> | |||||
<option name="screenDensity" value="480" /> | |||||
<option name="screenX" value="1080" /> | |||||
<option name="screenY" value="2400" /> | |||||
</PersistentDeviceSelectionData> | |||||
<PersistentDeviceSelectionData> | |||||
<option name="api" value="28" /> | |||||
<option name="brand" value="DOCOMO" /> | |||||
<option name="codename" value="SH-01L" /> | |||||
<option name="id" value="SH-01L" /> | |||||
<option name="manufacturer" value="SHARP" /> | |||||
<option name="name" value="AQUOS sense2 SH-01L" /> | |||||
<option name="screenDensity" value="480" /> | |||||
<option name="screenX" value="1080" /> | |||||
<option name="screenY" value="2160" /> | |||||
</PersistentDeviceSelectionData> | |||||
<PersistentDeviceSelectionData> | |||||
<option name="api" value="34" /> | |||||
<option name="brand" value="Lenovo" /> | |||||
<option name="codename" value="TB370FU" /> | |||||
<option name="id" value="TB370FU" /> | |||||
<option name="manufacturer" value="Lenovo" /> | |||||
<option name="name" value="Tab P12" /> | |||||
<option name="screenDensity" value="340" /> | |||||
<option name="screenX" value="1840" /> | |||||
<option name="screenY" value="2944" /> | |||||
</PersistentDeviceSelectionData> | |||||
<PersistentDeviceSelectionData> | |||||
<option name="api" value="31" /> | |||||
<option name="brand" value="samsung" /> | |||||
<option name="codename" value="a51" /> | |||||
<option name="id" value="a51" /> | |||||
<option name="manufacturer" value="Samsung" /> | |||||
<option name="name" value="Galaxy A51" /> | |||||
<option name="screenDensity" value="420" /> | |||||
<option name="screenX" value="1080" /> | |||||
<option name="screenY" value="2400" /> | |||||
</PersistentDeviceSelectionData> | |||||
<PersistentDeviceSelectionData> | |||||
<option name="api" value="34" /> | |||||
<option name="brand" value="google" /> | |||||
<option name="codename" value="akita" /> | |||||
<option name="id" value="akita" /> | |||||
<option name="manufacturer" value="Google" /> | |||||
<option name="name" value="Pixel 8a" /> | |||||
<option name="screenDensity" value="420" /> | |||||
<option name="screenX" value="1080" /> | |||||
<option name="screenY" value="2400" /> | |||||
</PersistentDeviceSelectionData> | |||||
<PersistentDeviceSelectionData> | |||||
<option name="api" value="33" /> | |||||
<option name="brand" value="samsung" /> | |||||
<option name="codename" value="b0q" /> | |||||
<option name="id" value="b0q" /> | |||||
<option name="manufacturer" value="Samsung" /> | |||||
<option name="name" value="Galaxy S22 Ultra" /> | |||||
<option name="screenDensity" value="600" /> | |||||
<option name="screenX" value="1440" /> | |||||
<option name="screenY" value="3088" /> | |||||
</PersistentDeviceSelectionData> | |||||
<PersistentDeviceSelectionData> | |||||
<option name="api" value="32" /> | |||||
<option name="brand" value="google" /> | |||||
<option name="codename" value="bluejay" /> | |||||
<option name="id" value="bluejay" /> | |||||
<option name="manufacturer" value="Google" /> | |||||
<option name="name" value="Pixel 6a" /> | |||||
<option name="screenDensity" value="420" /> | |||||
<option name="screenX" value="1080" /> | |||||
<option name="screenY" value="2400" /> | |||||
</PersistentDeviceSelectionData> | |||||
<PersistentDeviceSelectionData> | |||||
<option name="api" value="34" /> | |||||
<option name="brand" value="google" /> | |||||
<option name="codename" value="caiman" /> | |||||
<option name="id" value="caiman" /> | |||||
<option name="manufacturer" value="Google" /> | |||||
<option name="name" value="Pixel 9 Pro" /> | |||||
<option name="screenDensity" value="360" /> | |||||
<option name="screenX" value="960" /> | |||||
<option name="screenY" value="2142" /> | |||||
</PersistentDeviceSelectionData> | |||||
<PersistentDeviceSelectionData> | |||||
<option name="api" value="34" /> | |||||
<option name="brand" value="google" /> | |||||
<option name="codename" value="comet" /> | |||||
<option name="id" value="comet" /> | |||||
<option name="manufacturer" value="Google" /> | |||||
<option name="name" value="Pixel 9 Pro Fold" /> | |||||
<option name="screenDensity" value="390" /> | |||||
<option name="screenX" value="2076" /> | |||||
<option name="screenY" value="2152" /> | |||||
</PersistentDeviceSelectionData> | |||||
<PersistentDeviceSelectionData> | |||||
<option name="api" value="29" /> | |||||
<option name="brand" value="samsung" /> | |||||
<option name="codename" value="crownqlteue" /> | |||||
<option name="id" value="crownqlteue" /> | |||||
<option name="manufacturer" value="Samsung" /> | |||||
<option name="name" value="Galaxy Note9" /> | |||||
<option name="screenDensity" value="420" /> | |||||
<option name="screenX" value="2220" /> | |||||
<option name="screenY" value="1080" /> | |||||
</PersistentDeviceSelectionData> | |||||
<PersistentDeviceSelectionData> | |||||
<option name="api" value="34" /> | |||||
<option name="brand" value="samsung" /> | |||||
<option name="codename" value="dm3q" /> | |||||
<option name="id" value="dm3q" /> | |||||
<option name="manufacturer" value="Samsung" /> | |||||
<option name="name" value="Galaxy S23 Ultra" /> | |||||
<option name="screenDensity" value="600" /> | |||||
<option name="screenX" value="1440" /> | |||||
<option name="screenY" value="3088" /> | |||||
</PersistentDeviceSelectionData> | |||||
<PersistentDeviceSelectionData> | |||||
<option name="api" value="34" /> | |||||
<option name="brand" value="samsung" /> | |||||
<option name="codename" value="e1q" /> | |||||
<option name="id" value="e1q" /> | |||||
<option name="manufacturer" value="Samsung" /> | |||||
<option name="name" value="Galaxy S24" /> | |||||
<option name="screenDensity" value="480" /> | |||||
<option name="screenX" value="1080" /> | |||||
<option name="screenY" value="2340" /> | |||||
</PersistentDeviceSelectionData> | |||||
<PersistentDeviceSelectionData> | |||||
<option name="api" value="33" /> | |||||
<option name="brand" value="google" /> | |||||
<option name="codename" value="felix" /> | |||||
<option name="id" value="felix" /> | |||||
<option name="manufacturer" value="Google" /> | |||||
<option name="name" value="Pixel Fold" /> | |||||
<option name="screenDensity" value="420" /> | |||||
<option name="screenX" value="2208" /> | |||||
<option name="screenY" value="1840" /> | |||||
</PersistentDeviceSelectionData> | |||||
<PersistentDeviceSelectionData> | |||||
<option name="api" value="34" /> | |||||
<option name="brand" value="google" /> | |||||
<option name="codename" value="felix" /> | |||||
<option name="id" value="felix" /> | |||||
<option name="manufacturer" value="Google" /> | |||||
<option name="name" value="Pixel Fold" /> | |||||
<option name="screenDensity" value="420" /> | |||||
<option name="screenX" value="2208" /> | |||||
<option name="screenY" value="1840" /> | |||||
</PersistentDeviceSelectionData> | |||||
<PersistentDeviceSelectionData> | |||||
<option name="api" value="33" /> | |||||
<option name="brand" value="google" /> | |||||
<option name="codename" value="felix_camera" /> | |||||
<option name="id" value="felix_camera" /> | |||||
<option name="manufacturer" value="Google" /> | |||||
<option name="name" value="Pixel Fold (Camera-enabled)" /> | |||||
<option name="screenDensity" value="420" /> | |||||
<option name="screenX" value="2208" /> | |||||
<option name="screenY" value="1840" /> | |||||
</PersistentDeviceSelectionData> | |||||
<PersistentDeviceSelectionData> | |||||
<option name="api" value="33" /> | |||||
<option name="brand" value="samsung" /> | |||||
<option name="codename" value="gts8uwifi" /> | |||||
<option name="id" value="gts8uwifi" /> | |||||
<option name="manufacturer" value="Samsung" /> | |||||
<option name="name" value="Galaxy Tab S8 Ultra" /> | |||||
<option name="screenDensity" value="320" /> | |||||
<option name="screenX" value="1848" /> | |||||
<option name="screenY" value="2960" /> | |||||
</PersistentDeviceSelectionData> | |||||
<PersistentDeviceSelectionData> | |||||
<option name="api" value="34" /> | |||||
<option name="brand" value="google" /> | |||||
<option name="codename" value="husky" /> | |||||
<option name="id" value="husky" /> | |||||
<option name="manufacturer" value="Google" /> | |||||
<option name="name" value="Pixel 8 Pro" /> | |||||
<option name="screenDensity" value="390" /> | |||||
<option name="screenX" value="1008" /> | |||||
<option name="screenY" value="2244" /> | |||||
</PersistentDeviceSelectionData> | |||||
<PersistentDeviceSelectionData> | |||||
<option name="api" value="30" /> | |||||
<option name="brand" value="motorola" /> | |||||
<option name="codename" value="java" /> | |||||
<option name="id" value="java" /> | |||||
<option name="manufacturer" value="Motorola" /> | |||||
<option name="name" value="G20" /> | |||||
<option name="screenDensity" value="280" /> | |||||
<option name="screenX" value="720" /> | |||||
<option name="screenY" value="1600" /> | |||||
</PersistentDeviceSelectionData> | |||||
<PersistentDeviceSelectionData> | |||||
<option name="api" value="34" /> | |||||
<option name="brand" value="google" /> | |||||
<option name="codename" value="komodo" /> | |||||
<option name="id" value="komodo" /> | |||||
<option name="manufacturer" value="Google" /> | |||||
<option name="name" value="Pixel 9 Pro XL" /> | |||||
<option name="screenDensity" value="360" /> | |||||
<option name="screenX" value="1008" /> | |||||
<option name="screenY" value="2244" /> | |||||
</PersistentDeviceSelectionData> | |||||
<PersistentDeviceSelectionData> | |||||
<option name="api" value="33" /> | |||||
<option name="brand" value="google" /> | |||||
<option name="codename" value="lynx" /> | |||||
<option name="id" value="lynx" /> | |||||
<option name="manufacturer" value="Google" /> | |||||
<option name="name" value="Pixel 7a" /> | |||||
<option name="screenDensity" value="420" /> | |||||
<option name="screenX" value="1080" /> | |||||
<option name="screenY" value="2400" /> | |||||
</PersistentDeviceSelectionData> | |||||
<PersistentDeviceSelectionData> | |||||
<option name="api" value="31" /> | |||||
<option name="brand" value="google" /> | |||||
<option name="codename" value="oriole" /> | |||||
<option name="id" value="oriole" /> | |||||
<option name="manufacturer" value="Google" /> | |||||
<option name="name" value="Pixel 6" /> | |||||
<option name="screenDensity" value="420" /> | |||||
<option name="screenX" value="1080" /> | |||||
<option name="screenY" value="2400" /> | |||||
</PersistentDeviceSelectionData> | |||||
<PersistentDeviceSelectionData> | |||||
<option name="api" value="33" /> | |||||
<option name="brand" value="google" /> | |||||
<option name="codename" value="panther" /> | |||||
<option name="id" value="panther" /> | |||||
<option name="manufacturer" value="Google" /> | |||||
<option name="name" value="Pixel 7" /> | |||||
<option name="screenDensity" value="420" /> | |||||
<option name="screenX" value="1080" /> | |||||
<option name="screenY" value="2400" /> | |||||
</PersistentDeviceSelectionData> | |||||
<PersistentDeviceSelectionData> | |||||
<option name="api" value="34" /> | |||||
<option name="brand" value="samsung" /> | |||||
<option name="codename" value="q5q" /> | |||||
<option name="id" value="q5q" /> | |||||
<option name="manufacturer" value="Samsung" /> | |||||
<option name="name" value="Galaxy Z Fold5" /> | |||||
<option name="screenDensity" value="420" /> | |||||
<option name="screenX" value="1812" /> | |||||
<option name="screenY" value="2176" /> | |||||
</PersistentDeviceSelectionData> | |||||
<PersistentDeviceSelectionData> | |||||
<option name="api" value="34" /> | |||||
<option name="brand" value="samsung" /> | |||||
<option name="codename" value="q6q" /> | |||||
<option name="id" value="q6q" /> | |||||
<option name="manufacturer" value="Samsung" /> | |||||
<option name="name" value="Galaxy Z Fold6" /> | |||||
<option name="screenDensity" value="420" /> | |||||
<option name="screenX" value="1856" /> | |||||
<option name="screenY" value="2160" /> | |||||
</PersistentDeviceSelectionData> | |||||
<PersistentDeviceSelectionData> | |||||
<option name="api" value="30" /> | |||||
<option name="brand" value="google" /> | |||||
<option name="codename" value="r11" /> | |||||
<option name="id" value="r11" /> | |||||
<option name="manufacturer" value="Google" /> | |||||
<option name="name" value="Pixel Watch" /> | |||||
<option name="screenDensity" value="320" /> | |||||
<option name="screenX" value="384" /> | |||||
<option name="screenY" value="384" /> | |||||
<option name="type" value="WEAR_OS" /> | |||||
</PersistentDeviceSelectionData> | |||||
<PersistentDeviceSelectionData> | |||||
<option name="api" value="30" /> | |||||
<option name="brand" value="google" /> | |||||
<option name="codename" value="redfin" /> | |||||
<option name="id" value="redfin" /> | |||||
<option name="manufacturer" value="Google" /> | |||||
<option name="name" value="Pixel 5" /> | |||||
<option name="screenDensity" value="440" /> | |||||
<option name="screenX" value="1080" /> | |||||
<option name="screenY" value="2340" /> | |||||
</PersistentDeviceSelectionData> | |||||
<PersistentDeviceSelectionData> | |||||
<option name="api" value="34" /> | |||||
<option name="brand" value="google" /> | |||||
<option name="codename" value="shiba" /> | |||||
<option name="id" value="shiba" /> | |||||
<option name="manufacturer" value="Google" /> | |||||
<option name="name" value="Pixel 8" /> | |||||
<option name="screenDensity" value="420" /> | |||||
<option name="screenX" value="1080" /> | |||||
<option name="screenY" value="2400" /> | |||||
</PersistentDeviceSelectionData> | |||||
<PersistentDeviceSelectionData> | |||||
<option name="api" value="33" /> | |||||
<option name="brand" value="google" /> | |||||
<option name="codename" value="tangorpro" /> | |||||
<option name="id" value="tangorpro" /> | |||||
<option name="manufacturer" value="Google" /> | |||||
<option name="name" value="Pixel Tablet" /> | |||||
<option name="screenDensity" value="320" /> | |||||
<option name="screenX" value="1600" /> | |||||
<option name="screenY" value="2560" /> | |||||
</PersistentDeviceSelectionData> | |||||
<PersistentDeviceSelectionData> | |||||
<option name="api" value="34" /> | |||||
<option name="brand" value="google" /> | |||||
<option name="codename" value="tokay" /> | |||||
<option name="id" value="tokay" /> | |||||
<option name="manufacturer" value="Google" /> | |||||
<option name="name" value="Pixel 9" /> | |||||
<option name="screenDensity" value="420" /> | |||||
<option name="screenX" value="1080" /> | |||||
<option name="screenY" value="2424" /> | |||||
</PersistentDeviceSelectionData> | |||||
</list> | |||||
</option> | |||||
</component> | |||||
</project> |
@@ -58,24 +58,30 @@ public class ThreadManager { | |||||
public void StartLong(String Key, boolean IsRestart, IThread _thread) { | public void StartLong(String Key, boolean IsRestart, IThread _thread) { | ||||
if (!tm.containsKey(Key)) { | if (!tm.containsKey(Key)) { | ||||
tm.put(Key, new ThreadModel()); | tm.put(Key, new ThreadModel()); | ||||
if(tm.get(Key)==null){ | |||||
return; | |||||
} | |||||
tm.get(Key).Task = _thread; | tm.get(Key).Task = _thread; | ||||
tm.get(Key).ThreadObj = new Thread(() -> { | tm.get(Key).ThreadObj = new Thread(() -> { | ||||
MessageLog.ShowInfo("启动线程:" + Key); | MessageLog.ShowInfo("启动线程:" + Key); | ||||
while (!tm.get(Key).IsCancel) { | |||||
while (tm.get(Key)!=null&&!tm.get(Key).IsCancel) { | |||||
if (IsRestart) { | if (IsRestart) { | ||||
try { | try { | ||||
tm.get(Key).Task.Run(); | |||||
if(!tm.isEmpty() && tm.get(Key)!=null){ | |||||
tm.get(Key).Task.Run(); | |||||
} | |||||
} catch (Exception ex) { | } catch (Exception ex) { | ||||
MessageLog.ShowError("多线程:[" + Key + "] 运行发生异常,已重启,错误信息:" + ex.toString()); | MessageLog.ShowError("多线程:[" + Key + "] 运行发生异常,已重启,错误信息:" + ex.toString()); | ||||
LogUtils.d("多线程:[" + Key + "] 运行发生异常,已重启,错误信息:" + ex.toString()); | LogUtils.d("多线程:[" + Key + "] 运行发生异常,已重启,错误信息:" + ex.toString()); | ||||
Sleep(RestartInterval); | Sleep(RestartInterval); | ||||
ex.printStackTrace(); | |||||
} | } | ||||
} else { | } else { | ||||
try { | try { | ||||
tm.get(Key).Task.Run(); | tm.get(Key).Task.Run(); | ||||
} catch (Exception e) { | } catch (Exception e) { | ||||
MessageLog.ShowError("多线程:[" + Key + "] 运行发生异常,已重启,错误信息:" + e.toString()); | |||||
MessageLog.ShowError("多线程:[" + Key + "] 运行发生异常2,已重启,错误信息:" + e.toString()); | |||||
e.printStackTrace(); | |||||
} | } | ||||
} | } | ||||
} | } | ||||
@@ -123,7 +129,7 @@ public class ThreadManager { | |||||
for (HashMap.Entry<String, ThreadModel> entry : tm.entrySet()) { | for (HashMap.Entry<String, ThreadModel> entry : tm.entrySet()) { | ||||
entry.getValue().IsCancel = true; | entry.getValue().IsCancel = true; | ||||
} | } | ||||
tm.clear(); | |||||
// tm.clear(); | |||||
} | } | ||||
} | } |
@@ -9,10 +9,13 @@ import com.bonait.bnframework.common.constant.ConfigName; | |||||
import com.bonait.bnframework.common.db.QueryDB; | import com.bonait.bnframework.common.db.QueryDB; | ||||
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_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_ORDER_DETAIL; | import com.bonait.bnframework.common.db.mode.BPA_ORDER_DETAIL; | ||||
import com.bonait.bnframework.common.db.mode.BPA_SILOS; | import com.bonait.bnframework.common.db.mode.BPA_SILOS; | ||||
import com.bonait.bnframework.common.db.util.GoodsProcessDetailDBUtil; | import com.bonait.bnframework.common.db.util.GoodsProcessDetailDBUtil; | ||||
import com.bonait.bnframework.common.db.util.OrderDetailUtil; | import com.bonait.bnframework.common.db.util.OrderDetailUtil; | ||||
import com.bonait.bnframework.common.db.util.SubAttributeDBUtil; | |||||
import com.bonait.bnframework.common.db.util.SubAttributeGroupDBUtil; | |||||
import com.bonait.bnframework.common.helper.I.IWriteCallBack; | import com.bonait.bnframework.common.helper.I.IWriteCallBack; | ||||
import com.bonait.bnframework.event.MakingStepEvent; | import com.bonait.bnframework.event.MakingStepEvent; | ||||
import com.bonait.bnframework.modbus.ModbusCenter; | import com.bonait.bnframework.modbus.ModbusCenter; | ||||
@@ -60,30 +63,29 @@ public class ExecuteTheRecipe { | |||||
if (ConfigName.MakeStatus[orderDetail.deviceNum -1] && orderDetail != null) { | if (ConfigName.MakeStatus[orderDetail.deviceNum -1] && orderDetail != null) { | ||||
boolean isError = false; | boolean isError = false; | ||||
long startTime = System.currentTimeMillis(); //起始时间 | long startTime = System.currentTimeMillis(); //起始时间 | ||||
showlog("开始烹饪菜谱【" + orderDetail.goodsName + "】"); | |||||
showlog(orderDetail.deviceNum,"开始烹饪菜谱【" + orderDetail.goodsName + "】"); | |||||
try { | try { | ||||
//获取工艺 | //获取工艺 | ||||
ArrayList<BPA_GOODS_PROCESS_DETAIL> goodsrecipes = GoodsProcessDetailDBUtil.getByGroupId(orderDetail.groupId); | |||||
ArrayList<BPA_GOODS_PROCESS_DETAIL> goodsrecipes = new ArrayList<>(); | |||||
if(orderDetail.deviceNum ==1){ | if(orderDetail.deviceNum ==1){ | ||||
Wok1ModbusTcpServer.get().WriteBool("M52.0", (boolean) true, null); | Wok1ModbusTcpServer.get().WriteBool("M52.0", (boolean) true, null); | ||||
ConfigName.goodsProcess1.clear(); | |||||
ConfigName.goodsProcess1.addAll(goodsrecipes); | |||||
goodsrecipes = ConfigName.goodsProcess1; | |||||
}else if(orderDetail.deviceNum ==2){ | }else if(orderDetail.deviceNum ==2){ | ||||
Wok2ModbusTcpServer.get().WriteBool("M52.0", (boolean) true, null); | Wok2ModbusTcpServer.get().WriteBool("M52.0", (boolean) true, null); | ||||
ConfigName.goodsProcess2.clear(); | |||||
ConfigName.goodsProcess2.addAll(goodsrecipes); | |||||
goodsrecipes = ConfigName.goodsProcess2; | |||||
}else if(orderDetail.deviceNum ==3){ | }else if(orderDetail.deviceNum ==3){ | ||||
Wok3ModbusTcpServer.get().WriteBool("M52.0", (boolean) true, null); | Wok3ModbusTcpServer.get().WriteBool("M52.0", (boolean) true, null); | ||||
ConfigName.goodsProcess3.clear(); | |||||
ConfigName.goodsProcess3.addAll(goodsrecipes); | |||||
goodsrecipes = ConfigName.goodsProcess3; | |||||
}else if(orderDetail.deviceNum ==4){ | }else if(orderDetail.deviceNum ==4){ | ||||
Wok4ModbusTcpServer.get().WriteBool("M52.0", (boolean) true, null); | Wok4ModbusTcpServer.get().WriteBool("M52.0", (boolean) true, null); | ||||
ConfigName.goodsProcess4.clear(); | |||||
ConfigName.goodsProcess4.addAll(goodsrecipes); | |||||
goodsrecipes = ConfigName.goodsProcess4; | |||||
} | } | ||||
int m = 0; | int m = 0; | ||||
if(!goodsrecipes.isEmpty()){ | if(!goodsrecipes.isEmpty()){ | ||||
ConfigName.hasClear[orderDetail.deviceNum -1] = goodsrecipes.get(goodsrecipes.size()-1).processname.contains("清洗"); | ConfigName.hasClear[orderDetail.deviceNum -1] = goodsrecipes.get(goodsrecipes.size()-1).processname.contains("清洗"); | ||||
}else { | |||||
NewToastUtil.getInstance().showToast("商品工序为空!"); | |||||
return; | |||||
} | } | ||||
for (BPA_GOODS_PROCESS_DETAIL item : goodsrecipes) { | for (BPA_GOODS_PROCESS_DETAIL item : goodsrecipes) { | ||||
@@ -94,7 +96,6 @@ public class ExecuteTheRecipe { | |||||
while (ConfigName.IsPause[orderDetail.deviceNum -1]) { | while (ConfigName.IsPause[orderDetail.deviceNum -1]) { | ||||
NewToastUtil.getInstance().showToast("当前菜品已暂停制作!"); | NewToastUtil.getInstance().showToast("当前菜品已暂停制作!"); | ||||
RecordManager.getInstance().addLogRecord("订单处理日志",orderDetail.deviceNum +"号炒锅-"+",当前菜品已暂停制作"); | RecordManager.getInstance().addLogRecord("订单处理日志",orderDetail.deviceNum +"号炒锅-"+",当前菜品已暂停制作"); | ||||
Thread.sleep(500); | Thread.sleep(500); | ||||
} | } | ||||
if(!ConfigName.IsStart[orderDetail.deviceNum -1]){ | if(!ConfigName.IsStart[orderDetail.deviceNum -1]){ | ||||
@@ -114,14 +115,14 @@ public class ExecuteTheRecipe { | |||||
boolean status = Execute(orderDetail.deviceNum,item, goodsrecipes, m); | boolean status = Execute(orderDetail.deviceNum,item, goodsrecipes, m); | ||||
m++; | m++; | ||||
} | } | ||||
long endTime = System.currentTimeMillis(); //结束时间 | |||||
int time = (int) ((endTime - startTime) / 1000); | |||||
SubAttributeGroupDBUtil.updateMakeTime(orderDetail.groupId,time); | |||||
} catch (Exception ex) { | } catch (Exception ex) { | ||||
LogUtils.d("制作订单 异常信息:" + ex.getMessage()); | LogUtils.d("制作订单 异常信息:" + ex.getMessage()); | ||||
isError = true; | isError = true; | ||||
orderDetail.status = 3; | |||||
OrderDetailUtil.update(orderDetail); | |||||
showToastErrorTip("异常信息:" + ex.getMessage()); | showToastErrorTip("异常信息:" + ex.getMessage()); | ||||
EventBus.getDefault().post(new MakingStepEvent(orderDetail.deviceNum,-1)); | |||||
RecordManager.getInstance().addLogRecord("订单处理日志",orderDetail.deviceNum +"号炒锅("+orderDetail.goodsName+"-"+orderDetail.groupName+")-制作异常:"+ex.getMessage()); | RecordManager.getInstance().addLogRecord("订单处理日志",orderDetail.deviceNum +"号炒锅("+orderDetail.goodsName+"-"+orderDetail.groupName+")-制作异常:"+ex.getMessage()); | ||||
RecordManager.getInstance().addOrderRecords(orderDetail,orderDetail.deviceNum +"号炒锅-"+"异常"); | RecordManager.getInstance().addOrderRecords(orderDetail,orderDetail.deviceNum +"号炒锅-"+"异常"); | ||||
} finally { | } finally { | ||||
@@ -131,24 +132,19 @@ public class ExecuteTheRecipe { | |||||
WritePLC(orderDetail.deviceNum,"暂停开关", false, null); | WritePLC(orderDetail.deviceNum,"暂停开关", false, null); | ||||
Make位置(orderDetail.deviceNum,"原点位"); | Make位置(orderDetail.deviceNum,"原点位"); | ||||
if(orderDetail.deviceNum ==1){ | if(orderDetail.deviceNum ==1){ | ||||
ConfigName.goodsProcess1.clear(); | |||||
Wok1ModbusTcpServer.get().WriteBool("M52.0", (boolean) false, null); | Wok1ModbusTcpServer.get().WriteBool("M52.0", (boolean) false, null); | ||||
}else if(orderDetail.deviceNum ==2){ | }else if(orderDetail.deviceNum ==2){ | ||||
ConfigName.goodsProcess2.clear(); | |||||
Wok2ModbusTcpServer.get().WriteBool("M52.0", (boolean) false, null); | Wok2ModbusTcpServer.get().WriteBool("M52.0", (boolean) false, null); | ||||
}else if(orderDetail.deviceNum ==3){ | }else if(orderDetail.deviceNum ==3){ | ||||
ConfigName.goodsProcess3.clear(); | |||||
Wok3ModbusTcpServer.get().WriteBool("M52.0", (boolean) false, null); | Wok3ModbusTcpServer.get().WriteBool("M52.0", (boolean) false, null); | ||||
}else if(orderDetail.deviceNum ==4){ | }else if(orderDetail.deviceNum ==4){ | ||||
ConfigName.goodsProcess4.clear(); | |||||
Wok4ModbusTcpServer.get().WriteBool("M52.0", (boolean) false, null); | Wok4ModbusTcpServer.get().WriteBool("M52.0", (boolean) false, null); | ||||
} | } | ||||
long endTime = System.currentTimeMillis(); //结束时间 | long endTime = System.currentTimeMillis(); //结束时间 | ||||
int time = (int) ((endTime - startTime) / 1000); | int time = (int) ((endTime - startTime) / 1000); | ||||
Log.e("运行时长", String.format("方法使用时间 %d s", time)); | Log.e("运行时长", String.format("方法使用时间 %d s", time)); | ||||
showlog("结束烹饪菜谱【" + orderDetail.goodsName + "】,关闭搅拌、关闭加热," + String.format("方法使用时间 %d s", time)); | |||||
showlog(orderDetail.deviceNum,"结束烹饪菜谱【" + orderDetail.goodsName + "】,关闭搅拌、关闭加热," + String.format("方法使用时间 %d s", time)); | |||||
if (ConfigName.IsForcedEnd[orderDetail.deviceNum -1])//强制结束 | if (ConfigName.IsForcedEnd[orderDetail.deviceNum -1])//强制结束 | ||||
{ | { | ||||
@@ -159,7 +155,7 @@ public class ExecuteTheRecipe { | |||||
showToastErrorTip("客官,当前菜品已强制结束!!!"); | showToastErrorTip("客官,当前菜品已强制结束!!!"); | ||||
//初始化 | //初始化 | ||||
// BottomClick("初始化"); | // BottomClick("初始化"); | ||||
showlog("菜谱【" + orderDetail.goodsName + "】已强制结束..."); | |||||
showlog(orderDetail.deviceNum,"菜谱【" + orderDetail.goodsName + "】已强制结束..."); | |||||
ConfigName.IsForcedEnd[orderDetail.deviceNum -1] = false; | ConfigName.IsForcedEnd[orderDetail.deviceNum -1] = false; | ||||
RecordManager.getInstance().addLogRecord("订单处理日志",orderDetail.deviceNum +"号炒锅("+orderDetail.goodsName+"-"+orderDetail.groupName+")-制作取消"); | RecordManager.getInstance().addLogRecord("订单处理日志",orderDetail.deviceNum +"号炒锅("+orderDetail.goodsName+"-"+orderDetail.groupName+")-制作取消"); | ||||
RecordManager.getInstance().addOrderRecords(orderDetail,orderDetail.deviceNum +"号炒锅-"+"取消"); | RecordManager.getInstance().addOrderRecords(orderDetail,orderDetail.deviceNum +"号炒锅-"+"取消"); | ||||
@@ -171,6 +167,10 @@ public class ExecuteTheRecipe { | |||||
EventBus.getDefault().post(new MakingStepEvent(orderDetail.deviceNum,-3)); | EventBus.getDefault().post(new MakingStepEvent(orderDetail.deviceNum,-3)); | ||||
RecordManager.getInstance().addLogRecord("订单处理日志",orderDetail.deviceNum +"号炒锅("+orderDetail.goodsName+"-"+orderDetail.groupName+")-制作完成"); | RecordManager.getInstance().addLogRecord("订单处理日志",orderDetail.deviceNum +"号炒锅("+orderDetail.goodsName+"-"+orderDetail.groupName+")-制作完成"); | ||||
RecordManager.getInstance().addOrderRecords(orderDetail,orderDetail.deviceNum +"号炒锅-"+"完成"); | RecordManager.getInstance().addOrderRecords(orderDetail,orderDetail.deviceNum +"号炒锅-"+"完成"); | ||||
}else { | |||||
orderDetail.status = 3; | |||||
OrderDetailUtil.update(orderDetail); | |||||
EventBus.getDefault().post(new MakingStepEvent(orderDetail.deviceNum,-1)); | |||||
} | } | ||||
} | } | ||||
reset1(orderDetail.deviceNum); | reset1(orderDetail.deviceNum); | ||||
@@ -193,17 +193,18 @@ public class ExecuteTheRecipe { | |||||
public static boolean Execute(int deviceNum,BPA_GOODS_PROCESS_DETAIL recipe, ArrayList<BPA_GOODS_PROCESS_DETAIL> all, int index) { | public static boolean Execute(int deviceNum,BPA_GOODS_PROCESS_DETAIL recipe, ArrayList<BPA_GOODS_PROCESS_DETAIL> all, int index) { | ||||
LogUtils.d(TAG+" Execute recipe="+recipe.toString()); | LogUtils.d(TAG+" Execute recipe="+recipe.toString()); | ||||
boolean status = false; | boolean status = false; | ||||
NewToastUtil.getInstance().showToast(deviceNum+"号炒锅,执行步骤:"+(index+1)+"."+recipe.processname); | |||||
try { | try { | ||||
//1.解析 | //1.解析 | ||||
if (ConfigName.IsForcedEnd[deviceNum-1]) { | if (ConfigName.IsForcedEnd[deviceNum-1]) { | ||||
showlog("客官,小菠萝正在强制结束当前炒制菜品,请耐心等候!!!"); | |||||
showlog(deviceNum,"客官,小菠萝正在强制结束当前炒制菜品,请耐心等候!!!"); | |||||
return false; | return false; | ||||
} | } | ||||
if(deviceNum==1){ | if(deviceNum==1){ | ||||
while (!Wok1ModbusTcpServer.get().plcIsConnect||!Robot1ModbusTcpServer.get().plcIsConnect | while (!Wok1ModbusTcpServer.get().plcIsConnect||!Robot1ModbusTcpServer.get().plcIsConnect | ||||
&&!ConfigName.IsForcedEnd[deviceNum-1]){ | &&!ConfigName.IsForcedEnd[deviceNum-1]){ | ||||
try{ | try{ | ||||
showlog("客官,检测到硬件已经断开连接,等待重连!!!"); | |||||
showlog(deviceNum,"客官,检测到硬件已经断开连接,等待重连!!!"); | |||||
RecordManager.getInstance().addLogRecord("订单处理日志",deviceNum+" 检测到硬件已经断开连接,等待连接中 Wok:" | RecordManager.getInstance().addLogRecord("订单处理日志",deviceNum+" 检测到硬件已经断开连接,等待连接中 Wok:" | ||||
+ Wok1ModbusTcpServer.get().plcIsConnect+" Robot:"+ Robot1ModbusTcpServer.get().plcIsConnect); | + Wok1ModbusTcpServer.get().plcIsConnect+" Robot:"+ Robot1ModbusTcpServer.get().plcIsConnect); | ||||
Thread.sleep(100); | Thread.sleep(100); | ||||
@@ -215,7 +216,7 @@ public class ExecuteTheRecipe { | |||||
while (!Wok2ModbusTcpServer.get().plcIsConnect||!Robot1ModbusTcpServer.get().plcIsConnect | while (!Wok2ModbusTcpServer.get().plcIsConnect||!Robot1ModbusTcpServer.get().plcIsConnect | ||||
&&!ConfigName.IsForcedEnd[deviceNum-1]){ | &&!ConfigName.IsForcedEnd[deviceNum-1]){ | ||||
try{ | try{ | ||||
showlog("客官,检测到硬件已经断开连接,等待重连!!!"); | |||||
showlog(deviceNum,"客官,检测到硬件已经断开连接,等待重连!!!"); | |||||
RecordManager.getInstance().addLogRecord("订单处理日志",deviceNum+" 检测到硬件已经断开连接,等待连接中 Wok:" | RecordManager.getInstance().addLogRecord("订单处理日志",deviceNum+" 检测到硬件已经断开连接,等待连接中 Wok:" | ||||
+Wok2ModbusTcpServer.get().plcIsConnect+" Robot:"+ Robot1ModbusTcpServer.get().plcIsConnect); | +Wok2ModbusTcpServer.get().plcIsConnect+" Robot:"+ Robot1ModbusTcpServer.get().plcIsConnect); | ||||
Thread.sleep(100); | Thread.sleep(100); | ||||
@@ -227,7 +228,7 @@ public class ExecuteTheRecipe { | |||||
while (!Wok3ModbusTcpServer.get().plcIsConnect||!Robot2ModbusTcpServer.get().plcIsConnect | while (!Wok3ModbusTcpServer.get().plcIsConnect||!Robot2ModbusTcpServer.get().plcIsConnect | ||||
&&!ConfigName.IsForcedEnd[deviceNum-1]){ | &&!ConfigName.IsForcedEnd[deviceNum-1]){ | ||||
try{ | try{ | ||||
showlog("客官,检测到硬件已经断开连接,等待重连!!!"); | |||||
showlog(deviceNum,"客官,检测到硬件已经断开连接,等待重连!!!"); | |||||
RecordManager.getInstance().addLogRecord("订单处理日志",deviceNum+" 检测到硬件已经断开连接,等待连接中 Wok:" | RecordManager.getInstance().addLogRecord("订单处理日志",deviceNum+" 检测到硬件已经断开连接,等待连接中 Wok:" | ||||
+Wok3ModbusTcpServer.get().plcIsConnect+" Robot:"+ Robot2ModbusTcpServer.get().plcIsConnect); | +Wok3ModbusTcpServer.get().plcIsConnect+" Robot:"+ Robot2ModbusTcpServer.get().plcIsConnect); | ||||
Thread.sleep(100); | Thread.sleep(100); | ||||
@@ -239,7 +240,7 @@ public class ExecuteTheRecipe { | |||||
while (!Wok4ModbusTcpServer.get().plcIsConnect||!Robot1ModbusTcpServer.get().plcIsConnect | while (!Wok4ModbusTcpServer.get().plcIsConnect||!Robot1ModbusTcpServer.get().plcIsConnect | ||||
&&!ConfigName.IsForcedEnd[deviceNum-1]){ | &&!ConfigName.IsForcedEnd[deviceNum-1]){ | ||||
try{ | try{ | ||||
showlog("客官,检测到硬件已经断开连接,等待重连!!!"); | |||||
showlog(deviceNum,"客官,检测到硬件已经断开连接,等待重连!!!"); | |||||
RecordManager.getInstance().addLogRecord("订单处理日志",deviceNum+" 检测到硬件已经断开连接,等待连接中 Wok:" | RecordManager.getInstance().addLogRecord("订单处理日志",deviceNum+" 检测到硬件已经断开连接,等待连接中 Wok:" | ||||
+Wok4ModbusTcpServer.get().plcIsConnect+" Robot:"+ Robot2ModbusTcpServer.get().plcIsConnect); | +Wok4ModbusTcpServer.get().plcIsConnect+" Robot:"+ Robot2ModbusTcpServer.get().plcIsConnect); | ||||
Thread.sleep(100); | Thread.sleep(100); | ||||
@@ -257,7 +258,7 @@ public class ExecuteTheRecipe { | |||||
{ | { | ||||
Object gz = ReadPLC(deviceNum,"异常加热故障信息"); | Object gz = ReadPLC(deviceNum,"异常加热故障信息"); | ||||
if (gz != null && (boolean) gz && !ConfigName.TEST) { | if (gz != null && (boolean) gz && !ConfigName.TEST) { | ||||
showlog("客官,检测到硬件加热异常,已主动停止炒制,请联系海科人员!!!"); | |||||
showlog(deviceNum,"客官,检测到硬件加热异常,已主动停止炒制,请联系海科人员!!!"); | |||||
ConfigName.IsForcedEnd[deviceNum-1] = true; | ConfigName.IsForcedEnd[deviceNum-1] = true; | ||||
String title = "加热异常-温馨提示!"; | String title = "加热异常-温馨提示!"; | ||||
String message = "客官硬件加热异常,请联系海科人员,已强制停止炒制!"; | String message = "客官硬件加热异常,请联系海科人员,已强制停止炒制!"; | ||||
@@ -328,7 +329,7 @@ public class ExecuteTheRecipe { | |||||
BPA_SILOS silos = bpa_silos.get(0); | BPA_SILOS silos = bpa_silos.get(0); | ||||
if (val >= 32767) { | if (val >= 32767) { | ||||
val = 32767; | val = 32767; | ||||
showlog("料仓" + silos.num + "出量克数溢出,已按照最大出量出料!!!"); | |||||
showlog(deviceNum,"料仓" + silos.num + "出量克数溢出,已按照最大出量出料!!!"); | |||||
} | } | ||||
formulation.put(silos, val); | formulation.put(silos, val); | ||||
@@ -405,7 +406,8 @@ public class ExecuteTheRecipe { | |||||
if (formulation.size() > 0) { | if (formulation.size() > 0) { | ||||
switch (processname){ | switch (processname){ | ||||
case "主料": | case "主料": | ||||
case "辅料": | |||||
case "调料小盆": | |||||
case "调料中盆": | |||||
case "出菜": | case "出菜": | ||||
boolean isJre; | boolean isJre; | ||||
Object K = ReadPLC(deviceNum,"加热"); | Object K = ReadPLC(deviceNum,"加热"); | ||||
@@ -502,7 +504,7 @@ public class ExecuteTheRecipe { | |||||
Write_PLC_MainAccessory(deviceNum,formulation,1); | Write_PLC_MainAccessory(deviceNum,formulation,1); | ||||
ConfigName.RobotIsWorking[deviceNum-1] = false; | ConfigName.RobotIsWorking[deviceNum-1] = false; | ||||
break; | break; | ||||
case "调料大盆": | |||||
case "调料中盆": | |||||
ConfigName.RobotIsWorking[deviceNum-1] = true; | ConfigName.RobotIsWorking[deviceNum-1] = true; | ||||
Write_PLC_MainAccessory(deviceNum,formulation,2); | Write_PLC_MainAccessory(deviceNum,formulation,2); | ||||
ConfigName.RobotIsWorking[deviceNum-1] = false; | ConfigName.RobotIsWorking[deviceNum-1] = false; | ||||
@@ -549,14 +551,14 @@ public class ExecuteTheRecipe { | |||||
@Override | @Override | ||||
public void onSuccess() { | public void onSuccess() { | ||||
RecordManager.getInstance().addLogRecord("订单处理日志",deviceNum+"号炒锅-"+"物料"+"料仓" + silos.num + "需求值"+val+"写入成功"); | RecordManager.getInstance().addLogRecord("订单处理日志",deviceNum+"号炒锅-"+"物料"+"料仓" + silos.num + "需求值"+val+"写入成功"); | ||||
// showlog("需求值写入成功!"); | |||||
// showlog(deviceNum,"需求值写入成功!"); | |||||
IsComplete[0] = true; | IsComplete[0] = true; | ||||
} | } | ||||
@Override | @Override | ||||
public void onFailure(String ErrorMsg) { | public void onFailure(String ErrorMsg) { | ||||
RecordManager.getInstance().addLogRecord("订单处理日志",deviceNum+"号炒锅-"+"物料"+"料仓" + silos.num + "需求值"+val+"写入失败:"+ErrorMsg); | RecordManager.getInstance().addLogRecord("订单处理日志",deviceNum+"号炒锅-"+"物料"+"料仓" + silos.num + "需求值"+val+"写入失败:"+ErrorMsg); | ||||
showlog("需求值写入失败!尝试再次写入...错误原因:" + ErrorMsg); | |||||
showlog(deviceNum,"需求值写入失败!尝试再次写入...错误原因:" + ErrorMsg); | |||||
WritePLC(deviceNum,"料仓" + silos.num + "需求值", val, null); | WritePLC(deviceNum,"料仓" + silos.num + "需求值", val, null); | ||||
IsComplete[0] = true; | IsComplete[0] = true; | ||||
} | } | ||||
@@ -590,7 +592,7 @@ public class ExecuteTheRecipe { | |||||
if (key.contains("(秒)")) { | if (key.contains("(秒)")) { | ||||
val = Integer.parseInt(value); | val = Integer.parseInt(value); | ||||
} else { | } else { | ||||
showlog("工序:" + key + "," + value); | |||||
showlog(deviceNum,"工序:" + key + "," + value); | |||||
writeValue = GetMXValue(key, value); | writeValue = GetMXValue(key, value); | ||||
int finalWriteValue = writeValue; | int finalWriteValue = writeValue; | ||||
WritePLC(deviceNum,key, writeValue, new IWriteCallBack() { | WritePLC(deviceNum,key, writeValue, new IWriteCallBack() { | ||||
@@ -899,7 +901,7 @@ public class ExecuteTheRecipe { | |||||
*/ | */ | ||||
private static void Write_PLC_CleanPan(int deviceNum,HashMap<String, String> data) { | private static void Write_PLC_CleanPan(int deviceNum,HashMap<String, String> data) { | ||||
try { | try { | ||||
showlog("准备清洗!"); | |||||
showlog(deviceNum,"准备清洗!"); | |||||
String qx_type = "一般清洗"; | String qx_type = "一般清洗"; | ||||
int val_csl=0; | int val_csl=0; | ||||
int clearTime = 150; | int clearTime = 150; | ||||
@@ -908,7 +910,7 @@ public class ExecuteTheRecipe { | |||||
for (HashMap.Entry<String, String> entry : data.entrySet()) { | for (HashMap.Entry<String, String> entry : data.entrySet()) { | ||||
String key = entry.getKey(); | String key = entry.getKey(); | ||||
String value = entry.getValue(); | String value = entry.getValue(); | ||||
showlog("工序:" + key + "," + value); | |||||
showlog(deviceNum,"工序:" + key + "," + value); | |||||
if (key.contains("(秒)") && !ConfigName.IsForcedEnd[deviceNum-1]) { | if (key.contains("(秒)") && !ConfigName.IsForcedEnd[deviceNum-1]) { | ||||
int val = Integer.parseInt(value); | int val = Integer.parseInt(value); | ||||
ThreadDelay(deviceNum,val,"Write_PLC_CleanPan"); | ThreadDelay(deviceNum,val,"Write_PLC_CleanPan"); | ||||
@@ -941,7 +943,7 @@ public class ExecuteTheRecipe { | |||||
//等待清洗完成 | //等待清洗完成 | ||||
ThreadWhileClear(deviceNum,"炒锅清洗反馈", 5); | ThreadWhileClear(deviceNum,"炒锅清洗反馈", 5); | ||||
Make位置(deviceNum,"原点位"); | Make位置(deviceNum,"原点位"); | ||||
showlog("炒锅清洗完成!"); | |||||
showlog(deviceNum,"炒锅清洗完成!"); | |||||
NewToastUtil.getInstance().showToast("炒锅清洗完成"); | NewToastUtil.getInstance().showToast("炒锅清洗完成"); | ||||
} catch (Exception ex) { | } catch (Exception ex) { | ||||
showToastErrorTip("异常信息:" + ex.getMessage()); | showToastErrorTip("异常信息:" + ex.getMessage()); | ||||
@@ -981,7 +983,7 @@ public class ExecuteTheRecipe { | |||||
*/ | */ | ||||
public static void Write_PLC_MainIngredients(int deviceNum,HashMap<String, String> data) { | public static void Write_PLC_MainIngredients(int deviceNum,HashMap<String, String> data) { | ||||
try { | try { | ||||
showlog("准备倒入主料!"); | |||||
showlog(deviceNum,"准备倒入主料!"); | |||||
//判断炒制位置 | //判断炒制位置 | ||||
String czwz = "炒菜位高"; | String czwz = "炒菜位高"; | ||||
String foodPosition = "Z1"; | String foodPosition = "Z1"; | ||||
@@ -1055,7 +1057,7 @@ public class ExecuteTheRecipe { | |||||
*/ | */ | ||||
public static void Write_PLC_MainIngredients_shoudong(int deviceNum,HashMap<String, String> data) { | public static void Write_PLC_MainIngredients_shoudong(int deviceNum,HashMap<String, String> data) { | ||||
try { | try { | ||||
showlog("准备倒入主料!"); | |||||
showlog(deviceNum,"准备倒入主料!"); | |||||
//判断炒制位置 | //判断炒制位置 | ||||
String czwz = "炒菜位高"; | String czwz = "炒菜位高"; | ||||
String foodPosition = "Z1"; | String foodPosition = "Z1"; | ||||
@@ -1109,14 +1111,14 @@ public class ExecuteTheRecipe { | |||||
} | } | ||||
/** | /** | ||||
* 写PLC投辅料 | |||||
* 写PLC投调料 | |||||
* | * | ||||
* @param data | * @param data | ||||
* @param type 1:小盆 2:大盆 | |||||
* @param type 1:小盆 2:中盆 | |||||
*/ | */ | ||||
public static void Write_PLC_MainAccessory(int deviceNum,HashMap<String, String> data,int type) { | public static void Write_PLC_MainAccessory(int deviceNum,HashMap<String, String> data,int type) { | ||||
try { | try { | ||||
showlog("准备倒入辅料!"); | |||||
showlog(deviceNum,"准备倒入调料"+(type==1?"小盆":"中盆")); | |||||
//判断炒制位置 | //判断炒制位置 | ||||
String czwz = "炒菜位高"; | String czwz = "炒菜位高"; | ||||
String foodPosition = "F1"; | String foodPosition = "F1"; | ||||
@@ -1127,9 +1129,9 @@ public class ExecuteTheRecipe { | |||||
String value = entry.getValue(); | String value = entry.getValue(); | ||||
if (key.contains("炒制位置")) { | if (key.contains("炒制位置")) { | ||||
czwz = value; | czwz = value; | ||||
}else if(key.contains("调料小盆位置")||key.contains("调料大盆位置")){ | |||||
}else if(key.contains("调料小盆位置")||key.contains("调料中盆位置")){ | |||||
foodPosition = value.replace("t","").replace("T",""); | foodPosition = value.replace("t","").replace("T",""); | ||||
}else if(key.contains("辅料名称")){ | |||||
}else if(key.contains("调料名称")){ | |||||
foodName = value; | foodName = value; | ||||
} | } | ||||
} | } | ||||
@@ -1186,12 +1188,12 @@ public class ExecuteTheRecipe { | |||||
} | } | ||||
/** | /** | ||||
* 手动控制倒辅料 | |||||
* 手动控制倒调料 | |||||
* @param data | * @param data | ||||
*/ | */ | ||||
public static void Write_PLC_MainAccessory_shoudong(int deviceNum,HashMap<String, String> data,int type) { | public static void Write_PLC_MainAccessory_shoudong(int deviceNum,HashMap<String, String> data,int type) { | ||||
try { | try { | ||||
showlog("准备倒入辅料!"); | |||||
showlog(deviceNum,"准备倒入调料!"+(type==1?"小盆":"中盆")); | |||||
//判断炒制位置 | //判断炒制位置 | ||||
String czwz = "炒菜位高"; | String czwz = "炒菜位高"; | ||||
String foodPosition = "F1"; | String foodPosition = "F1"; | ||||
@@ -1202,7 +1204,7 @@ public class ExecuteTheRecipe { | |||||
String value = entry.getValue(); | String value = entry.getValue(); | ||||
if (key.contains("炒制位置")) { | if (key.contains("炒制位置")) { | ||||
czwz = value; | czwz = value; | ||||
}else if(key.contains("调料小盆位置")||key.contains("调料大盆位置")){ | |||||
}else if(key.contains("调料小盆位置")||key.contains("调料中盆位置")){ | |||||
foodPosition = value.replace("t","").replace("T",""); | foodPosition = value.replace("t","").replace("T",""); | ||||
}else if(key.contains("调料名称")){ | }else if(key.contains("调料名称")){ | ||||
foodName = value; | foodName = value; | ||||
@@ -1254,20 +1256,20 @@ public class ExecuteTheRecipe { | |||||
*/ | */ | ||||
public static void Write_PLC_MainOutdishes(int deviceNum,HashMap<String, String> data,int index) { | public static void Write_PLC_MainOutdishes(int deviceNum,HashMap<String, String> data,int index) { | ||||
try { | try { | ||||
showlog("准备出菜!"); | |||||
showlog(deviceNum,"准备出菜!"); | |||||
//先延迟 | //先延迟 | ||||
for (HashMap.Entry<String, String> entry : data.entrySet()) { | for (HashMap.Entry<String, String> entry : data.entrySet()) { | ||||
String key = entry.getKey(); | String key = entry.getKey(); | ||||
String value = entry.getValue(); | String value = entry.getValue(); | ||||
showlog("工序:" + key + "," + value); | |||||
showlog(deviceNum,"工序:" + key + "," + value); | |||||
if (key.contains("(秒)")) { | if (key.contains("(秒)")) { | ||||
int val = Integer.parseInt(value); | int val = Integer.parseInt(value); | ||||
ThreadDelay(deviceNum,val,"Write_PLC_MainOutdishes"); | ThreadDelay(deviceNum,val,"Write_PLC_MainOutdishes"); | ||||
} | } | ||||
} | } | ||||
WritePLC(deviceNum,"加热", false, null); | WritePLC(deviceNum,"加热", false, null); | ||||
showlog("关闭搅拌、关闭加热!"); | |||||
showlog(deviceNum,"关闭搅拌、关闭加热!"); | |||||
Wait_Robot_No_Working(deviceNum);//等待机器人空闲 | Wait_Robot_No_Working(deviceNum);//等待机器人空闲 | ||||
int num = deviceNum>2?(deviceNum-2):deviceNum; | int num = deviceNum>2?(deviceNum-2):deviceNum; | ||||
@@ -1393,7 +1395,7 @@ public class ExecuteTheRecipe { | |||||
}else { | }else { | ||||
ThreadWhile(deviceNum,num+"#炒锅出餐完成"); | ThreadWhile(deviceNum,num+"#炒锅出餐完成"); | ||||
} | } | ||||
showlog("出菜完成,锅体准备回到原位!"); | |||||
showlog(deviceNum,"出菜完成,锅体准备回到原位!"); | |||||
} catch (Exception ex) { | } catch (Exception ex) { | ||||
showToastErrorTip("异常信息:" + ex.getMessage()); | showToastErrorTip("异常信息:" + ex.getMessage()); | ||||
} | } | ||||
@@ -1420,7 +1422,7 @@ public class ExecuteTheRecipe { | |||||
public void onFailure(String ErrorMsg) { | public void onFailure(String ErrorMsg) { | ||||
} | } | ||||
}); | }); | ||||
showlog("火力按钮点击,当前级别:" + data); | |||||
showlog(deviceNum,"火力按钮点击,当前级别:" + data); | |||||
} catch (Exception ex) { | } catch (Exception ex) { | ||||
showToastErrorTip("异常信息:" + ex.getMessage()); | showToastErrorTip("异常信息:" + ex.getMessage()); | ||||
@@ -1519,7 +1521,7 @@ public class ExecuteTheRecipe { | |||||
int mmmm = delay - (int) ((System.currentTimeMillis() - startTime) / 1000); | int mmmm = delay - (int) ((System.currentTimeMillis() - startTime) / 1000); | ||||
if (AtPresentTime != mmmm) { | if (AtPresentTime != mmmm) { | ||||
AtPresentTime = mmmm; | AtPresentTime = mmmm; | ||||
showlog(deviceNum+"号炒锅,延迟等待中,剩余"+AtPresentTime+"秒"); | |||||
showlog(deviceNum,deviceNum+"号炒锅,延迟等待中,剩余"+AtPresentTime+"秒"); | |||||
} | } | ||||
} catch (InterruptedException ex) { | } catch (InterruptedException ex) { | ||||
} | } | ||||
@@ -1540,8 +1542,8 @@ public class ExecuteTheRecipe { | |||||
RecordManager.getInstance().addLogRecord("订单处理日志",deviceNum+"号炒锅-ThreadWhile_WL-"+"等待物料("+name+")出料等待"); | RecordManager.getInstance().addLogRecord("订单处理日志",deviceNum+"号炒锅-ThreadWhile_WL-"+"等待物料("+name+")出料等待"); | ||||
while (!IsComplete[0] && !ConfigName.IsForcedEnd[deviceNum-1]) { | while (!IsComplete[0] && !ConfigName.IsForcedEnd[deviceNum-1]) { | ||||
if ((System.currentTimeMillis() - a) > 1000 * whileTime) { | |||||
showlog(name + ",异常超时退出!"); | |||||
if ((System.currentTimeMillis() - a) > 1000 * 300) { | |||||
showlog(deviceNum,name + ",异常超时退出!"); | |||||
RecordManager.getInstance().addLogRecord("订单处理日志",deviceNum+"号炒锅-ThreadWhile_WL-"+"异常超时退出"); | RecordManager.getInstance().addLogRecord("订单处理日志",deviceNum+"号炒锅-ThreadWhile_WL-"+"异常超时退出"); | ||||
break; | break; | ||||
} else { | } else { | ||||
@@ -1552,7 +1554,7 @@ public class ExecuteTheRecipe { | |||||
RecordManager.getInstance().addLogRecord("订单处理日志",deviceNum+"号炒锅-ThreadWhile_WL-"+"true"); | RecordManager.getInstance().addLogRecord("订单处理日志",deviceNum+"号炒锅-ThreadWhile_WL-"+"true"); | ||||
}else { | }else { | ||||
RecordManager.getInstance().addLogRecord("订单处理日志",deviceNum+"号炒锅-ThreadWhile_WL-"+"false"); | RecordManager.getInstance().addLogRecord("订单处理日志",deviceNum+"号炒锅-ThreadWhile_WL-"+"false"); | ||||
showlog(deviceNum+"号炒锅,等待"+name); | |||||
showlog(deviceNum,deviceNum+"号炒锅,等待"+name); | |||||
} | } | ||||
}else { | }else { | ||||
RecordManager.getInstance().addLogRecord("订单处理日志",deviceNum+"号炒锅-ThreadWhile_WL-"+"null"); | RecordManager.getInstance().addLogRecord("订单处理日志",deviceNum+"号炒锅-ThreadWhile_WL-"+"null"); | ||||
@@ -1563,7 +1565,7 @@ public class ExecuteTheRecipe { | |||||
if (AtPresentTime != mmmm) { | if (AtPresentTime != mmmm) { | ||||
AtPresentTime = mmmm; | AtPresentTime = mmmm; | ||||
} | } | ||||
showlog(deviceNum,deviceNum+"号炒锅出料剩余时间:"+mmmm+"秒"); | |||||
Thread.sleep(500);//10 *6 | Thread.sleep(500);//10 *6 | ||||
} catch (InterruptedException e) { | } catch (InterruptedException e) { | ||||
IsComplete[0] = true; | IsComplete[0] = true; | ||||
@@ -1601,7 +1603,7 @@ public class ExecuteTheRecipe { | |||||
showToastErrorTip(deviceNum+"号锅取原料——"+name.replace("检测","未检测到位")+",请检查是否放置正确!"); | showToastErrorTip(deviceNum+"号锅取原料——"+name.replace("检测","未检测到位")+",请检查是否放置正确!"); | ||||
} | } | ||||
RecordManager.getInstance().addLogRecord("订单处理日志",deviceNum+"号炒锅-ThreadWhile-"+name + ",false"); | RecordManager.getInstance().addLogRecord("订单处理日志",deviceNum+"号炒锅-ThreadWhile-"+name + ",false"); | ||||
showlog(deviceNum+"号炒锅,等待"+name); | |||||
showlog(deviceNum,deviceNum+"号炒锅,等待"+name); | |||||
LogUtils.d(TAG+" ThreadWhile name="+name+" false"); | LogUtils.d(TAG+" ThreadWhile name="+name+" false"); | ||||
} | } | ||||
}else { | }else { | ||||
@@ -1628,7 +1630,7 @@ public class ExecuteTheRecipe { | |||||
while (!IsComplete[0] && !ConfigName.IsForcedEnd[deviceNum-1] && !ConfigName.TEST) { | while (!IsComplete[0] && !ConfigName.IsForcedEnd[deviceNum-1] && !ConfigName.TEST) { | ||||
if ((System.currentTimeMillis() - a) > 1000 * whileTime) { | if ((System.currentTimeMillis() - a) > 1000 * whileTime) { | ||||
showlog(name + ",异常超时退出!"); | |||||
showlog(deviceNum,name + ",异常超时退出!"); | |||||
RecordManager.getInstance().addLogRecord("订单处理日志",deviceNum+"号炒锅-ThreadWhile-"+name + ",异常超时退出"); | RecordManager.getInstance().addLogRecord("订单处理日志",deviceNum+"号炒锅-ThreadWhile-"+name + ",异常超时退出"); | ||||
break; | break; | ||||
} else { | } else { | ||||
@@ -1644,7 +1646,7 @@ public class ExecuteTheRecipe { | |||||
BottomClick1(deviceNum,value); | BottomClick1(deviceNum,value); | ||||
} | } | ||||
RecordManager.getInstance().addLogRecord("订单处理日志",deviceNum+"号炒锅-ThreadWhile-"+name + ",false"); | RecordManager.getInstance().addLogRecord("订单处理日志",deviceNum+"号炒锅-ThreadWhile-"+name + ",false"); | ||||
showlog(deviceNum+"号炒锅,等待"+name); | |||||
showlog(deviceNum,deviceNum+"号炒锅,等待"+name); | |||||
LogUtils.d(TAG+" ThreadWhile name="+name+" false"); | LogUtils.d(TAG+" ThreadWhile name="+name+" false"); | ||||
} | } | ||||
}else { | }else { | ||||
@@ -1675,7 +1677,7 @@ public class ExecuteTheRecipe { | |||||
while (!IsComplete[0] && !ConfigName.IsForcedEnd[deviceNum-1]&& !ConfigName.TEST) { | while (!IsComplete[0] && !ConfigName.IsForcedEnd[deviceNum-1]&& !ConfigName.TEST) { | ||||
if ((System.currentTimeMillis() - a) > 1000 * whileTime * k) { | if ((System.currentTimeMillis() - a) > 1000 * whileTime * k) { | ||||
showlog(name + ",异常超时退出!"); | |||||
showlog(deviceNum,name + ",异常超时退出!"); | |||||
RecordManager.getInstance().addLogRecord("订单处理日志",deviceNum+"号炒锅-ThreadWhileClear-"+name + ",异常超时退出"); | RecordManager.getInstance().addLogRecord("订单处理日志",deviceNum+"号炒锅-ThreadWhileClear-"+name + ",异常超时退出"); | ||||
break; | break; | ||||
} else { | } else { | ||||
@@ -1685,11 +1687,11 @@ public class ExecuteTheRecipe { | |||||
if (IsComplete[0]) { | if (IsComplete[0]) { | ||||
LogUtils.d(TAG+" ThreadWhileClear name="+name+" true"); | LogUtils.d(TAG+" ThreadWhileClear name="+name+" true"); | ||||
RecordManager.getInstance().addLogRecord("订单处理日志",deviceNum+"号炒锅-ThreadWhileClear-"+name + ",true"); | RecordManager.getInstance().addLogRecord("订单处理日志",deviceNum+"号炒锅-ThreadWhileClear-"+name + ",true"); | ||||
showlog(deviceNum+"号炒锅,清洗完成"); | |||||
showlog(deviceNum,deviceNum+"号炒锅,清洗完成"); | |||||
}else { | }else { | ||||
LogUtils.d(TAG+" ThreadWhileClear name="+name+" false"); | LogUtils.d(TAG+" ThreadWhileClear name="+name+" false"); | ||||
RecordManager.getInstance().addLogRecord("订单处理日志",deviceNum+"号炒锅-ThreadWhileClear-"+name + ",false"); | RecordManager.getInstance().addLogRecord("订单处理日志",deviceNum+"号炒锅-ThreadWhileClear-"+name + ",false"); | ||||
showlog(deviceNum+"号炒锅,清洗中..."); | |||||
showlog(deviceNum,deviceNum+"号炒锅,清洗中..."); | |||||
} | } | ||||
}else { | }else { | ||||
RecordManager.getInstance().addLogRecord("订单处理日志",deviceNum+"号炒锅-ThreadWhileClear-"+name + ",null"); | RecordManager.getInstance().addLogRecord("订单处理日志",deviceNum+"号炒锅-ThreadWhileClear-"+name + ",null"); | ||||
@@ -1710,11 +1712,11 @@ public class ExecuteTheRecipe { | |||||
/** | /** | ||||
* 显示日志 | * 显示日志 | ||||
*/ | */ | ||||
public static void showlog(String msg) { | |||||
public static void showlog(int deviceNum,String msg) { | |||||
LogUtils.d(TAG+" showlog msg="+msg); | LogUtils.d(TAG+" showlog msg="+msg); | ||||
RecordManager.getInstance().addLogRecord("订单处理日志","炒锅-showlog-"+msg + ""); | |||||
RecordManager.getInstance().addLogRecord("订单处理日志",deviceNum+"炒锅-showlog-"+msg + ""); | |||||
if(ConfigName.getInstance().showCookingToast){ | if(ConfigName.getInstance().showCookingToast){ | ||||
NewToastUtil.getInstance().showToast(msg); | |||||
NewToastUtil.getInstance().showToast(deviceNum+"号炒锅,"+msg); | |||||
} | } | ||||
} | } | ||||
@@ -12,6 +12,7 @@ import com.bonait.bnframework.common.db.mode.BPA_GOODS_SUBATTRIBUTE_GROUP; | |||||
import com.bonait.bnframework.common.db.mode.BPA_ORDER_DETAIL; | import com.bonait.bnframework.common.db.mode.BPA_ORDER_DETAIL; | ||||
import java.util.ArrayList; | import java.util.ArrayList; | ||||
import java.util.List; | |||||
/** | /** | ||||
* @author: liup | * @author: liup | ||||
@@ -128,14 +129,13 @@ public class OrderDetailUtil { | |||||
public static BPA_ORDER_DETAIL resetOrder() { | public static BPA_ORDER_DETAIL resetOrder() { | ||||
String orderby = QueryDB.Desc_Time_Up; | String orderby = QueryDB.Desc_Time_Up; | ||||
String where = "isDelete=? and status!=0"; | |||||
String where = "isDelete=?"; | |||||
String[] args = new String[]{"0"}; | String[] args = new String[]{"0"}; | ||||
ArrayList<Object> obj = QueryDB.Get(BPA_ORDER_DETAIL.class, where, args, orderby); | ArrayList<Object> obj = QueryDB.Get(BPA_ORDER_DETAIL.class, where, args, orderby); | ||||
for (Object k : obj) { | for (Object k : obj) { | ||||
if(((BPA_ORDER_DETAIL) k).status!=0){ | |||||
((BPA_ORDER_DETAIL) k).status=0; | |||||
update((BPA_ORDER_DETAIL) k); | |||||
} | |||||
((BPA_ORDER_DETAIL) k).status=0; | |||||
((BPA_ORDER_DETAIL) k).deviceNum=0; | |||||
update((BPA_ORDER_DETAIL) k); | |||||
} | } | ||||
return obj.size() > 0 ? (BPA_ORDER_DETAIL) obj.get(0) : null; | return obj.size() > 0 ? (BPA_ORDER_DETAIL) obj.get(0) : null; | ||||
} | } | ||||
@@ -151,4 +151,21 @@ public class OrderDetailUtil { | |||||
ArrayList<Object> obj = QueryDB.Get(BPA_ORDER_DETAIL.class, where, args, orderby); | ArrayList<Object> obj = QueryDB.Get(BPA_ORDER_DETAIL.class, where, args, orderby); | ||||
return obj.size() > 0 ? (BPA_ORDER_DETAIL) obj.get(0) : null; | return obj.size() > 0 ? (BPA_ORDER_DETAIL) obj.get(0) : null; | ||||
} | } | ||||
public static List<BPA_ORDER_DETAIL> getByFilterMaking(int deviceNum) { | |||||
String orderby = QueryDB.Desc_Time_Up; | |||||
String where = "isDelete=? and status!=0 and deviceNum!=0 and deviceNum!=?"; | |||||
String[] args = new String[]{"0",deviceNum+""}; | |||||
ArrayList<BPA_ORDER_DETAIL> data = new ArrayList<>(); | |||||
ArrayList<Object> obj = QueryDB.Get(BPA_ORDER_DETAIL.class, where, args, orderby); | |||||
for (Object k : obj) { | |||||
if(((BPA_ORDER_DETAIL) k).status!=0){ | |||||
data.add(0,(BPA_ORDER_DETAIL) k); | |||||
}else { | |||||
data.add((BPA_ORDER_DETAIL) k); | |||||
} | |||||
} | |||||
LogUtils.d("OrderDetailUtil getByAllMaking data=" + data.toString()); | |||||
return data; | |||||
} | |||||
} | } |
@@ -274,6 +274,15 @@ public class SubAttributeGroupDBUtil { | |||||
update(bean); | update(bean); | ||||
} | } | ||||
} | } | ||||
public static int getMakeTime(String id){ | |||||
BPA_GOODS_SUBATTRIBUTE_GROUP bean = getById(id); | |||||
if (bean != null) { | |||||
return bean.maketime; | |||||
}else { | |||||
return 0; | |||||
} | |||||
} | |||||
/** | /** | ||||
* 判断子属性组合是否存在 | * 判断子属性组合是否存在 | ||||
* @param goodsId | * @param goodsId | ||||
@@ -2,6 +2,8 @@ package com.bonait.bnframework.common.utils; | |||||
import com.apkfuns.logutils.LogUtils; | import com.apkfuns.logutils.LogUtils; | ||||
import com.bonait.bnframework.Service.AnalogConvert; | import com.bonait.bnframework.Service.AnalogConvert; | ||||
import com.bonait.bnframework.business.ExecuteTheRecipe; | |||||
import com.bonait.bnframework.business.RecordManager; | |||||
import com.bonait.bnframework.common.db.QueryDB; | import com.bonait.bnframework.common.db.QueryDB; | ||||
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_PROCESS_DETAIL; | import com.bonait.bnframework.common.db.mode.BPA_GOODS_PROCESS_DETAIL; | ||||
@@ -13,6 +15,7 @@ import org.slf4j.LoggerFactory; | |||||
import java.util.ArrayList; | import java.util.ArrayList; | ||||
import java.util.Arrays; | import java.util.Arrays; | ||||
import java.util.HashMap; | |||||
import java.util.List; | import java.util.List; | ||||
public class CookTimeUtils { | public class CookTimeUtils { | ||||
@@ -109,77 +112,84 @@ public class CookTimeUtils { | |||||
LogUtils.d(" measureCookTime materialType="+item.materialType+"; processvalue="+item.processvalue); | LogUtils.d(" measureCookTime materialType="+item.materialType+"; processvalue="+item.processvalue); | ||||
if(item.materialType == 0){ | if(item.materialType == 0){ | ||||
String values = item.processvalue; | String values = item.processvalue; | ||||
//仓号 值 | |||||
HashMap<BPA_SILOS, Integer> formulation = new HashMap<>(); | |||||
int MaxValue = 0; | |||||
//region 获取仓号和值 | |||||
List<String> data = new ArrayList<>(); | List<String> data = new ArrayList<>(); | ||||
if (values.contains("|")) { | if (values.contains("|")) { | ||||
String[] res = values.split("[|]"); | String[] res = values.split("[|]"); | ||||
data.addAll(Arrays.asList(res)); | |||||
for (int i = 0; i < res.length; i++) { | |||||
data.add(res[i]); | |||||
} | |||||
} else { | } else { | ||||
data.add(values); | data.add(values); | ||||
} | } | ||||
LogUtils.d(" //////////////////// "+data); | |||||
for (String value : data) { | |||||
if (value !=null && value.contains(",")) { | |||||
String[] wl = value.split("[,]"); | |||||
if (wl.length == 2) { | |||||
float val; | |||||
String name = wl[0]; | |||||
val = Float.parseFloat(wl[1]); | |||||
for (String s : data) { | |||||
if (!s.isEmpty() && s.contains(",")) { | |||||
String[] wl = s.split("[,]"); | |||||
if (wl != null && wl.length == 2) { | |||||
String name = wl[0]; | |||||
//int val = (int) Math.round((Double.parseDouble(wl[1]) * 10)); | |||||
int val = (int) Math.round((Double.parseDouble(wl[1]))); | |||||
//int val = Integer.parseInt(wl[1]); | |||||
List<BPA_SILOS> bpa_silos = QueryDB.GetSolisByMaterialName(name); | |||||
if (bpa_silos.size() > 0 && val > 0) { | |||||
BPA_SILOS silos = bpa_silos.get(0); | |||||
if (val >= 32767) { | |||||
val = 32767; | |||||
} | |||||
formulation.put(silos, val); | |||||
// 根据名称查询料仓号 重量需根据校准值换算成时间 | |||||
List<BPA_SILOS> silos = QueryDB.GetSolisByMaterialName(name); | |||||
if(!silos.isEmpty()){ | |||||
BPA_SILOS_CALIBRATE bean = (BPA_SILOS_CALIBRATE) QueryDB.GetSilosCalibrateByNum( silos.get(0).num); | |||||
int valueDeal = AnalogConvert.Scale( val, bean.inputWightMax, bean.inputWightMin, | |||||
bean.outputTimeMax, bean.outputTimeMin)/100; | |||||
time += valueDeal; | |||||
LogUtils.d("measureCookTime name="+name+";重量="+val+";换算时间="+valueDeal); | |||||
Object jz_z = ExecuteTheRecipe.ReadPLC(1,"料仓" + silos.num + "校准值"); | |||||
if (jz_z != null) { | |||||
int jzzz = Integer.parseInt(String.valueOf(jz_z)); | |||||
int jzzz_1 = jzzz == 0 ? 500 : jzzz; | |||||
int ztime = (int) (val / (jzzz_1 / 5.0)); | |||||
time +=ztime; | |||||
} | |||||
} | } | ||||
} | } | ||||
} | } | ||||
} | } | ||||
}else { | }else { | ||||
String value = item.processvalue; | String value = item.processvalue; | ||||
if(value!=null && value.contains("(秒),")){ | |||||
String[] res = value.split("秒"); | |||||
if(res.length==2){ | |||||
int val = 0; | |||||
if(res[1].contains(".")){ | |||||
val = (int) Math.round((Double.parseDouble(res[1].substring(2)))); | |||||
}else { | |||||
val = Integer.parseInt(res[1].substring(2)); | |||||
} | |||||
time += val; | |||||
//工序名称和值 | |||||
HashMap<String, String> formulation = new HashMap<>(); | |||||
//region 获取仓号和值 | |||||
List<String> data = new ArrayList<>(); | |||||
if (value.contains("|")) { | |||||
String[] res = value.split("[|]"); | |||||
for (int i = 0; i < res.length; i++) { | |||||
data.add(res[i]); | |||||
} | } | ||||
}else if(value!=null && value.contains("上升")||value.contains("下降")){ | |||||
time += 10; | |||||
}else if(value!=null && value.contains("(克),")){ | |||||
String[] res = value.split("克"); | |||||
if(res.length==2){ | |||||
float val = 0; | |||||
val = Float.parseFloat(res[1].substring(2)); | |||||
//1 | |||||
if(item.processname.contains("加水")){ | |||||
BPA_SILOS_CALIBRATE bean = (BPA_SILOS_CALIBRATE) QueryDB.GetSilosCalibrateByNum(10); | |||||
int valueDeal = AnalogConvert.Scale( val, bean.inputWightMax, bean.inputWightMin, | |||||
bean.outputTimeMax, bean.outputTimeMin)/100; | |||||
LogUtils.d("measureCookTime 加水重量="+val+";换算加水时间="+valueDeal); | |||||
time += valueDeal; | |||||
}else if(item.processname.contains("勾芡")){ | |||||
BPA_SILOS_CALIBRATE bean = (BPA_SILOS_CALIBRATE) QueryDB.GetSilosCalibrateByNum(11); | |||||
int valueDeal = AnalogConvert.Scale( val, bean.inputWightMax, bean.inputWightMin, | |||||
bean.outputTimeMax, bean.outputTimeMin)/100; | |||||
LogUtils.d("measureCookTime 加水重量="+val+";换算加水时间="+valueDeal); | |||||
time += valueDeal; | |||||
} else { | |||||
data.add(value); | |||||
} | |||||
for (String s : data) { | |||||
if (!s.isEmpty() && s.contains(",")) { | |||||
String[] wl = s.split("[,]"); | |||||
if (wl != null && wl.length == 2) { | |||||
String name = wl[0]; | |||||
String val = wl[1]; | |||||
formulation.put(name, val); | |||||
} | } | ||||
} | } | ||||
} | } | ||||
for (HashMap.Entry<String, String> entry : formulation.entrySet()) { | |||||
String key = entry.getKey(); | |||||
String num = entry.getValue(); | |||||
if (key.contains("(秒)")) { | |||||
time += Integer.parseInt(num); | |||||
} | |||||
} | |||||
} | } | ||||
} | } | ||||
LogUtils.d(" measureCookTime total=" +time); | LogUtils.d(" measureCookTime total=" +time); | ||||
}catch (Exception e){ | }catch (Exception e){ | ||||
e.printStackTrace(); | e.printStackTrace(); | ||||
LogUtils.d("measureCookTime 异常 "+e.getMessage()); | |||||
} | } | ||||
return time>0?time:180; | return time>0?time:180; | ||||
} | } | ||||
@@ -11,7 +11,7 @@ public class MakingStepEvent { | |||||
*/ | */ | ||||
public int process; | public int process; | ||||
/** | /** | ||||
* 1号炒锅 2号炒锅 | |||||
* 1号炒锅 2号炒锅 3 4 | |||||
*/ | */ | ||||
public int type; | public int type; | ||||
public MakingStepEvent(int type,int process){ | public MakingStepEvent(int type,int process){ | ||||
@@ -204,8 +204,15 @@ public class ModbusCenter { | |||||
} | } | ||||
} | } | ||||
private static boolean TestLog = false; | |||||
public static void showLog(boolean test,String desc){ | public static void showLog(boolean test,String desc){ | ||||
LogUtils.d(desc); | |||||
if(test){ | |||||
if(TestLog){ | |||||
LogUtils.d(desc); | |||||
} | |||||
}else { | |||||
LogUtils.d(desc); | |||||
} | |||||
} | } | ||||
public static void Listening() { | public static void Listening() { | ||||
@@ -23,7 +23,9 @@ 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.constant.Constants; | import com.bonait.bnframework.common.constant.Constants; | ||||
import com.bonait.bnframework.common.db.QueryDB; | import com.bonait.bnframework.common.db.QueryDB; | ||||
import com.bonait.bnframework.common.db.mode.BPA_ORDER_DETAIL; | |||||
import com.bonait.bnframework.common.db.mode.BPA_USER; | import com.bonait.bnframework.common.db.mode.BPA_USER; | ||||
import com.bonait.bnframework.common.db.util.OrderDetailUtil; | |||||
import com.bonait.bnframework.common.utils.AppUtils; | import com.bonait.bnframework.common.utils.AppUtils; | ||||
import com.bonait.bnframework.common.utils.DisplayManager; | import com.bonait.bnframework.common.utils.DisplayManager; | ||||
import com.bonait.bnframework.common.utils.KeyboardToolUtils; | import com.bonait.bnframework.common.utils.KeyboardToolUtils; | ||||
@@ -55,6 +57,10 @@ public class LoginHActivity extends BaseActivity { | |||||
initEvent(); | initEvent(); | ||||
initData(); | initData(); | ||||
ModbusCenter.closePLC(); | ModbusCenter.closePLC(); | ||||
// for(BPA_ORDER_DETAIL bean : OrderDetailUtil.getAll()){ | |||||
// bean.deviceNum = 0; | |||||
// OrderDetailUtil.update(bean); | |||||
// } | |||||
} | } | ||||
/** | /** | ||||
@@ -374,7 +374,7 @@ public class MainHActivity extends BaseActivity { | |||||
if(handler!=null){ | if(handler!=null){ | ||||
handler.sendEmptyMessage(1); | handler.sendEmptyMessage(1); | ||||
} | } | ||||
if(isFirst){ | |||||
if(isFirst && PreferenceUtils.getBoolean(ConfigName.rootTip,false)){ | |||||
isFirst = false; | isFirst = false; | ||||
RootTipDialog dialog = new RootTipDialog(); | RootTipDialog dialog = new RootTipDialog(); | ||||
dialog.show(getSupportFragmentManager(),"开机自检"); | dialog.show(getSupportFragmentManager(),"开机自检"); | ||||
@@ -51,7 +51,7 @@ public class WelcomeActivity extends BaseActivity { | |||||
// QMUI 框架初始化 | // QMUI 框架初始化 | ||||
QMUISwipeBackActivityManager.init(ConfigName.getInstance().app); | QMUISwipeBackActivityManager.init(ConfigName.getInstance().app); | ||||
setContentView(R.layout.activity_welcome); | setContentView(R.layout.activity_welcome); | ||||
ThreadManager.get().release(); | |||||
// ThreadManager.get().release(); | |||||
DisplayMetrics dm = new DisplayMetrics(); | DisplayMetrics dm = new DisplayMetrics(); | ||||
getWindowManager().getDefaultDisplay().getMetrics(dm); | getWindowManager().getDefaultDisplay().getMetrics(dm); | ||||
@@ -8,6 +8,7 @@ import android.view.ViewGroup; | |||||
import androidx.annotation.NonNull; | import androidx.annotation.NonNull; | ||||
import androidx.recyclerview.widget.RecyclerView; | import androidx.recyclerview.widget.RecyclerView; | ||||
import com.bonait.bnframework.common.db.util.SubAttributeGroupDBUtil; | |||||
import com.bonait.bnframework.newui.adapter.base.BaseAdapter; | import com.bonait.bnframework.newui.adapter.base.BaseAdapter; | ||||
import com.bonait.bnframework.common.db.mode.BPA_ORDER_DETAIL; | import com.bonait.bnframework.common.db.mode.BPA_ORDER_DETAIL; | ||||
import com.bonait.bnframework.common.db.util.GoodsProcessDetailDBUtil; | import com.bonait.bnframework.common.db.util.GoodsProcessDetailDBUtil; | ||||
@@ -41,24 +42,30 @@ public abstract class OrderInfoAdapter extends BaseAdapter<BPA_ORDER_DETAIL,Orde | |||||
holder.binding.cookDesc.setText(""); | holder.binding.cookDesc.setText(""); | ||||
} | } | ||||
int makeTime = SubAttributeGroupDBUtil.getMakeTime(bean.groupId); | |||||
if(position==0 || position==1 || position == 2||position == 3){ | if(position==0 || position==1 || position == 2||position == 3){ | ||||
if(bean.status==1){ | if(bean.status==1){ | ||||
int max= GoodsProcessDetailDBUtil.getByGroupId(bean.groupId).size(); | int max= GoodsProcessDetailDBUtil.getByGroupId(bean.groupId).size(); | ||||
holder.binding.progressBar.setMax(max); | holder.binding.progressBar.setMax(max); | ||||
holder.binding.progressBar.setProgress(bean.process); | holder.binding.progressBar.setProgress(bean.process); | ||||
holder.binding.tvProcess.setText("正在执行第"+bean.process+"步工序"); | |||||
}else if(bean.status==2){ | }else if(bean.status==2){ | ||||
holder.binding.progressBar.setMax(1); | holder.binding.progressBar.setMax(1); | ||||
holder.binding.progressBar.setProgress(1); | holder.binding.progressBar.setProgress(1); | ||||
holder.binding.tvProcess.setText(makeTime>0?("制作时长:"+ dealtTime(makeTime)):""); | |||||
}else if(bean.status==3){ | }else if(bean.status==3){ | ||||
holder.binding.progressBar.setMax(1); | holder.binding.progressBar.setMax(1); | ||||
holder.binding.progressBar.setProgress(0); | holder.binding.progressBar.setProgress(0); | ||||
holder.binding.tvProcess.setText(""); | |||||
}else if(bean.status==0){ | }else if(bean.status==0){ | ||||
holder.binding.progressBar.setMax(100); | holder.binding.progressBar.setMax(100); | ||||
holder.binding.progressBar.setProgress(0); | holder.binding.progressBar.setProgress(0); | ||||
holder.binding.tvProcess.setText(makeTime>0?("预计时长:"+ dealtTime(makeTime)):""); | |||||
} | } | ||||
}else { | }else { | ||||
holder.binding.progressBar.setMax(1); | holder.binding.progressBar.setMax(1); | ||||
holder.binding.progressBar.setProgress(0); | holder.binding.progressBar.setProgress(0); | ||||
holder.binding.tvProcess.setText(makeTime>0?("预计时长:"+ dealtTime(makeTime)):""); | |||||
} | } | ||||
holder.binding.sort.setText((position+1)+""); | holder.binding.sort.setText((position+1)+""); | ||||
holder.binding.goodsName.setText(bean.goodsName+""); | holder.binding.goodsName.setText(bean.goodsName+""); | ||||
@@ -112,6 +119,14 @@ public abstract class OrderInfoAdapter extends BaseAdapter<BPA_ORDER_DETAIL,Orde | |||||
} | } | ||||
} | } | ||||
private String dealtTime(int time){ | |||||
// 计算分钟数 | |||||
int minutes = time / 60; | |||||
// 计算剩余的秒数(扣除分钟部分) | |||||
int seconds = time % 60; | |||||
return minutes+"分"+seconds+"秒"; | |||||
} | |||||
public static class ViewHolder extends RecyclerView.ViewHolder { | public static class ViewHolder extends RecyclerView.ViewHolder { | ||||
private ItemOrderInfoBinding binding; | private ItemOrderInfoBinding binding; | ||||
@@ -31,6 +31,7 @@ import com.bonait.bnframework.databinding.DialogFoodInfoBinding; | |||||
import com.bonait.bnframework.databinding.DialogFoodPosSelectBinding; | import com.bonait.bnframework.databinding.DialogFoodPosSelectBinding; | ||||
import com.bonait.bnframework.newui.adapter.other.FoodPosSelectAdapter; | import com.bonait.bnframework.newui.adapter.other.FoodPosSelectAdapter; | ||||
import com.bonait.bnframework.newui.fragment.setting.SceneSetFragment; | import com.bonait.bnframework.newui.fragment.setting.SceneSetFragment; | ||||
import com.bonait.bnframework.newui.widget.NewToastUtil; | |||||
import java.util.ArrayList; | import java.util.ArrayList; | ||||
import java.util.Arrays; | import java.util.Arrays; | ||||
@@ -48,6 +49,7 @@ public class FoodInfoDialog extends DialogFragment { | |||||
private DialogFoodInfoBinding viewBinding; | private DialogFoodInfoBinding viewBinding; | ||||
private String orderId = ""; | private String orderId = ""; | ||||
private HashMap<String,String> ovenMap = new LinkedHashMap<>(); | private HashMap<String,String> ovenMap = new LinkedHashMap<>(); | ||||
private BPA_ORDER_DETAIL order; | |||||
@Override | @Override | ||||
public void onCreate(@Nullable Bundle savedInstanceState) { | public void onCreate(@Nullable Bundle savedInstanceState) { | ||||
@@ -108,6 +110,9 @@ public class FoodInfoDialog extends DialogFragment { | |||||
}); | }); | ||||
freshView(); | freshView(); | ||||
initClick(); | initClick(); | ||||
viewBinding.tvTip.setOnClickListener(v->{ | |||||
NewToastUtil.getInstance().showToast("订单正在执行,无法修改位置"); | |||||
}); | |||||
} | } | ||||
private void freshView(){ | private void freshView(){ | ||||
@@ -123,12 +128,26 @@ public class FoodInfoDialog extends DialogFragment { | |||||
viewBinding.right4.setText(""); | viewBinding.right4.setText(""); | ||||
viewBinding.right5.setText(""); | viewBinding.right5.setText(""); | ||||
viewBinding.right6.setText(""); | viewBinding.right6.setText(""); | ||||
BPA_ORDER_DETAIL order = OrderDetailUtil.getById(orderId); | |||||
order = OrderDetailUtil.getById(orderId); | |||||
if(order==null){ | if(order==null){ | ||||
dismiss(); | dismiss(); | ||||
return; | return; | ||||
} | } | ||||
viewBinding.tvTip.setVisibility(order.status!=0?View.VISIBLE:View.GONE); | |||||
List<BPA_GOODS_PROCESS_DETAIL> details = GoodsProcessDetailDBUtil.getByGroupId(order.groupId); | List<BPA_GOODS_PROCESS_DETAIL> details = GoodsProcessDetailDBUtil.getByGroupId(order.groupId); | ||||
if(order.deviceNum ==1){ | |||||
details.clear(); | |||||
details.addAll(ConfigName.goodsProcess1); | |||||
}else if(order.deviceNum ==2){ | |||||
details.clear(); | |||||
details.addAll(ConfigName.goodsProcess2); | |||||
}else if(order.deviceNum ==3){ | |||||
details.clear(); | |||||
details.addAll(ConfigName.goodsProcess3); | |||||
}else if(order.deviceNum ==4){ | |||||
details.clear(); | |||||
details.addAll(ConfigName.goodsProcess4); | |||||
} | |||||
for(BPA_GOODS_PROCESS_DETAIL detail:details){ | for(BPA_GOODS_PROCESS_DETAIL detail:details){ | ||||
if(detail.processname.equals("主料")||detail.processname.equals("调料")){ | if(detail.processname.equals("主料")||detail.processname.equals("调料")){ | ||||
if(!detail.processvalue.isEmpty()){ | if(!detail.processvalue.isEmpty()){ | ||||
@@ -373,6 +392,43 @@ public class FoodInfoDialog extends DialogFragment { | |||||
detail.processvalue = detail.processvalue.replace(posInfo,"调料中盆位置,"+positionName); | detail.processvalue = detail.processvalue.replace(posInfo,"调料中盆位置,"+positionName); | ||||
detail.processms = detail.processms.replace(res2[1],positionName); | detail.processms = detail.processms.replace(res2[1],positionName); | ||||
} | } | ||||
if(order.deviceNum ==1){ | |||||
if(!ConfigName.goodsProcess1.isEmpty()){ | |||||
for(BPA_GOODS_PROCESS_DETAIL bean:ConfigName.goodsProcess1){ | |||||
if(detail.id.equals(bean.id)){ | |||||
bean.processvalue = detail.processvalue; | |||||
bean.processms = detail.processms; | |||||
} | |||||
} | |||||
} | |||||
}else if(order.deviceNum ==2){ | |||||
if(!ConfigName.goodsProcess2.isEmpty()){ | |||||
for(BPA_GOODS_PROCESS_DETAIL bean:ConfigName.goodsProcess2){ | |||||
if(detail.id.equals(bean.id)){ | |||||
bean.processvalue = detail.processvalue; | |||||
bean.processms = detail.processms; | |||||
} | |||||
} | |||||
} | |||||
}else if(order.deviceNum ==3){ | |||||
if(!ConfigName.goodsProcess3.isEmpty()){ | |||||
for(BPA_GOODS_PROCESS_DETAIL bean:ConfigName.goodsProcess3){ | |||||
if(detail.id.equals(bean.id)){ | |||||
bean.processvalue = detail.processvalue; | |||||
bean.processms = detail.processms; | |||||
} | |||||
} | |||||
} | |||||
}else if(order.deviceNum ==4){ | |||||
if(!ConfigName.goodsProcess4.isEmpty()){ | |||||
for(BPA_GOODS_PROCESS_DETAIL bean:ConfigName.goodsProcess4){ | |||||
if(detail.id.equals(bean.id)){ | |||||
bean.processvalue = detail.processvalue; | |||||
bean.processms = detail.processms; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
if(GoodsProcessDetailDBUtil.update(detail)){ | if(GoodsProcessDetailDBUtil.update(detail)){ | ||||
freshView(); | freshView(); | ||||
xCom.dismissX(); | xCom.dismissX(); | ||||
@@ -11,6 +11,7 @@ import android.view.ViewGroup; | |||||
import android.view.Window; | import android.view.Window; | ||||
import android.view.WindowManager; | import android.view.WindowManager; | ||||
import androidx.annotation.FontRes; | |||||
import androidx.annotation.NonNull; | import androidx.annotation.NonNull; | ||||
import androidx.annotation.Nullable; | import androidx.annotation.Nullable; | ||||
import androidx.fragment.app.DialogFragment; | import androidx.fragment.app.DialogFragment; | ||||
@@ -25,8 +26,13 @@ import com.bonait.bnframework.common.helper.I.MyClickListener; | |||||
import com.bonait.bnframework.common.utils.AdbCommandUtil; | import com.bonait.bnframework.common.utils.AdbCommandUtil; | ||||
import com.bonait.bnframework.common.utils.DisplayManager; | import com.bonait.bnframework.common.utils.DisplayManager; | ||||
import com.bonait.bnframework.databinding.DialogFoodPosSetBinding; | import com.bonait.bnframework.databinding.DialogFoodPosSetBinding; | ||||
import com.bonait.bnframework.modbus.Wok1ModbusTcpServer; | |||||
import com.bonait.bnframework.modbus.Wok2ModbusTcpServer; | |||||
import com.bonait.bnframework.modbus.Wok3ModbusTcpServer; | |||||
import com.bonait.bnframework.modbus.Wok4ModbusTcpServer; | |||||
import com.bonait.bnframework.newui.fragment.setting.SceneSetFragment; | import com.bonait.bnframework.newui.fragment.setting.SceneSetFragment; | ||||
import com.bonait.bnframework.newui.widget.FoodPosSetView; | import com.bonait.bnframework.newui.widget.FoodPosSetView; | ||||
import com.bonait.bnframework.newui.widget.NewToastUtil; | |||||
import java.util.ArrayList; | import java.util.ArrayList; | ||||
import java.util.List; | import java.util.List; | ||||
@@ -106,12 +112,42 @@ public class FoodPosSetDialog extends DialogFragment { | |||||
dismiss(); | dismiss(); | ||||
return; | return; | ||||
} | } | ||||
selectWok(order.deviceNum); | |||||
viewBinding.tvWok1.setSelected(order.deviceNum==1); | |||||
viewBinding.wokImage1.setVisibility(order.deviceNum==1?View.VISIBLE:View.GONE); | |||||
viewBinding.tvWok2.setSelected(order.deviceNum==2); | |||||
viewBinding.wokImage2.setVisibility(order.deviceNum==2?View.VISIBLE:View.GONE); | |||||
viewBinding.tvWok3.setSelected(order.deviceNum==3); | |||||
viewBinding.wokImage3.setVisibility(order.deviceNum==3?View.VISIBLE:View.GONE); | |||||
viewBinding.tvWok4.setSelected(order.deviceNum==4); | |||||
viewBinding.wokImage4.setVisibility(order.deviceNum==4?View.VISIBLE:View.GONE); | |||||
viewBinding.tvTip.setVisibility(order.deviceNum == 0?View.VISIBLE:View.GONE); | |||||
data1.clear(); | data1.clear(); | ||||
data2.clear(); | data2.clear(); | ||||
data3.clear(); | data3.clear(); | ||||
List<BPA_GOODS_PROCESS_DETAIL> details = GoodsProcessDetailDBUtil.getByGroupId(order.groupId); | List<BPA_GOODS_PROCESS_DETAIL> details = GoodsProcessDetailDBUtil.getByGroupId(order.groupId); | ||||
if(order.deviceNum ==1){ | |||||
if(!ConfigName.goodsProcess1.isEmpty()){ | |||||
details.clear(); | |||||
details.addAll(ConfigName.goodsProcess1); | |||||
} | |||||
}else if(order.deviceNum ==2){ | |||||
if(!ConfigName.goodsProcess2.isEmpty()){ | |||||
details.clear(); | |||||
details.addAll(ConfigName.goodsProcess2); | |||||
} | |||||
}else if(order.deviceNum ==3){ | |||||
if(!ConfigName.goodsProcess3.isEmpty()){ | |||||
details.clear(); | |||||
details.addAll(ConfigName.goodsProcess3); | |||||
} | |||||
}else if(order.deviceNum ==4){ | |||||
if(!ConfigName.goodsProcess4.isEmpty()){ | |||||
details.clear(); | |||||
details.addAll(ConfigName.goodsProcess4); | |||||
} | |||||
} | |||||
for(BPA_GOODS_PROCESS_DETAIL detail:details){ | for(BPA_GOODS_PROCESS_DETAIL detail:details){ | ||||
if(detail.processname.equals("主料")){ | if(detail.processname.equals("主料")){ | ||||
data1.add(detail); | data1.add(detail); | ||||
@@ -135,9 +171,42 @@ public class FoodPosSetDialog extends DialogFragment { | |||||
viewBinding.flWok4.setOnClickListener(v->{ | viewBinding.flWok4.setOnClickListener(v->{ | ||||
selectWok(4); | selectWok(4); | ||||
}); | }); | ||||
viewBinding.tvTip.setOnClickListener(v->{ | |||||
NewToastUtil.getInstance().showToast("请先选择炒锅位置"); | |||||
}); | |||||
} | } | ||||
private void selectWok(int deviceNum){ | private void selectWok(int deviceNum){ | ||||
if(order.deviceNum == deviceNum){ | |||||
if(order.deviceNum ==1){ | |||||
ConfigName.goodsProcess1.clear(); | |||||
}else if(order.deviceNum ==2){ | |||||
ConfigName.goodsProcess2.clear(); | |||||
}else if(order.deviceNum ==3){ | |||||
ConfigName.goodsProcess3.clear(); | |||||
}else if(order.deviceNum ==4){ | |||||
ConfigName.goodsProcess4.clear(); | |||||
} | |||||
viewBinding.tvWok1.setSelected(false); | |||||
viewBinding.wokImage1.setVisibility(View.GONE); | |||||
viewBinding.tvWok2.setSelected(false); | |||||
viewBinding.wokImage2.setVisibility(View.GONE); | |||||
viewBinding.tvWok3.setSelected(false); | |||||
viewBinding.wokImage3.setVisibility(View.GONE); | |||||
viewBinding.tvWok4.setSelected(false); | |||||
viewBinding.wokImage4.setVisibility(View.GONE); | |||||
order.deviceNum = 0; | |||||
viewBinding.tvTip.setVisibility(order.deviceNum == 0?View.VISIBLE:View.GONE); | |||||
OrderDetailUtil.update(order); | |||||
return; | |||||
} | |||||
for(BPA_ORDER_DETAIL bean : OrderDetailUtil.getAll()){ | |||||
if(bean.deviceNum == deviceNum){ | |||||
NewToastUtil.getInstance().showToastError(bean.deviceNum+"号炒锅已绑定菜品【"+bean.goodsName+"】"); | |||||
return; | |||||
} | |||||
} | |||||
viewBinding.tvWok1.setSelected(deviceNum==1); | viewBinding.tvWok1.setSelected(deviceNum==1); | ||||
viewBinding.wokImage1.setVisibility(deviceNum==1?View.VISIBLE:View.GONE); | viewBinding.wokImage1.setVisibility(deviceNum==1?View.VISIBLE:View.GONE); | ||||
viewBinding.tvWok2.setSelected(deviceNum==2); | viewBinding.tvWok2.setSelected(deviceNum==2); | ||||
@@ -148,6 +217,23 @@ public class FoodPosSetDialog extends DialogFragment { | |||||
viewBinding.wokImage4.setVisibility(deviceNum==4?View.VISIBLE:View.GONE); | viewBinding.wokImage4.setVisibility(deviceNum==4?View.VISIBLE:View.GONE); | ||||
order.deviceNum = deviceNum; | order.deviceNum = deviceNum; | ||||
OrderDetailUtil.update(order); | OrderDetailUtil.update(order); | ||||
ArrayList<BPA_GOODS_PROCESS_DETAIL> goodsrecipes = GoodsProcessDetailDBUtil.getByGroupId(order.groupId); | |||||
if(order.deviceNum ==1){ | |||||
ConfigName.goodsProcess1.clear(); | |||||
ConfigName.goodsProcess1.addAll(goodsrecipes); | |||||
}else if(order.deviceNum ==2){ | |||||
ConfigName.goodsProcess2.clear(); | |||||
ConfigName.goodsProcess2.addAll(goodsrecipes); | |||||
}else if(order.deviceNum ==3){ | |||||
ConfigName.goodsProcess3.clear(); | |||||
ConfigName.goodsProcess3.addAll(goodsrecipes); | |||||
}else if(order.deviceNum ==4){ | |||||
ConfigName.goodsProcess4.clear(); | |||||
ConfigName.goodsProcess4.addAll(goodsrecipes); | |||||
} | |||||
viewBinding.tvTip.setVisibility(order.deviceNum == 0?View.VISIBLE:View.GONE); | |||||
updateView(); | |||||
} | } | ||||
private void updateView(){ | private void updateView(){ | ||||
@@ -156,17 +242,18 @@ public class FoodPosSetDialog extends DialogFragment { | |||||
viewBinding.llContentTz.removeAllViews(); | viewBinding.llContentTz.removeAllViews(); | ||||
for (BPA_GOODS_PROCESS_DETAIL bean : data1){ | for (BPA_GOODS_PROCESS_DETAIL bean : data1){ | ||||
FoodPosSetView view = new FoodPosSetView(viewBinding.llContentZ.getContext(), null,bean); | |||||
FoodPosSetView view = new FoodPosSetView(viewBinding.llContentZ.getContext(), null,bean,order.deviceNum); | |||||
viewBinding.llContentZ.addView(view); | viewBinding.llContentZ.addView(view); | ||||
} | } | ||||
for (BPA_GOODS_PROCESS_DETAIL bean : data2){ | for (BPA_GOODS_PROCESS_DETAIL bean : data2){ | ||||
FoodPosSetView view = new FoodPosSetView(viewBinding.llContentTx.getContext(), null,bean); | |||||
viewBinding.llContentTz.addView(view); | |||||
FoodPosSetView view = new FoodPosSetView(viewBinding.llContentTz.getContext(), null,bean,order.deviceNum); | |||||
viewBinding.llContentTx.addView(view); | |||||
} | } | ||||
for (BPA_GOODS_PROCESS_DETAIL bean : data3){ | for (BPA_GOODS_PROCESS_DETAIL bean : data3){ | ||||
FoodPosSetView view = new FoodPosSetView(viewBinding.llContentTz.getContext(), null,bean); | |||||
viewBinding.llContentTx.addView(view); | |||||
FoodPosSetView view = new FoodPosSetView(viewBinding.llContentTx.getContext(), null,bean,order.deviceNum); | |||||
viewBinding.llContentTz.addView(view); | |||||
} | } | ||||
} | } | ||||
private MyClickListener listener; | private MyClickListener listener; | ||||
@@ -273,6 +273,7 @@ public class WokControlDialog extends DialogFragment { | |||||
@SuppressLint("ClickableViewAccessibility") | @SuppressLint("ClickableViewAccessibility") | ||||
private void initView(){ | private void initView(){ | ||||
viewBinding.changeToRobot.setVisibility(showRobot?View.VISIBLE:View.GONE); | viewBinding.changeToRobot.setVisibility(showRobot?View.VISIBLE:View.GONE); | ||||
viewBinding.changeToRobot2.setVisibility(showRobot?View.VISIBLE:View.GONE); | |||||
ArrayList<BPA_SILOS> silosArrayList = QueryDB.GetSilosALL(); | ArrayList<BPA_SILOS> silosArrayList = QueryDB.GetSilosALL(); | ||||
List<String> nameList = new ArrayList<>(); | List<String> nameList = new ArrayList<>(); | ||||
@@ -494,34 +495,34 @@ public class WokControlDialog extends DialogFragment { | |||||
if(silos1.num==1){ | if(silos1.num==1){ | ||||
List<BPA_MATERIAL> materials = QueryDB.GetMaterialBySilosID(silos1.id); | List<BPA_MATERIAL> materials = QueryDB.GetMaterialBySilosID(silos1.id); | ||||
if(!materials.isEmpty()){ | if(!materials.isEmpty()){ | ||||
viewBinding.yeliao1.setText("液料1:"+materials.get(0).name+"\n长按出料"); | |||||
viewBinding.yeliao1.setText("液料1-"+materials.get(0).name+"\n长按出料"); | |||||
} | } | ||||
}else if(silos1.num==2){ | }else if(silos1.num==2){ | ||||
List<BPA_MATERIAL> materials = QueryDB.GetMaterialBySilosID(silos1.id); | List<BPA_MATERIAL> materials = QueryDB.GetMaterialBySilosID(silos1.id); | ||||
if(!materials.isEmpty()){ | if(!materials.isEmpty()){ | ||||
viewBinding.yeliao2.setText("液料2:"+materials.get(0).name+"\n长按出料"); | |||||
viewBinding.yeliao2.setText("液料2-"+materials.get(0).name+"\n长按出料"); | |||||
} | } | ||||
}else if(silos1.num==3){ | }else if(silos1.num==3){ | ||||
List<BPA_MATERIAL> materials = QueryDB.GetMaterialBySilosID(silos1.id); | List<BPA_MATERIAL> materials = QueryDB.GetMaterialBySilosID(silos1.id); | ||||
if(!materials.isEmpty()){ | if(!materials.isEmpty()){ | ||||
viewBinding.yeliao3.setText("液料3:"+materials.get(0).name+"\n长按出料"); | |||||
viewBinding.yeliao3.setText("液料3-"+materials.get(0).name+"\n长按出料"); | |||||
} | } | ||||
} | } | ||||
//4是水阀 | //4是水阀 | ||||
else if(silos1.num==5){ | else if(silos1.num==5){ | ||||
List<BPA_MATERIAL> materials = QueryDB.GetMaterialBySilosID(silos1.id); | List<BPA_MATERIAL> materials = QueryDB.GetMaterialBySilosID(silos1.id); | ||||
if(!materials.isEmpty()){ | if(!materials.isEmpty()){ | ||||
viewBinding.yeliao5.setText("液料5:"+materials.get(0).name+"\n长按出料"); | |||||
viewBinding.yeliao5.setText("液料5-"+materials.get(0).name+"\n长按出料"); | |||||
} | } | ||||
}else if(silos1.num==6){ | }else if(silos1.num==6){ | ||||
List<BPA_MATERIAL> materials = QueryDB.GetMaterialBySilosID(silos1.id); | List<BPA_MATERIAL> materials = QueryDB.GetMaterialBySilosID(silos1.id); | ||||
if(!materials.isEmpty()){ | if(!materials.isEmpty()){ | ||||
viewBinding.yeliao6.setText("液料6:"+materials.get(0).name+"\n长按出料"); | |||||
viewBinding.yeliao6.setText("液料6-"+materials.get(0).name+"\n长按出料"); | |||||
} | } | ||||
}else if(silos1.num==7){ | }else if(silos1.num==7){ | ||||
List<BPA_MATERIAL> materials = QueryDB.GetMaterialBySilosID(silos1.id); | List<BPA_MATERIAL> materials = QueryDB.GetMaterialBySilosID(silos1.id); | ||||
if(!materials.isEmpty()){ | if(!materials.isEmpty()){ | ||||
viewBinding.yeliao7.setText("液料7:"+materials.get(0).name+"\n长按出料"); | |||||
viewBinding.yeliao7.setText("液料7-"+materials.get(0).name+"\n长按出料"); | |||||
} | } | ||||
} | } | ||||
} | } | ||||
@@ -30,11 +30,15 @@ import com.bonait.bnframework.common.db.util.OrderDetailUtil; | |||||
import com.bonait.bnframework.common.db.util.SubAttributeGroupDBUtil; | import com.bonait.bnframework.common.db.util.SubAttributeGroupDBUtil; | ||||
import com.bonait.bnframework.common.utils.AlertDialogUtils; | import com.bonait.bnframework.common.utils.AlertDialogUtils; | ||||
import com.bonait.bnframework.common.utils.DisplayManager; | import com.bonait.bnframework.common.utils.DisplayManager; | ||||
import com.bonait.bnframework.databinding.DialogTipBinding; | |||||
import com.bonait.bnframework.databinding.DialogWithCancelConfirmBinding; | import com.bonait.bnframework.databinding.DialogWithCancelConfirmBinding; | ||||
import com.bonait.bnframework.databinding.FragmentCookingBinding; | import com.bonait.bnframework.databinding.FragmentCookingBinding; | ||||
import com.bonait.bnframework.event.MakingStepEvent; | import com.bonait.bnframework.event.MakingStepEvent; | ||||
import com.bonait.bnframework.modbus.ModbusCenter; | import com.bonait.bnframework.modbus.ModbusCenter; | ||||
import com.bonait.bnframework.modbus.Wok1ModbusTcpServer; | import com.bonait.bnframework.modbus.Wok1ModbusTcpServer; | ||||
import com.bonait.bnframework.modbus.Wok2ModbusTcpServer; | |||||
import com.bonait.bnframework.modbus.Wok3ModbusTcpServer; | |||||
import com.bonait.bnframework.modbus.Wok4ModbusTcpServer; | |||||
import com.bonait.bnframework.newui.widget.NewToastUtil; | import com.bonait.bnframework.newui.widget.NewToastUtil; | ||||
import com.bonait.bnframework.newui.widget.XComDialog; | import com.bonait.bnframework.newui.widget.XComDialog; | ||||
import com.bonait.bnframework.oldui.adapter.step.StepAdapter; | import com.bonait.bnframework.oldui.adapter.step.StepAdapter; | ||||
@@ -348,7 +352,34 @@ public class CookingFragment extends BaseFragment { | |||||
* 制作线程 | * 制作线程 | ||||
*/ | */ | ||||
private void startMakingThread(BPA_ORDER_DETAIL orderDetail){ | private void startMakingThread(BPA_ORDER_DETAIL orderDetail){ | ||||
ExecuteTheRecipe.startMakingThread(orderDetail); | |||||
ArrayList<BPA_GOODS_PROCESS_DETAIL> goodsrecipes = new ArrayList<>(); | |||||
if(orderDetail.deviceNum ==1){ | |||||
goodsrecipes = ConfigName.goodsProcess1; | |||||
}else if(orderDetail.deviceNum ==2){ | |||||
goodsrecipes = ConfigName.goodsProcess2; | |||||
}else if(orderDetail.deviceNum ==3){ | |||||
goodsrecipes = ConfigName.goodsProcess3; | |||||
}else if(orderDetail.deviceNum ==4){ | |||||
goodsrecipes = ConfigName.goodsProcess4; | |||||
} | |||||
if(goodsrecipes.isEmpty()){ | |||||
NewToastUtil.getInstance().showToast("商品工序为空!"); | |||||
return; | |||||
} | |||||
AlertDialogUtils.showCancelAndConfirmDialog(getActivity(), R.layout.dialog_tip, (layoutView, xCom) -> { | |||||
DialogTipBinding binding = DialogTipBinding.bind(layoutView); | |||||
DisplayManager.scaleViewGroup(binding.getRoot()); | |||||
binding.title.setText("确认制作"); | |||||
binding.message.setText("【"+orderDetail.goodsName+"】"+orderDetail.deviceNum+"号炒锅\n是否重新制作?"); | |||||
binding.close.setOnClickListener(view1->{ | |||||
xCom.dismissX(); | |||||
}); | |||||
binding.submit.setOnClickListener(view1 -> { | |||||
xCom.dismissX(); | |||||
ExecuteTheRecipe.startMakingThread(orderDetail); | |||||
}); | |||||
}); | |||||
} | } | ||||
@@ -78,7 +78,7 @@ public class HomeDevicesFragment extends BaseFragment { | |||||
viewBinding.titleType2.setSelected(true); | viewBinding.titleType2.setSelected(true); | ||||
viewBinding.wokname1.setText("点击调试\n3号炒锅"); | viewBinding.wokname1.setText("点击调试\n3号炒锅"); | ||||
viewBinding.wokname2.setText("点击调试\n4号炒锅"); | viewBinding.wokname2.setText("点击调试\n4号炒锅"); | ||||
viewBinding.robotName.setText("点击调试\n1号机器人"); | |||||
viewBinding.robotName.setText("点击调试\n2号机器人"); | |||||
}); | }); | ||||
viewBinding.btnRobot.setOnClickListener(v->{ | viewBinding.btnRobot.setOnClickListener(v->{ | ||||
@@ -14,7 +14,6 @@ import androidx.appcompat.app.AppCompatActivity; | |||||
import androidx.lifecycle.LifecycleObserver; | import androidx.lifecycle.LifecycleObserver; | ||||
import com.apkfuns.logutils.LogUtils; | import com.apkfuns.logutils.LogUtils; | ||||
import com.bonait.bnframework.Model.CheckPositionBean; | |||||
import com.bonait.bnframework.R; | import com.bonait.bnframework.R; | ||||
import com.bonait.bnframework.business.ExecuteTheRecipe; | import com.bonait.bnframework.business.ExecuteTheRecipe; | ||||
import com.bonait.bnframework.business.RecordManager; | import com.bonait.bnframework.business.RecordManager; | ||||
@@ -28,20 +27,12 @@ import com.bonait.bnframework.common.helper.I.MyClickListener; | |||||
import com.bonait.bnframework.common.utils.AlertDialogUtils; | import com.bonait.bnframework.common.utils.AlertDialogUtils; | ||||
import com.bonait.bnframework.common.utils.DisplayManager; | import com.bonait.bnframework.common.utils.DisplayManager; | ||||
import com.bonait.bnframework.common.utils.PreferenceUtils; | import com.bonait.bnframework.common.utils.PreferenceUtils; | ||||
import com.bonait.bnframework.common.utils.ProcessValueUtil; | |||||
import com.bonait.bnframework.databinding.DialogOrderBinding; | import com.bonait.bnframework.databinding.DialogOrderBinding; | ||||
import com.bonait.bnframework.databinding.DialogTipBinding; | import com.bonait.bnframework.databinding.DialogTipBinding; | ||||
import com.bonait.bnframework.databinding.DialogWokTipBinding; | |||||
import com.bonait.bnframework.databinding.FragmentHomeOrderBinding; | import com.bonait.bnframework.databinding.FragmentHomeOrderBinding; | ||||
import com.bonait.bnframework.event.FreshOrderEvent; | import com.bonait.bnframework.event.FreshOrderEvent; | ||||
import com.bonait.bnframework.event.MakingStepEvent; | import com.bonait.bnframework.event.MakingStepEvent; | ||||
import com.bonait.bnframework.modbus.ModbusCenter; | import com.bonait.bnframework.modbus.ModbusCenter; | ||||
import com.bonait.bnframework.modbus.Robot1ModbusTcpServer; | |||||
import com.bonait.bnframework.modbus.Robot2ModbusTcpServer; | |||||
import com.bonait.bnframework.modbus.Wok1ModbusTcpServer; | |||||
import com.bonait.bnframework.modbus.Wok2ModbusTcpServer; | |||||
import com.bonait.bnframework.modbus.Wok3ModbusTcpServer; | |||||
import com.bonait.bnframework.modbus.Wok4ModbusTcpServer; | |||||
import com.bonait.bnframework.newui.activity.CookingHActivity; | import com.bonait.bnframework.newui.activity.CookingHActivity; | ||||
import com.bonait.bnframework.newui.adapter.order.FoodInfoAdapter; | import com.bonait.bnframework.newui.adapter.order.FoodInfoAdapter; | ||||
import com.bonait.bnframework.newui.adapter.order.OrderInfoAdapter; | import com.bonait.bnframework.newui.adapter.order.OrderInfoAdapter; | ||||
@@ -155,6 +146,8 @@ public class HomeOrderFragment extends BaseFragment { | |||||
foodInfoAdapter.setNewData(foodInfoList); | foodInfoAdapter.setNewData(foodInfoList); | ||||
viewBinding.recyclerNameList.setAdapter(foodInfoAdapter); | viewBinding.recyclerNameList.setAdapter(foodInfoAdapter); | ||||
foodInfoList.clear(); | foodInfoList.clear(); | ||||
viewBinding.btnFoodPosSet.setVisibility(View.GONE); | |||||
viewBinding.btnLocationInfo.setVisibility(View.GONE); | |||||
orderAdapter1 = new OrderInfoAdapter(){ | orderAdapter1 = new OrderInfoAdapter(){ | ||||
@Override | @Override | ||||
protected void onItemClick(View v, int position) { | protected void onItemClick(View v, int position) { | ||||
@@ -176,11 +169,15 @@ public class HomeOrderFragment extends BaseFragment { | |||||
return; | return; | ||||
} | } | ||||
if(mData.get(position).status==0){ | if(mData.get(position).status==0){ | ||||
if(mData.get(position).deviceNum==0){ | |||||
NewToastUtil.getInstance().showToast("请先设置炒锅位置"); | |||||
return; | |||||
} | |||||
AlertDialogUtils.showCancelAndConfirmDialog(getActivity(), R.layout.dialog_tip, (layoutView, xCom) -> { | AlertDialogUtils.showCancelAndConfirmDialog(getActivity(), R.layout.dialog_tip, (layoutView, xCom) -> { | ||||
DialogTipBinding binding = DialogTipBinding.bind(layoutView); | DialogTipBinding binding = DialogTipBinding.bind(layoutView); | ||||
DisplayManager.scaleViewGroup(binding.getRoot()); | DisplayManager.scaleViewGroup(binding.getRoot()); | ||||
binding.title.setText("提示"); | binding.title.setText("提示"); | ||||
binding.message.setText("是否已设置配料位置?"); | |||||
binding.message.setText("【"+mData.get(position).goodsName+"】"+mData.get(position).deviceNum+"号炒锅\n是否已设置配料位置?"); | |||||
binding.close.setOnClickListener(view1->{ | binding.close.setOnClickListener(view1->{ | ||||
xCom.dismissX(); | xCom.dismissX(); | ||||
}); | }); | ||||
@@ -202,35 +199,7 @@ public class HomeOrderFragment extends BaseFragment { | |||||
viewBinding.recyclerInfo.setAdapter(orderAdapter1); | viewBinding.recyclerInfo.setAdapter(orderAdapter1); | ||||
viewBinding.btnLocationInfo.setOnClickListener(v->{ | viewBinding.btnLocationInfo.setOnClickListener(v->{ | ||||
if(ConfigName.getInstance().isFastClick()){ | |||||
return; | |||||
} | |||||
if(foodInfoList.isEmpty()){ | |||||
return; | |||||
} | |||||
FoodInfoDialog foodInfoDialog = new FoodInfoDialog(); | |||||
Bundle bundle = new Bundle(); | |||||
bundle.putString("orderId",orderDetail.id); | |||||
foodInfoDialog.setArguments(bundle); | |||||
foodInfoDialog.setListener(new MyClickListener() { | |||||
@Override | |||||
public void clickListener(View v, Object data) { | |||||
orderDetails1.clear(); | |||||
orderDetails1.addAll(OrderDetailUtil.getAll()); | |||||
orderAdapter1.notifyDataSetChanged(); | |||||
if(orderAdapter1.getCurrentPosition()>=0){ | |||||
orderClick(orderAdapter1.getData().get(orderAdapter1.getCurrentPosition())); | |||||
} | |||||
} | |||||
@Override | |||||
public void clickListenerNew(View v, int k, Object data) { | |||||
} | |||||
}); | |||||
if(getActivity()!=null){ | |||||
foodInfoDialog.show(getActivity().getSupportFragmentManager(),"配料信息"); | |||||
} | |||||
lookPosition(); | |||||
}); | }); | ||||
viewBinding.btnFoodPosSet.setOnClickListener(v->{ | viewBinding.btnFoodPosSet.setOnClickListener(v->{ | ||||
if(ConfigName.getInstance().isFastClick()){ | if(ConfigName.getInstance().isFastClick()){ | ||||
@@ -254,6 +223,7 @@ public class HomeOrderFragment extends BaseFragment { | |||||
if(orderAdapter1.getCurrentPosition()>=0){ | if(orderAdapter1.getCurrentPosition()>=0){ | ||||
orderClick(orderAdapter1.getData().get(orderAdapter1.getCurrentPosition())); | orderClick(orderAdapter1.getData().get(orderAdapter1.getCurrentPosition())); | ||||
} | } | ||||
lookPosition(); | |||||
} | } | ||||
@Override | @Override | ||||
@@ -266,6 +236,41 @@ public class HomeOrderFragment extends BaseFragment { | |||||
changeRightBtn(); | changeRightBtn(); | ||||
} | } | ||||
/** | |||||
* 查看位置信息 | |||||
*/ | |||||
private void lookPosition(){ | |||||
if(ConfigName.getInstance().isFastClick()){ | |||||
return; | |||||
} | |||||
if(foodInfoList.isEmpty()){ | |||||
return; | |||||
} | |||||
FoodInfoDialog foodInfoDialog = new FoodInfoDialog(); | |||||
Bundle bundle = new Bundle(); | |||||
bundle.putString("orderId",orderDetail.id); | |||||
foodInfoDialog.setArguments(bundle); | |||||
foodInfoDialog.setListener(new MyClickListener() { | |||||
@Override | |||||
public void clickListener(View v, Object data) { | |||||
orderDetails1.clear(); | |||||
orderDetails1.addAll(OrderDetailUtil.getAll()); | |||||
orderAdapter1.notifyDataSetChanged(); | |||||
if(orderAdapter1.getCurrentPosition()>=0){ | |||||
orderClick(orderAdapter1.getData().get(orderAdapter1.getCurrentPosition())); | |||||
} | |||||
} | |||||
@Override | |||||
public void clickListenerNew(View v, int k, Object data) { | |||||
} | |||||
}); | |||||
if(getActivity()!=null){ | |||||
foodInfoDialog.show(getActivity().getSupportFragmentManager(),"配料信息"); | |||||
} | |||||
} | |||||
/** | /** | ||||
* 隐藏 显示右边位置按钮 | * 隐藏 显示右边位置按钮 | ||||
*/ | */ | ||||
@@ -275,7 +280,7 @@ public class HomeOrderFragment extends BaseFragment { | |||||
viewBinding.btnFoodPosSet.setVisibility(View.GONE); | viewBinding.btnFoodPosSet.setVisibility(View.GONE); | ||||
}else { | }else { | ||||
viewBinding.btnLocationInfo.setVisibility(View.VISIBLE); | viewBinding.btnLocationInfo.setVisibility(View.VISIBLE); | ||||
viewBinding.btnFoodPosSet.setVisibility(View.VISIBLE); | |||||
// viewBinding.btnFoodPosSet.setVisibility(View.VISIBLE); | |||||
} | } | ||||
} | } | ||||
@@ -303,7 +308,7 @@ public class HomeOrderFragment extends BaseFragment { | |||||
String name = mData.get(position).goodsName +"—"+ (mData.get(position).groupName==null?"":mData.get(position).groupName); | String name = mData.get(position).goodsName +"—"+ (mData.get(position).groupName==null?"":mData.get(position).groupName); | ||||
if(mData.get(position).status == 0){ | if(mData.get(position).status == 0){ | ||||
if(OrderDetailUtil.getByMaking(mData.get(position).deviceNum)!=null){ | if(OrderDetailUtil.getByMaking(mData.get(position).deviceNum)!=null){ | ||||
NewToastUtil.getInstance().showToast("请确认上一个订单已完成"); | |||||
NewToastUtil.getInstance().showToast("请确认"+mData.get(position).deviceNum+"号炒锅上一个订单已完成"); | |||||
return; | return; | ||||
} | } | ||||
@@ -363,7 +368,7 @@ public class HomeOrderFragment extends BaseFragment { | |||||
return; | return; | ||||
} | } | ||||
String error = checkPosition(mData.get(position)); | |||||
String error = checkPositionReadPlc(mData.get(position)); | |||||
makingOrderDialog( mData.get(position),error.isEmpty()?0:-1,name,error,position); | makingOrderDialog( mData.get(position),error.isEmpty()?0:-1,name,error,position); | ||||
return; | return; | ||||
} | } | ||||
@@ -386,31 +391,30 @@ public class HomeOrderFragment extends BaseFragment { | |||||
*/ | */ | ||||
private void orderClick(BPA_ORDER_DETAIL bean){ | private void orderClick(BPA_ORDER_DETAIL bean){ | ||||
orderDetail = bean; | orderDetail = bean; | ||||
viewBinding.btnFoodPosSet.setVisibility(orderDetail.status!=0?View.GONE:View.VISIBLE); | |||||
viewBinding.orderName.setText(orderDetail.goodsName+(orderDetail.groupName==null?"":("\n"+orderDetail.groupName))); | viewBinding.orderName.setText(orderDetail.goodsName+(orderDetail.groupName==null?"":("\n"+orderDetail.groupName))); | ||||
//刷新右侧配料信息 | //刷新右侧配料信息 | ||||
foodInfoList.clear(); | foodInfoList.clear(); | ||||
List<BPA_GOODS_PROCESS_DETAIL> details = GoodsProcessDetailDBUtil.getByGroupId(orderDetail.groupId); | List<BPA_GOODS_PROCESS_DETAIL> details = GoodsProcessDetailDBUtil.getByGroupId(orderDetail.groupId); | ||||
if(orderDetail.status!=0){ | |||||
if(orderDetail.deviceNum == 1){ | |||||
if(!ConfigName.goodsProcess1.isEmpty()){ | |||||
details.clear(); | |||||
details.addAll(ConfigName.goodsProcess1); | |||||
} | |||||
}else if(orderDetail.deviceNum==2){ | |||||
if(!ConfigName.goodsProcess2.isEmpty()){ | |||||
details.clear(); | |||||
details.addAll(ConfigName.goodsProcess2); | |||||
} | |||||
}else if(orderDetail.deviceNum==3){ | |||||
if(!ConfigName.goodsProcess3.isEmpty()){ | |||||
details.clear(); | |||||
details.addAll(ConfigName.goodsProcess3); | |||||
} | |||||
}else if(orderDetail.deviceNum==4){ | |||||
if(!ConfigName.goodsProcess4.isEmpty()){ | |||||
details.clear(); | |||||
details.addAll(ConfigName.goodsProcess4); | |||||
} | |||||
if(orderDetail.deviceNum == 1){ | |||||
if(!ConfigName.goodsProcess1.isEmpty()){ | |||||
details.clear(); | |||||
details.addAll(ConfigName.goodsProcess1); | |||||
} | |||||
}else if(orderDetail.deviceNum==2){ | |||||
if(!ConfigName.goodsProcess2.isEmpty()){ | |||||
details.clear(); | |||||
details.addAll(ConfigName.goodsProcess2); | |||||
} | |||||
}else if(orderDetail.deviceNum==3){ | |||||
if(!ConfigName.goodsProcess3.isEmpty()){ | |||||
details.clear(); | |||||
details.addAll(ConfigName.goodsProcess3); | |||||
} | |||||
}else if(orderDetail.deviceNum==4){ | |||||
if(!ConfigName.goodsProcess4.isEmpty()){ | |||||
details.clear(); | |||||
details.addAll(ConfigName.goodsProcess4); | |||||
} | } | ||||
} | } | ||||
// for(BPA_GOODS_PROCESS_DETAIL detail:details){ | // for(BPA_GOODS_PROCESS_DETAIL detail:details){ | ||||
@@ -430,6 +434,12 @@ public class HomeOrderFragment extends BaseFragment { | |||||
orderAdapter1.notifyItemChanged(0); | orderAdapter1.notifyItemChanged(0); | ||||
if(orderDetails1.size()>1){ | if(orderDetails1.size()>1){ | ||||
orderAdapter1.notifyItemChanged(1); | orderAdapter1.notifyItemChanged(1); | ||||
if(orderDetails1.size()>2){ | |||||
orderAdapter1.notifyItemChanged(2); | |||||
} | |||||
if(orderDetails1.size()>3){ | |||||
orderAdapter1.notifyItemChanged(3); | |||||
} | |||||
} | } | ||||
} | } | ||||
} | } | ||||
@@ -469,11 +479,22 @@ public class HomeOrderFragment extends BaseFragment { | |||||
if (ConfigName.getInstance().isFastClick()){ | if (ConfigName.getInstance().isFastClick()){ | ||||
return; | return; | ||||
} | } | ||||
if(orderDetails1.get(position).deviceNum ==1){ | |||||
ConfigName.goodsProcess1.clear(); | |||||
}else if(orderDetails1.get(position).deviceNum ==2){ | |||||
ConfigName.goodsProcess2.clear(); | |||||
}else if(orderDetails1.get(position).deviceNum ==3){ | |||||
ConfigName.goodsProcess3.clear(); | |||||
}else if(orderDetails1.get(position).deviceNum ==4){ | |||||
ConfigName.goodsProcess4.clear(); | |||||
} | |||||
BPA_ORDER_DETAIL orderDetail1 = OrderDetailUtil.getById(orderDetails1.get(position).id); | BPA_ORDER_DETAIL orderDetail1 = OrderDetailUtil.getById(orderDetails1.get(position).id); | ||||
OrderDetailUtil.deleteById(orderDetails1.get(position).id); | OrderDetailUtil.deleteById(orderDetails1.get(position).id); | ||||
orderDetails1.remove(position); | orderDetails1.remove(position); | ||||
orderAdapter1.setCurrentPosition(-1); | orderAdapter1.setCurrentPosition(-1); | ||||
foodInfoList.clear(); | foodInfoList.clear(); | ||||
viewBinding.btnFoodPosSet.setVisibility(View.GONE); | |||||
viewBinding.btnLocationInfo.setVisibility(View.GONE); | |||||
foodInfoAdapter.notifyDataSetChanged(); | foodInfoAdapter.notifyDataSetChanged(); | ||||
orderAdapter1.notifyDataSetChanged(); | orderAdapter1.notifyDataSetChanged(); | ||||
NewToastUtil.getInstance().showToast("删除成功"); | NewToastUtil.getInstance().showToast("删除成功"); | ||||
@@ -543,12 +564,17 @@ public class HomeOrderFragment extends BaseFragment { | |||||
switch (status){ | switch (status){ | ||||
case -1: | case -1: | ||||
case 0: | case 0: | ||||
if(checkPositionResue()){ | |||||
return; | |||||
} | |||||
orderDetails1.get(position).status = 1; | orderDetails1.get(position).status = 1; | ||||
BPA_ORDER_DETAIL bean = orderDetails1.get(position); | BPA_ORDER_DETAIL bean = orderDetails1.get(position); | ||||
bean.createTime = "0"; | bean.createTime = "0"; | ||||
OrderDetailUtil.update(bean); | OrderDetailUtil.update(bean); | ||||
orderAdapter1.setCurrentPosition(-1); | orderAdapter1.setCurrentPosition(-1); | ||||
foodInfoList.clear(); | foodInfoList.clear(); | ||||
viewBinding.btnFoodPosSet.setVisibility(View.GONE); | |||||
viewBinding.btnLocationInfo.setVisibility(View.GONE); | |||||
foodInfoAdapter.notifyDataSetChanged(); | foodInfoAdapter.notifyDataSetChanged(); | ||||
orderAdapter1.notifyDataSetChanged(); | orderAdapter1.notifyDataSetChanged(); | ||||
startMakingThread(bean); | startMakingThread(bean); | ||||
@@ -561,13 +587,26 @@ public class HomeOrderFragment extends BaseFragment { | |||||
if(position == orderAdapter1.getCurrentPosition()){ | if(position == orderAdapter1.getCurrentPosition()){ | ||||
orderAdapter1.setCurrentPosition(-1); | orderAdapter1.setCurrentPosition(-1); | ||||
foodInfoList.clear(); | foodInfoList.clear(); | ||||
viewBinding.btnFoodPosSet.setVisibility(View.GONE); | |||||
viewBinding.btnLocationInfo.setVisibility(View.GONE); | |||||
foodInfoAdapter.notifyDataSetChanged(); | foodInfoAdapter.notifyDataSetChanged(); | ||||
changeRightBtn(); | changeRightBtn(); | ||||
} | } | ||||
if(orderDetails1.get(position).deviceNum ==1){ | |||||
ConfigName.goodsProcess1.clear(); | |||||
}else if(orderDetails1.get(position).deviceNum ==2){ | |||||
ConfigName.goodsProcess2.clear(); | |||||
}else if(orderDetails1.get(position).deviceNum ==3){ | |||||
ConfigName.goodsProcess3.clear(); | |||||
}else if(orderDetails1.get(position).deviceNum ==4){ | |||||
ConfigName.goodsProcess4.clear(); | |||||
} | |||||
OrderDetailUtil.deleteById(orderDetails1.get(position).id); | OrderDetailUtil.deleteById(orderDetails1.get(position).id); | ||||
orderDetails1.remove(position); | orderDetails1.remove(position); | ||||
orderAdapter1.setCurrentPosition(-1); | orderAdapter1.setCurrentPosition(-1); | ||||
foodInfoList.clear(); | foodInfoList.clear(); | ||||
viewBinding.btnFoodPosSet.setVisibility(View.GONE); | |||||
viewBinding.btnLocationInfo.setVisibility(View.GONE); | |||||
foodInfoAdapter.notifyDataSetChanged(); | foodInfoAdapter.notifyDataSetChanged(); | ||||
orderAdapter1.notifyDataSetChanged(); | orderAdapter1.notifyDataSetChanged(); | ||||
break; | break; | ||||
@@ -580,6 +619,9 @@ public class HomeOrderFragment extends BaseFragment { | |||||
} | } | ||||
xCom.dismissX(); | xCom.dismissX(); | ||||
if(status==0){ | if(status==0){ | ||||
if(checkPositionResue()){ | |||||
return; | |||||
} | |||||
orderDetails1.get(position).status = 1; | orderDetails1.get(position).status = 1; | ||||
BPA_ORDER_DETAIL bean = orderDetails1.get(position); | BPA_ORDER_DETAIL bean = orderDetails1.get(position); | ||||
bean.createTime = "0"; | bean.createTime = "0"; | ||||
@@ -588,6 +630,8 @@ public class HomeOrderFragment extends BaseFragment { | |||||
orderDetails1.addAll(OrderDetailUtil.getAll()); | orderDetails1.addAll(OrderDetailUtil.getAll()); | ||||
orderAdapter1.setCurrentPosition(-1); | orderAdapter1.setCurrentPosition(-1); | ||||
foodInfoList.clear(); | foodInfoList.clear(); | ||||
viewBinding.btnFoodPosSet.setVisibility(View.GONE); | |||||
viewBinding.btnLocationInfo.setVisibility(View.GONE); | |||||
foodInfoAdapter.notifyDataSetChanged(); | foodInfoAdapter.notifyDataSetChanged(); | ||||
orderAdapter1.notifyDataSetChanged(); | orderAdapter1.notifyDataSetChanged(); | ||||
viewBinding.recyclerInfo.smoothScrollToPosition(0); | viewBinding.recyclerInfo.smoothScrollToPosition(0); | ||||
@@ -600,11 +644,102 @@ public class HomeOrderFragment extends BaseFragment { | |||||
}); | }); | ||||
} | } | ||||
/** | |||||
* 检查位置是否重复使用 | |||||
*/ | |||||
private boolean checkPositionResue(){ | |||||
try { | |||||
List<BPA_GOODS_PROCESS_DETAIL> goodsrecipes = new ArrayList<>(); | |||||
List<BPA_GOODS_PROCESS_DETAIL> otherCooking = new ArrayList<>(); | |||||
// 1 2共用一个货架 3 4共用一个货架 | |||||
if(orderDetail.deviceNum ==1){ | |||||
goodsrecipes = ConfigName.goodsProcess1; | |||||
if(ConfigName.IsStart[1]){ | |||||
otherCooking.addAll(ConfigName.goodsProcess2); | |||||
} | |||||
}else if(orderDetail.deviceNum ==2){ | |||||
goodsrecipes = ConfigName.goodsProcess2; | |||||
if(ConfigName.IsStart[0]){ | |||||
otherCooking.addAll(ConfigName.goodsProcess1); | |||||
} | |||||
}else if(orderDetail.deviceNum ==3){ | |||||
goodsrecipes = ConfigName.goodsProcess3; | |||||
if(ConfigName.IsStart[3]){ | |||||
otherCooking.addAll(ConfigName.goodsProcess4); | |||||
} | |||||
}else if(orderDetail.deviceNum ==4){ | |||||
goodsrecipes = ConfigName.goodsProcess4; | |||||
if(ConfigName.IsStart[2]){ | |||||
otherCooking.addAll(ConfigName.goodsProcess3); | |||||
} | |||||
} | |||||
if(goodsrecipes.isEmpty()){ | |||||
NewToastUtil.getInstance().showToast("商品工序为空!"); | |||||
return true; | |||||
} | |||||
StringBuffer desc = new StringBuffer(); | |||||
for(BPA_GOODS_PROCESS_DETAIL detail : goodsrecipes){ | |||||
if(detail.processname.equals("主料")||detail.processname.equals("调料小盆")||detail.processname.equals("调料中盆")){ | |||||
for(BPA_GOODS_PROCESS_DETAIL detailing : otherCooking){ | |||||
if(detail.processname.equals(detailing.processname)){ | |||||
String[] position1 = detail.processvalue.split("\\|"); | |||||
String[] position2 = detailing.processvalue.split("\\|"); | |||||
if(position1[1].equals(position2[1])){ | |||||
desc.append(position2[1]).append("|"); | |||||
break; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
} | |||||
if(desc.length()>0){ | |||||
desc.append("\n库位正在被其他设备使用,请更换位置重试"); | |||||
}else { | |||||
List<String> posList = new ArrayList<>(); | |||||
for(BPA_GOODS_PROCESS_DETAIL detail : goodsrecipes){ | |||||
if(detail.processname.equals("主料")||detail.processname.equals("调料小盆")||detail.processname.equals("调料中盆")){ | |||||
String[] position1 = detail.processvalue.split("\\|"); | |||||
if(posList.contains(position1[1])){ | |||||
desc.append(position1[1]).append("|"); | |||||
}else { | |||||
posList.add(position1[1]); | |||||
} | |||||
} | |||||
} | |||||
if(desc.length()>0){ | |||||
desc.append("\n库位被重复使用,请更换位置重试"); | |||||
} | |||||
} | |||||
if(desc.length()>0){ | |||||
AlertDialogUtils.showCancelAndConfirmDialog(getActivity(), R.layout.dialog_tip, (layoutView, xCom) -> { | |||||
DialogTipBinding binding = DialogTipBinding.bind(layoutView); | |||||
DisplayManager.scaleViewGroup(binding.getRoot()); | |||||
binding.title.setText("警告"); | |||||
binding.message.setText(desc.toString()); | |||||
binding.close.setOnClickListener(view1->{ | |||||
xCom.dismissX(); | |||||
}); | |||||
binding.submit.setOnClickListener(view1 -> { | |||||
xCom.dismissX(); | |||||
}); | |||||
}); | |||||
return true; | |||||
} | |||||
return false; | |||||
}catch (Exception e){ | |||||
NewToastUtil.getInstance().showToastError("startMakingThread 下单异常:"+e.getMessage()); | |||||
RecordManager.getInstance().addLogRecord("角色操作日志","startMakingThread 下单异常:"+e.getMessage()); | |||||
return true; | |||||
} | |||||
} | |||||
private int test = 1; | private int test = 1; | ||||
/** | /** | ||||
* 检测位置 | |||||
* 检测位置是否检测到位 | |||||
*/ | */ | ||||
private String checkPosition(BPA_ORDER_DETAIL orderDetail){ | |||||
private String checkPositionReadPlc(BPA_ORDER_DETAIL orderDetail){ | |||||
if(ConfigName.TEST){ | if(ConfigName.TEST){ | ||||
return ""; | return ""; | ||||
} | } | ||||
@@ -719,7 +854,6 @@ public class HomeOrderFragment extends BaseFragment { | |||||
ConfigName.IsStart[orderDetail.deviceNum -1] = false; | ConfigName.IsStart[orderDetail.deviceNum -1] = false; | ||||
} | } | ||||
@Override | @Override | ||||
public void onPause() { | public void onPause() { | ||||
super.onPause(); | super.onPause(); | ||||
@@ -782,6 +916,8 @@ public class HomeOrderFragment extends BaseFragment { | |||||
orderAdapter1.setCurrentPosition(-1); | orderAdapter1.setCurrentPosition(-1); | ||||
orderAdapter1.notifyDataSetChanged(); | orderAdapter1.notifyDataSetChanged(); | ||||
foodInfoList.clear(); | foodInfoList.clear(); | ||||
viewBinding.btnFoodPosSet.setVisibility(View.GONE); | |||||
viewBinding.btnLocationInfo.setVisibility(View.GONE); | |||||
changeRightBtn(); | changeRightBtn(); | ||||
viewBinding.orderName.setText(""); | viewBinding.orderName.setText(""); | ||||
foodInfoAdapter.notifyDataSetChanged(); | foodInfoAdapter.notifyDataSetChanged(); | ||||
@@ -12,6 +12,7 @@ import android.widget.LinearLayout; | |||||
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.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_ORDER_DETAIL; | |||||
import com.bonait.bnframework.common.db.util.GoodsProcessDetailDBUtil; | import com.bonait.bnframework.common.db.util.GoodsProcessDetailDBUtil; | ||||
import com.bonait.bnframework.common.db.util.OrderDetailUtil; | import com.bonait.bnframework.common.db.util.OrderDetailUtil; | ||||
import com.bonait.bnframework.common.utils.AlertDialogUtils; | import com.bonait.bnframework.common.utils.AlertDialogUtils; | ||||
@@ -32,15 +33,49 @@ public class FoodPosSetView extends LinearLayout { | |||||
private ViewFoodPosSetBinding viewBinding; | private ViewFoodPosSetBinding viewBinding; | ||||
private BPA_GOODS_PROCESS_DETAIL detail; | private BPA_GOODS_PROCESS_DETAIL detail; | ||||
private int deviceNum = 0; | |||||
public FoodPosSetView(Context context, AttributeSet attrs, BPA_GOODS_PROCESS_DETAIL detail) { | |||||
public FoodPosSetView(Context context, AttributeSet attrs, BPA_GOODS_PROCESS_DETAIL detail,int deviceNum) { | |||||
super(context, attrs); | super(context, attrs); | ||||
View root= LayoutInflater.from(context).inflate(R.layout.view_food_pos_set, this); | View root= LayoutInflater.from(context).inflate(R.layout.view_food_pos_set, this); | ||||
viewBinding = ViewFoodPosSetBinding.bind(root); | viewBinding = ViewFoodPosSetBinding.bind(root); | ||||
DisplayManager.scaleViewGroup(viewBinding.getRoot()); | DisplayManager.scaleViewGroup(viewBinding.getRoot()); | ||||
this.detail = detail; | this.detail = detail; | ||||
this.deviceNum = deviceNum; | |||||
init(); | init(); | ||||
} | } | ||||
private void updateData(BPA_GOODS_PROCESS_DETAIL detail){ | |||||
if(deviceNum ==1){ | |||||
for(BPA_GOODS_PROCESS_DETAIL bean:ConfigName.goodsProcess1){ | |||||
if(detail.id.equals(bean.id)){ | |||||
bean.processvalue = detail.processvalue; | |||||
bean.processms = detail.processms; | |||||
} | |||||
} | |||||
}else if(deviceNum ==2){ | |||||
for(BPA_GOODS_PROCESS_DETAIL bean:ConfigName.goodsProcess2){ | |||||
if(detail.id.equals(bean.id)){ | |||||
bean.processvalue = detail.processvalue; | |||||
bean.processms = detail.processms; | |||||
} | |||||
} | |||||
}else if(deviceNum ==3){ | |||||
for(BPA_GOODS_PROCESS_DETAIL bean:ConfigName.goodsProcess3){ | |||||
if(detail.id.equals(bean.id)){ | |||||
bean.processvalue = detail.processvalue; | |||||
bean.processms = detail.processms; | |||||
} | |||||
} | |||||
}else if(deviceNum ==4){ | |||||
for(BPA_GOODS_PROCESS_DETAIL bean:ConfigName.goodsProcess4){ | |||||
if(detail.id.equals(bean.id)){ | |||||
bean.processvalue = detail.processvalue; | |||||
bean.processms = detail.processms; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
private void init(){ | private void init(){ | ||||
if(detail!=null){ | if(detail!=null){ | ||||
@@ -71,6 +106,7 @@ public class FoodPosSetView extends LinearLayout { | |||||
detail.processvalue = detail.processvalue.replace(posInfo,"主料位置,"+viewBinding.spinner.getSelectedItem().toString()); | detail.processvalue = detail.processvalue.replace(posInfo,"主料位置,"+viewBinding.spinner.getSelectedItem().toString()); | ||||
detail.processms = detail.processms.replace(res2[1],viewBinding.spinner.getSelectedItem().toString()); | detail.processms = detail.processms.replace(res2[1],viewBinding.spinner.getSelectedItem().toString()); | ||||
GoodsProcessDetailDBUtil.update(detail); | GoodsProcessDetailDBUtil.update(detail); | ||||
updateData(detail); | |||||
} | } | ||||
@Override | @Override | ||||
public void onNothingSelected(AdapterView<?> adapterView) { | public void onNothingSelected(AdapterView<?> adapterView) { | ||||
@@ -110,6 +146,7 @@ public class FoodPosSetView extends LinearLayout { | |||||
detail.processvalue = detail.processvalue.replace(posInfo,"调料小盆位置,"+viewBinding.spinner.getSelectedItem().toString()); | detail.processvalue = detail.processvalue.replace(posInfo,"调料小盆位置,"+viewBinding.spinner.getSelectedItem().toString()); | ||||
detail.processms = detail.processms.replace(res2[1],viewBinding.spinner.getSelectedItem().toString()); | detail.processms = detail.processms.replace(res2[1],viewBinding.spinner.getSelectedItem().toString()); | ||||
GoodsProcessDetailDBUtil.update(detail); | GoodsProcessDetailDBUtil.update(detail); | ||||
updateData(detail); | |||||
} | } | ||||
@Override | @Override | ||||
public void onNothingSelected(AdapterView<?> adapterView) { | public void onNothingSelected(AdapterView<?> adapterView) { | ||||
@@ -148,6 +185,7 @@ public class FoodPosSetView extends LinearLayout { | |||||
detail.processvalue = detail.processvalue.replace(posInfo,"调料中盆位置,"+viewBinding.spinner.getSelectedItem().toString()); | detail.processvalue = detail.processvalue.replace(posInfo,"调料中盆位置,"+viewBinding.spinner.getSelectedItem().toString()); | ||||
detail.processms = detail.processms.replace(res2[1],viewBinding.spinner.getSelectedItem().toString()); | detail.processms = detail.processms.replace(res2[1],viewBinding.spinner.getSelectedItem().toString()); | ||||
GoodsProcessDetailDBUtil.update(detail); | GoodsProcessDetailDBUtil.update(detail); | ||||
updateData(detail); | |||||
} | } | ||||
@Override | @Override | ||||
public void onNothingSelected(AdapterView<?> adapterView) { | public void onNothingSelected(AdapterView<?> adapterView) { | ||||
@@ -15,7 +15,7 @@ | |||||
android:paddingTop="3dp" | android:paddingTop="3dp" | ||||
android:paddingBottom="3dp" | android:paddingBottom="3dp" | ||||
app:layout_constraintLeft_toLeftOf="parent" | app:layout_constraintLeft_toLeftOf="parent" | ||||
android:maxLines="3" | |||||
android:maxLines="2" | |||||
android:ellipsize="end" | android:ellipsize="end" | ||||
app:layout_constraintTop_toTopOf="parent" | app:layout_constraintTop_toTopOf="parent" | ||||
android:textColor="@drawable/selector_select_step_text_color" | android:textColor="@drawable/selector_select_step_text_color" | ||||
@@ -269,7 +269,7 @@ | |||||
android:layout_height="@dimen/dp_80" | android:layout_height="@dimen/dp_80" | ||||
android:background="@drawable/bg_round25_top_yellow" | android:background="@drawable/bg_round25_top_yellow" | ||||
style="@style/TextView_btn_dialog" | style="@style/TextView_btn_dialog" | ||||
android:text="货架料盒位置详情" | |||||
android:text="配料位置实图-检查是否正确" | |||||
app:layout_constraintTop_toTopOf="parent" | app:layout_constraintTop_toTopOf="parent" | ||||
app:layout_constraintLeft_toLeftOf="parent" | app:layout_constraintLeft_toLeftOf="parent" | ||||
/> | /> | ||||
@@ -285,6 +285,20 @@ | |||||
app:layout_constraintTop_toTopOf="parent" | app:layout_constraintTop_toTopOf="parent" | ||||
app:layout_constraintEnd_toEndOf="parent" | app:layout_constraintEnd_toEndOf="parent" | ||||
/> | /> | ||||
<TextView | |||||
android:id="@+id/tv_tip" | |||||
android:layout_width="match_parent" | |||||
android:layout_below="@id/btn_close1" | |||||
android:background="#10000000" | |||||
android:orientation="horizontal" | |||||
android:layout_marginStart="0dp" | |||||
android:visibility="gone" | |||||
tools:visibility="visible" | |||||
android:textStyle="bold" | |||||
android:textSize="42sp" | |||||
android:textColor="@color/white" | |||||
android:gravity="center" | |||||
android:layout_height="match_parent"/> | |||||
</RelativeLayout> | </RelativeLayout> | ||||
</LinearLayout> | </LinearLayout> |
@@ -43,7 +43,6 @@ | |||||
android:layout_below="@id/tip" | android:layout_below="@id/tip" | ||||
android:orientation="vertical" | android:orientation="vertical" | ||||
android:layout_marginTop="30dp" | android:layout_marginTop="30dp" | ||||
android:background="@drawable/bg_round25_white" | |||||
android:layout_marginStart="20dp" | android:layout_marginStart="20dp" | ||||
android:layout_marginBottom="20dp" | android:layout_marginBottom="20dp" | ||||
android:layout_height="match_parent"> | android:layout_height="match_parent"> | ||||
@@ -89,6 +88,7 @@ | |||||
android:src="@drawable/ic_true" | android:src="@drawable/ic_true" | ||||
android:visibility="gone" | android:visibility="gone" | ||||
tools:visibility="visible" | tools:visibility="visible" | ||||
android:layout_marginBottom="5dp" | |||||
/> | /> | ||||
</FrameLayout> | </FrameLayout> | ||||
<FrameLayout | <FrameLayout | ||||
@@ -118,6 +118,7 @@ | |||||
android:layout_marginEnd="30dp" | android:layout_marginEnd="30dp" | ||||
android:layout_gravity="center_vertical|end" | android:layout_gravity="center_vertical|end" | ||||
android:src="@drawable/ic_true" | android:src="@drawable/ic_true" | ||||
android:layout_marginBottom="5dp" | |||||
android:visibility="gone" | android:visibility="gone" | ||||
/> | /> | ||||
</FrameLayout> | </FrameLayout> | ||||
@@ -148,6 +149,7 @@ | |||||
android:layout_marginEnd="30dp" | android:layout_marginEnd="30dp" | ||||
android:layout_gravity="center_vertical|end" | android:layout_gravity="center_vertical|end" | ||||
android:src="@drawable/ic_true" | android:src="@drawable/ic_true" | ||||
android:layout_marginBottom="5dp" | |||||
android:visibility="gone" | android:visibility="gone" | ||||
/> | /> | ||||
</FrameLayout> | </FrameLayout> | ||||
@@ -178,6 +180,7 @@ | |||||
android:layout_marginEnd="30dp" | android:layout_marginEnd="30dp" | ||||
android:layout_gravity="center_vertical|end" | android:layout_gravity="center_vertical|end" | ||||
android:src="@drawable/ic_true" | android:src="@drawable/ic_true" | ||||
android:layout_marginBottom="5dp" | |||||
android:visibility="gone" | android:visibility="gone" | ||||
/> | /> | ||||
</FrameLayout> | </FrameLayout> | ||||
@@ -210,7 +213,6 @@ | |||||
android:textSize="32sp" | android:textSize="32sp" | ||||
android:textStyle="bold" | android:textStyle="bold" | ||||
android:text="调料小盆位置" | android:text="调料小盆位置" | ||||
android:text="主料位置" | |||||
android:gravity="center" | android:gravity="center" | ||||
android:layout_height="wrap_content"/> | android:layout_height="wrap_content"/> | ||||
<TextView | <TextView | ||||
@@ -222,7 +224,6 @@ | |||||
android:textSize="32sp" | android:textSize="32sp" | ||||
android:textStyle="bold" | android:textStyle="bold" | ||||
android:text="调料中盆位置" | android:text="调料中盆位置" | ||||
android:text="主料位置" | |||||
android:gravity="center" | android:gravity="center" | ||||
android:layout_height="wrap_content"/> | android:layout_height="wrap_content"/> | ||||
</LinearLayout> | </LinearLayout> | ||||
@@ -241,7 +242,7 @@ | |||||
android:id="@+id/ll_content_z" | android:id="@+id/ll_content_z" | ||||
android:layout_width="420dp" | android:layout_width="420dp" | ||||
android:orientation="vertical" | android:orientation="vertical" | ||||
android:layout_marginTop="50dp" | |||||
android:layout_marginTop="20dp" | |||||
android:layout_marginBottom="20dp" | android:layout_marginBottom="20dp" | ||||
android:layout_height="wrap_content"> | android:layout_height="wrap_content"> | ||||
@@ -249,36 +250,40 @@ | |||||
</ScrollView> | </ScrollView> | ||||
<ScrollView | <ScrollView | ||||
android:id="@+id/scrollView_tz" | |||||
android:id="@+id/scrollView_tx" | |||||
android:layout_width="420dp" | android:layout_width="420dp" | ||||
android:layout_marginTop="20dp" | android:layout_marginTop="20dp" | ||||
android:layout_below="@id/ll_title" | android:layout_below="@id/ll_title" | ||||
android:layout_toEndOf="@id/scrollView_Z" | android:layout_toEndOf="@id/scrollView_Z" | ||||
android:layout_marginBottom="20dp" | |||||
android:background="@drawable/bg_round25_white" | |||||
android:layout_marginStart="20dp" | android:layout_marginStart="20dp" | ||||
android:layout_height="match_parent"> | android:layout_height="match_parent"> | ||||
<LinearLayout | <LinearLayout | ||||
android:id="@+id/ll_content_tz" | |||||
android:id="@+id/ll_content_tx" | |||||
android:layout_width="420dp" | android:layout_width="420dp" | ||||
android:orientation="vertical" | android:orientation="vertical" | ||||
android:layout_marginTop="50dp" | |||||
android:layout_marginTop="20dp" | |||||
android:layout_marginBottom="20dp" | android:layout_marginBottom="20dp" | ||||
android:layout_height="wrap_content"> | android:layout_height="wrap_content"> | ||||
</LinearLayout> | </LinearLayout> | ||||
</ScrollView> | </ScrollView> | ||||
<ScrollView | <ScrollView | ||||
android:id="@+id/scrollView_tx" | |||||
android:id="@+id/scrollView_tz" | |||||
android:layout_width="420dp" | android:layout_width="420dp" | ||||
android:layout_toEndOf="@id/scrollView_tz" | |||||
android:layout_toEndOf="@id/scrollView_tx" | |||||
android:layout_marginStart="20dp" | android:layout_marginStart="20dp" | ||||
android:background="@drawable/bg_round25_white" | |||||
android:layout_marginTop="20dp" | android:layout_marginTop="20dp" | ||||
android:layout_marginBottom="20dp" | |||||
android:layout_below="@id/ll_title" | android:layout_below="@id/ll_title" | ||||
android:layout_height="match_parent"> | android:layout_height="match_parent"> | ||||
<LinearLayout | <LinearLayout | ||||
android:id="@+id/ll_content_tx" | |||||
android:id="@+id/ll_content_tz" | |||||
android:layout_width="420dp" | android:layout_width="420dp" | ||||
android:orientation="vertical" | android:orientation="vertical" | ||||
android:layout_marginTop="50dp" | |||||
android:layout_marginTop="20dp" | |||||
android:layout_marginBottom="20dp" | android:layout_marginBottom="20dp" | ||||
android:layout_height="wrap_content"> | android:layout_height="wrap_content"> | ||||
@@ -286,17 +291,24 @@ | |||||
</ScrollView> | </ScrollView> | ||||
<LinearLayout | |||||
android:id="@+id/ll_content" | |||||
<TextView | |||||
android:id="@+id/tv_tip" | |||||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_alignStart="@id/scrollView_Z" | |||||
android:layout_alignEnd="@id/scrollView_tz" | |||||
android:layout_alignTop="@id/scrollView_Z" | |||||
android:layout_alignBottom="@id/scrollView_Z" | |||||
android:background="#30000000" | |||||
android:orientation="horizontal" | android:orientation="horizontal" | ||||
android:layout_marginStart="0dp" | android:layout_marginStart="0dp" | ||||
android:layout_height="wrap_content"> | |||||
</LinearLayout> | |||||
android:visibility="gone" | |||||
tools:visibility="visible" | |||||
android:textStyle="bold" | |||||
android:textSize="42sp" | |||||
android:textColor="@color/white" | |||||
android:text="←请先选择左侧炒锅位置" | |||||
android:gravity="center" | |||||
android:layout_height="match_parent"/> | |||||
<TextView | <TextView | ||||
android:id="@+id/tip" | android:id="@+id/tip" | ||||
@@ -21,7 +21,7 @@ | |||||
android:layout_marginEnd="90dp" | android:layout_marginEnd="90dp" | ||||
tools:text="小炒肉-\n大份" | tools:text="小炒肉-\n大份" | ||||
android:textStyle="bold" | android:textStyle="bold" | ||||
android:layout_marginTop="10dp" | |||||
android:layout_marginTop="5dp" | |||||
/> | /> | ||||
<ImageView | <ImageView | ||||
@@ -36,10 +36,10 @@ | |||||
<com.bonait.bnframework.newui.widget.jingdutiao | <com.bonait.bnframework.newui.widget.jingdutiao | ||||
android:id="@+id/progress" | android:id="@+id/progress" | ||||
android:layout_width="match_parent" | android:layout_width="match_parent" | ||||
android:layout_marginTop="30dp" | |||||
android:layout_marginTop="15dp" | |||||
android:layout_marginStart="10dp" | android:layout_marginStart="10dp" | ||||
android:layout_marginEnd="95dp" | android:layout_marginEnd="95dp" | ||||
android:layout_marginBottom="10dp" | |||||
android:layout_marginBottom="5dp" | |||||
android:layout_below="@id/start_goodmake" | android:layout_below="@id/start_goodmake" | ||||
android:layout_height="@dimen/dp_50" /> | android:layout_height="@dimen/dp_50" /> | ||||
@@ -48,7 +48,7 @@ | |||||
android:layout_width="@dimen/dp_80" | android:layout_width="@dimen/dp_80" | ||||
android:layout_height="50dp" | android:layout_height="50dp" | ||||
android:layout_alignParentEnd="true" | android:layout_alignParentEnd="true" | ||||
android:layout_marginTop="30dp" | |||||
android:layout_marginTop="15dp" | |||||
android:layout_below="@id/start_goodmake" | android:layout_below="@id/start_goodmake" | ||||
android:layout_marginEnd="5dp" | android:layout_marginEnd="5dp" | ||||
android:src="@mipmap/zhizuo_zt" | android:src="@mipmap/zhizuo_zt" | ||||
@@ -67,8 +67,8 @@ | |||||
android:orientation="vertical" | android:orientation="vertical" | ||||
android:paddingStart="15dp" | android:paddingStart="15dp" | ||||
android:paddingEnd="15dp" | android:paddingEnd="15dp" | ||||
android:paddingTop="15dp" | |||||
android:paddingBottom="15dp" | |||||
android:paddingTop="10dp" | |||||
android:paddingBottom="10dp" | |||||
/> | /> | ||||
</RelativeLayout> | </RelativeLayout> | ||||
</com.qmuiteam.qmui.widget.QMUIWindowInsetLayout> | </com.qmuiteam.qmui.widget.QMUIWindowInsetLayout> |
@@ -99,9 +99,22 @@ | |||||
android:layout_gravity="bottom" | android:layout_gravity="bottom" | ||||
android:paddingStart="5dp" | android:paddingStart="5dp" | ||||
android:textSize="28sp" | android:textSize="28sp" | ||||
tools:text="1号炒锅——Z1库位" | |||||
tools:text="1号炒锅" | |||||
android:textColor="@color/black" | android:textColor="@color/black" | ||||
/> | /> | ||||
<TextView | |||||
android:layout_width="wrap_content" | |||||
android:layout_height="wrap_content" | |||||
android:id="@+id/tv_process" | |||||
android:layout_marginStart="200dp" | |||||
android:layout_marginEnd="160dp" | |||||
android:layout_gravity="bottom" | |||||
android:paddingStart="5dp" | |||||
android:textSize="28sp" | |||||
tools:text="正在执行第1步工序" | |||||
android:textColor="@color/gray_deep" | |||||
/> | |||||
</FrameLayout> | </FrameLayout> | ||||
</FrameLayout> | </FrameLayout> |
@@ -3,11 +3,13 @@ | |||||
xmlns:app="http://schemas.android.com/apk/res-auto" | xmlns:app="http://schemas.android.com/apk/res-auto" | ||||
xmlns:tools="http://schemas.android.com/tools" | xmlns:tools="http://schemas.android.com/tools" | ||||
android:layout_width="420dp" | android:layout_width="420dp" | ||||
android:layout_height="@dimen/dp_130" | |||||
android:layout_height="@dimen/dp_110" | |||||
android:id="@+id/root" | android:id="@+id/root" | ||||
android:orientation="horizontal" | android:orientation="horizontal" | ||||
android:paddingTop="20dp" | |||||
android:paddingBottom="20dp" | |||||
android:paddingTop="10dp" | |||||
android:paddingBottom="10dp" | |||||
android:paddingStart="10dp" | |||||
android:paddingEnd="10dp" | |||||
> | > | ||||
<TextView | <TextView | ||||