From ef163770e9175fefedf741f366ccd5c91f37685a Mon Sep 17 00:00:00 2001 From: psh Date: Thu, 27 Jun 2024 15:44:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=A9=E7=9C=BC=E5=A2=9E=E5=8A=A0=E5=88=A4?= =?UTF-8?q?=E6=96=AD=E4=B8=8A=E6=AC=A1=E8=AF=B7=E6=B1=82=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E6=BB=A1=E8=B6=B3=E6=9D=A1=E4=BB=B6=EF=BC=8C=E5=A6=82=E6=9E=9C?= =?UTF-8?q?=E4=B8=8E=E4=B8=8A=E6=AC=A1=E5=90=8C=E6=AD=A5=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E6=88=B3=E4=B8=8D=E5=90=8C=E4=B8=94=E7=82=B9=E4=BD=8D=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E7=9B=B8=E5=90=8C=EF=BC=8C=E8=A7=86=E4=B8=BA=E7=A8=B3?= =?UTF-8?q?=E5=AE=9A=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wms/sch/point/service/task/SyncPoint.java | 65 +++++++++++-------- 1 file changed, 38 insertions(+), 27 deletions(-) diff --git a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/task/SyncPoint.java b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/task/SyncPoint.java index e2fef72..e50a429 100644 --- a/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/task/SyncPoint.java +++ b/lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/point/service/task/SyncPoint.java @@ -38,6 +38,8 @@ public class SyncPoint { @Autowired private IPdmBdProductionProcessTrackingService processTrackingService; + private JSONArray last_jsonArray = new JSONArray(); + public void run() throws Exception { try { @@ -55,39 +57,48 @@ public class SyncPoint { JSONArray jsonArray = JSONObject.parseObject(result.body()).getJSONArray("data"); for (int i = 0; i < jsonArray.size(); i++) { JSONObject jsonObject = jsonArray.getJSONObject(i); - for (SchBasePoint temp : schBasePointList) { - if (temp.getPoint_code().equals(jsonObject.getString("binNo"))) { - if (jsonObject.getInteger("pred") == 0 && "2".equals(temp.getPoint_status()) - || jsonObject.getInteger("pred") == 1 && "1".equals(temp.getPoint_status())) { - log.info("检测到点位{}当前库存有变动pred={},更新lms库存", jsonObject.getString("binNo"), jsonObject.getInteger("pred")); - temp.setPoint_status(String.valueOf(jsonObject.getInteger("pred") + 1)); - temp.setVehicle_type(""); - temp.setVehicle_code(""); - temp.setIng_task_code(""); - temp.setVehicle_qty(0); - temp.setUpdate_time(DateUtil.now()); - schBasePointService.update(temp); - SchBaseVehiclematerialgroup groupInfo = vehiclematerialgroupService.getVehicleGroupInfo( - temp.getVehicle_code(), - temp.getVehicle_type(), - GroupBindMaterialStatusEnum.BOUND.getValue()); - // 插入生产过程跟踪表 - PdmBdProductionProcessTracking processTracking = new PdmBdProductionProcessTracking(); - if (ObjectUtil.isNotEmpty(groupInfo)) { - groupInfo.setGroup_bind_material_status(GroupBindMaterialStatusEnum.UNBOUND.getValue()); - vehiclematerialgroupService.update(groupInfo); - processTracking.setBuss_move_id(groupInfo.getBuss_move_id()); + for (int j = 0; j < last_jsonArray.size(); j++) { + JSONObject last_jsonObject = last_jsonArray.getJSONObject(j); + //如果与上次同步时间戳不同且点位状态相同,视为稳定状态 + if(ObjectUtil.equals(jsonObject.getString("binNo"),last_jsonObject.getString("binNo"))&& + !ObjectUtil.equals(jsonObject.getString("timestamp"),last_jsonObject.getString("timestamp"))&& + ObjectUtil.equals(jsonObject.getString("pred"),last_jsonObject.getString("pred"))) { + for (SchBasePoint temp : schBasePointList) { + if (temp.getPoint_code().equals(jsonObject.getString("binNo"))) { + if (jsonObject.getInteger("pred") == 0 && "2".equals(temp.getPoint_status()) + || jsonObject.getInteger("pred") == 1 && "1".equals(temp.getPoint_status())) { + log.info("检测到点位{}当前库存有变动pred={},更新lms库存", jsonObject.getString("binNo"), jsonObject.getInteger("pred")); + temp.setPoint_status(String.valueOf(jsonObject.getInteger("pred") + 1)); + temp.setVehicle_type(""); + temp.setVehicle_code(""); + temp.setIng_task_code(""); + temp.setVehicle_qty(0); + temp.setUpdate_time(DateUtil.now()); + schBasePointService.update(temp); + SchBaseVehiclematerialgroup groupInfo = vehiclematerialgroupService.getVehicleGroupInfo( + temp.getVehicle_code(), + temp.getVehicle_type(), + GroupBindMaterialStatusEnum.BOUND.getValue()); + // 插入生产过程跟踪表 + PdmBdProductionProcessTracking processTracking = new PdmBdProductionProcessTracking(); + if (ObjectUtil.isNotEmpty(groupInfo)) { + groupInfo.setGroup_bind_material_status(GroupBindMaterialStatusEnum.UNBOUND.getValue()); + vehiclematerialgroupService.update(groupInfo); + processTracking.setBuss_move_id(groupInfo.getBuss_move_id()); + } + processTracking.setProcess_action("暂存区人工出库"); + processTracking.setProcess_location(temp.getPoint_code()); + processTracking.setRecord_time(DateUtil.now()); + processTrackingService.create(processTracking); + break; + } } - processTracking.setProcess_action("暂存区人工出库"); - processTracking.setProcess_location(temp.getPoint_code()); - processTracking.setRecord_time(DateUtil.now()); - processTrackingService.create(processTracking); - break; } } } } + last_jsonArray = jsonArray; } catch (Exception e) { log.error("自动线程查询天眼点位失败{}{}", e, e.getMessage()); }