From 565878bde393e9f9a05574bea09756da70634e35 Mon Sep 17 00:00:00 2001 From: liuxy Date: Tue, 19 Mar 2024 14:29:56 +0800 Subject: [PATCH 01/17] =?UTF-8?q?rev=EF=BC=9A1.=E5=8F=91=E8=B4=A7=E5=87=BA?= =?UTF-8?q?=E5=BA=93=E4=B8=8D=E8=83=BD=E5=BC=BA=E6=8E=A7=E4=BC=98=E5=8C=96?= =?UTF-8?q?2.=E5=87=BA=E5=BA=93=E5=AE=9E=E9=99=85=E9=87=8D=E9=87=8F?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E7=9C=9F=E6=98=AF=E5=8F=91=E8=B4=A7=E9=87=8D?= =?UTF-8?q?=E9=87=8F3.B=E5=BC=80=E5=A4=B4=E5=AD=90=E5=8D=B7=E4=BF=9D?= =?UTF-8?q?=E8=B4=A8=E6=9C=9F=E4=B8=BA180=E5=A4=A9=E4=BC=98=E5=8C=964.?= =?UTF-8?q?=E5=8F=91=E8=B4=A7=E4=BF=A1=E6=81=AF=E5=9B=9E=E4=BC=A0sap?= =?UTF-8?q?=E4=BC=98=E5=8C=965.=E5=BA=93=E5=AD=98=E6=8A=A5=E8=A1=A8?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E4=BC=98=E5=8C=966.=E4=B8=80=E9=94=AE?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=BB=93=E4=BD=8D=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/StructattrServiceImpl.java | 28 +++- .../wms/basedata/st/wql/QST_STRUCT_ATTR.wql | 14 ++ .../java/org/nl/wms/basedata/st/wql/stivt.xls | Bin 326144 -> 325632 bytes .../inbill/service/CheckOutBillService.java | 8 + .../outbill/rest/CheckOutBillController.java | 7 + .../service/impl/CheckOutBillServiceImpl.java | 142 +++++++++++++++--- .../st/outbill/wql/QST_IVT_CHECKOUTBILL.wql | 40 ++++- .../org/nl/wms/st/outbill/wql/ST_OUTIVT01.wql | 12 +- .../src/views/wms/basedata/st/ivt/index.vue | 2 +- .../basedata/st/struct/OneCreateDialog.vue | 10 +- .../src/views/wms/st/outbill/DivDialog.vue | 52 ++++++- .../src/views/wms/st/outbill/checkoutbill.js | 9 +- .../src/views/wms/st/outbill/index.vue | 6 +- 13 files changed, 285 insertions(+), 45 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructattrServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructattrServiceImpl.java index e7bd880af..3fe0b3eef 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructattrServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/service/impl/StructattrServiceImpl.java @@ -28,10 +28,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.function.BiConsumer; import java.util.stream.Collectors; @@ -541,8 +538,9 @@ public class StructattrServiceImpl implements StructattrService { int createNum = whereJson.getIntValue("num"); // 开始生成数 int createNum_start = 1; + // 前缀 - String prefix = whereJson.getString("prefix"); + String prefix = ""; if (ObjectUtil.isNotEmpty(jsonAttr)) { String struct_code = jsonAttr.getString("struct_code"); @@ -559,6 +557,21 @@ public class StructattrServiceImpl implements StructattrService { createNum_start += Integer.parseInt(result); prefix = struct_code.substring(0, firstIndex); + } else { + // 截取第一个 - 之前的数据集合 + + List attrList = WQL.getWO("QST_STRUCT_ATTR").addParam("flag", "2").process() + .getResultJSONArray(0).toJavaList(JSONObject.class); + + List subStringList = attrList.stream() + .filter(row -> row.getString("struct_code").contains("-")) + .map(row -> row.getString("struct_code").substring(0, row.getString("struct_code").indexOf("-"))) + .distinct() + .sorted() + .filter(row -> row.matches("-?\\d+(\\.\\d+)?")) + .collect(Collectors.toList()); + + prefix = String.valueOf(Integer.parseInt(subStringList.get(subStringList.size() - 1)) + 1); } /* @@ -651,13 +664,16 @@ public class StructattrServiceImpl implements StructattrService { /* * 判断前缀是否存在 */ - List attrList = attrTab.query("1 = 1").getResultJSONArray(0).toJavaList(JSONObject.class); + List attrList = WQL.getWO("QST_STRUCT_ATTR").addParam("flag", "2").process() + .getResultJSONArray(0).toJavaList(JSONObject.class); // 截取第一个 - 之前的数据集合 List subStringList = attrList.stream() .filter(row -> row.getString("struct_code").contains("-")) .map(row -> row.getString("struct_code").substring(0, row.getString("struct_code").indexOf("-"))) .distinct() + .sorted() + .filter(row -> row.matches("-?\\d+(\\.\\d+)?")) .collect(Collectors.toList()); // 判断是否有相同的前缀 diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/QST_STRUCT_ATTR.wql b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/QST_STRUCT_ATTR.wql index a90e95868..29a15aa70 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/QST_STRUCT_ATTR.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/QST_STRUCT_ATTR.wql @@ -86,5 +86,19 @@ ENDPAGEQUERY ENDIF + IF 输入.flag = "2" + QUERY + SELECT + struct.* + FROM + st_ivt_structattr struct + LEFT JOIN st_ivt_sectattr sect ON sect.sect_id = struct.sect_id + WHERE + sect.sect_type_attr = '09' + + ENDSELECT + ENDQUERY + ENDIF + diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/stivt.xls b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/wql/stivt.xls index 2a54c742cb043466b72cdbc2d34010b21224574c..706870f4826956cedb429850ca3986cd8d6aa628 100644 GIT binary patch delta 39632 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 Yy| updataIsOverdue(@RequestBody JSONObject whereJson) { + return new ResponseEntity<>(checkOutBillService.updataIsOverdue(whereJson),HttpStatus.OK); + } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java index 35440c6c6..185fbcb52 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/service/impl/CheckOutBillServiceImpl.java @@ -1022,6 +1022,32 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { FileUtil.downloadExcel(list, response); } + @Override + public JSONObject updataIsOverdue(JSONObject whereJson) { + // 出入库主表 + WQLObject mstTab = WQLObject.getWQLObject("st_ivt_iostorinv"); + // 出入库分配明细表 + WQLObject disTab = WQLObject.getWQLObject("st_ivt_iostorinvdis"); + + // 更新主表 + JSONObject jsonMst = mstTab.query("iostorinv_id = '" + whereJson.getString("iostorinv_id") + "'").uniqueResult(0); + jsonMst.put("is_overdue", whereJson.getString("is_overdue")); + mstTab.update(jsonMst); + + // 计算超期数量 + List disList = disTab.query("iostorinvdtl_id = '" + whereJson.getString("iostorinvdtl_id") + "' AND is_overdue = '1'") + .getResultJSONArray(0).toJavaList(JSONObject.class); + + double overdue_qyt = disList.stream() + .map(row -> row.getDoubleValue("plan_qty")) + .reduce(Double::sum).orElse(0.00); + + JSONObject result = new JSONObject(); + result.put("overdue_qyt",overdue_qyt); + result.put("mst", jsonMst); + return result; + } + @Override @Transactional(rollbackFor = Exception.class) public void update(JSONObject whereJson) { @@ -1290,11 +1316,12 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { dtl.put("work_status", "00"); } - // 判断是否超期 - if (ivt2.getString("is_overdue").equals("1")) { - dtl.put("work_status", "01"); + if (jo_mst.getString("is_overdue").equals("1")) { + // 判断是否超期 + if (ivt2.getString("is_overdue").equals("1")) { + dtl.put("work_status", "01"); + } } - wo_dis.insert(dtl); } //记录需锁定的仓位 @@ -1358,9 +1385,12 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { } // 判断是否超期 - if (jsonIvt.getString("is_overdue").equals("1")) { - dtl.put("work_status", "01"); + if (jo_mst.getString("is_overdue").equals("1")) { + if (jsonIvt.getString("is_overdue").equals("1")) { + dtl.put("work_status", "01"); + } } + wo_dis.insert(dtl); //记录需锁定的仓位 (如果此明细有相同物料的且子卷号不能为空的则在最后一个明细分配完成后锁定仓位) @@ -1534,6 +1564,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { dtl.put("is_issued", "0"); dtl.put("plan_qty", ivt2.getDoubleValue("change_qty")); dtl.put("real_qty", ivt2.getDoubleValue("change_qty")); + dtl.put("is_overdue", ivt2.getString("is_overdue")); dtl.put("instorage_time", ivt2.getString("instorage_time")); // 如果所属仓位是虚拟区 则将分配明细状态变为生成 JSONObject jsonSect = wo_sect.query("sect_id = '" + ivt2.getString("sect_id") + "'").uniqueResult(0); @@ -1542,6 +1573,14 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { } else { dtl.put("work_status", "00"); } + + if (jo_mst.getString("is_overdue").equals("1")) { + // 判断是否超期 + if (ivt2.getString("is_overdue").equals("1")) { + dtl.put("work_status", "01"); + } + } + wo_dis.insert(dtl); } //记录需锁定的仓位 @@ -1594,6 +1633,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { dtl.put("is_issued", "0"); dtl.put("plan_qty", jsonIvt.getDoubleValue("change_qty")); dtl.put("real_qty", jsonIvt.getDoubleValue("change_qty")); + dtl.put("is_overdue", jsonIvt.getString("is_overdue")); dtl.put("instorage_time", jsonIvt.getString("instorage_time")); // 如果所属仓位是虚拟区 则将分配明细状态变为生成 JSONObject jsonSect = wo_sect.query("sect_id = '" + jsonIvt.getString("sect_id") + "'").uniqueResult(0); @@ -1602,6 +1642,14 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { } else { dtl.put("work_status", "00"); } + + if (jo_mst.getString("is_overdue").equals("1")) { + // 判断是否超期 + if (jsonIvt.getString("is_overdue").equals("1")) { + dtl.put("work_status", "01"); + } + } + wo_dis.insert(dtl); //记录需锁定的仓位 Struct_map.put(jsonIvt.getString("struct_id"), jsonIvt); @@ -1658,6 +1706,8 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { json.put("is_issued", "0"); json.put("plan_qty", ivt.getDoubleValue("change_qty")); json.put("real_qty", ivt.getDoubleValue("change_qty")); + json.put("is_overdue", ivt.getString("is_overdue")); + json.put("instorage_time", ivt.getString("instorage_time")); // 如果所属仓位是虚拟区 则将分配明细状态变为生成 JSONObject jsonSect = wo_sect.query("sect_id = '" + ivt.getString("sect_id") + "'").uniqueResult(0); if (StrUtil.equals(jsonSect.getString("sect_type_attr"), "09")) { @@ -1665,6 +1715,14 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { } else { json.put("work_status", "00"); } + + // 判断是否超期 + if (jo_mst.getString("is_overdue").equals("1")) { + if (ivt.getString("is_overdue").equals("1")) { + json.put("work_status", "01"); + } + } + wo_dis.insert(json); // 更新明细 @@ -4384,6 +4442,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { dtl.put("is_issued", "0"); dtl.put("plan_qty", ivt.getDoubleValue("change_qty")); dtl.put("real_qty", ivt.getDoubleValue("change_qty")); + dtl.put("is_overdue", ivt.getString("is_overdue")); dtl.put("instorage_time", ivt.getString("instorage_time")); // 如果所属仓位是虚拟区 则将分配明细状态变为生成 JSONObject jsonSect = wo_sect.query("sect_id = '" + ivt.getString("sect_id") + "'").uniqueResult(0); @@ -4392,6 +4451,14 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { } else { dtl.put("work_status", "00"); } + + // 判断是否超期 + if (jo_mst.getString("is_overdue").equals("1")) { + if (ivt.getString("is_overdue").equals("1")) { + dtl.put("work_status", "01"); + } + } + wo_dis.insert(dtl); //记录需锁定的仓位 Struct_map.put(ivt.getString("struct_id"), ivt); @@ -4453,6 +4520,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { json.put("is_issued", "0"); json.put("plan_qty", ivt.getDoubleValue("change_qty")); json.put("real_qty", ivt.getDoubleValue("change_qty")); + json.put("is_overdue", ivt.getString("is_overdue")); json.put("instorage_time", ivt.getString("instorage_time")); // 如果所属仓位是虚拟区 则将分配明细状态变为生成 JSONObject jsonSect = wo_sect.query("sect_id = '" + ivt.getString("sect_id") + "'").uniqueResult(0); @@ -4461,6 +4529,14 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { } else { json.put("work_status", "00"); } + + // 判断是否超期 + if (jo_mst.getString("is_overdue").equals("1")) { + if (ivt.getString("is_overdue").equals("1")) { + json.put("work_status", "01"); + } + } + wo_dis.insert(json); // 更新明细 @@ -4585,8 +4661,12 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { dis.put("bill_code", jo_mst.getString("bill_code")); dis.put("bill_table", "ST_IVT_IOStorInv"); - if (dis.getString("is_overdue").equals("1")) { - storPublicService.IOStor(dis, "12"); + if (jo_mst.getString("is_overdue").equals("1")) { + if (dis.getString("is_overdue").equals("1")) { + storPublicService.IOStor(dis, "12"); + } else { + storPublicService.IOStor(dis, "21"); + } } else { storPublicService.IOStor(dis, "21"); } @@ -4596,15 +4676,23 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { from_start.put("struct_id", dis.getString("struct_id")); from_start.put("lock_type", "1"); from_start.put("is_overdue", dis.getString("is_overdue")); - if (dis.getString("is_overdue").equals("1")) { - from_start.put("storagevehicle_code", dis.getString("box_no")); + + if (jo_mst.getString("is_overdue").equals("1")) { + if (dis.getString("is_overdue").equals("1")) { + from_start.put("storagevehicle_code", dis.getString("box_no")); + } else { + from_start.put("storagevehicle_code", ""); + } } else { from_start.put("storagevehicle_code", ""); } + storPublicService.updateStructAndPoint(from_start); - if (dis.getString("is_overdue").equals("1")) { - continue; + if (jo_mst.getString("is_overdue").equals("1")) { + if (dis.getString("is_overdue").equals("1")) { + continue; + } } //查询对应明细 @@ -4664,7 +4752,14 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { } JSONObject mst_row = mst_wql.query("iostorinv_id = '" + iostorinv_id + "'").uniqueResult(0); - JSONArray dis_rows = dis_wql.query("iostorinv_id = '" + iostorinv_id + "' and is_overdue = '0'").getResultJSONArray(0); + + JSONArray dis_rows = new JSONArray(); + + if (jo_mst.getString("is_overdue").equals("1")) { + dis_rows = dis_wql.query("iostorinv_id = '" + iostorinv_id + "' and is_overdue = '0'").getResultJSONArray(0); + } else { + dis_rows = dis_wql.query("iostorinv_id = '" + iostorinv_id + "'").getResultJSONArray(0); + } //生成手工入库单 String new_iostorinv_id = IdUtil.getSnowflake(1, 1).nextId() + ""; @@ -4767,7 +4862,13 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { if ("1003".equals(out_jo.getString("bill_type")) || "1006".equals(out_jo.getString("bill_type"))) { //如果为返检出库或者改切出库删除对应的包装关系 - JSONArray dis_rows = WQLObject.getWQLObject("ST_IVT_IOStorInvDis").query("iostorinv_id = '" + iostorinv_id + "' and is_overdue = '0'").getResultJSONArray(0); + JSONArray dis_rows = new JSONArray(); + if (jo_mst.getString("is_overdue").equals("1")) { + dis_rows = WQLObject.getWQLObject("ST_IVT_IOStorInvDis").query("iostorinv_id = '" + iostorinv_id + "' and is_overdue = '0'").getResultJSONArray(0); + } else { + dis_rows = WQLObject.getWQLObject("ST_IVT_IOStorInvDis").query("iostorinv_id = '" + iostorinv_id + "'").getResultJSONArray(0); + } + for (int i = 0; i < dis_rows.size(); i++) { JSONObject dis_row = dis_rows.getJSONObject(i); String sect_code = dis_row.getString("sect_code"); @@ -5329,12 +5430,15 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { // 回传sap JSONObject jsonMst = mstTab.query("iostorinv_id = '" + whereJson.getString("iostorinv_id") + "'").uniqueResult(0); - JSONArray jsonArr = new JSONArray(); - jsonArr.add(jsonMst); + // 判断单据是否是完成状态:只回传完成状态的单据 + if (jsonMst.getString("bill_status").equals("99")) { + JSONArray jsonArr = new JSONArray(); + jsonArr.add(jsonMst); - JSONObject param = new JSONObject(); - param.put("rows", jsonArr); - inAndOutReturnService.uploadSAP(param); + JSONObject param = new JSONObject(); + param.put("rows", jsonArr); + inAndOutReturnService.uploadSAP(param); + } } @Override diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/wql/QST_IVT_CHECKOUTBILL.wql b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/wql/QST_IVT_CHECKOUTBILL.wql index 9f3c310f5..7a3c9cb0f 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/wql/QST_IVT_CHECKOUTBILL.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/wql/QST_IVT_CHECKOUTBILL.wql @@ -97,6 +97,7 @@ cu.cust_simple_name, a.plan_qty, attr.stor_name AS out_stor_name + FROM ST_IVT_IOStorInv ios LEFT JOIN md_cs_customerbase cu ON ios.cust_code = cu.cust_code @@ -106,15 +107,32 @@ LEFT JOIN pdm_bi_subpackagerelationrecord sub ON sub.container_name = dis.pcsn AND dis.box_no = sub.package_box_sn AND sub.bill_code = ios.bill_code LEFT JOIN ( SELECT - SUM(a.assign_qty) AS plan_qty, + SUM(a.plan_qty) AS plan_qty, a.iostorinv_id FROM - st_ivt_iostorinvdtl a + st_ivt_iostorinvdis a LEFT JOIN ST_IVT_IOStorInv b ON a.iostorinv_id = b.iostorinv_id WHERE b.io_type = '1' and b.is_delete='0' + and a.is_overdue = '0' + and b.is_overdue = '1' GROUP BY a.iostorinv_id + + UNION + + SELECT + SUM(a.plan_qty) AS plan_qty, + a.iostorinv_id + FROM + st_ivt_iostorinvdis a + LEFT JOIN ST_IVT_IOStorInv b ON a.iostorinv_id = b.iostorinv_id + WHERE + b.io_type = '1' + and b.is_delete='0' + and b.is_overdue = '0' + GROUP BY a.iostorinv_id + ) a ON a.iostorinv_id = ios.iostorinv_id WHERE ios.io_type = '1' @@ -369,7 +387,14 @@ struct.storagevehicle_id, struct.storagevehicle_code, point.point_id, - sub.sap_pcsn + sub.sap_pcsn, + CASE + WHEN SUBSTRING(sub.container_name,1,1) = 'B' AND DATEDIFF( NOW(), sub.date_of_production ) > '180' + THEN '1' + WHEN SUBSTRING(sub.container_name,1,1) != 'B' AND DATEDIFF( NOW(), sub.date_of_production ) > '90' + THEN '1' + ELSE '0' + END AS is_overdue FROM ST_IVT_StructIvt ivt LEFT JOIN st_ivt_structattr struct ON struct.struct_id = ivt.struct_id @@ -437,7 +462,14 @@ struct.storagevehicle_id, struct.storagevehicle_code, point.point_id, - sub.sap_pcsn + sub.sap_pcsn, + CASE + WHEN SUBSTRING(sub.container_name,1,1) = 'B' AND DATEDIFF( NOW(), sub.date_of_production ) > '180' + THEN '1' + WHEN SUBSTRING(sub.container_name,1,1) != 'B' AND DATEDIFF( NOW(), sub.date_of_production ) > '90' + THEN '1' + ELSE '0' + END AS is_overdue FROM ST_IVT_StructIvt ivt2 LEFT JOIN st_ivt_structattr struct ON struct.struct_id = ivt2.struct_id diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/wql/ST_OUTIVT01.wql b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/wql/ST_OUTIVT01.wql index ebd2006ad..189f4aaed 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/wql/ST_OUTIVT01.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/wql/ST_OUTIVT01.wql @@ -62,7 +62,11 @@ attr.struct_name, attr.struct_code, CASE - WHEN DATEDIFF( NOW(), sub.date_of_production ) > '90' THEN '1' ELSE '0' + WHEN SUBSTRING(sub.container_name,1,1) = 'B' AND DATEDIFF( NOW(), sub.date_of_production ) > '180' + THEN '1' + WHEN SUBSTRING(sub.container_name,1,1) != 'B' AND DATEDIFF( NOW(), sub.date_of_production ) > '90' + THEN '1' + ELSE '0' END AS is_overdue FROM ST_IVT_StructIvt ivt @@ -164,7 +168,11 @@ attr.struct_name, attr.struct_code, CASE - WHEN DATEDIFF( NOW(), sub.date_of_production ) > '90' THEN '1' ELSE '0' + WHEN SUBSTRING(sub.container_name,1,1) = 'B' AND DATEDIFF( NOW(), sub.date_of_production ) > '180' + THEN '1' + WHEN SUBSTRING(sub.container_name,1,1) != 'B' AND DATEDIFF( NOW(), sub.date_of_production ) > '90' + THEN '1' + ELSE '0' END AS is_overdue FROM ST_IVT_StructIvt ivt diff --git a/lms/nladmin-ui/src/views/wms/basedata/st/ivt/index.vue b/lms/nladmin-ui/src/views/wms/basedata/st/ivt/index.vue index 5c7ff08f1..329ee1879 100644 --- a/lms/nladmin-ui/src/views/wms/basedata/st/ivt/index.vue +++ b/lms/nladmin-ui/src/views/wms/basedata/st/ivt/index.vue @@ -241,7 +241,7 @@ - + diff --git a/lms/nladmin-ui/src/views/wms/basedata/st/struct/OneCreateDialog.vue b/lms/nladmin-ui/src/views/wms/basedata/st/struct/OneCreateDialog.vue index 5d77938be..f4b5ff0a7 100644 --- a/lms/nladmin-ui/src/views/wms/basedata/st/struct/OneCreateDialog.vue +++ b/lms/nladmin-ui/src/views/wms/basedata/st/struct/OneCreateDialog.vue @@ -25,11 +25,11 @@ - + @@ -126,10 +126,6 @@ export default { return this.crud.notify('库区不能为空', CRUD.NOTIFICATION_TYPE.INFO) } - if (this.formMst.prefix === '') { - return this.crud.notify('前缀不能为空', CRUD.NOTIFICATION_TYPE.INFO) - } - if (this.formMst.num === '') { return this.crud.notify('数量不能为空', CRUD.NOTIFICATION_TYPE.INFO) } diff --git a/lms/nladmin-ui/src/views/wms/st/outbill/DivDialog.vue b/lms/nladmin-ui/src/views/wms/st/outbill/DivDialog.vue index 2f9a18098..0b07484ed 100644 --- a/lms/nladmin-ui/src/views/wms/st/outbill/DivDialog.vue +++ b/lms/nladmin-ui/src/views/wms/st/outbill/DivDialog.vue @@ -143,6 +143,7 @@ 是否异常出库 + + + + + @@ -227,6 +243,7 @@ style="width: 100%;" max-height="400" size="mini" + :row-style="rowStyle" border :highlight-current-row="true" :header-cell-style="{background:'#f5f7fa',color:'#606266'}" @@ -256,7 +273,7 @@ - + @@ -268,7 +285,7 @@ - + @@ -338,7 +355,8 @@ export default { invtypelist: [], pointList: [], rules: { - } + }, + overdue_qyt: 0 } }, watch: { @@ -459,6 +477,7 @@ export default { deleteRow(row) { checkoutbill.oneCancel(row).then(res => { this.queryTableDtl() + this.updataIsOverdue() }) }, handleDtlCurrentChange(current) { @@ -517,6 +536,7 @@ export default { checkoutbill.allDiv(this.mstrow).then(res => { this.crud.notify('分配成功!', CRUD.NOTIFICATION_TYPE.INFO) this.queryTableDtl() + this.updataIsOverdue() this.loadingAlldiv = false }).catch(() => { this.loadingAlldiv = false @@ -532,6 +552,7 @@ export default { this.mstrow.iostorinvdtl_id = this.currentRow.iostorinvdtl_id checkoutbill.allDivOne(this.mstrow).then(res => { this.queryTableDtl() + this.updataIsOverdue() this.loadingAutodiv = false }).catch(() => { this.loadingAutodiv = false @@ -542,6 +563,7 @@ export default { this.loadingAlldiv = true checkoutbill.allCancel(this.mstrow).then(res => { this.queryTableDtl() + this.updataIsOverdue() this.loadingAlldiv = false }).catch(() => { this.loadingAlldiv = false @@ -553,6 +575,7 @@ export default { checkoutbill.allCancel(this.currentRow).then(res => { this.queryTableDtl() this.loadingAlldiv = false + this.updataIsOverdue() }).catch(() => { this.loadingAlldiv = false }) @@ -673,6 +696,10 @@ export default { this.tableDtl = res }) }, + queryTableDtl2() { + this.queryTableDtl() + this.updataIsOverdue() + }, queryTableDdis(iostorinvdtl_id) { checkoutbill.getOutBillDis2({ 'iostorinvdtl_id': iostorinvdtl_id, 'bill_status': '01' }).then(res => { this.tabledis = res @@ -689,6 +716,23 @@ export default { return 'background: yellow' } } + }, + rowStyle({ row, rowIndex }) { + const stylejson = {} + + if (this.rowmst.is_overdue === '1') { + if (row.is_overdue === '1') { + stylejson.background = '#f3f071' + return stylejson + } + } + }, + updataIsOverdue() { + this.rowmst.iostorinvdtl_id = this.currentRow.iostorinvdtl_id + checkoutbill.updataIsOverdue(this.rowmst).then(res => { + this.overdue_qyt = res.overdue_qyt + this.rowmst = res.mst + }) } } } diff --git a/lms/nladmin-ui/src/views/wms/st/outbill/checkoutbill.js b/lms/nladmin-ui/src/views/wms/st/outbill/checkoutbill.js index f63c48161..289a2d586 100644 --- a/lms/nladmin-ui/src/views/wms/st/outbill/checkoutbill.js +++ b/lms/nladmin-ui/src/views/wms/st/outbill/checkoutbill.js @@ -241,4 +241,11 @@ export function outReturn(data) { data }) } -export default { add, edit, del, allDiv, allCancel, getOutBillDtl, getOutBillDis, getOutBillDis2, setPoint, oneSetPoint, getOutBillTask, getStructIvt, manualDiv, confirm, issueTask, finishTask, cancleTaskfinish, getInvTypes, paramByCodeType, schAreaType, backConfirm, getOutBillDisDtl, getType, allDivOne, moneySubmit, getDisNum, queryBox, getOutBillTask2, oneCancel, cancelTask, allSetPoint, oneSetPoint2, outReturn } +export function updataIsOverdue(data) { + return request({ + url: '/api/checkoutbill/updataIsOverdue', + method: 'post', + data + }) +} +export default { add, edit, del, allDiv, allCancel, getOutBillDtl, getOutBillDis, getOutBillDis2, setPoint, oneSetPoint, getOutBillTask, getStructIvt, manualDiv, confirm, issueTask, finishTask, cancleTaskfinish, getInvTypes, paramByCodeType, schAreaType, backConfirm, getOutBillDisDtl, getType, allDivOne, moneySubmit, getDisNum, queryBox, getOutBillTask2, oneCancel, cancelTask, allSetPoint, oneSetPoint2, outReturn, updataIsOverdue } diff --git a/lms/nladmin-ui/src/views/wms/st/outbill/index.vue b/lms/nladmin-ui/src/views/wms/st/outbill/index.vue index 8362bc70a..36df88fc5 100644 --- a/lms/nladmin-ui/src/views/wms/st/outbill/index.vue +++ b/lms/nladmin-ui/src/views/wms/st/outbill/index.vue @@ -319,6 +319,7 @@ + @@ -375,7 +376,7 @@ export default { }, mixins: [presenter(), header(), crud()], // 数据字典 - dicts: ['io_bill_status', 'ST_CREATE_MODE', 'ST_INV_OUT_TYPE', 'is_upload'], + dicts: ['io_bill_status', 'ST_CREATE_MODE', 'ST_INV_OUT_TYPE', 'is_upload', 'IS_OR_NOT'], data() { return { height: document.documentElement.clientHeight - 180 + 'px;', @@ -510,6 +511,9 @@ export default { create_modeFormat(row) { return this.dict.label.ST_CREATE_MODE[row.create_mode] }, + isOverdue(row) { + return this.dict.label.IS_OR_NOT[row.is_overdue] + }, handleCurrentChange(current) { if (current === null) { this.dis_flag = true From e42fdec93a99615cb73ab67e0f4461391eca4d56 Mon Sep 17 00:00:00 2001 From: liuxy Date: Tue, 19 Mar 2024 14:30:43 +0800 Subject: [PATCH 02/17] =?UTF-8?q?rev=EF=BC=9A=E4=BB=A3=E7=A0=81=E5=90=88?= =?UTF-8?q?=E5=B9=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/nl/wms/basedata/st/rest/StructivtController.java | 1 + 1 file changed, 1 insertion(+) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/rest/StructivtController.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/rest/StructivtController.java index bd0b2b469..c5b40bc46 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/rest/StructivtController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/st/rest/StructivtController.java @@ -39,6 +39,7 @@ public class StructivtController { //@PreAuthorize("@el.check('structivt:list')") public ResponseEntity query(@RequestParam Map whereJson, Pageable page, String[] product_area, String[] ivt_flag) { return new ResponseEntity<>(structivtService.queryAll(whereJson, page, product_area, ivt_flag), HttpStatus.OK); + } @PostMapping From 7b7d4d542aa94579ef5fc36683104241d29db10e Mon Sep 17 00:00:00 2001 From: liuxy Date: Tue, 19 Mar 2024 15:00:05 +0800 Subject: [PATCH 03/17] =?UTF-8?q?rev=EF=BC=9A=E6=88=90=E5=93=81=E6=8A=A5?= =?UTF-8?q?=E5=BA=9F=E5=AF=BC=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wms/st/instor/service/impl/ProductScrapServiceImpl.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/ProductScrapServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/ProductScrapServiceImpl.java index 9d1f70e4a..171b7c366 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/ProductScrapServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/ProductScrapServiceImpl.java @@ -488,10 +488,10 @@ public class ProductScrapServiceImpl implements ProductScrapService { String pcsn = list.get(0).toString(); // sap批次号 String sap_pcsn = list.get(1).toString(); - // 木箱号 +/* // 木箱号 String box_no = list.get(2).toString(); // 重量 - String qty = list.get(3).toString(); + String qty = list.get(3).toString();*/ // 子卷号和批次号必须有一个不为空 if (ObjectUtil.isEmpty(pcsn) && ObjectUtil.isEmpty(sap_pcsn)) { From 3e808280adb44e96a684cb711a844f031e2e4fe2 Mon Sep 17 00:00:00 2001 From: liuxy Date: Tue, 19 Mar 2024 15:26:52 +0800 Subject: [PATCH 04/17] =?UTF-8?q?rev=EF=BC=9A=E6=88=90=E5=93=81=E6=8A=A5?= =?UTF-8?q?=E5=BA=9F=E5=AE=A1=E6=A0=B8=E6=96=B0=E5=A2=9E=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ProductScrapServiceImpl.java | 25 +++++++++++++++++++ .../st/instor/wql/QST_IVT_PRODUCTSCRAP.wql | 12 +++++++++ 2 files changed, 37 insertions(+) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/ProductScrapServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/ProductScrapServiceImpl.java index 171b7c366..1de86337c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/ProductScrapServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/ProductScrapServiceImpl.java @@ -479,6 +479,10 @@ public class ProductScrapServiceImpl implements ProductScrapService { .addParam("flag", "3").addParam("stor_id", stor_id).addParam("in_stor_id",in_stor_id) .process().getResultJSONArray(0).toJavaList(JSONObject.class); + // 查询不合格品来源字典 + List dictList = WQL.getWO("QST_IVT_PRODUCTSCRAP").addParam("flag", "3") + .process().getResultJSONArray(0).toJavaList(JSONObject.class); + // 循环获取的数据 ArrayList resultList = new ArrayList<>(); for (int i = 0; i < read.size(); i++) { @@ -492,6 +496,10 @@ public class ProductScrapServiceImpl implements ProductScrapService { String box_no = list.get(2).toString(); // 重量 String qty = list.get(3).toString();*/ + // 不合格品来源 + String fail_source = list.get(4).toString(); + // 不合格描述 + String remark = list.get(5).toString(); // 子卷号和批次号必须有一个不为空 if (ObjectUtil.isEmpty(pcsn) && ObjectUtil.isEmpty(sap_pcsn)) { @@ -513,6 +521,23 @@ public class ProductScrapServiceImpl implements ProductScrapService { .filter(row -> row.getString("storagevehicle_code").equals(json.getString("storagevehicle_code"))) .collect(Collectors.toList()); + // 匹配不合格品来源 + String value = ""; + List label = dictList.stream() + .filter(row -> row.getString("label").equals(fail_source)) + .collect(Collectors.toList()); + + if (ObjectUtil.isNotEmpty(label)) { + value = label.get(0).getString("value"); + } + + // 插入不合格品来源、不合格品描述 + String finalValue = value; + boxList.forEach(row -> { + row.put("fail_source", finalValue); + row.put("remark",remark); + }); + resultList.addAll(boxList); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/wql/QST_IVT_PRODUCTSCRAP.wql b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/wql/QST_IVT_PRODUCTSCRAP.wql index d3dcb1ca1..cae98e5cd 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/wql/QST_IVT_PRODUCTSCRAP.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/wql/QST_IVT_PRODUCTSCRAP.wql @@ -109,4 +109,16 @@ order by dtl.seq_no ENDSELECT ENDQUERY + ENDIF + + IF 输入.flag = "3" + QUERY + SELECT + * + FROM + sys_dict + WHERE + code = 'FAIL_SOURCE' + ENDSELECT + ENDQUERY ENDIF \ No newline at end of file From c9fb151de52e908840c03fb7b3ee0d7d56fff80e Mon Sep 17 00:00:00 2001 From: yanps Date: Tue, 19 Mar 2024 18:23:10 +0800 Subject: [PATCH 05/17] =?UTF-8?q?fix:=20=E8=A7=A3=E5=86=B3=E8=BF=9E?= =?UTF-8?q?=E7=BB=AD=E5=88=9B=E5=BB=BA=E5=A4=9A=E4=B8=AA=E6=8C=87=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IndoorManipulatorDeviceDriver.java | 4 ++++ .../service/impl/InstructionServiceImpl.java | 12 ++++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/indoor_manipulator/IndoorManipulatorDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/indoor_manipulator/IndoorManipulatorDeviceDriver.java index 9c9b1ce2d..ad89dd0c2 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/indoor_manipulator/IndoorManipulatorDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/indoor_manipulator/IndoorManipulatorDeviceDriver.java @@ -251,6 +251,10 @@ public class IndoorManipulatorDeviceDriver extends AbstractOpcDeviceDriver imple inst = null; message = null; } + if(mode == 2 && requireSucess){ + this.setRequireSucess(false); + logServer.deviceExecuteLog(this.device_code, "", "", "再次信号复位requireSuccess:" + requireSucess); + } logServer.deviceItemValue(this.device_code, "mode", String.valueOf(mode)); logServer.deviceExecuteLog(this.device_code, "", "", "信号mode:" + last_mode + "->" + mode); } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java index 0c4f4a588..5b464fae6 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java @@ -1,6 +1,7 @@ package org.nl.acs.instruction.service.impl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.ListUtil; import cn.hutool.core.date.DateUtil; @@ -15,6 +16,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; @@ -367,10 +369,12 @@ public class InstructionServiceImpl extends CommonServiceImpl instructionMybatis = instructionMapper.selectList(Wrappers.lambdaQuery(InstructionMybatis.class) + .eq(InstructionMybatis::getTask_code, dto.getTask_code())); + if(CollUtil.isNotEmpty(instructionMybatis) && instructionMybatis.stream().anyMatch(inst -> inst.getStart_device_code() + .equals(start_device_code))){ return; } } @@ -436,7 +440,7 @@ public class InstructionServiceImpl extends CommonServiceImpl shortPathsList = From 2eac4ea4e3173b6fe7826074ccde4eb7400fe6c0 Mon Sep 17 00:00:00 2001 From: LENOVO <1793460677@qq.com> Date: Wed, 20 Mar 2024 09:01:40 +0800 Subject: [PATCH 06/17] =?UTF-8?q?fix:=20=E7=8E=B0=E5=9C=BA=E8=81=94?= =?UTF-8?q?=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/impl/XianGongAgvServiceImpl.java | 19 ++--- .../service/impl/DeviceServiceImpl.java | 35 +++++---- .../manipulator_cache/ItemProtocol.java | 3 + .../ManipulatorCacheDeviceDriver.java | 2 + .../BoxPackageManipulatorDeviceDriver.java | 33 ++++---- .../box_package_manipulator/ItemProtocol.java | 26 +++++-- ...TwoManipulatorManipulatorDeviceDriver.java | 9 ++- .../StandardStackerDeviceDriver.java | 43 ++++++----- .../wms/service/impl/WmsToAcsServiceImpl.java | 4 +- .../service/InstructionService.java | 3 + .../service/impl/InstructionServiceImpl.java | 77 ++++++++++++------- .../src/main/java/org/nl/acs/opc/OpcUtl.java | 2 + .../task/service/impl/TaskServiceImpl.java | 8 +- .../service/quartz/task/AutoCreateInst.java | 1 + acs2/nladmin-ui/public/config.js | 2 +- 15 files changed, 162 insertions(+), 105 deletions(-) diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/server/impl/XianGongAgvServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/server/impl/XianGongAgvServiceImpl.java index c976366f0..be5611dea 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/server/impl/XianGongAgvServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/agv/server/impl/XianGongAgvServiceImpl.java @@ -47,6 +47,7 @@ import java.util.Map; public class XianGongAgvServiceImpl implements XianGongAgvService { private final DeviceAppService deviceAppService; private final ISysParamService paramService; + @Autowired private final AcsToWmsService acsToWmsService; @Autowired @@ -115,7 +116,7 @@ public class XianGongAgvServiceImpl implements XianGongAgvService { } - + @Override public HttpResponse markComplete(String code) throws Exception { @@ -141,7 +142,7 @@ public class XianGongAgvServiceImpl implements XianGongAgvService { } - + @Override public HttpResponse queryXZAgvDeviceStatus() { @@ -202,7 +203,7 @@ public class XianGongAgvServiceImpl implements XianGongAgvService { } - + @Override public HttpResponse queryXZAgvInstStatus(String instCode) { @@ -225,7 +226,7 @@ public class XianGongAgvServiceImpl implements XianGongAgvService { } } - + @Override public HttpResponse deleteXZAgvInst(String instCode) { if (StrUtil.equals(paramService.findByCode(AcsConfig.FORKAGV).getValue(), CommonFinalParam.ONE)) { @@ -245,7 +246,7 @@ public class XianGongAgvServiceImpl implements XianGongAgvService { } } - + @Override public HttpResponse sendOrderSequencesToXZ(Instruction inst) throws Exception { com.alibaba.fastjson.JSONObject jo = new com.alibaba.fastjson.JSONObject(); @@ -466,7 +467,7 @@ public class XianGongAgvServiceImpl implements XianGongAgvService { } } - + @Override public HttpResponse addOrderSequences(Instruction inst) throws Exception { JSONObject orderjo = createOrederData(inst, CommonFinalParam.ONE); @@ -493,7 +494,7 @@ public class XianGongAgvServiceImpl implements XianGongAgvService { } } - + @Override public String sendOrderSequencesParam(Instruction inst) throws Exception { JSONObject jo = new JSONObject(); @@ -511,7 +512,7 @@ public class XianGongAgvServiceImpl implements XianGongAgvService { return jo.toString(); } - + @Override public JSONObject createOrederData(Instruction inst, String inst_type) { String inst_code = inst.getInstruction_code(); @@ -648,7 +649,7 @@ public class XianGongAgvServiceImpl implements XianGongAgvService { return destinationOrder; } - + @Override public String queryDoorStatus(String device) { log.info("AGV查询自动门状态,参数:{}", device); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/impl/DeviceServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/impl/DeviceServiceImpl.java index 608756d70..0f0fb600c 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/impl/DeviceServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/impl/DeviceServiceImpl.java @@ -16,6 +16,7 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.map.ListOrderedMap; import org.apache.commons.lang.LocaleUtils; import org.nl.acs.auto.initial.ApplicationAutoInitial; @@ -1228,13 +1229,15 @@ public class DeviceServiceImpl extends CommonServiceImpl i JSONArray w_arry = new JSONArray(); List writeableItemDtos = opcDeviceDriverDefination.getWriteableItemDtos(); List writeableItemJsons = new ArrayList<>(); - for (int i = 0; i < writeableItemDtos.size(); i++) { - ItemDto itemDto = writeableItemDtos.get(i); - JSONObject writeableItemJson = new JSONObject(); - writeableItemJson.put("code", itemDto.getCode()); - writeableItemJson.put("name", itemDto.getName()); - //writeableItemJson.put("db",itemDto.getDb()); - writeableItemJsons.add(writeableItemJson); + if (CollectionUtils.isNotEmpty(writeableItemDtos)) { + for (int i = 0; i < writeableItemDtos.size(); i++) { + ItemDto itemDto = writeableItemDtos.get(i); + JSONObject writeableItemJson = new JSONObject(); + writeableItemJson.put("code", itemDto.getCode()); + writeableItemJson.put("name", itemDto.getName()); + //writeableItemJson.put("db",itemDto.getDb()); + writeableItemJsons.add(writeableItemJson); + } } for (int i = 0; i < ws.size(); i++) { String extra_code = ws.getJSONObject(i).getString("extra_code"); @@ -1260,14 +1263,16 @@ public class DeviceServiceImpl extends CommonServiceImpl i jsonObject.put("name", wJson.getString("name")); warry.add(jsonObject); } - for (int i = 0; i < writeableItemDtos.size(); i++) { - ItemDto itemDto = writeableItemDtos.get(i); - JSONObject writeableItemJson = new JSONObject(); - writeableItemJson.put("code", itemDto.getCode()); - writeableItemJson.put("name", itemDto.getName()); - if (!warry.contains(writeableItemJson)) { - writeableItemJson.put("db", itemDto.getDb()); - w_arry.add(writeableItemJson); + if (CollectionUtils.isNotEmpty(writeableItemDtos)) { + for (int i = 0; i < writeableItemDtos.size(); i++) { + ItemDto itemDto = writeableItemDtos.get(i); + JSONObject writeableItemJson = new JSONObject(); + writeableItemJson.put("code", itemDto.getCode()); + writeableItemJson.put("name", itemDto.getName()); + if (!warry.contains(writeableItemJson)) { + writeableItemJson.put("db", itemDto.getDb()); + w_arry.add(writeableItemJson); + } } } if (!r_arry.isEmpty()) { diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/manipulator_cache/ItemProtocol.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/manipulator_cache/ItemProtocol.java index 9b04b8ba7..bcf594ec4 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/manipulator_cache/ItemProtocol.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/manipulator_cache/ItemProtocol.java @@ -18,6 +18,8 @@ public class ItemProtocol { //动作信号 public static String item_action = "action"; + public static String item_to_command = "to_command"; + private ManipulatorCacheDeviceDriver driver; public ItemProtocol(ManipulatorCacheDeviceDriver driver) { @@ -49,6 +51,7 @@ public class ItemProtocol { public static List getReadableItemDtos() { ArrayList list = new ArrayList<>(); + list.add(new ItemDto(item_to_command, "作业命令", "DB200.W2", Boolean.valueOf(true))); list.add(new ItemDto(item_mode, "工作模式", "DB1.B1")); list.add(new ItemDto(item_action, "动作信号", "DB1.B3")); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/manipulator_cache/ManipulatorCacheDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/manipulator_cache/ManipulatorCacheDeviceDriver.java index 6219eace3..9fcc854c4 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/manipulator_cache/ManipulatorCacheDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/manipulator_cache/ManipulatorCacheDeviceDriver.java @@ -42,6 +42,8 @@ public class ManipulatorCacheDeviceDriver extends AbstractOpcDeviceDriver implem int action = 0; int last_action = 0; + + @Override public Device getDevice() { return this.device; diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_package_manipulator/BoxPackageManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_package_manipulator/BoxPackageManipulatorDeviceDriver.java index c7b03641f..8e461e2b3 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_package_manipulator/BoxPackageManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_package_manipulator/BoxPackageManipulatorDeviceDriver.java @@ -19,6 +19,7 @@ import org.nl.acs.device_driver.RouteableDeviceDriver; import org.nl.acs.device_driver.conveyor.siemens_conveyor.SiemensConveyorDeviceDriver; import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; +import org.nl.acs.device_driver.one_conveyor.box_subvolumes_conveyor.BoxSubvolumesConveyorDeviceDriver; import org.nl.acs.device_driver.one_conveyor.manipulator_cache.ManipulatorCacheDeviceDriver; import org.nl.acs.history.ErrorUtil; import org.nl.acs.history.service.DeviceErrorLogService; @@ -78,11 +79,11 @@ public class BoxPackageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i int task = 0; int last_task = 0; // x坐标 - float x_position = 0; - float last_x_position = 0; + float x = 0.0f; + float last_x = 0.0f; // y坐标 - float y_position = 0; - float last_y_position = 0; + float y = 0.0f; + float last_y = 0.0f; int heartbeat = 0; int last_heartbeat = 0; @@ -169,8 +170,8 @@ public class BoxPackageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i to_target = this.itemProtocol.getTo_target(); to_task = this.itemProtocol.getTo_task(); to_onset = this.itemProtocol.getTo_onset(); - x_position = this.itemProtocol.getX_position(); - y_position = this.itemProtocol.getY_position(); + x = this.itemProtocol.getX(); + y = this.itemProtocol.getY(); to_seq = this.itemProtocol.getTo_seq(); to_max_no = this.itemProtocol.getTo_max_no(); to_direction = this.itemProtocol.getTo_direction(); @@ -247,8 +248,6 @@ public class BoxPackageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i last_to_command = to_command; last_to_target = to_target; last_to_onset = to_onset; - last_x_position = x_position; - last_y_position = y_position; last_to_seq = to_seq; last_to_last = to_last; last_to_direction = to_direction; @@ -390,10 +389,10 @@ public class BoxPackageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i throw new BadRequestException("设备:" + nextDevice.getDevice_code() + "未设置电气调度号!"); } - SiemensConveyorDeviceDriver siemensConveyorDeviceDriver; - if (nextDevice.getDeviceDriver() instanceof SiemensConveyorDeviceDriver) { - siemensConveyorDeviceDriver = (SiemensConveyorDeviceDriver) nextDevice.getDeviceDriver(); - if (siemensConveyorDeviceDriver.getMove() != 1) { + BoxSubvolumesConveyorDeviceDriver boxSubvolumesConveyorDeviceDriver; + if (nextDevice.getDeviceDriver() instanceof BoxSubvolumesConveyorDeviceDriver) { + boxSubvolumesConveyorDeviceDriver = (BoxSubvolumesConveyorDeviceDriver) nextDevice.getDeviceDriver(); + if (boxSubvolumesConveyorDeviceDriver.getMove() != 1) { notCreateInstMessage = "universal_notCreateInstMessage2"; return false; } @@ -402,7 +401,7 @@ public class BoxPackageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i ManipulatorCacheDeviceDriver manipulatorCacheDeviceDriver; if (startDevice.getDeviceDriver() instanceof ManipulatorCacheDeviceDriver) { manipulatorCacheDeviceDriver = (ManipulatorCacheDeviceDriver) startDevice.getDeviceDriver(); - if (manipulatorCacheDeviceDriver.getMode() != 2 && manipulatorCacheDeviceDriver.getMode() !=1) { + if (manipulatorCacheDeviceDriver.getMode() != 2 && manipulatorCacheDeviceDriver.getAction() !=1) { notCreateInstMessage = "universal_notCreateInstMessage3"; return false; } @@ -493,8 +492,8 @@ public class BoxPackageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i } if (ObjectUtil.isNotEmpty(interactionJsonDTO.getBarcode())) { - map8.put("code", "to_barcode"); - map8.put("value", interactionJsonDTO.getBarcode()); + map9.put("code", "to_barcode"); + map9.put("value", interactionJsonDTO.getBarcode()); list.add(map9); } } @@ -613,8 +612,8 @@ public class BoxPackageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i jo.put("feedMessage", LangProcess.msg(feedMessage)); jo.put("driver_type", "siemens_conveyor"); jo.put("is_click", true); - jo.put("x", x_position); - jo.put("y", y_position); + jo.put("x", x); + jo.put("y", y); return jo; } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_package_manipulator/ItemProtocol.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_package_manipulator/ItemProtocol.java index 41cfd2387..9f26e9490 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_package_manipulator/ItemProtocol.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_package_manipulator/ItemProtocol.java @@ -43,11 +43,11 @@ public class ItemProtocol { /** * x轴坐标 */ - public static String item_x_position = "x_position"; + public static String item_x = "x"; /** * y轴坐标 */ - public static String item_y_position = "y_position"; + public static String item_y= "y"; /** @@ -96,6 +96,10 @@ public class ItemProtocol { * 下发是否最后子卷 */ public static String item_to_last_one = "to_last_one"; + /** + *下发木箱条码 + */ + public static String item_to_barcode = "to_barcode"; private BoxPackageManipulatorDeviceDriver driver; @@ -148,12 +152,12 @@ public class ItemProtocol { return this.getOpcIntegerValue(item_to_target); } - public float getX_position() { - return this.getOpcFloatValue(item_x_position); + public float getX() { + return this.getOpcFloatValue(item_x); } - public float getY_position() { - return this.getOpcFloatValue(item_y_position); + public float getY() { + return this.getOpcFloatValue(item_y); } public int getTo_seq(){ @@ -186,6 +190,10 @@ public class ItemProtocol { } + public String getTo_barcode() { + return this.getOpcStringValue(item_to_barcode); + } + public String getOpcStringValue(String protocol) { String value = this.driver.getStringValue(protocol); if (StrUtil.isEmpty(value)) { @@ -218,8 +226,8 @@ public class ItemProtocol { list.add(new ItemDto(item_walk_y, "行走列", "DB1.B4")); list.add(new ItemDto(item_error, "报警信号", "DB1.B5")); list.add(new ItemDto(item_task, "任务号", "DB1.D6")); - list.add(new ItemDto(item_x_position, "x坐标", "DB1.REAL10")); - list.add(new ItemDto(item_y_position, "y坐标", "DB1.REAL14")); + list.add(new ItemDto(item_x, "x坐标", "DB1.REAL10")); + list.add(new ItemDto(item_y, "y坐标", "DB1.REAL14")); list.add(new ItemDto(item_position, "木箱位置", "DB1.REAL16")); list.add(new ItemDto(item_number, "木箱数量", "DB1.REAL18")); return list; @@ -235,6 +243,8 @@ public class ItemProtocol { list.add(new ItemDto(item_to_direction, "子卷摆放方向", "DB2.D10")); list.add(new ItemDto(item_to_seq, "下发木箱工位顺序", "DB2.W12")); list.add(new ItemDto(item_to_last_one, "下发是否最后子卷", "DB2.W14")); + list.add(new ItemDto(item_to_barcode, "下发木箱条码", "DB601.STRING1.50")); + return list; } } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/volume_two_manipulator/VolumeTwoManipulatorManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/volume_two_manipulator/VolumeTwoManipulatorManipulatorDeviceDriver.java index 446e0fdd8..d9ea1bc4e 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/volume_two_manipulator/VolumeTwoManipulatorManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/volume_two_manipulator/VolumeTwoManipulatorManipulatorDeviceDriver.java @@ -16,6 +16,7 @@ import org.nl.acs.device.service.impl.DeviceExtraServiceImpl; import org.nl.acs.device_driver.DeviceDriver; import org.nl.acs.device_driver.FeedLmsRealFailed; import org.nl.acs.device_driver.RouteableDeviceDriver; +import org.nl.acs.device_driver.conveyor.belt_conveyor.BeltConveyorDeviceDriver; import org.nl.acs.device_driver.conveyor.siemens_conveyor.SiemensConveyorDeviceDriver; import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; @@ -390,10 +391,10 @@ public class VolumeTwoManipulatorManipulatorDeviceDriver extends AbstractOpcDevi notCreateInstMessage = "universal_notCreateInstMessage1"; throw new BadRequestException("设备:" + nextDevice.getDevice_code() + "未设置电气调度号!"); } - SiemensConveyorDeviceDriver siemensConveyorDeviceDriver; - if (startDevice.getDeviceDriver() instanceof SiemensConveyorDeviceDriver) { - siemensConveyorDeviceDriver = (SiemensConveyorDeviceDriver) startDevice.getDeviceDriver(); - if (siemensConveyorDeviceDriver.getMove() != 1) { + BeltConveyorDeviceDriver beltConveyorDeviceDriver; + if (startDevice.getDeviceDriver() instanceof BeltConveyorDeviceDriver) { + beltConveyorDeviceDriver = (BeltConveyorDeviceDriver) startDevice.getDeviceDriver(); + if (beltConveyorDeviceDriver.getMove() != 1) { notCreateInstMessage = "universal_notCreateInstMessage2"; return false; } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/stacker/standard_stacker/StandardStackerDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/stacker/standard_stacker/StandardStackerDeviceDriver.java index bdef248cf..b48a92b56 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/stacker/standard_stacker/StandardStackerDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/stacker/standard_stacker/StandardStackerDeviceDriver.java @@ -8,7 +8,6 @@ import com.alibaba.fastjson.JSONObject; import lombok.Data; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.checkerframework.common.value.qual.StringVal; import org.nl.acs.common.base.CommonFinalParam; import org.nl.acs.device.domain.Device; import org.nl.acs.device.enums.DeviceType; @@ -33,7 +32,6 @@ import org.nl.acs.opc.DeviceAppServiceImpl; import org.nl.acs.route.service.RouteLineService; import org.nl.acs.route.service.dto.RouteLineDto; import org.nl.acs.route.service.impl.RouteLineServiceImpl; -import org.nl.acs.task.domain.Task; import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.dto.TaskDto; import org.nl.common.utils.RedisUtils; @@ -481,18 +479,18 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme Instruction inst = checkInst(); try { finish_instruction(inst); -// if (ObjectUtil.isNotEmpty(redisUtils.get(REDIS_MOVE_BOX))){ -// String taskRedis = redisUtils.get(REDIS_MOVE_BOX).toString(); -// task = Integer.valueOf(taskRedis); -// Instruction instOld = checkInst(); -// List list1 = new ArrayList(); -// pakageCommand(list1, taskRedis); -// pakagePlc(instOld, list1); -// if (ObjectUtil.isNotNull(list1)) { -// this.writing(list1); -// } -// } -// list.remove(0); + if (ObjectUtil.isNotEmpty(redisUtils.get(REDIS_MOVE_BOX))){ + String taskRedis = redisUtils.get(REDIS_MOVE_BOX).toString(); + task = Integer.valueOf(taskRedis); + Instruction instOld = checkInst(); + List list1 = new ArrayList(); + pakageCommand(list1, taskRedis); + pakagePlc(instOld, list1); + if (ObjectUtil.isNotNull(list1)) { + this.writing(list1); + } + list.remove(0); + } } catch (Exception e) { e.printStackTrace(); } @@ -605,11 +603,13 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme } if (type.equals(StandarStirageErroEnum.VOIDANCE.getType())) { updateData1(poinCode, instruction, point, split); - pakageData(point, split); + List list = new ArrayList(); + pakageData(list,point, split); } if (type.equals(StandarStirageErroEnum.BLOCK_IN.getType()) || type.equals(StandarStirageErroEnum.FILL.getType())) { updateData2(poinCode, instruction, point, split); - pakageData(point, split); + List list = new ArrayList(); + pakageData(list,point, split); } } if (StrUtil.isNotEmpty(jo.getString("task_id"))) { @@ -618,11 +618,17 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme //存缓存 redisUtils.set(REDIS_MOVE_BOX, task); TaskDto taskId = taskserver.findById(jo.getString("task_id")); + Instruction instructionDDJ = instructionService.creatDDJInstruction(taskId.getTask_id()); + List list = new ArrayList(); if (ObjectUtil.isNotEmpty(taskId)) { + if (StrUtil.isNotEmpty(instructionDDJ.getInstruction_code())) { + task = Integer.valueOf(instructionDDJ.getInstruction_code()); + pakageCommand(list,instructionDDJ.getInstruction_code()); + } String poinCodeMove = taskId.getStart_point_code(); String[] split = poinCodeMove.split("-"); Device point = deviceAppService.findDeviceByCode(split[0]); - pakageData(point, split); + pakageData(list, point, split); } } } @@ -642,8 +648,7 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme } } - private void pakageData( Device point, String[] split) { - List list = new ArrayList(); + private void pakageData(List list, Device point, String[] split) { String x = point.getExtraValue().get("x").toString(); String y = split[1]; String z = split[2]; diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java index a387ec0c4..86568d6c5 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java @@ -587,8 +587,8 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { jo.put("device_code", boxManipulatorDeviceDriver.getDevice().getDevice_code()); jo.put("device_name", boxManipulatorDeviceDriver.getDevice().getDevice_name()); jo.put("status", Math.min(3, boxManipulatorDeviceDriver.getMode())); - jo.put("x", boxManipulatorDeviceDriver.getX_position()); - jo.put("y", boxManipulatorDeviceDriver.getY_position()); + jo.put("x", boxManipulatorDeviceDriver.getX()); + jo.put("y", boxManipulatorDeviceDriver.getY()); jo.put("mode", boxManipulatorDeviceDriver.getMode()); jo.put("move", boxManipulatorDeviceDriver.getMove()); jo.put("action", boxManipulatorDeviceDriver.getAction()); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/InstructionService.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/InstructionService.java index 96384d487..7197f3a23 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/InstructionService.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/InstructionService.java @@ -184,6 +184,9 @@ public interface InstructionService extends CommonService { */ void create(Instruction dto) throws Exception; + + Instruction creatDDJInstruction(String taskId); + /** * 创建2 * diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java index 0c4f4a588..4856c9122 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java @@ -1,7 +1,6 @@ package org.nl.acs.instruction.service.impl; import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.ListUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; @@ -12,9 +11,9 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; @@ -360,20 +359,15 @@ public class InstructionServiceImpl extends CommonServiceImpl impleme private TaskFeedbackService taskFeedbackService; @Autowired private ISysParamService paramService; + @Lazy @Autowired private XianGongAgvService agvService; @Autowired @@ -1109,7 +1111,8 @@ public class TaskServiceImpl extends CommonServiceImpl impleme CommonFinalParam commonFinalParam = new CommonFinalParam(); if (StrUtil.contains(start_point_code, commonFinalParam.getBARRE()) && StrUtil.count(start_point_code, commonFinalParam.getBARRE()) == 2) { String[] start_point = start_point_code.split(commonFinalParam.getBARRE()); - task.setFrom_x(start_point[0]); + Device starPoint = deviceAppService.findDeviceByCode(start_point[0]); + task.setFrom_x(starPoint.getExtraValue().get("x").toString()); task.setStart_device_code(start_point[0]); if (Integer.parseInt(start_point[1]) < 10 && start_point[1].length() == 1) { from_y = "0" + start_point[1]; @@ -1161,7 +1164,8 @@ public class TaskServiceImpl extends CommonServiceImpl impleme } else { from_z = task.getFrom_z(); } - task.setFrom_x(start_point_code); + Device starPoint = deviceAppService.findDeviceByCode(start_point_code); + task.setFrom_x(starPoint.getExtraValue().get("x").toString()); task.setStart_point_code(start_point_code + commonFinalParam.getBARRE() + from_y + commonFinalParam.getBARRE() + from_z); task.setStart_device_code(start_point_code); } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/task/AutoCreateInst.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/task/AutoCreateInst.java index 83dbbe6ef..de16dd84a 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/task/AutoCreateInst.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/task/AutoCreateInst.java @@ -189,6 +189,7 @@ public class AutoCreateInst { } try { instructionService.create(instdto); + } catch (Exception e) { acsTask.setRemark(e.getMessage()); taskserver.updateByCodeFromCache(acsTask); diff --git a/acs2/nladmin-ui/public/config.js b/acs2/nladmin-ui/public/config.js index ce714251a..4f5976990 100644 --- a/acs2/nladmin-ui/public/config.js +++ b/acs2/nladmin-ui/public/config.js @@ -3,7 +3,7 @@ window.g = { VUE_APP_BASE_API: 'http://127.0.0.1:8011' }, prod: { - VUE_APP_BASE_API: 'http://127.0.0.1:8011' + VUE_APP_BASE_API: 'http://10.1.3.96:8011' } } From 2f4e488f2ce6aae01961c3bba59d6413816699e6 Mon Sep 17 00:00:00 2001 From: liuxy Date: Wed, 20 Mar 2024 09:04:49 +0800 Subject: [PATCH 07/17] =?UTF-8?q?rev=EF=BC=9A=E5=87=BA=E5=BA=93=E5=88=86?= =?UTF-8?q?=E9=85=8D=E9=A1=B5=E9=9D=A2=20=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lms/nladmin-ui/src/views/wms/st/outbill/DivDialog.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/nladmin-ui/src/views/wms/st/outbill/DivDialog.vue b/lms/nladmin-ui/src/views/wms/st/outbill/DivDialog.vue index a3511445c..5f3cdc1c9 100644 --- a/lms/nladmin-ui/src/views/wms/st/outbill/DivDialog.vue +++ b/lms/nladmin-ui/src/views/wms/st/outbill/DivDialog.vue @@ -179,7 +179,7 @@ 是否异常出库 - + From e228808ebd9834b37e19af13bbf758ce0c130e6c Mon Sep 17 00:00:00 2001 From: liuxy Date: Wed, 20 Mar 2024 09:05:42 +0800 Subject: [PATCH 08/17] =?UTF-8?q?rev=EF=BC=9A=E4=BB=A3=E7=A0=81=E5=90=88?= =?UTF-8?q?=E5=B9=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nl/wms/st/instor/service/impl/ProductScrapServiceImpl.java | 1 - 1 file changed, 1 deletion(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/ProductScrapServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/ProductScrapServiceImpl.java index 1de86337c..3d19d9243 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/ProductScrapServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/ProductScrapServiceImpl.java @@ -530,7 +530,6 @@ public class ProductScrapServiceImpl implements ProductScrapService { if (ObjectUtil.isNotEmpty(label)) { value = label.get(0).getString("value"); } - // 插入不合格品来源、不合格品描述 String finalValue = value; boxList.forEach(row -> { From 72c971716964071d3fbd10615be98340b8003abc Mon Sep 17 00:00:00 2001 From: yanps Date: Wed, 20 Mar 2024 10:54:46 +0800 Subject: [PATCH 09/17] =?UTF-8?q?fix:=20=E8=A7=A3=E5=86=B3=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E4=BF=A1=E5=8F=B7=E5=8F=98=E5=8C=96=E4=B8=BAnull?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nl/acs/opc/DeviceOpcProtocolRunable.java | 21 ++----------------- 1 file changed, 2 insertions(+), 19 deletions(-) diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/DeviceOpcProtocolRunable.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/DeviceOpcProtocolRunable.java index a41cfd317..605b76565 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/DeviceOpcProtocolRunable.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/DeviceOpcProtocolRunable.java @@ -100,8 +100,6 @@ public class DeviceOpcProtocolRunable implements Runnable, DataCallback, ServerC server.disconnect(); log.trace("清理server..."); } - -// group =opcServerService.getServer(this.getOpcServer().getOpc_code()); this.server = OpcServerUtl.getServerWithOutException(this.OpcServer.getOpc_host(), this.OpcServer.getCls_id(), this.OpcServer.getUser(), this.OpcServer.getPassword(), this.OpcServer.getDomain()); this.server.addStateListener(this); group = this.server.addGroup(); @@ -391,20 +389,8 @@ public class DeviceOpcProtocolRunable implements Runnable, DataCallback, ServerC Object value = OpcUtl.getValue(item, itemState); UnifiedDataAccessor accessor_value = UnifiedDataAccessorFactory.getAccessor(OpcConfig.udw_opc_value_key); accessor_value.setValue(itemId, value); - -// if (value != null) { -// if (log.isTraceEnabled()) { -// log.trace("Item {} new value: {}, Timestamp: {}", new Object[]{itemId, itemState.getValue(), itemState.getTimestamp().getTime()}); -// } -// } else if (log.isInfoEnabled()) { -// log.info("Item {} new value: {}, Timestamp: {}, Quality: {}", new Object[]{itemId, itemState.getValue(), itemState.getTimestamp().getTime(), itemState.getQuality()}); -// } log.trace("Item {} new value: {}, Timestamp: {}", new Object[]{itemId, itemState.getValue(), itemState.getTimestamp().getTime()}); - OpcItemDto itemDto = this.getItem(itemId); -// if (Boolean.TRUE.equals(itemDto.getNeed_log())) { -// this.logItemChanged(itemId, accessor_value, value, itemDto); -// } this.logItemChanged(itemId, accessor_value, value, itemDto); } catch (Exception var7) { @@ -425,15 +411,13 @@ public class DeviceOpcProtocolRunable implements Runnable, DataCallback, ServerC Object obj = accessor_value.getValue(relate); sb.append("key:" + relate + "value:" + obj + ";"); } -// log.warn("设备:{}信号{}变更从{}->{};信号快照:{}", new Object[]{itemDto.getDevice_code(), itemId, his, value, sb}); if (!itemDto.getItem_code().endsWith("heartbeat") && !itemDto.getItem_code().endsWith("time")) { // 存在上次点位值为null情况 则不记录日志 LuceneLogDto luceneLogDto = new LuceneLogDto(itemDto.getOpc_server_code(), itemDto.getOpc_plc_code(), itemDto.getDevice_code(), itemDto.getItem_code().substring(itemDto.getItem_code().lastIndexOf(".") + 1), - String.valueOf(itemDto.getHis_item_value()), String.valueOf(itemDto.getItem_value())); + String.valueOf(itemDto.getHis_item_value()), String.valueOf(value)); luceneLogDto.setLogType(LogTypeEnum.DEVICE_LOG.getDesc()); log.info("{}", JSON.toJSONString(luceneLogDto)); } -// this.businessLogger.setResource(itemDto.getDevice_code(), itemDto.getDevice_name()).log("信号{}变更从{}->{};信号快照:{}", new Object[]{itemId, his, value, sb}); } else { // if(his instanceof int[]){ // if(!Arrays.equals((long[]) his, (long[]) value)){ @@ -450,11 +434,10 @@ public class DeviceOpcProtocolRunable implements Runnable, DataCallback, ServerC // log.warn("设备:{}信号{}变更从{}->{};信号快照:{}", new Object[]{itemDto.getDevice_code(), itemId, his, value}); if (!itemDto.getItem_code().endsWith("heartbeat") && !itemDto.getItem_code().endsWith("time")) { LuceneLogDto luceneLogDto = new LuceneLogDto(itemDto.getOpc_server_code(), itemDto.getOpc_plc_code(), itemDto.getDevice_code(), itemDto.getItem_code().substring(itemDto.getItem_code().lastIndexOf(".") + 1), - String.valueOf(itemDto.getHis_item_value()), String.valueOf(itemDto.getItem_value())); + String.valueOf(itemDto.getHis_item_value()), String.valueOf(value)); luceneLogDto.setLogType(LogTypeEnum.DEVICE_LOG.getDesc()); log.info("{}", JSON.toJSONString(luceneLogDto)); } -// this.businessLogger.setResource(itemDto.getDevice_code(), itemDto.getDevice_name()).log("信号{}变更从{}->{}", new Object[]{itemId, his, value}); } } From ea9cb45a3adc78dba75cf2368acd6a1b48aafe08 Mon Sep 17 00:00:00 2001 From: LENOVO <1793460677@qq.com> Date: Wed, 20 Mar 2024 13:42:36 +0800 Subject: [PATCH 10/17] =?UTF-8?q?fix:=20=E7=8E=B0=E5=9C=BA=E8=81=94?= =?UTF-8?q?=E8=B0=83=E8=A1=8C=E5=AE=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BoxStorageManipulatorDeviceDriver.java | 11 ++--- .../box_storage_manipulator/ItemProtocol.java | 36 ++++++++++++++++ .../return_good_manipulator/ItemProtocol.java | 35 ++++++++++++++++ .../ReturnGoodManipulatorDeviceDriver.java | 12 +++--- .../trapped_manipulator/ItemProtocol.java | 42 +++++++++++++++++++ .../volume_two_manipulator/ItemProtocol.java | 21 ++++++++-- ...TwoManipulatorManipulatorDeviceDriver.java | 20 ++++----- 7 files changed, 150 insertions(+), 27 deletions(-) diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_storage_manipulator/BoxStorageManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_storage_manipulator/BoxStorageManipulatorDeviceDriver.java index 1ee2a9e81..0cc460828 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_storage_manipulator/BoxStorageManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_storage_manipulator/BoxStorageManipulatorDeviceDriver.java @@ -17,6 +17,7 @@ import org.nl.acs.device.service.impl.DeviceExtraServiceImpl; import org.nl.acs.device_driver.DeviceDriver; import org.nl.acs.device_driver.FeedLmsRealFailed; import org.nl.acs.device_driver.RouteableDeviceDriver; +import org.nl.acs.device_driver.conveyor.belt_conveyor.BeltConveyorDeviceDriver; import org.nl.acs.device_driver.conveyor.siemens_conveyor.SiemensConveyorDeviceDriver; import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; @@ -350,10 +351,10 @@ public class BoxStorageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i notCreateInstMessage = "universal_notCreateInstMessage1"; throw new BadRequestException("设备:" + nextDevice.getDevice_code() + "未设置电气调度号!"); } - SiemensConveyorDeviceDriver siemensConveyorDeviceDriver; - if (nextDevice.getDeviceDriver() instanceof SiemensConveyorDeviceDriver) { - siemensConveyorDeviceDriver = (SiemensConveyorDeviceDriver) nextDevice.getDeviceDriver(); - if (siemensConveyorDeviceDriver.getMove() != 1) { + BeltConveyorDeviceDriver beltConveyorDeviceDriver; + if (startDevice.getDeviceDriver() instanceof BeltConveyorDeviceDriver) { + beltConveyorDeviceDriver = (BeltConveyorDeviceDriver) startDevice.getDeviceDriver(); + if (beltConveyorDeviceDriver.getMove() != 1) { notCreateInstMessage = "universal_notCreateInstMessage2"; return false; } @@ -430,7 +431,7 @@ public class BoxStorageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i list.add(map5); } if (ObjectUtil.isNotEmpty(interactionJsonDTO.getLength())) { - map6.put("code", "to_length"); + map6.put("code", "to_lenght"); map6.put("value", interactionJsonDTO.getLength()); list.add(map6); } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_storage_manipulator/ItemProtocol.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_storage_manipulator/ItemProtocol.java index 796dee308..fd5d762b9 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_storage_manipulator/ItemProtocol.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_storage_manipulator/ItemProtocol.java @@ -42,6 +42,18 @@ public class ItemProtocol { public static String item_walk_y = "walk_y"; + + /** + * 行走列 + */ + public static String item_x = "x"; + + /** + * 行走层号 + */ + public static String item_y = "y"; + + /** * 下发命令 */ @@ -86,6 +98,16 @@ public class ItemProtocol { private BoxStorageManipulatorDeviceDriver driver; + + + public float getX() { + return this.getOpcFloatValue(item_x); + } + + public float getY() { + return this.getOpcFloatValue(item_y); + } + public ItemProtocol(BoxStorageManipulatorDeviceDriver driver){ this.driver=driver; } @@ -161,6 +183,18 @@ public class ItemProtocol { return 0; } + public float getOpcFloatValue(String protocol) { + Float value = this.driver.getDoubleValue(protocol); + if (value == null) { + // log.error(this.getDriver().getDeviceCode() + ":protocol " + protocol + " 信号同步异常!"); + setIsonline(false); + } else { + setIsonline(true); + return value; + } + return 0; + + } public String getOpcStringValue(String protocol) { String value = this.driver.getStringValue(protocol); if (StrUtil.isBlank(value)) { @@ -180,6 +214,8 @@ public class ItemProtocol { list.add(new ItemDto(item_error, "报警信号", "DB1.B5")); list.add(new ItemDto(item_task, "任务号", "DB1.D6")); list.add(new ItemDto(item_walk_y, "行走列", "DB1.B4")); + list.add(new ItemDto(item_x, "行走列号", "DB101.B10")); + list.add(new ItemDto(item_y, "行走层号", "DB101.B11")); return list; } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/return_good_manipulator/ItemProtocol.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/return_good_manipulator/ItemProtocol.java index fd72628f2..9ee088013 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/return_good_manipulator/ItemProtocol.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/return_good_manipulator/ItemProtocol.java @@ -85,6 +85,26 @@ public class ItemProtocol { private ReturnGoodManipulatorDeviceDriver driver; + + /** + * 行走列 + */ + public static String item_x = "x"; + + /** + * 行走层号 + */ + public static String item_y = "y"; + + + public float getX() { + return this.getOpcFloatValue(item_x); + } + + public float getY() { + return this.getOpcFloatValue(item_y); + } + public ItemProtocol(ReturnGoodManipulatorDeviceDriver driver){ this.driver=driver; } @@ -143,6 +163,19 @@ public class ItemProtocol { Boolean isonline; + + public float getOpcFloatValue(String protocol) { + Float value = this.driver.getDoubleValue(protocol); + if (value == null) { + // log.error(this.getDriver().getDeviceCode() + ":protocol " + protocol + " 信号同步异常!"); + setIsonline(false); + } else { + setIsonline(true); + return value; + } + return 0; + + } public int getOpcIntegerValue(String protocol) { Integer value = this.driver.getIntegeregerValue(protocol); if (value == null) { @@ -163,6 +196,8 @@ public class ItemProtocol { list.add(new ItemDto(item_error, "报警信号", "DB1.B5")); list.add(new ItemDto(item_task, "任务号", "DB1.D6")); list.add(new ItemDto(item_walk_y, "行走列", "DB1.B4")); + list.add(new ItemDto(item_x, "行走列号", "DB101.B10")); + list.add(new ItemDto(item_y, "行走层号", "DB101.B11")); return list; } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/return_good_manipulator/ReturnGoodManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/return_good_manipulator/ReturnGoodManipulatorDeviceDriver.java index 3cfcb0df2..7d346a879 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/return_good_manipulator/ReturnGoodManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/return_good_manipulator/ReturnGoodManipulatorDeviceDriver.java @@ -18,6 +18,7 @@ import org.nl.acs.device_driver.DeviceDriver; import org.nl.acs.device_driver.FeedLmsRealFailed; import org.nl.acs.device_driver.RouteableDeviceDriver; import org.nl.acs.device_driver.box_manipulator_site.BoxManipulatorSiteDeviceDriver; +import org.nl.acs.device_driver.conveyor.belt_conveyor.BeltConveyorDeviceDriver; import org.nl.acs.device_driver.conveyor.siemens_conveyor.SiemensConveyorDeviceDriver; import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; @@ -373,15 +374,14 @@ public class ReturnGoodManipulatorDeviceDriver extends AbstractOpcDeviceDriver i throw new BadRequestException("设备:" + nextDevice.getDevice_code() + "未设置电气调度号!"); } - SiemensConveyorDeviceDriver siemensConveyorDeviceDriver; - if (nextDevice.getDeviceDriver() instanceof SiemensConveyorDeviceDriver) { - siemensConveyorDeviceDriver = (SiemensConveyorDeviceDriver) nextDevice.getDeviceDriver(); - if (siemensConveyorDeviceDriver.getMove() != 1) { + BeltConveyorDeviceDriver beltConveyorDeviceDriver; + if (startDevice.getDeviceDriver() instanceof BeltConveyorDeviceDriver) { + beltConveyorDeviceDriver = (BeltConveyorDeviceDriver) startDevice.getDeviceDriver(); + if (beltConveyorDeviceDriver.getMove() != 1) { notCreateInstMessage = "universal_notCreateInstMessage2"; return false; } } - String taskid = taskDto.getTask_id(); String taskcode = taskDto.getTask_code(); String start_point_code = taskDto.getStart_point_code(); @@ -450,7 +450,7 @@ public class ReturnGoodManipulatorDeviceDriver extends AbstractOpcDeviceDriver i list.add(map5); } if (ObjectUtil.isNotEmpty(interactionJsonDTO.getLength())) { - map6.put("code", "to_length"); + map6.put("code", "to_lenght"); map6.put("value", interactionJsonDTO.getLength()); list.add(map6); } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/trapped_manipulator/ItemProtocol.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/trapped_manipulator/ItemProtocol.java index 63e94d08f..ad011548c 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/trapped_manipulator/ItemProtocol.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/trapped_manipulator/ItemProtocol.java @@ -36,6 +36,21 @@ public class ItemProtocol { */ public static String item_error = "error"; + /** + * 行走列 + */ + public static String item_walk_y = "walk_y"; + + /** + * 行走列 + */ + public static String item_x = "x"; + + /** + * 行走层号 + */ + public static String item_y = "y"; + /** * 下发托盘类型 @@ -92,6 +107,18 @@ public class ItemProtocol { private TrappedManipulatorManipulatorDeviceDriver driver; + public float getX() { + return this.getOpcFloatValue(item_x); + } + + public float getY() { + return this.getOpcFloatValue(item_y); + } + public int getWalk_y() { + return this.getOpcIntegerValue(item_walk_y); + } + + public ItemProtocol(TrappedManipulatorManipulatorDeviceDriver driver){ this.driver=driver; } @@ -158,6 +185,19 @@ public class ItemProtocol { return 0; } + public float getOpcFloatValue(String protocol) { + Float value = this.driver.getDoubleValue(protocol); + if (value == null) { + // log.error(this.getDriver().getDeviceCode() + ":protocol " + protocol + " 信号同步异常!"); + setIsonline(false); + } else { + setIsonline(true); + return value; + } + return 0; + + } + public static List getReadableItemDtos() { ArrayList list = new ArrayList<>(); list.add(new ItemDto(item_heartbeat, "心跳", "DB1.B0")); @@ -166,6 +206,8 @@ public class ItemProtocol { list.add(new ItemDto(item_action, "动作信号", "DB1.B3")); list.add(new ItemDto(item_error, "报警信号", "DB1.B5")); list.add(new ItemDto(item_task, "任务号", "DB1.D6")); + list.add(new ItemDto(item_x, "行走列号", "DB101.B10")); + list.add(new ItemDto(item_y, "行走层号", "DB101.B11")); return list; } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/volume_two_manipulator/ItemProtocol.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/volume_two_manipulator/ItemProtocol.java index cf261edcf..ba1bafc0b 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/volume_two_manipulator/ItemProtocol.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/volume_two_manipulator/ItemProtocol.java @@ -138,12 +138,12 @@ public class ItemProtocol { public int getWalk_y() { return this.getOpcIntegerValue(item_walk_y); } - public Integer getItem_x() { - return this.getOpcIntegerValue(item_x); + public float getX() { + return this.getOpcFloatValue(item_x); } - public Integer getItem_y() { - return this.getOpcIntegerValue(item_y); + public float getY() { + return this.getOpcFloatValue(item_y); } @@ -180,6 +180,19 @@ public class ItemProtocol { return 0; } + public float getOpcFloatValue(String protocol) { + Float value = this.driver.getDoubleValue(protocol); + if (value == null) { + // log.error(this.getDriver().getDeviceCode() + ":protocol " + protocol + " 信号同步异常!"); + setIsonline(false); + } else { + setIsonline(true); + return value; + } + return 0; + + } + public static List getReadableItemDtos() { ArrayList list = new ArrayList<>(); list.add(new ItemDto(item_heartbeat, "心跳", "DB1.B0")); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/volume_two_manipulator/VolumeTwoManipulatorManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/volume_two_manipulator/VolumeTwoManipulatorManipulatorDeviceDriver.java index d9ea1bc4e..8d539bdcc 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/volume_two_manipulator/VolumeTwoManipulatorManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/volume_two_manipulator/VolumeTwoManipulatorManipulatorDeviceDriver.java @@ -101,16 +101,12 @@ public class VolumeTwoManipulatorManipulatorDeviceDriver extends AbstractOpcDevi int last_to_onset2 = 0; int to_type = 0; int last_to_type = 0; - /** - * 行走列 - */ - Integer x = null; - Integer last_x = null; - /** - * 行走层号 - */ - Integer y = 0; - Integer last_y = 0; + // x坐标 + float x = 0.0f; + float last_x = 0.0f; + // y坐标 + float y = 0.0f; + float last_y = 0.0f; int to_task = 0; int last_to_task = 0; @@ -169,8 +165,8 @@ public class VolumeTwoManipulatorManipulatorDeviceDriver extends AbstractOpcDevi error = this.itemProtocol.getError(); task = this.itemProtocol.getTask(); heartbeat = this.itemProtocol.getHeartbeat(); - x = this.itemProtocol.getItem_x(); - y = this.itemProtocol.getItem_y(); + x = this.itemProtocol.getX(); + y = this.itemProtocol.getY(); to_command = this.itemProtocol.getTo_command(); to_target1 = this.itemProtocol.getTo_target1(); to_onset1 = this.itemProtocol.getTo_onset1(); From 6da0f596bcc6bda09878c1f3b85978c516a8e0af Mon Sep 17 00:00:00 2001 From: yanps Date: Wed, 20 Mar 2024 14:26:44 +0800 Subject: [PATCH 11/17] =?UTF-8?q?add:=20=E5=A2=9E=E5=8A=A0=E4=BA=8C?= =?UTF-8?q?=E6=A5=BCNDC=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../run/TwoNDCSocketConnectionAutoRun.java | 3 +- .../nl/acs/opc/DeviceOpcProtocolRunable.java | 4 +-- .../log/OneNDCSocketConnectionAutoRun.xml | 4 +-- .../log/TwoNDCSocketConnectionAutoRun.xml | 33 +++++++++++++++++++ .../src/main/resources/logback-spring.xml | 1 + 5 files changed, 40 insertions(+), 5 deletions(-) create mode 100644 acs2/nladmin-system/nlsso-server/src/main/resources/log/TwoNDCSocketConnectionAutoRun.xml diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/auto/run/TwoNDCSocketConnectionAutoRun.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/auto/run/TwoNDCSocketConnectionAutoRun.java index f4c18fdda..17c83cd98 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/auto/run/TwoNDCSocketConnectionAutoRun.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/auto/run/TwoNDCSocketConnectionAutoRun.java @@ -256,7 +256,8 @@ public class TwoNDCSocketConnectionAutoRun extends AbstractAutoRunnable { if (device.getDeviceDriver() instanceof StandardAutodoorDeviceDriver) { standardAutodoorDeviceDriver = (StandardAutodoorDeviceDriver) device.getDeviceDriver(); try { - standardAutodoorDeviceDriver.writing("to_command", 2); + standardAutodoorDeviceDriver.writing("to_close", "1"); + standardAutodoorDeviceDriver.writing("to_open", "0"); } catch (Exception e) { log.info("下发电气信号失败:" + e.getMessage()); e.printStackTrace(); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/DeviceOpcProtocolRunable.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/DeviceOpcProtocolRunable.java index 605b76565..c01690d14 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/DeviceOpcProtocolRunable.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/opc/DeviceOpcProtocolRunable.java @@ -414,7 +414,7 @@ public class DeviceOpcProtocolRunable implements Runnable, DataCallback, ServerC if (!itemDto.getItem_code().endsWith("heartbeat") && !itemDto.getItem_code().endsWith("time")) { // 存在上次点位值为null情况 则不记录日志 LuceneLogDto luceneLogDto = new LuceneLogDto(itemDto.getOpc_server_code(), itemDto.getOpc_plc_code(), itemDto.getDevice_code(), itemDto.getItem_code().substring(itemDto.getItem_code().lastIndexOf(".") + 1), - String.valueOf(itemDto.getHis_item_value()), String.valueOf(value)); + String.valueOf(his), String.valueOf(value)); luceneLogDto.setLogType(LogTypeEnum.DEVICE_LOG.getDesc()); log.info("{}", JSON.toJSONString(luceneLogDto)); } @@ -434,7 +434,7 @@ public class DeviceOpcProtocolRunable implements Runnable, DataCallback, ServerC // log.warn("设备:{}信号{}变更从{}->{};信号快照:{}", new Object[]{itemDto.getDevice_code(), itemId, his, value}); if (!itemDto.getItem_code().endsWith("heartbeat") && !itemDto.getItem_code().endsWith("time")) { LuceneLogDto luceneLogDto = new LuceneLogDto(itemDto.getOpc_server_code(), itemDto.getOpc_plc_code(), itemDto.getDevice_code(), itemDto.getItem_code().substring(itemDto.getItem_code().lastIndexOf(".") + 1), - String.valueOf(itemDto.getHis_item_value()), String.valueOf(value)); + String.valueOf(his), String.valueOf(value)); luceneLogDto.setLogType(LogTypeEnum.DEVICE_LOG.getDesc()); log.info("{}", JSON.toJSONString(luceneLogDto)); } diff --git a/acs2/nladmin-system/nlsso-server/src/main/resources/log/OneNDCSocketConnectionAutoRun.xml b/acs2/nladmin-system/nlsso-server/src/main/resources/log/OneNDCSocketConnectionAutoRun.xml index ca3f78791..8f4151a72 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/resources/log/OneNDCSocketConnectionAutoRun.xml +++ b/acs2/nladmin-system/nlsso-server/src/main/resources/log/OneNDCSocketConnectionAutoRun.xml @@ -3,7 +3,7 @@ - + ${LOG_HOME}/一楼NDC系统/%d{yyyy-MM-dd}.%i.log @@ -28,6 +28,6 @@ - + diff --git a/acs2/nladmin-system/nlsso-server/src/main/resources/log/TwoNDCSocketConnectionAutoRun.xml b/acs2/nladmin-system/nlsso-server/src/main/resources/log/TwoNDCSocketConnectionAutoRun.xml new file mode 100644 index 000000000..63517b12f --- /dev/null +++ b/acs2/nladmin-system/nlsso-server/src/main/resources/log/TwoNDCSocketConnectionAutoRun.xml @@ -0,0 +1,33 @@ + + + + + + + + + ${LOG_HOME}/二楼NDC系统/%d{yyyy-MM-dd}.%i.log + + 15 + + 200MB + + 2GB + + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n + ${log.charset} + + + + + + + + + + + diff --git a/acs2/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml b/acs2/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml index 5e8238e7f..f53004205 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml +++ b/acs2/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml @@ -20,6 +20,7 @@ https://juejin.cn/post/6844903775631572999 + From bb012a2c4068f59928c0d9081597622b6151488c Mon Sep 17 00:00:00 2001 From: LENOVO <1793460677@qq.com> Date: Wed, 20 Mar 2024 15:00:59 +0800 Subject: [PATCH 12/17] =?UTF-8?q?fix:=20=E5=A0=86=E5=9E=9B=E6=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../standard_stacker/StandardStackerDeviceDriver.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/stacker/standard_stacker/StandardStackerDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/stacker/standard_stacker/StandardStackerDeviceDriver.java index b48a92b56..24b714249 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/stacker/standard_stacker/StandardStackerDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/stacker/standard_stacker/StandardStackerDeviceDriver.java @@ -473,9 +473,11 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme case 5: message = "universal_releasing_completed"; Map map = new HashMap<>(); + List list5 = new ArrayList<>(); map.put("code", "to_command"); map.put("value", 5); - list.add(map); + list5.add(map); + this.writing(list5); Instruction inst = checkInst(); try { finish_instruction(inst); @@ -489,7 +491,6 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme if (ObjectUtil.isNotNull(list1)) { this.writing(list1); } - list.remove(0); } } catch (Exception e) { e.printStackTrace(); From 0b9b99026239bca96c0bf99a0bce5848a2ac8c02 Mon Sep 17 00:00:00 2001 From: yanps Date: Wed, 20 Mar 2024 16:59:08 +0800 Subject: [PATCH 13/17] =?UTF-8?q?opt:=20=E7=83=98=E7=AE=B1=E8=A1=8C?= =?UTF-8?q?=E6=9E=B6=E7=9B=91=E6=8E=A7=E5=A4=A7=E5=B1=8F=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../oven_manipulator/OvenGantryManipulatorDeviceDriver.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/oven_manipulator/OvenGantryManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/oven_manipulator/OvenGantryManipulatorDeviceDriver.java index 7a7e821fc..a350b05d7 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/oven_manipulator/OvenGantryManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/oven_manipulator/OvenGantryManipulatorDeviceDriver.java @@ -1072,9 +1072,9 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i move = LangProcess.msg("universal_yes"); } - String requireSucess = LangProcess.msg("mark"); + String requireSucess = "0"; if (this.requireSucess) { - requireSucess = LangProcess.msg("no_mark"); + requireSucess = "1"; } jo.put("requireSucess", requireSucess); if (this.getAction() == 1) { @@ -1098,7 +1098,7 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i jo.put("isOnline", this.getIsonline()); jo.put("error", ErrorUtil.getDictDetail("hxhj_error_type", String.valueOf(this.getError()))); jo.put("isError", this.getIserror()); - jo.put("message", LangProcess.msg(message)); + jo.put("message", message); jo.put("notCreateTaskMessage", notCreateTaskMessage); jo.put("notCreateInstMessage", notCreateInstMessage); jo.put("feedMessage", LangProcess.msg(feedMessage)); From b548ca52058bb640caaee9b60c17330b9b0892d5 Mon Sep 17 00:00:00 2001 From: liuxy Date: Thu, 21 Mar 2024 10:33:09 +0800 Subject: [PATCH 14/17] =?UTF-8?q?rev=EF=BC=9A=E5=87=BA=E5=BA=93=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lms/nladmin-ui/src/views/wms/st/outbill/index.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lms/nladmin-ui/src/views/wms/st/outbill/index.vue b/lms/nladmin-ui/src/views/wms/st/outbill/index.vue index 36df88fc5..812698c2c 100644 --- a/lms/nladmin-ui/src/views/wms/st/outbill/index.vue +++ b/lms/nladmin-ui/src/views/wms/st/outbill/index.vue @@ -319,7 +319,7 @@ - + From d1571b82842c1dbdb5c010995cd7d8ad34bc0b2b Mon Sep 17 00:00:00 2001 From: LENOVO <1793460677@qq.com> Date: Thu, 21 Mar 2024 16:53:49 +0800 Subject: [PATCH 15/17] =?UTF-8?q?fix:=20=E7=8E=B0=E5=9C=BA=E8=81=94?= =?UTF-8?q?=E8=B0=83=E5=8A=A0=E5=A0=86=E5=9E=9B=E6=9C=BA=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/DeviceServiceImpl.java | 16 +++++ .../BoxManipulatorSiteDeviceDriver.java | 8 +-- .../conveyor/belt_conveyor/ItemProtocol.java | 2 +- .../BlankManipulatorDeviceDriver.java | 4 +- .../DryManipulatorDeviceDriver.java | 4 +- .../OvenGantryManipulatorDeviceDriver.java | 4 +- .../FoldDiscSiteDeviceDriver.java | 4 +- ...ConveyorWithScannerWeightDeviceDriver.java | 4 +- .../BoxPackageManipulatorDeviceDriver.java | 29 ++++----- .../InteractionJsonDTO.java | 10 ++- .../BoxStorageManipulatorDeviceDriver.java | 25 ++++---- .../box_storage_manipulator/ItemProtocol.java | 4 +- .../ReturnGoodManipulatorDeviceDriver.java | 21 ++++--- .../trapped_manipulator/ItemProtocol.java | 4 +- ...pedManipulatorManipulatorDeviceDriver.java | 23 +++---- ...TwoManipulatorManipulatorDeviceDriver.java | 16 ++--- .../device_driver/rgv/RgvDeviceDriver.java | 4 +- .../StandardStackerDeviceDriver.java | 61 ++++++------------- .../BlankManipulatorDeviceDriver.java | 2 +- .../OvenGantryManipulatorDeviceDriver.java | 4 +- .../PullHeadManipulatorDeviceDriver.java | 8 +-- .../PullTailManipulatorDeviceDriver.java | 4 +- .../SlitTwoManipulatorDeviceDriver.java | 4 +- .../service/InstructionService.java | 2 +- .../service/impl/InstructionServiceImpl.java | 28 --------- .../org/nl/config/language/LangProcess.java | 2 +- .../monitor/universal/universal.properties | 1 + 27 files changed, 128 insertions(+), 170 deletions(-) diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/impl/DeviceServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/impl/DeviceServiceImpl.java index 0f0fb600c..2a705dfa9 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/impl/DeviceServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/service/impl/DeviceServiceImpl.java @@ -29,6 +29,10 @@ import org.nl.acs.device.domain.DeviceRunpoint; import org.nl.acs.device.service.mapper.DeviceRunpointMapper; import org.nl.acs.device_driver.conveyor.belt_conveyor.BeltConveyorDeviceDriver; import org.nl.acs.device_driver.one_conveyor.scanner_weight_conveyor.ConveyorWithScannerWeightDeviceDriver; +import org.nl.acs.device_driver.one_manipulator.box_package_manipulator.BoxPackageManipulatorDeviceDriver; +import org.nl.acs.device_driver.one_manipulator.box_storage_manipulator.BoxStorageManipulatorDeviceDriver; +import org.nl.acs.device_driver.one_manipulator.return_good_manipulator.ReturnGoodManipulatorDeviceDriver; +import org.nl.acs.device_driver.one_manipulator.trapped_manipulator.TrappedManipulatorManipulatorDeviceDriver; import org.nl.acs.device_driver.one_manipulator.volume_two_manipulator.VolumeTwoManipulatorManipulatorDeviceDriver; import org.nl.acs.device_driver.stacker.standard_stacker.StandardStackerDeviceDriver; import org.nl.acs.device_driver.two_conveyor.oven_manipulator.OvenGantryManipulatorDeviceDriver; @@ -1031,6 +1035,18 @@ public class DeviceServiceImpl extends CommonServiceImpl i }else if (device.getDeviceDriver() instanceof BeltConveyorDeviceDriver) { BeltConveyorDeviceDriver beltConveyorDeviceDriver = (BeltConveyorDeviceDriver) device.getDeviceDriver(); beltConveyorDeviceDriver.setDeviceStatus(form); + }else if (device.getDeviceDriver() instanceof BoxPackageManipulatorDeviceDriver) { + BoxPackageManipulatorDeviceDriver boxPackageManipulatorDeviceDriver = (BoxPackageManipulatorDeviceDriver) device.getDeviceDriver(); + boxPackageManipulatorDeviceDriver.setDeviceStatus(form); + }else if (device.getDeviceDriver() instanceof BoxStorageManipulatorDeviceDriver) { + BoxStorageManipulatorDeviceDriver boxStorageManipulatorDeviceDriver = (BoxStorageManipulatorDeviceDriver) device.getDeviceDriver(); + boxStorageManipulatorDeviceDriver.setDeviceStatus(form); + }else if (device.getDeviceDriver() instanceof ReturnGoodManipulatorDeviceDriver) { + ReturnGoodManipulatorDeviceDriver returnGoodManipulatorDeviceDriver = (ReturnGoodManipulatorDeviceDriver) device.getDeviceDriver(); + returnGoodManipulatorDeviceDriver.setDeviceStatus(form); + }else if (device.getDeviceDriver() instanceof TrappedManipulatorManipulatorDeviceDriver) { + TrappedManipulatorManipulatorDeviceDriver trappedManipulatorManipulatorDeviceDriver = (TrappedManipulatorManipulatorDeviceDriver) device.getDeviceDriver(); + trappedManipulatorManipulatorDeviceDriver.setDeviceStatus(form); } } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/box_manipulator_site/BoxManipulatorSiteDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/box_manipulator_site/BoxManipulatorSiteDeviceDriver.java index aa355dcb8..a2e21c0bf 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/box_manipulator_site/BoxManipulatorSiteDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/box_manipulator_site/BoxManipulatorSiteDeviceDriver.java @@ -274,19 +274,19 @@ public class BoxManipulatorSiteDeviceDriver extends AbstractOpcDeviceDriver impl //if (!requireSucess) { String remark = "";; if (mode != 2) { - remark = remark + "universal_remark2"; + remark = "universal_remark2"; } if (move != 0) { - remark = remark + "universal_remark3"; + remark = "universal_remark3"; } if (task != 0) { - remark = remark + "universal_remark4"; + remark = "universal_remark4"; if (ObjectUtil.isNotEmpty(this.inst)) { this.inst = null; } } if (requireSucess) { - remark = remark + "universal_remark5"; + remark = "universal_remark5"; } this.setNotCreateTaskMessage(remark); //} diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/belt_conveyor/ItemProtocol.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/belt_conveyor/ItemProtocol.java index 29b39a622..9077fd383 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/belt_conveyor/ItemProtocol.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/belt_conveyor/ItemProtocol.java @@ -11,7 +11,7 @@ import java.util.List; @Slf4j @Data -public class ItemProtocol { +public class ItemProtocol { /** * 心跳 diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/manipulator/standard_manipulator/BlankManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/manipulator/standard_manipulator/BlankManipulatorDeviceDriver.java index 07dee0f30..f3b26ae2b 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/manipulator/standard_manipulator/BlankManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/manipulator/standard_manipulator/BlankManipulatorDeviceDriver.java @@ -268,13 +268,13 @@ // remark = remark + "光电信号(move)为有货状态,"; // } // if (task != 0) { -// remark = remark + "universal_remark4"; +// remark = "universal_remark4"; // if (ObjectUtil.isNotEmpty(this.inst)) { // this.inst = null; // } // } // if (requireSucess) { -// remark = remark + "universal_remark5"; +// remark = "universal_remark5"; // } // this.setNotCreateTaskMessage(remark); // //} diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/manipulator/standard_manipulator/DryManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/manipulator/standard_manipulator/DryManipulatorDeviceDriver.java index 011d11919..d18463010 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/manipulator/standard_manipulator/DryManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/manipulator/standard_manipulator/DryManipulatorDeviceDriver.java @@ -267,13 +267,13 @@ // remark = remark + "光电信号(move)为有货状态,"; // } // if (task != 0) { -// remark = remark + "universal_remark4"; +// remark = "universal_remark4"; // if (ObjectUtil.isNotEmpty(this.inst)) { // this.inst = null; // } // } // if (requireSucess) { -// remark = remark + "universal_remark5"; +// remark = "universal_remark5"; // } // this.setNotCreateTaskMessage(remark); // //} diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/manipulator/standard_manipulator/OvenGantryManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/manipulator/standard_manipulator/OvenGantryManipulatorDeviceDriver.java index 4443518e9..1adf84f54 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/manipulator/standard_manipulator/OvenGantryManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/manipulator/standard_manipulator/OvenGantryManipulatorDeviceDriver.java @@ -273,13 +273,13 @@ // remark = remark + "光电信号(move)为有货状态,"; // } // if (task != 0) { -// remark = remark + "universal_remark4"; +// remark = "universal_remark4"; // if (ObjectUtil.isNotEmpty(this.inst)) { // this.inst = null; // } // } // if (requireSucess) { -// remark = remark + "universal_remark5"; +// remark = "universal_remark5"; // } // this.setNotCreateTaskMessage(remark); // //} diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/fold_disc_site/FoldDiscSiteDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/fold_disc_site/FoldDiscSiteDeviceDriver.java index 6b9d6f562..49de8247c 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/fold_disc_site/FoldDiscSiteDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/fold_disc_site/FoldDiscSiteDeviceDriver.java @@ -242,10 +242,10 @@ public class FoldDiscSiteDeviceDriver extends AbstractOpcDeviceDriver implements //if (!requireSucess) { String remark = "";; if (mode != 2) { - remark = remark + "universal_remark2"; + remark = "universal_remark2"; } if (move != 0) { - remark = remark + "universal_remark3"; + remark = "universal_remark3"; } if (task != 0) { remark = remark + LangProcess.msg("universal_remark4"); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/scanner_weight_conveyor/ConveyorWithScannerWeightDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/scanner_weight_conveyor/ConveyorWithScannerWeightDeviceDriver.java index aced999f3..a5f50dd38 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/scanner_weight_conveyor/ConveyorWithScannerWeightDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/scanner_weight_conveyor/ConveyorWithScannerWeightDeviceDriver.java @@ -264,10 +264,10 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv //if (!requireSucess) { String remark = "";; if (mode != 2) { - remark = remark + "universal_remark2"; + remark = "universal_remark2"; } if (move != 0) { - remark = remark + "universal_remark3"; + remark = "universal_remark3"; } if (task != 0) { remark = remark + LangProcess.msg("universal_remark4"); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_package_manipulator/BoxPackageManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_package_manipulator/BoxPackageManipulatorDeviceDriver.java index 8e461e2b3..5506b97d4 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_package_manipulator/BoxPackageManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_package_manipulator/BoxPackageManipulatorDeviceDriver.java @@ -113,7 +113,7 @@ public class BoxPackageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i Boolean isonline = true; int hasGoods = 0; - String message = null; + String message = ""; Boolean iserror = false; private Date instruction_update_time = new Date(); private int instruction_update_time_out = 1000; @@ -219,19 +219,19 @@ public class BoxPackageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i } else { String remark = "";; if (mode != 2) { - remark = remark + "universal_remark2"; + remark = "universal_remark2"; } if (move != 0) { - remark = remark + "universal_remark3"; + remark = "universal_remark3"; } if (task != 0) { - remark = remark + "universal_remark4"; + remark = "universal_remark4"; if (ObjectUtil.isNotEmpty(this.inst)) { this.inst = null; } } if (requireSucess) { - remark = remark + "universal_remark5"; + remark = "universal_remark5"; } this.setNotCreateTaskMessage(remark); } @@ -293,16 +293,16 @@ public class BoxPackageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i }else { feedMessage = "universal_feedMessage5"; if (mode != 3) { - feedMessage = feedMessage + "universal_feedMessage1"; + feedMessage = "universal_feedMessage1"; } if (action != 8) { - feedMessage = feedMessage + "universal_feedMessage2"; + feedMessage = "universal_feedMessage2"; } if (move != 0) { - feedMessage = feedMessage + "universal_feedMessage3"; + feedMessage = "universal_feedMessage3"; } if (task == 0) { - feedMessage = feedMessage + "universal_feedMessage4"; + feedMessage = "universal_feedMessage4"; } } } @@ -470,19 +470,14 @@ public class BoxPackageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i map4.put("value", task); list.add(map4); if (ObjectUtil.isNotEmpty(interactionJsonDTO)) { - if (ObjectUtil.isNotEmpty(interactionJsonDTO.getSeq())) { - map5.put("code", "to_seq"); - map5.put("value", interactionJsonDTO.getSeq()); - list.add(map5); - } if (ObjectUtil.isNotEmpty(interactionJsonDTO.getLastOne())) { map6.put("code", "to_last_one"); map6.put("value", interactionJsonDTO.getLastOne()); list.add(map6); } - if (ObjectUtil.isNotEmpty(interactionJsonDTO.getDirection())) { - map7.put("code", "to_direction"); - map7.put("value", interactionJsonDTO.getDirection()); + if (ObjectUtil.isNotEmpty(interactionJsonDTO.getBoxNo())) { + map7.put("code", "to_box_no"); + map7.put("value", interactionJsonDTO.getBoxNo()); list.add(map7); } if (ObjectUtil.isNotEmpty(interactionJsonDTO.getMaxNo())) { diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_package_manipulator/InteractionJsonDTO.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_package_manipulator/InteractionJsonDTO.java index a7695163f..2e45f015c 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_package_manipulator/InteractionJsonDTO.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_package_manipulator/InteractionJsonDTO.java @@ -9,14 +9,12 @@ public class InteractionJsonDTO { *木箱最大数量 */ private String maxNo; + /** - *子卷摆放方向 + *木箱最大数量 */ - private String direction; - /** - *下发木箱工位顺序 - */ - private String seq; + private String boxNo; + /** *是否最后子卷 diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_storage_manipulator/BoxStorageManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_storage_manipulator/BoxStorageManipulatorDeviceDriver.java index 0cc460828..3aa349481 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_storage_manipulator/BoxStorageManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_storage_manipulator/BoxStorageManipulatorDeviceDriver.java @@ -193,19 +193,19 @@ public class BoxStorageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i } else { String remark = "";; if (mode != 2) { - remark = remark + "universal_remark2"; + remark = "universal_remark2"; } if (move != 0) { - remark = remark + "universal_remark3"; + remark = "universal_remark3"; } if (task != 0) { - remark = remark + "universal_remark4"; + remark = "universal_remark4"; if (ObjectUtil.isNotEmpty(this.inst)) { this.inst = null; } } if (requireSucess) { - remark = remark + "universal_remark5"; + remark = "universal_remark5"; } this.setNotCreateTaskMessage(remark); } @@ -254,16 +254,16 @@ public class BoxStorageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i } else { feedMessage = "universal_feedMessage5"; if (mode != 3) { - feedMessage = feedMessage + "universal_feedMessage1"; + feedMessage = "universal_feedMessage1"; } if (action != 8) { - feedMessage = feedMessage + "universal_feedMessage2"; + feedMessage = "universal_feedMessage2"; } if (move != 0) { - feedMessage = feedMessage + "universal_feedMessage3"; + feedMessage = "universal_feedMessage3"; } if (task == 0) { - feedMessage = feedMessage + "universal_feedMessage4"; + feedMessage = "universal_feedMessage4"; } } } @@ -351,9 +351,10 @@ public class BoxStorageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i notCreateInstMessage = "universal_notCreateInstMessage1"; throw new BadRequestException("设备:" + nextDevice.getDevice_code() + "未设置电气调度号!"); } + //存在托盘才可以申请任务 BeltConveyorDeviceDriver beltConveyorDeviceDriver; - if (startDevice.getDeviceDriver() instanceof BeltConveyorDeviceDriver) { - beltConveyorDeviceDriver = (BeltConveyorDeviceDriver) startDevice.getDeviceDriver(); + if (nextDevice.getDeviceDriver() instanceof BeltConveyorDeviceDriver) { + beltConveyorDeviceDriver = (BeltConveyorDeviceDriver) nextDevice.getDeviceDriver(); if (beltConveyorDeviceDriver.getMove() != 1) { notCreateInstMessage = "universal_notCreateInstMessage2"; return false; @@ -426,12 +427,12 @@ public class BoxStorageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i list.add(map4); if (ObjectUtil.isNotEmpty(interactionJsonDTO)) { if (ObjectUtil.isNotEmpty(interactionJsonDTO.getWeight())) { - map5.put("code", "to_weight"); + map5.put("code", "to_width"); map5.put("value", interactionJsonDTO.getWeight()); list.add(map5); } if (ObjectUtil.isNotEmpty(interactionJsonDTO.getLength())) { - map6.put("code", "to_lenght"); + map6.put("code", "to_length"); map6.put("value", interactionJsonDTO.getLength()); list.add(map6); } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_storage_manipulator/ItemProtocol.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_storage_manipulator/ItemProtocol.java index fd5d762b9..8f3d8a53b 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_storage_manipulator/ItemProtocol.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_storage_manipulator/ItemProtocol.java @@ -80,7 +80,7 @@ public class ItemProtocol { /** *木箱宽度 */ - public static String item_to_weight = "to_weight"; + public static String item_to_width = "to_width"; /** *木箱高度 */ @@ -226,7 +226,7 @@ public class ItemProtocol { list.add(new ItemDto(item_to_task, "下发任务号", "DB2.D6")); list.add(new ItemDto(item_to_onset, "下发起始站", "DB2.W2")); list.add(new ItemDto(item_to_length, "木箱长度", "DB601.W14")); - list.add(new ItemDto(item_to_weight, "木箱宽度", "DB601.W16")); + list.add(new ItemDto(item_to_width, "木箱宽度", "DB601.W16")); list.add(new ItemDto(item_to_height, "木箱高度", "DB601.W18")); list.add(new ItemDto(item_to_barcode, "下发木箱条码", "DB601.STRING1.50")); list.add(new ItemDto(item_to_layer, "下发木箱层数", "DB601.W22")); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/return_good_manipulator/ReturnGoodManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/return_good_manipulator/ReturnGoodManipulatorDeviceDriver.java index 7d346a879..5c413a60e 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/return_good_manipulator/ReturnGoodManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/return_good_manipulator/ReturnGoodManipulatorDeviceDriver.java @@ -203,19 +203,19 @@ public class ReturnGoodManipulatorDeviceDriver extends AbstractOpcDeviceDriver i } else { String remark = "";; if (mode != 2) { - remark = remark + "universal_remark2"; + remark = "universal_remark2"; } if (move != 0) { - remark = remark + "universal_remark3"; + remark = "universal_remark3"; } if (task != 0) { - remark = remark + "universal_remark4"; + remark = "universal_remark4"; if (ObjectUtil.isNotEmpty(this.inst)) { this.inst = null; } } if (requireSucess) { - remark = remark + "universal_remark5"; + remark = "universal_remark5"; } this.setNotCreateTaskMessage(remark); } @@ -274,16 +274,16 @@ public class ReturnGoodManipulatorDeviceDriver extends AbstractOpcDeviceDriver i } else { feedMessage = "universal_feedMessage5"; if (mode != 3) { - feedMessage = feedMessage + "universal_feedMessage1"; + feedMessage = "universal_feedMessage1"; } if (action != 8) { - feedMessage = feedMessage + "universal_feedMessage2"; + feedMessage = "universal_feedMessage2"; } if (move != 0) { - feedMessage = feedMessage + "universal_feedMessage3"; + feedMessage = "universal_feedMessage3"; } if (task == 0) { - feedMessage = feedMessage + "universal_feedMessage4"; + feedMessage = "universal_feedMessage4"; } } } @@ -374,9 +374,10 @@ public class ReturnGoodManipulatorDeviceDriver extends AbstractOpcDeviceDriver i throw new BadRequestException("设备:" + nextDevice.getDevice_code() + "未设置电气调度号!"); } + //存在托盘才可以申请任务 BeltConveyorDeviceDriver beltConveyorDeviceDriver; - if (startDevice.getDeviceDriver() instanceof BeltConveyorDeviceDriver) { - beltConveyorDeviceDriver = (BeltConveyorDeviceDriver) startDevice.getDeviceDriver(); + if (nextDevice.getDeviceDriver() instanceof BeltConveyorDeviceDriver) { + beltConveyorDeviceDriver = (BeltConveyorDeviceDriver) nextDevice.getDeviceDriver(); if (beltConveyorDeviceDriver.getMove() != 1) { notCreateInstMessage = "universal_notCreateInstMessage2"; return false; diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/trapped_manipulator/ItemProtocol.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/trapped_manipulator/ItemProtocol.java index ad011548c..a128f1334 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/trapped_manipulator/ItemProtocol.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/trapped_manipulator/ItemProtocol.java @@ -84,7 +84,7 @@ public class ItemProtocol { /** *木箱宽度 */ - public static String item_to_weight = "to_weight"; + public static String item_to_width = "to_width"; /** *木箱高度 */ @@ -219,7 +219,7 @@ public class ItemProtocol { list.add(new ItemDto(item_to_onset, "下发起始站", "DB2.W2")); list.add(new ItemDto(item_to_container_type, "下发托盘类型", "DB102.B8")); list.add(new ItemDto(item_to_length, "木箱长度", "DB601.W10")); - list.add(new ItemDto(item_to_weight, "木箱宽度", "DB601.W12")); + list.add(new ItemDto(item_to_width, "木箱宽度", "DB601.W12")); list.add(new ItemDto(item_to_height, "木箱高度", "DB601.W14")); list.add(new ItemDto(item_to_template, "堆叠模板", "DB601.W16")); list.add(new ItemDto(item_to_is_binding, "下发是否捆轧", "DB601.D10")); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/trapped_manipulator/TrappedManipulatorManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/trapped_manipulator/TrappedManipulatorManipulatorDeviceDriver.java index a555ccbd6..ce6240336 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/trapped_manipulator/TrappedManipulatorManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/trapped_manipulator/TrappedManipulatorManipulatorDeviceDriver.java @@ -18,6 +18,7 @@ import org.nl.acs.device_driver.DeviceDriver; import org.nl.acs.device_driver.FeedLmsRealFailed; import org.nl.acs.device_driver.RouteableDeviceDriver; import org.nl.acs.device_driver.box_manipulator_site.BoxManipulatorSiteDeviceDriver; +import org.nl.acs.device_driver.conveyor.belt_conveyor.BeltConveyorDeviceDriver; import org.nl.acs.device_driver.conveyor.siemens_conveyor.SiemensConveyorDeviceDriver; import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; @@ -206,13 +207,13 @@ public class TrappedManipulatorManipulatorDeviceDriver extends AbstractOpcDevice remark = remark + "光电信号(move)为有货状态,"; } if (task != 0) { - remark = remark + "universal_remark4"; + remark = "universal_remark4"; if (ObjectUtil.isNotEmpty(this.inst)) { this.inst = null; } } if (requireSucess) { - remark = remark + "universal_remark5"; + remark = "universal_remark5"; } this.setNotCreateTaskMessage(remark); } @@ -272,16 +273,16 @@ public class TrappedManipulatorManipulatorDeviceDriver extends AbstractOpcDevice }else { feedMessage = "universal_feedMessage5"; if (mode != 3) { - feedMessage = feedMessage + "universal_feedMessage1"; + feedMessage = "universal_feedMessage1"; } if (action != 8) { - feedMessage = feedMessage + "universal_feedMessage2"; + feedMessage = "universal_feedMessage2"; } if (move != 0) { - feedMessage = feedMessage + "universal_feedMessage3"; + feedMessage = "universal_feedMessage3"; } if (task == 0) { - feedMessage = feedMessage + "universal_feedMessage4"; + feedMessage = "universal_feedMessage4"; } } } @@ -369,10 +370,10 @@ public class TrappedManipulatorManipulatorDeviceDriver extends AbstractOpcDevice } - SiemensConveyorDeviceDriver siemensConveyorDeviceDriver; - if (startDevice.getDeviceDriver() instanceof SiemensConveyorDeviceDriver) { - siemensConveyorDeviceDriver = (SiemensConveyorDeviceDriver) startDevice.getDeviceDriver(); - if (siemensConveyorDeviceDriver.getMove() != 1) { + BeltConveyorDeviceDriver beltConveyorDeviceDriver; + if (startDevice.getDeviceDriver() instanceof BeltConveyorDeviceDriver) { + beltConveyorDeviceDriver = (BeltConveyorDeviceDriver) startDevice.getDeviceDriver(); + if (beltConveyorDeviceDriver.getMove() != 1) { notCreateInstMessage = "universal_notCreateInstMessage2"; return false; } @@ -445,7 +446,7 @@ public class TrappedManipulatorManipulatorDeviceDriver extends AbstractOpcDevice list.add(map4); if (ObjectUtil.isNotEmpty(interactionJsonDTO)) { if (ObjectUtil.isNotEmpty(interactionJsonDTO.getWeight())) { - map5.put("code", "to_weight"); + map5.put("code", "to_width"); map5.put("value", interactionJsonDTO.getWeight()); list.add(map5); } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/volume_two_manipulator/VolumeTwoManipulatorManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/volume_two_manipulator/VolumeTwoManipulatorManipulatorDeviceDriver.java index 8d539bdcc..db731e7fa 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/volume_two_manipulator/VolumeTwoManipulatorManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/volume_two_manipulator/VolumeTwoManipulatorManipulatorDeviceDriver.java @@ -218,19 +218,19 @@ public class VolumeTwoManipulatorManipulatorDeviceDriver extends AbstractOpcDevi } else { String remark = ""; if (mode != 2) { - remark = remark + "universal_remark2"; + remark = "universal_remark2"; } if (move != 0) { - remark = remark + "universal_remark3"; + remark = "universal_remark3"; } if (task != 0) { - remark = remark + "universal_remark4"; + remark = "universal_remark4"; if (ObjectUtil.isNotEmpty(this.inst)) { this.inst = null; } } if (requireSucess) { - remark = remark + "universal_remark5"; + remark = "universal_remark5"; } this.setNotCreateTaskMessage(remark); } @@ -294,16 +294,16 @@ public class VolumeTwoManipulatorManipulatorDeviceDriver extends AbstractOpcDevi } else { feedMessage = "universal_feedMessage5"; if (mode != 3) { - feedMessage = feedMessage + "universal_feedMessage1"; + feedMessage = "universal_feedMessage1"; } if (action != 8) { - feedMessage = feedMessage + "universal_feedMessage2"; + feedMessage = "universal_feedMessage2"; } if (move != 0) { - feedMessage = feedMessage + "universal_feedMessage3"; + feedMessage = "universal_feedMessage3"; } if (task == 0) { - feedMessage = feedMessage + "universal_feedMessage4"; + feedMessage = "universal_feedMessage4"; } } } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/rgv/RgvDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/rgv/RgvDeviceDriver.java index d2804ec71..f4a4938a5 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/rgv/RgvDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/rgv/RgvDeviceDriver.java @@ -243,10 +243,10 @@ public class RgvDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDr String remark = ""; ; if (mode != 2) { - remark = remark + "universal_remark2"; + remark = "universal_remark2"; } if (move != 0) { - remark = remark + "universal_remark3"; + remark = "universal_remark3"; } if (task != 0) { remark = remark + LangProcess.msg("universal_remark4"); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/stacker/standard_stacker/StandardStackerDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/stacker/standard_stacker/StandardStackerDeviceDriver.java index 24b714249..644c049b1 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/stacker/standard_stacker/StandardStackerDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/stacker/standard_stacker/StandardStackerDeviceDriver.java @@ -69,7 +69,7 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme AcsToWmsService acsToWmsService = SpringContextHolder.getBean(AcsToWmsServiceImpl.class); - LuceneExecuteLogService luceneExecuteLogService = SpringContextHolder.getBean("luceneExecuteLogServiceImpl"); + LuceneExecuteLogService luceneExecuteLogService = SpringContextHolder.getBean("luceneExecuteLogServiceImpl"); public static final String REDIS_MOVE_BOX = "MOVE:MOVE_TASK"; @@ -284,8 +284,6 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme Instruction inst = null; - - @Override public Device getDevice() { return this.device; @@ -319,7 +317,6 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme storage_cache = this.itemProtocol.getItem_storage_cache(); - // 更新指令状态 if (mode == 3 && task > 0) { Date date = new Date(); @@ -388,7 +385,7 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme case 2: message = "universal_completed"; Instruction instruction = checkInst(); - if (ObjectUtil.isEmpty(instruction)){ + if (ObjectUtil.isEmpty(instruction)) { message = "universal_message4"; break; } @@ -473,25 +470,12 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme case 5: message = "universal_releasing_completed"; Map map = new HashMap<>(); - List list5 = new ArrayList<>(); map.put("code", "to_command"); map.put("value", 5); - list5.add(map); - this.writing(list5); + list.add(map); Instruction inst = checkInst(); try { finish_instruction(inst); - if (ObjectUtil.isNotEmpty(redisUtils.get(REDIS_MOVE_BOX))){ - String taskRedis = redisUtils.get(REDIS_MOVE_BOX).toString(); - task = Integer.valueOf(taskRedis); - Instruction instOld = checkInst(); - List list1 = new ArrayList(); - pakageCommand(list1, taskRedis); - pakagePlc(instOld, list1); - if (ObjectUtil.isNotNull(list1)) { - this.writing(list1); - } - } } catch (Exception e) { e.printStackTrace(); } @@ -569,6 +553,7 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme /** * 申请更新点位 + * * @param type */ private void applyUpdatePointCode(String type) { @@ -578,7 +563,7 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme return; } else { Instruction instruction = instructionService.findByCode(String.valueOf(task)); - if (ObjectUtil.isEmpty(instruction)){ + if (ObjectUtil.isEmpty(instruction)) { message = "one_message9"; return; } @@ -605,35 +590,24 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme if (type.equals(StandarStirageErroEnum.VOIDANCE.getType())) { updateData1(poinCode, instruction, point, split); List list = new ArrayList(); - pakageData(list,point, split); + pakageData(list, point, split); } if (type.equals(StandarStirageErroEnum.BLOCK_IN.getType()) || type.equals(StandarStirageErroEnum.FILL.getType())) { updateData2(poinCode, instruction, point, split); List list = new ArrayList(); - pakageData(list,point, split); + pakageData(list, point, split); } } - if (StrUtil.isNotEmpty(jo.getString("task_id"))) { - //取货潜货位阻挡做完移库任务 - if (type.equals(StandarStirageErroEnum.BLOCK_OUT.getType())) { - //存缓存 - redisUtils.set(REDIS_MOVE_BOX, task); - TaskDto taskId = taskserver.findById(jo.getString("task_id")); - Instruction instructionDDJ = instructionService.creatDDJInstruction(taskId.getTask_id()); - List list = new ArrayList(); - if (ObjectUtil.isNotEmpty(taskId)) { - if (StrUtil.isNotEmpty(instructionDDJ.getInstruction_code())) { - task = Integer.valueOf(instructionDDJ.getInstruction_code()); - pakageCommand(list,instructionDDJ.getInstruction_code()); - } - String poinCodeMove = taskId.getStart_point_code(); - String[] split = poinCodeMove.split("-"); - Device point = deviceAppService.findDeviceByCode(split[0]); - pakageData(list, point, split); - } - } + //取货潜货位阻挡做完移库任务 + if (type.equals(StandarStirageErroEnum.BLOCK_OUT.getType())) { + //获取出库指令更新其优先级和状态 + Instruction instruction1 = checkInst(); + instruction1.setPriority("2"); + instruction1.setInstruction_status("0"); + instructionService.update(instruction1); + } - }catch (Exception e){ + } catch (Exception e) { this.requireSucess = true; e.printStackTrace(); } @@ -722,7 +696,6 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme } - /** * 申请任务 * @@ -844,7 +817,7 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme list.add(map7); } - private void pakageCommand( List list, String inst) { + private void pakageCommand(List list, String inst) { HashMap map1 = new HashMap(); map1.put("code", "to_device_code"); map1.put("value", this.getDevice().getAddress()); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/blank_manipulator/BlankManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/blank_manipulator/BlankManipulatorDeviceDriver.java index 51b2e20cf..166fc6b53 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/blank_manipulator/BlankManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/blank_manipulator/BlankManipulatorDeviceDriver.java @@ -306,7 +306,7 @@ public class BlankManipulatorDeviceDriver extends AbstractOpcDeviceDriver implem } else { feedMessage = "universal_feedMessage5"; if (mode != 3) { - feedMessage = feedMessage + "universal_feedMessage1"; + feedMessage = "universal_feedMessage1"; } if (action != 5) { feedMessage = feedMessage + "two_message4"; diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/oven_manipulator/OvenGantryManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/oven_manipulator/OvenGantryManipulatorDeviceDriver.java index a350b05d7..8e979d905 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/oven_manipulator/OvenGantryManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/oven_manipulator/OvenGantryManipulatorDeviceDriver.java @@ -226,13 +226,13 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i remark = remark + "光电信号(move)为有货状态,"; } if (task != 0) { - remark = remark + "universal_remark4"; + remark = "universal_remark4"; if (ObjectUtil.isNotEmpty(this.inst)) { this.inst = null; } } if (requireSucess) { - remark = remark + "universal_remark5"; + remark = "universal_remark5"; } this.setNotCreateTaskMessage(remark); //} diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/pull_head_manipulator/PullHeadManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/pull_head_manipulator/PullHeadManipulatorDeviceDriver.java index 1dfafe494..cbc67c06e 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/pull_head_manipulator/PullHeadManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/pull_head_manipulator/PullHeadManipulatorDeviceDriver.java @@ -325,19 +325,19 @@ public class PullHeadManipulatorDeviceDriver extends AbstractOpcDeviceDriver imp //if (!requireSucess) { String remark = ""; if (mode != 2) { - remark = remark + "universal_remark2"; + remark = "universal_remark2"; } if (move != 0) { - remark = remark + "universal_remark3"; + remark = "universal_remark3"; } if (task != 0) { - remark = remark + "universal_remark4"; + remark = "universal_remark4"; if (ObjectUtil.isNotEmpty(this.inst)) { this.inst = null; } } if (requireSucess) { - remark = remark + "universal_remark5"; + remark = "universal_remark5"; } this.setNotCreateTaskMessage(remark); //} diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/pull_tail_manipulator/PullTailManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/pull_tail_manipulator/PullTailManipulatorDeviceDriver.java index 28d3d20b9..b302497eb 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/pull_tail_manipulator/PullTailManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/pull_tail_manipulator/PullTailManipulatorDeviceDriver.java @@ -329,13 +329,13 @@ public class PullTailManipulatorDeviceDriver extends AbstractOpcDeviceDriver imp remark = remark + "光电信号(move)为有货状态,"; } if (task != 0) { - remark = remark + "universal_remark4"; + remark = "universal_remark4"; if (ObjectUtil.isNotEmpty(this.inst)) { this.inst = null; } } if (requireSucess) { - remark = remark + "universal_remark5"; + remark = "universal_remark5"; } this.setNotCreateTaskMessage(remark); //} diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/slit_two_manipulator/SlitTwoManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/slit_two_manipulator/SlitTwoManipulatorDeviceDriver.java index 6f13ce098..f15bef5cc 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/slit_two_manipulator/SlitTwoManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/slit_two_manipulator/SlitTwoManipulatorDeviceDriver.java @@ -218,7 +218,7 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl if (!requireSucess) { String remark = ""; if (mode != 2) { - remark = remark + "universal_remark2"; + remark = "universal_remark2"; } if (move1 != 0) { remark = remark + "universal_remark6"; @@ -227,7 +227,7 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl remark = remark + "universal_remark7"; } if (task != 0) { - remark = remark + "universal_remark4"; + remark = "universal_remark4"; } this.setNotCreateTaskMessage(remark); } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/InstructionService.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/InstructionService.java index 7197f3a23..39346beda 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/InstructionService.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/InstructionService.java @@ -185,7 +185,7 @@ public interface InstructionService extends CommonService { void create(Instruction dto) throws Exception; - Instruction creatDDJInstruction(String taskId); + /** * 创建2 diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java index a20ce577a..551db17c0 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java @@ -528,34 +528,6 @@ public class InstructionServiceImpl extends CommonServiceImpl Date: Thu, 21 Mar 2024 17:14:44 +0800 Subject: [PATCH 16/17] =?UTF-8?q?rev:=E4=BB=BB=E5=8A=A1=E7=9C=8B=E6=9D=BF?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/org/nl/acs/AcsConfig.java | 4 + .../BeltConveyorDeviceDriver.java | 43 +++--- .../led/led_screen/LedScreenDeviceDriver.java | 1 + ...ConveyorWithScannerWeightDeviceDriver.java | 53 +++++++ .../device_driver/rgv/RgvDeviceDriver.java | 35 ----- .../BlankManipulatorDeviceDriver.java | 26 ---- .../blanking_button/BlankingButtonDriver.java | 27 ---- .../GreenFoilMachineButtonDriver.java | 26 ---- .../InflatableShaftLibraryDeviceDriver.java | 22 --- .../PlugPullDeviceSiteDeviceDriver.java | 138 ------------------ .../PullHeadManipulatorDeviceDriver.java | 87 ++++------- .../PullTailManipulatorDeviceDriver.java | 46 ------ .../SlitTwoManipulatorDeviceDriver.java | 2 - .../SubvolumeWeighingStationDriver.java | 18 --- .../WasteFoilWeighingStationDriver.java | 22 --- .../wms/service/impl/WmsToAcsServiceImpl.java | 2 - .../task/service/impl/TaskServiceImpl.java | 2 +- .../taskscreen/rest/TaskScreenController.java | 2 - .../service/impl/TaskScreenServiceImpl.java | 13 +- .../nl/system/service/param/dao/Param.java | 2 - 20 files changed, 117 insertions(+), 454 deletions(-) diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/AcsConfig.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/AcsConfig.java index 536cdf88e..0f64f17f5 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/AcsConfig.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/AcsConfig.java @@ -53,6 +53,10 @@ public interface AcsConfig { * 二楼2区AGV系统端口 */ String AGVPORT22 = "agvport22"; + /** + * acsIP地址 + */ + String ACSIP = "acsIP"; /** * 指定AGV系统 */ diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/belt_conveyor/BeltConveyorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/belt_conveyor/BeltConveyorDeviceDriver.java index 2e4f0e196..2ef2af36b 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/belt_conveyor/BeltConveyorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/belt_conveyor/BeltConveyorDeviceDriver.java @@ -272,7 +272,7 @@ public class BeltConveyorDeviceDriver extends AbstractOpcDeviceDriver implements break; case 2: //申请任务 - if (move == 1 && !requireSucess) { + if (move == 1 && !requireSucess && task==0) { instruction_require(); } break; @@ -490,7 +490,7 @@ public class BeltConveyorDeviceDriver extends AbstractOpcDeviceDriver implements } List list = new ArrayList(); writeData(next_addr, list, inst); - led_message = getLedMessage(inst); +// led_message = getLedMessage(inst); requireSucess = true; return true; } else { @@ -499,7 +499,7 @@ public class BeltConveyorDeviceDriver extends AbstractOpcDeviceDriver implements if (ObjectUtil.isNull(taskdto)) { return false; } - if (ObjectUtil.isNotNull(taskdto) && TaskTypeEnum.Conveyor_Task.getIndex().equals(taskdto.getTask_type())) { + if (ObjectUtil.isNotNull(taskdto)) { //判断指令的起点和当前的设备号相同 if (!taskdto.getStart_device_code().equals(device_code)) { return false; @@ -565,7 +565,7 @@ public class BeltConveyorDeviceDriver extends AbstractOpcDeviceDriver implements String next_addr = nextdevice.getExtraValue().get("address").toString(); List list = new ArrayList(); writeData(next_addr, list, instdto); - led_message = getLedMessage(instdto); +// led_message = getLedMessage(instdto); requireSucess = true; return true; } @@ -703,23 +703,24 @@ public class BeltConveyorDeviceDriver extends AbstractOpcDeviceDriver implements return jo; } - /** - * 获取任务信息 - */ - public JSONObject getLedMessage(Instruction instdto) { - JSONObject json = new JSONObject(); - json.put("task_code", instdto.getTask_code()); - json.put("inst_code", instdto.getInstruction_code()); - json.put("start_device_code", instdto.getStart_device_code()); - json.put("next_device_code", instdto.getNext_device_code()); - json.put("material_type", instdto.getMaterial()); - json.put("quantity", instdto.getQuantity()); - json.put("vehicle_code", instdto.getVehicle_code()); - json.put("instruction_status", instdto.getInstruction_status()); - json.put("entry_time", instdto.getCreate_time()); - json.put("ip", localhost); - return json; - } +// /** +// * 获取任务信息 +// */ +// public JSONObject getLedMessage(Instruction instdto) { +// JSONObject json = new JSONObject(); +// json.put("task_code", instdto.getTask_code()); +// json.put("inst_code", instdto.getInstruction_code()); +// json.put("start_device_code", instdto.getStart_device_code()); +// json.put("next_device_code", instdto.getNext_device_code()); +// json.put("material_type", instdto.getMaterial()); +// json.put("quantity", instdto.getQuantity()); +// json.put("vehicle_code", instdto.getVehicle_code()); +// json.put("instruction_status", instdto.getInstruction_status()); +// json.put("entry_time", instdto.getCreate_time()); +// String acsIp = paramService.findByCode(AcsConfig.ACSIP).getValue(); +// json.put("ip", acsIp); +// return json; +// } /** diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/led/led_screen/LedScreenDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/led/led_screen/LedScreenDeviceDriver.java index be389c2bd..6f9df8f70 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/led/led_screen/LedScreenDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/led/led_screen/LedScreenDeviceDriver.java @@ -20,6 +20,7 @@ import org.nl.acs.monitor.DeviceStageMonitor; public class LedScreenDeviceDriver extends AbstractDeviceDriver implements DeviceDriver, ExecutableDeviceDriver, RouteableDeviceDriver, DeviceStageMonitor { @Override public void execute() { + //todo:判断当前对接位有货变没货后十五秒清屏 } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/scanner_weight_conveyor/ConveyorWithScannerWeightDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/scanner_weight_conveyor/ConveyorWithScannerWeightDeviceDriver.java index a5f50dd38..969fb3a22 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/scanner_weight_conveyor/ConveyorWithScannerWeightDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/scanner_weight_conveyor/ConveyorWithScannerWeightDeviceDriver.java @@ -12,6 +12,7 @@ import lombok.Data; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.ObjectUtils; +import org.nl.acs.AcsConfig; import org.nl.acs.common.base.CommonFinalParam; import org.nl.acs.device.domain.Device; import org.nl.acs.device.service.DeviceExtraService; @@ -45,6 +46,7 @@ import org.nl.config.SpringContextHolder; import org.nl.config.language.LangProcess; import org.nl.config.lucene.service.LuceneExecuteLogService; import org.nl.config.lucene.service.dto.LuceneLogDto; +import org.nl.system.service.param.ISysParamService; import org.springframework.beans.factory.annotation.Autowired; import java.util.*; @@ -76,6 +78,8 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv DeviceAppService deviceAppservice = SpringContextHolder.getBean(DeviceAppService.class); LuceneExecuteLogService luceneExecuteLogService = SpringContextHolder.getBean(LuceneExecuteLogService.class); + + ISysParamService paramService = SpringContextHolder.getBean(ISysParamService.class); //工作模式 int mode = 0; int last_mode = 0; @@ -165,6 +169,10 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv //当前指令 Instruction inst = null; + /** + * led点阵屏信息 + */ + JSONObject led_message = null; //0 无任务执行 1更新指令状态 2下发电气信号 3允许取货 允许放货 5放货完成 int now_steps_type = 0; @@ -217,6 +225,13 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv logServer.deviceExecuteLog(this.device_code, "", "", "信号mode:" + last_mode + "->" + mode + "复位请求标记:" + requireSucess); logServer.deviceExecuteLog(this.device_code, "", "", "信号mode:" + last_mode + "->" + mode); } + if(move !=last_move){ + if (ObjectUtil.isNotEmpty(inst)){ + Thread.sleep(10000); + led_message = clearMessage(); + } + requireSucess = false; + } if (move != 0 && task > 0) { update_instruction_status(); @@ -483,6 +498,7 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv map3.put("value", "1"); list.add(map3); this.writing(list); + led_message = getLedMessage(instdto); requireSucess = true; while (!StrUtil.equals(this.getOpcValueAccessor().getValue(this.getOpcServer() + "." + this.getOpcPlc() + "." + this.getDevice_code() + ".task").toString() , instdto.getInstruction_code())) { @@ -503,6 +519,43 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv } } + /** + * 获取任务信息 + */ + public JSONObject getLedMessage(Instruction instdto) { + JSONObject json = new JSONObject(); + json.put("task_code", instdto.getTask_code()); + json.put("inst_code", instdto.getInstruction_code()); + json.put("start_device_code", instdto.getStart_device_code()); + json.put("next_device_code", instdto.getNext_device_code()); + json.put("material_type", instdto.getMaterial()); + json.put("quantity", instdto.getQuantity()); + json.put("vehicle_code", instdto.getVehicle_code()); + json.put("instruction_status", instdto.getInstruction_status()); + json.put("entry_time", instdto.getCreate_time()); + String acsIp = paramService.findByCode(AcsConfig.ACSIP).getValue(); + json.put("ip", acsIp); + return json; + } + + /** + * 清空任务信息任务信息 + */ + public JSONObject clearMessage() { + JSONObject json = new JSONObject(); + json.put("task_code", ""); + json.put("inst_code", ""); + json.put("start_device_code", ""); + json.put("next_device_code", ""); + json.put("material_type", ""); + json.put("quantity", ""); + json.put("vehicle_code", ""); + json.put("instruction_status", ""); + json.put("entry_time", ""); + json.put("ip", ""); + return json; + } + private void packageInstrcutData(Instruction instdto, TaskDto taskdto, String taskid, String taskcode, String vehiclecode, String priority,String startCode, String endCode) { instdto.setInstruction_id(IdUtil.simpleUUID()); instdto.setRoute_plan_code(taskdto.getRoute_plan_code()); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/rgv/RgvDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/rgv/RgvDeviceDriver.java index f4a4938a5..131e769ad 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/rgv/RgvDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/rgv/RgvDeviceDriver.java @@ -172,43 +172,8 @@ public class RgvDeviceDriver extends AbstractOpcDeviceDriver implements DeviceDr to_task = this.itemProtocol.getTo_task(); to_sub_volume_no = this.itemProtocol.getTo_sub_volume_no(); - if (to_sub_volume_no != last_to_sub_volume_no) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号to_sub_volume_no:" + last_to_sub_volume_no + "->" + to_sub_volume_no); - } - - if (to_command != last_to_command) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号to_command:" + last_to_command + "->" + to_command); - } - if (to_target != last_to_target) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号to_target:" + last_to_target + "->" + to_target); - } - if (to_task != last_to_task) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号to_task:" + last_to_task + "->" + to_task); - } if (mode != last_mode) { requireSucess = false; - logServer.deviceItemValue(this.device_code, "mode", String.valueOf(mode)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号mode:" + last_mode + "->" + mode); - } - if (move != last_move) { - logServer.deviceItemValue(this.device_code, "move", String.valueOf(move)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号move:" + last_move + "->" + move); - } - if (action != last_action) { - logServer.deviceItemValue(this.device_code, "action", String.valueOf(action)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号action:" + last_action + "->" + action); - } - if (error != last_error) { - logServer.deviceItemValue(this.device_code, "error", String.valueOf(error)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号error:" + last_error + "->" + error); - } - if (walk_y != last_walk_y) { - logServer.deviceItemValue(this.device_code, "walk_y", String.valueOf(walk_y)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号walk_y:" + last_walk_y + "->" + walk_y); - } - if (task != last_task) { - logServer.deviceItemValue(this.device_code, "task", String.valueOf(task)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号task:" + last_task + "->" + task); } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/blank_manipulator/BlankManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/blank_manipulator/BlankManipulatorDeviceDriver.java index 166fc6b53..3808bf0be 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/blank_manipulator/BlankManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/blank_manipulator/BlankManipulatorDeviceDriver.java @@ -204,32 +204,6 @@ public class BlankManipulatorDeviceDriver extends AbstractOpcDeviceDriver implem if (mode != last_mode) { requireSucess = false; - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(device_code) - .content("信号mode:" + last_mode + "->" + mode) - .build(); - luceneExecuteLogService.deviceExecuteLog(logDto); - } - if (move != last_move) { - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(device_code) - .content("信号move:" + last_move + "->" + move) - .build(); - luceneExecuteLogService.deviceExecuteLog(logDto); - } - if (action != last_action) { - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(device_code) - .content("信号action:" + last_action + "->" + action) - .build(); - luceneExecuteLogService.deviceExecuteLog(logDto); - } - if (error != last_error) { - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(device_code) - .content("信号error:" + last_error + "->" + error) - .build(); - luceneExecuteLogService.deviceExecuteLog(logDto); } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/blanking_button/BlankingButtonDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/blanking_button/BlankingButtonDriver.java index 9836d3f23..bd16c2c02 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/blanking_button/BlankingButtonDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/blanking_button/BlankingButtonDriver.java @@ -126,34 +126,7 @@ public class BlankingButtonDriver extends AbstractOpcDeviceDriver implements Dev if (mode != lastMode) { requireSucess = false; - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(deviceCode) - .content("信号mode:" + lastMode + "->" + mode) - .build(); - luceneExecuteLogService.deviceExecuteLog(logDto); } - if (move != lastMove) { - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(deviceCode) - .content("信号move:" + lastMove + "->" + move) - .build(); - luceneExecuteLogService.deviceExecuteLog(logDto); - } - if (action != lastAction) { - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(deviceCode) - .content("信号action:" + lastAction + "->" + action) - .build(); - luceneExecuteLogService.deviceExecuteLog(logDto); - } - if (error != lastError) { - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(deviceCode) - .content("信号error:" + lastError + "->" + error) - .build(); - luceneExecuteLogService.deviceExecuteLog(logDto); - } - if (mode == 0) { this.setIsonline(false); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/green_foil_machine_button/GreenFoilMachineButtonDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/green_foil_machine_button/GreenFoilMachineButtonDriver.java index c7820ea7e..9483af3e0 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/green_foil_machine_button/GreenFoilMachineButtonDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/green_foil_machine_button/GreenFoilMachineButtonDriver.java @@ -120,32 +120,6 @@ public class GreenFoilMachineButtonDriver extends AbstractOpcDeviceDriver implem if (mode != lastMode) { requireSucess = false; - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(deviceCode) - .content("信号mode:" + lastMode + "->" + mode) - .build(); - luceneExecuteLogService.deviceExecuteLog(logDto); - } - if (move != lastMove) { - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(deviceCode) - .content("信号move:" + lastMove + "->" + move) - .build(); - luceneExecuteLogService.deviceExecuteLog(logDto); - } - if (action != lastAction) { - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(deviceCode) - .content("信号action:" + lastAction + "->" + action) - .build(); - luceneExecuteLogService.deviceExecuteLog(logDto); - } - if (error != lastError) { - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(deviceCode) - .content("信号error:" + lastError + "->" + error) - .build(); - luceneExecuteLogService.deviceExecuteLog(logDto); } if (mode == 0) { diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/inflatable_shaft_library/InflatableShaftLibraryDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/inflatable_shaft_library/InflatableShaftLibraryDeviceDriver.java index 31f7ead21..d06d18d70 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/inflatable_shaft_library/InflatableShaftLibraryDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/inflatable_shaft_library/InflatableShaftLibraryDeviceDriver.java @@ -107,28 +107,6 @@ public class InflatableShaftLibraryDeviceDriver extends AbstractOpcDeviceDriver if (mode != lastMode) { requireSucess = false; - logServer.deviceItemValue(this.deviceCode, "mode", String.valueOf(mode)); - logServer.deviceExecuteLog(this.deviceCode, "", "", "信号mode:" + lastMode + "->" + mode); - } - if (move != lastMove) { - logServer.deviceItemValue(this.deviceCode, "move", String.valueOf(move)); - logServer.deviceExecuteLog(this.deviceCode, "", "", "信号move:" + lastMove + "->" + move); - } - if (action != lastAction) { - logServer.deviceItemValue(this.deviceCode, "action", String.valueOf(action)); - logServer.deviceExecuteLog(this.deviceCode, "", "", "信号action:" + lastAction + "->" + action); - } - if (error != lastError) { - logServer.deviceItemValue(this.deviceCode, "error", String.valueOf(error)); - logServer.deviceExecuteLog(this.deviceCode, "", "", "信号error:" + lastError + "->" + error); - } - if (qty != lastQty) { - logServer.deviceItemValue(this.deviceCode, "weight", String.valueOf(qty)); - logServer.deviceExecuteLog(this.deviceCode, "", "", "信号qty:" + lastQty + "->" + qty); - } - if (type != lastType) { - logServer.deviceItemValue(this.deviceCode, "weight", String.valueOf(type)); - logServer.deviceExecuteLog(this.deviceCode, "", "", "信号type:" + lastType + "->" + type); } lastMode = mode; diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/plug_pull_device_site/PlugPullDeviceSiteDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/plug_pull_device_site/PlugPullDeviceSiteDeviceDriver.java index 12428df94..56086f209 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/plug_pull_device_site/PlugPullDeviceSiteDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/plug_pull_device_site/PlugPullDeviceSiteDeviceDriver.java @@ -192,144 +192,6 @@ public class PlugPullDeviceSiteDeviceDriver extends AbstractOpcDeviceDriver impl if (mode != lastMode) { requireSucess = false; - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(deviceCode) - .content("信号mode:" + lastMode + "->" + mode) - .build(); - luceneExecuteLogService.deviceExecuteLog(logDto); - } - if (move != lastMove) { - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(deviceCode) - .content("信号move:" + lastMove + "->" + move) - .build(); - luceneExecuteLogService.deviceExecuteLog(logDto); - } - if (action != lastAction) { - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(deviceCode) - .content("信号action:" + lastAction + "->" + action) - .build(); - luceneExecuteLogService.deviceExecuteLog(logDto); - } - if (error != lastError) { - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(deviceCode) - .content("信号error:" + lastError + "->" + error) - .build(); - luceneExecuteLogService.deviceExecuteLog(logDto); - } - if (barcode != lastBarcode) { - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(deviceCode) - .content("信号barcode:" + lastBarcode + "->" + barcode) - .build(); - luceneExecuteLogService.deviceExecuteLog(logDto); - } - if (weight1 != lastWeight1) { - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(deviceCode) - .content("信号weight1:" + lastWeight1 + "->" + weight1) - .build(); - luceneExecuteLogService.deviceExecuteLog(logDto); - } - if (material1 != lastMaterial1) { - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(deviceCode) - .content("信号material1:" + lastMaterial1 + "->" + material1) - .build(); - luceneExecuteLogService.deviceExecuteLog(logDto); - } - if (weight2 != lastWeight2) { - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(deviceCode) - .content("信号weight2:" + lastWeight2 + "->" + weight2) - .build(); - luceneExecuteLogService.deviceExecuteLog(logDto); - } - if (material2 != lastMaterial2) { - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(deviceCode) - .content("信号material2:" + lastMaterial2 + "->" + material2) - .build(); - luceneExecuteLogService.deviceExecuteLog(logDto); - } - if (task != lastTask) { - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(deviceCode) - .content("信号task:" + lastTask + "->" + task) - .build(); - luceneExecuteLogService.deviceExecuteLog(logDto); - } - if (size != lastSize) { - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(deviceCode) - .content("信号size:" + lastSize + "->" + size) - .build(); - luceneExecuteLogService.deviceExecuteLog(logDto); - } - if (toCommand != lastToCommand) { - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(deviceCode) - .content("信号to_command:" + lastToCommand + "->" + toCommand) - .build(); - luceneExecuteLogService.deviceExecuteLog(logDto); - } - if (toMaterial1 != lastToMaterial1) { - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(deviceCode) - .content("信号to_material1:" + lastToMaterial1 + "->" + toMaterial1) - .build(); - luceneExecuteLogService.deviceExecuteLog(logDto); - } - if (toMaterial2 != lastToMaterial2) { - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(deviceCode) - .content("信号to_material2:" + lastToMaterial2 + "->" + toMaterial2) - .build(); - luceneExecuteLogService.deviceExecuteLog(logDto); - } - if (toQty != lastToQty) { - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(deviceCode) - .content("信号to_qty:" + lastToQty + "->" + toQty) - .build(); - luceneExecuteLogService.deviceExecuteLog(logDto); - } - if (toQzzType != lastToQzzType) { - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(deviceCode) - .content("信号to_qzz_type:" + lastToQzzType + "->" + toQzzType) - .build(); - luceneExecuteLogService.deviceExecuteLog(logDto); - } - if (toVolumn1 != lastToVolumn1) { - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(deviceCode) - .content("信号to_volumn1:" + lastToVolumn1 + "->" + toVolumn1) - .build(); - luceneExecuteLogService.deviceExecuteLog(logDto); - } - if (toVolumn2 != lastToVolumn2) { - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(deviceCode) - .content("信号to_volumn1:" + lastToVolumn2 + "->" + toVolumn2) - .build(); - luceneExecuteLogService.deviceExecuteLog(logDto); - } - if (toSize1 != lastToSize1) { - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(deviceCode) - .content("信号to_size1:" + lastToSize1 + "->" + toSize1) - .build(); - luceneExecuteLogService.deviceExecuteLog(logDto); - } - if (toSize2 != lastToSize2) { - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(deviceCode) - .content("信号to_size2:" + lastToSize2 + "->" + toSize2) - .build(); - luceneExecuteLogService.deviceExecuteLog(logDto); } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/pull_head_manipulator/PullHeadManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/pull_head_manipulator/PullHeadManipulatorDeviceDriver.java index cbc67c06e..1ff2f8de5 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/pull_head_manipulator/PullHeadManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/pull_head_manipulator/PullHeadManipulatorDeviceDriver.java @@ -183,61 +183,11 @@ public class PullHeadManipulatorDeviceDriver extends AbstractOpcDeviceDriver imp xPosition = this.itemProtocol.getX_position(); yPosition = this.itemProtocol.getY_position(); - if (toOnset != lastToOnset) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号to_onset:" + lastToOnset + "->" + toOnset); - } - if (toCommand != lastToCommand) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号to_command:" + lastToCommand + "->" + toCommand); - } - if (toTarget != lastToTarget) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号to_target:" + lastToTarget + "->" + toTarget); - } - if (toTask != lastToTask) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号to_task:" + lastToTask + "->" + toTask); - } - if (toPull != lastToPull) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号to_pull:" + lastToPull + "->" + toPull); - } - if (toSleeve != lastToSleeve) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号to_sleeve:" + lastToSleeve + "->" + toSleeve); - } - if (toSize != lastToSize) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号to_size:" + lastToSize + "->" + toSize); - } if (mode != lastMode) { requireSucess = false; - logServer.deviceItemValue(this.device_code, "mode", String.valueOf(mode)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号mode:" + lastMode + "->" + mode); - } - if (move != lastMove) { - logServer.deviceItemValue(this.device_code, "move", String.valueOf(move)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号move:" + lastMove + "->" + move); - } - if (action != lastAction) { - logServer.deviceItemValue(this.device_code, "action", String.valueOf(action)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号action:" + lastAction + "->" + action); - } - if (error != lastError) { - logServer.deviceItemValue(this.device_code, "error", String.valueOf(error)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号error:" + lastError + "->" + error); - } - if (walkY != lastWalkY) { - logServer.deviceItemValue(this.device_code, "walkY", String.valueOf(walkY)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号walk_y:" + lastWalkY + "->" + walkY); - } - if (task != lastTask) { - logServer.deviceItemValue(this.device_code, "task", String.valueOf(task)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号task:" + lastTask + "->" + task); - } - if (xPosition != lastXPosition) { - logServer.deviceItemValue(this.device_code, "x_position", String.valueOf(xPosition)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号x_position:" + lastXPosition + "->" + xPosition); - } - if (yPosition != lastYPosition) { - logServer.deviceItemValue(this.device_code, "y_position", String.valueOf(yPosition)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号y_position:" + lastYPosition + "->" + yPosition); } + // 更新指令状态 if (mode == 3 && task > 0) { Date date = new Date(); @@ -271,12 +221,13 @@ public class PullHeadManipulatorDeviceDriver extends AbstractOpcDeviceDriver imp Map map = new LinkedHashMap<>(); if (ObjectUtil.isNotEmpty(dto)){ String interaction_json = dto.getInteraction_json(); - JSONObject jsonObject = (JSONObject) JSONObject.toJSON(interaction_json); - map.put("to_pull", jsonObject.getString("is_pulling")); - map.put("is_bushing", jsonObject.getString("is_bushing")); - map.put("to_size", jsonObject.getString("size")); - map.put("to_barcode", jsonObject.getString("")); - map.put("to_command", "5"); + if (ObjectUtil.isNotEmpty(interaction_json)){ + JSONObject jsonObject = (JSONObject) JSONObject.toJSON(interaction_json); + map.put("to_pull", jsonObject.getString("is_pulling")); + map.put("is_bushing", jsonObject.getString("is_bushing")); + map.put("to_size", jsonObject.getString("qzz_size")); + map.put("to_barcode", jsonObject.getString("qzz_no")); + } } map.put("to_command", "5"); this.writing(map); @@ -404,11 +355,21 @@ public class PullHeadManipulatorDeviceDriver extends AbstractOpcDeviceDriver imp } String startAddr = startDevice.getExtraValue().get("address").toString(); String nextAddr = nextDevice.getExtraValue().get("address").toString(); + String interaction_json = taskDto.getInteraction_json(); + JSONObject jsonObject = JSONObject.parseObject(interaction_json); +// Object isBushing = jsonObject.get("is_bushing"); +// Object isPulling = jsonObject.get("is_pulling"); +// Object qzzNo = jsonObject.get("qzz_no"); +// Object qzzSize = jsonObject.get("qzz_size"); Map map = new LinkedHashMap<>(); map.put("to_command", CommonFinalParam.ONE); map.put("to_onset", startAddr); - map.put("to_task", instruction.getInstruction_code()); map.put("to_target", nextAddr); + map.put("to_task", instruction.getInstruction_code()); +// map.put("to_pull", isPulling); +// map.put("to_bushing", isBushing); +// map.put("to_size", qzzSize); +// map.put("to_barcode", qzzNo); this.writing(map); this.setRequireSucess(true); return true; @@ -482,11 +443,21 @@ public class PullHeadManipulatorDeviceDriver extends AbstractOpcDeviceDriver imp } String startAddr = startDevice.getExtraValue().get("address").toString(); String nextAddr = nextDevice.getExtraValue().get("address").toString(); +// String interactionJson = task.getInteraction_json(); +// JSONObject jsonObject = JSONObject.parseObject(interactionJson); +// Object isBushing = jsonObject.get("is_bushing"); +// Object isPulling = jsonObject.get("is_pulling"); +// Object qzzNo = jsonObject.get("qzz_no"); +// Object qzzSize = jsonObject.get("qzz_size"); Map map = new LinkedHashMap<>(); map.put("to_command", CommonFinalParam.ONE); map.put("to_onset", startAddr); map.put("to_task", instdto.getInstruction_code()); map.put("to_target", nextAddr); +// map.put("to_pull", isPulling); +// map.put("to_bushing", isBushing); +// map.put("to_size", qzzSize); +// map.put("to_barcode", qzzNo); this.writing(map); this.setRequireSucess(true); notCreateInstMessage = ""; diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/pull_tail_manipulator/PullTailManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/pull_tail_manipulator/PullTailManipulatorDeviceDriver.java index b302497eb..950a0d941 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/pull_tail_manipulator/PullTailManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/pull_tail_manipulator/PullTailManipulatorDeviceDriver.java @@ -170,54 +170,8 @@ public class PullTailManipulatorDeviceDriver extends AbstractOpcDeviceDriver imp x_position = this.itemProtocol.getX_position(); y_position = this.itemProtocol.getY_position(); - if (to_onset != last_to_onset) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号to_onset:" + last_to_onset + "->" + to_onset); - } - if (to_command != last_to_command) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号to_command:" + last_to_command + "->" + to_command); - } - if (to_target != last_to_target) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号to_target:" + last_to_target + "->" + to_target); - } - if (to_task != last_to_task) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号to_task:" + last_to_task + "->" + to_task); - } if (mode != last_mode) { requireSucess = false; - logServer.deviceItemValue(this.device_code, "mode", String.valueOf(mode)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号mode:" + last_mode + "->" + mode); - } - if (move != last_move) { - logServer.deviceItemValue(this.device_code, "move", String.valueOf(move)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号move:" + last_move + "->" + move); - } - if (action != last_action) { - logServer.deviceItemValue(this.device_code, "action", String.valueOf(action)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号action:" + last_action + "->" + action); - } - if (error != last_error) { - logServer.deviceItemValue(this.device_code, "error", String.valueOf(error)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号error:" + last_error + "->" + error); - } - if (walk_y != last_walk_y) { - logServer.deviceItemValue(this.device_code, "walk_y", String.valueOf(walk_y)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号walk_y:" + last_walk_y + "->" + walk_y); - } - if (task != last_task) { - logServer.deviceItemValue(this.device_code, "task", String.valueOf(task)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号task:" + last_task + "->" + task); - } - if (x_position != last_x_position) { - logServer.deviceItemValue(this.device_code, "x_position", String.valueOf(x_position)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号x_position:" + last_x_position + "->" + x_position); - } - if (y_position != last_y_position) { - logServer.deviceItemValue(this.device_code, "y_position", String.valueOf(y_position)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号y_position:" + last_y_position + "->" + y_position); - } - if (weight != last_weight) { - logServer.deviceItemValue(this.device_code, "weight", String.valueOf(weight)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号weight:" + last_weight + "->" + weight); } // 更新指令状态 diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/slit_two_manipulator/SlitTwoManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/slit_two_manipulator/SlitTwoManipulatorDeviceDriver.java index f15bef5cc..4c1504068 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/slit_two_manipulator/SlitTwoManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/slit_two_manipulator/SlitTwoManipulatorDeviceDriver.java @@ -163,8 +163,6 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl heartbeat = this.itemProtocol.getHeartbeat(); if (mode != last_mode) { requireSucess = false; - logServer.deviceItemValue(this.device_code, "mode", String.valueOf(mode)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号mode:" + last_mode + "->" + mode); } if (mode == 3 && task > 0 && !requireSucess) { diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/subvolume_weighing_station/SubvolumeWeighingStationDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/subvolume_weighing_station/SubvolumeWeighingStationDriver.java index 6c7cf3a2d..61448083c 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/subvolume_weighing_station/SubvolumeWeighingStationDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/subvolume_weighing_station/SubvolumeWeighingStationDriver.java @@ -86,24 +86,6 @@ public class SubvolumeWeighingStationDriver extends AbstractOpcDeviceDriver impl weight = this.itemProtocol.getItem_weight(); if (mode != last_mode) { requireSucess = false; - logServer.deviceItemValue(this.device_code, "mode", String.valueOf(mode)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号mode:" + last_mode + "->" + mode); - } - if (move != last_move) { - logServer.deviceItemValue(this.device_code, "move", String.valueOf(move)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号move:" + last_move + "->" + move); - } - if (action != last_action) { - logServer.deviceItemValue(this.device_code, "action", String.valueOf(action)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号action:" + last_action + "->" + action); - } - if (error != last_error) { - logServer.deviceItemValue(this.device_code, "error", String.valueOf(error)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号error:" + last_error + "->" + error); - } - if (weight != last_weight) { - logServer.deviceItemValue(this.device_code, "weight", String.valueOf(weight)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号weight:" + last_weight + "->" + weight); } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/waste_foil_weighing_station/WasteFoilWeighingStationDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/waste_foil_weighing_station/WasteFoilWeighingStationDriver.java index 1275fbbe1..e07dbb7bf 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/waste_foil_weighing_station/WasteFoilWeighingStationDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/waste_foil_weighing_station/WasteFoilWeighingStationDriver.java @@ -101,28 +101,6 @@ public class WasteFoilWeighingStationDriver extends AbstractOpcDeviceDriver impl if (mode != last_mode) { requireSucess = false; this.setFeedbackSucess(false); - logServer.deviceItemValue(this.device_code, "mode", String.valueOf(mode)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号mode:" + last_mode + "->" + mode); - } - if (move != last_move) { - logServer.deviceItemValue(this.device_code, "move", String.valueOf(move)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号move:" + last_move + "->" + move); - } - if (action != last_action) { - logServer.deviceItemValue(this.device_code, "action", String.valueOf(action)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号action:" + last_action + "->" + action); - } - if (error != last_error) { - logServer.deviceItemValue(this.device_code, "error", String.valueOf(error)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号error:" + last_error + "->" + error); - } - if (weight != last_weight) { - logServer.deviceItemValue(this.device_code, "weight", String.valueOf(weight)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号weight:" + last_weight + "->" + weight); - } - if (old_weight != last_old_weight) { - logServer.deviceItemValue(this.device_code, "old_weight", String.valueOf(old_weight)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号old_weight:" + last_old_weight + "->" + old_weight); } if (mode == 0) { diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java index 86568d6c5..f158dceb0 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java @@ -341,8 +341,6 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { jo.put("size", JSONUtil.toJsonStr(size)); jo.put("version", JSONUtil.toJsonStr(version)); jo.put("bushing_num", JSONUtil.toJsonStr(bushing_num)); - - if (!StrUtil.isEmpty(ext_task_id)) { jo.put("ext_task_id", ext_task_id); } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java index db05cf9bf..586a00b55 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java @@ -150,7 +150,7 @@ public class TaskServiceImpl extends CommonServiceImpl impleme list.add(task); } } else { - if (StrUtil.equals(task.getTask_type(), TaskTypeEnum.Inner_Truss_Task.getIndex()) && StrUtil.isNotEmpty(task.getPut_device_code())) { + if (StrUtil.equals(task.getTask_type(), TaskTypeEnum.Truss_Task.getIndex()) && StrUtil.isNotEmpty(task.getPut_device_code())) { Instruction instruction = instructionService.findByDeviceCodeFromCache(task.getNext_device_code()); if (ObjectUtil.isNotEmpty(instruction)) { if (StrUtil.equals(instruction.getStart_device_code(), device_code)) { diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/taskscreen/rest/TaskScreenController.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/taskscreen/rest/TaskScreenController.java index 57eb3b726..42244bd43 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/taskscreen/rest/TaskScreenController.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/taskscreen/rest/TaskScreenController.java @@ -23,14 +23,12 @@ public class TaskScreenController { @GetMapping @Log("下拉选设备") - public ResponseEntity selectLedList() { return new ResponseEntity<>(taskScreenService.selectLedList(), HttpStatus.OK); } @GetMapping("/getLedMessage/{device}") @Log("根据关联设备获取任务信息") - public ResponseEntity getLedMessage(@PathVariable String device) { return new ResponseEntity<>(taskScreenService.getLedMessage(device), HttpStatus.OK); } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/taskscreen/service/impl/TaskScreenServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/taskscreen/service/impl/TaskScreenServiceImpl.java index 87b71c161..95b6d0f4c 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/taskscreen/service/impl/TaskScreenServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/taskscreen/service/impl/TaskScreenServiceImpl.java @@ -18,6 +18,7 @@ import org.nl.acs.device.service.dto.DeviceDto; import org.nl.acs.device.service.mapper.DeviceExtraMapper; import org.nl.acs.device.service.mapper.DeviceMapper; import org.nl.acs.device_driver.conveyor.belt_conveyor.BeltConveyorDeviceDriver; +import org.nl.acs.device_driver.one_conveyor.scanner_weight_conveyor.ConveyorWithScannerWeightDeviceDriver; import org.nl.acs.opc.DeviceAppService; import org.nl.acs.taskscreen.mapper.TaskScreenMapper; import org.nl.acs.taskscreen.service.TaskScreenService; @@ -30,7 +31,7 @@ import java.util.List; /** * @author tuqiang - * @date 2023-05-09 + * @date 2023-12-09 */ @Service @AllArgsConstructor @@ -85,11 +86,11 @@ public class TaskScreenServiceImpl extends CommonServiceImpl Date: Thu, 21 Mar 2024 17:20:22 +0800 Subject: [PATCH 17/17] =?UTF-8?q?fix:=20=E8=BD=BD=E5=85=B7=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../conveyor/belt_conveyor/BeltConveyorDeviceDriver.java | 2 +- .../nl/acs/instruction/service/impl/InstructionServiceImpl.java | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/belt_conveyor/BeltConveyorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/belt_conveyor/BeltConveyorDeviceDriver.java index 2e4f0e196..8d985b711 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/belt_conveyor/BeltConveyorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/belt_conveyor/BeltConveyorDeviceDriver.java @@ -589,7 +589,7 @@ public class BeltConveyorDeviceDriver extends AbstractOpcDeviceDriver implements list.add(map2); Map map3 = new HashMap(); map3.put("code", "to_container_type"); - map3.put("value", "1"); + map3.put("value", inst.getVehicle_type()); list.add(map3); Map map4 = new HashMap(); map4.put("code", "to_container_no"); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java index 551db17c0..7f712bc79 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java @@ -1026,6 +1026,7 @@ public class InstructionServiceImpl extends CommonServiceImpl