diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/slit_two_manipulator/SlitTwoManipulatorDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/slit_two_manipulator/SlitTwoManipulatorDeviceDriver.java index 4647d2fa6..56b756faa 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/slit_two_manipulator/SlitTwoManipulatorDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/slit_two_manipulator/SlitTwoManipulatorDeviceDriver.java @@ -251,7 +251,7 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl // } // } ; - // this.setNow_steps_type2(1); + // this.setNow_steps_type2(1); } } } @@ -318,15 +318,15 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl } //单任务/或双任务 后工位收到取货完成信号并反馈 - if (mode == 3 && action2 == 2 && move2 == 1 && task2 > 0){ - this.writing("to_command2","3"); - if (type == 2){ + if (mode == 3 && action2 == 2 && move2 == 1 && task2 > 0) { + this.writing("to_command2", "3"); + if (type == 2) { this.setNow_steps_type2(4); } - if (type == 3){ + if (type == 3) { this.setNow_steps_type3(4); } - }else { + } else { if (this.getNow_steps_type2() == 3 || this.getNow_steps_type3() == 3) { feedMessage = "请检查:mode == 3 && action2 == 2 && move2 == 1 && task2 > 0"; } @@ -347,15 +347,15 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl } //单任务/双任务 前工位取货完成并反馈 - if (mode == 3 && action1 == 2 && move1 == 1 && task1 > 0){ - this.writing("to_command1","3"); - if (type == 1){ + if (mode == 3 && action1 == 2 && move1 == 1 && task1 > 0) { + this.writing("to_command1", "3"); + if (type == 1) { this.setNow_steps_type1(4); } - if (type == 3){ + if (type == 3) { this.setNow_steps_type3(6); } - }else { + } else { if (this.getNow_steps_type1() == 3 || this.getNow_steps_type3() == 5) { feedMessage = "请检查:mode == 3 && action1 == 2 && move1 == 1 && task1 > 0"; } @@ -478,7 +478,6 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl } - //双工位 任务完成 前工位反馈4 if (mode == 3 && action1 == 4 && move1 == 0 && task1 > 0 && task2 > 0 && type == 3) { //inst_message @@ -510,7 +509,6 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl } - } catch (Exception var17) { return; } @@ -662,7 +660,7 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl return flag; } else { //去任务表中查询是否有后工位关联设备的就绪状态下的任务 - taskDtos = taskserver.queryTaskByStartDeviceCode(backGetDeviceCode); + taskDtos = taskserver.queryTaskByBackDeviceCode(backGetDeviceCode); if (ObjectUtil.isNotEmpty(taskDtos)) { //按照优先级排序 优先级相等按照创建时间排序 taskDtos = this.sortTask(taskDtos); @@ -735,7 +733,7 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl return flag; } else { //去任务表中查询是否有后工位关联设备的就绪状态下的任务 - taskDtos = taskserver.queryTaskByStartDeviceCode(backGetDeviceCode); + taskDtos = taskserver.queryTaskByBackDeviceCode(backGetDeviceCode); if (ObjectUtil.isNotEmpty(taskDtos)) { //按照优先级排序 优先级相等按照创建时间排序 taskDtos = this.sortTask(taskDtos); @@ -956,12 +954,12 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl Device nextDevice2 = deviceAppservice.findDeviceByCode(next_device_code2); String start_addr2 = startDevice2.getExtraValue().get("address").toString(); String next_addr2 = nextDevice2.getExtraValue().get("address").toString(); - this.writing("to_onset1", start_addr); - this.writing("to_target1", next_addr); + this.writing("to_onset1", start_addr2); + this.writing("to_target1", next_addr2); this.writing("to_task1", dto.getInstruction_code()); this.writing("to_command1", "1"); - this.writing("to_onset2", start_addr2); - this.writing("to_target2", next_addr2); + this.writing("to_onset2", start_addr); + this.writing("to_target2", next_addr); this.writing("to_task2", dto.getInstruction_code()); this.writing("to_command2", "1"); this.writing("to_type", "3"); @@ -1060,7 +1058,7 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl //将扩展表中的字符串数组数据转换成集合 public List getExtraDeviceCodes(String extraName) { String extraValue = (String) this.getDevice().getExtraValue().get(extraName); - if (StrUtil.isEmpty(extraValue)){ + if (StrUtil.isEmpty(extraValue)) { return new ArrayList<>(); } String devicesString = extraValue.substring(1, extraValue.length() - 1); @@ -1073,14 +1071,14 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl return devicesList; } - public List sortTask(List taskDtos){ + public List sortTask(List taskDtos) { Collections.sort(taskDtos, new Comparator() { @Override public int compare(TaskDto t1, TaskDto t2) { //优先级从大到小 int i = t2.getPriority().compareTo(t1.getPriority()); //如果优先级相等 - if (i == 0){ + if (i == 0) { //时间从早到晚 i = t1.getCreate_time().compareTo(t2.getCreate_time()); } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/task/service/TaskService.java b/acs/nladmin-system/src/main/java/org/nl/acs/task/service/TaskService.java index 48c4e9d0a..e6686632d 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/task/service/TaskService.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/task/service/TaskService.java @@ -108,6 +108,7 @@ public interface TaskService { * 根据设备号查询未执行的任务 */ List queryTaskByStartDeviceCode(String start_device_code); + List queryTaskByBackDeviceCode(String back_start_device_code); /** * 根据设备号和任务状态查询 diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java b/acs/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java index 3df5bc778..1780ca127 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java @@ -248,7 +248,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial { public List queryAllUnfinished(Map whereJson) { WQLObject wo = WQLObject.getWQLObject("acs_task"); JSONArray arr = wo.query("task_status < 2 ").getResultJSONArray(0); - List list =arr.toJavaList(TaskDto.class); + List list = arr.toJavaList(TaskDto.class); return list; } @@ -286,6 +286,19 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial { return list; } + @Override + public List queryTaskByBackDeviceCode(String back_start_device_code) { + List list = new ArrayList<>(); + Iterator iterator = tasks.iterator(); + while (iterator.hasNext()) { + TaskDto task = iterator.next(); + if (task.getStart_device_code().equals(back_start_device_code) && StrUtil.equals(task.getTask_status(), "0")) { + list.add(task); + } + } + return list; + } + @Override public List queryTaskByDeviceCodeAndStatus(String device_code) { List list = new ArrayList<>(); @@ -294,7 +307,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial { TaskDto task = iterator.next(); if (task.getStart_device_code().equals(device_code) && StrUtil.equals(task.getTask_status(), "1")) { Instruction instruction = instructionService.findByTaskcodeAndStatus(task.getTask_code()); - if (ObjectUtil.isNotEmpty(instruction)){ + if (ObjectUtil.isNotEmpty(instruction)) { list.add(task); } } @@ -303,14 +316,14 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial { } - public List queryTaskByStartAndIntStatus(String head_start_device_code){ + public List queryTaskByStartAndIntStatus(String head_start_device_code) { List list = new ArrayList<>(); Iterator iterator = tasks.iterator(); while (iterator.hasNext()) { TaskDto task = iterator.next(); if ((task.getStart_device_code().equals(head_start_device_code) || task.getStart_device_code2().equals(head_start_device_code)) && StrUtil.equals(task.getTask_status(), "1")) { Instruction instruction = instructionService.findByTaskcodeAndStatus(task.getTask_code()); - if (ObjectUtil.isNotEmpty(instruction)){ + if (ObjectUtil.isNotEmpty(instruction)) { list.add(task); } } @@ -318,14 +331,14 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial { return list; } - public List queryTaskByNextAndIntStatus(String back_start_device_code){ + public List queryTaskByNextAndIntStatus(String back_start_device_code) { List list = new ArrayList<>(); Iterator iterator = tasks.iterator(); while (iterator.hasNext()) { TaskDto task = iterator.next(); - if ((task.getStart_device_code().equals(back_start_device_code) || task.getStart_device_code2().equals(back_start_device_code)) && StrUtil.equals(task.getTask_status(), "1")) { + if ((task.getStart_device_code().equals(back_start_device_code)) && StrUtil.equals(task.getTask_status(), "1")) { Instruction instruction = instructionService.findByTaskcodeAndStatus(task.getTask_code()); - if (ObjectUtil.isNotEmpty(instruction)){ + if (ObjectUtil.isNotEmpty(instruction)) { list.add(task); } } @@ -452,7 +465,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial { } } WQLObject wo = WQLObject.getWQLObject("acs_task"); - JSONObject json = (JSONObject) JSONObject.toJSON(dto); + JSONObject json = (JSONObject) JSONObject.toJSON(dto); wo.insert(json); tasks.add(dto); @@ -554,7 +567,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial { } if (ObjectUtil.isNotEmpty(this.findByStartCode(start_device_code)) - || ObjectUtil.isNotEmpty(this.findByNextCode(next_device_code))) { + || ObjectUtil.isNotEmpty(this.findByNextCode(next_device_code))) { throw new WDKException("已存在该起点或终点的任务!"); } if (StrUtil.equals(material_type, "") || StrUtil.equals(quantity, "")) { @@ -585,7 +598,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial { dto.setUpdate_by(currentUsername); WQLObject wo = WQLObject.getWQLObject("acs_task"); - JSONObject json = (JSONObject) JSONObject.toJSON(dto); + JSONObject json = (JSONObject) JSONObject.toJSON(dto); wo.update(json); 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 03e6b89dd..248cbae3a 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 @@ -14,6 +14,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.text.StrBuilder; import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.common.utils.SecurityUtils; import org.nl.modules.system.service.impl.ParamServiceImpl; @@ -2751,7 +2752,13 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { oneMap.put("page",pageNow+ "/" + MapUtil.getStr(whereJson,"pageNum")); oneMap.put("consignee", jsonMst.getString("consignee")); // 收货单位 oneMap.put("receiver", jsonMst.getString("receiver")); // 收货人 - oneMap.put("receiptaddress", jsonMst.getString("receiptaddress")); // 收货地址 + String receiptaddress = jsonMst.getString("receiptaddress"); + /* StrBuilder strBuilder = new StrBuilder(receiptaddress); + + if (receiptaddress.length() > 10) { + strBuilder.insert(11,"\n"); + }*/ + oneMap.put("receiptaddress", receiptaddress); // 收货地址 oneMap.put("receiptphone", jsonMst.getString("receiptphone")); // 收货人联系电话 // 物流公司 JSONObject jsonTran = tranTab.query("cust_code = '" + jsonMst.getString("trans_code") + "'").uniqueResult(0); @@ -2793,7 +2800,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { order_no = jsonSub.getString("sale_order_name"); // 规格: 厚度*幅宽 - String material_spec = jsonSub.getString("thickness") + "*" + jsonSub.getString("width"); + String material_spec = jsonSub.getString("thickness_request") + "*" + jsonSub.getString("width"); // 箱号 String box_no = json.getString("box_no"); String sub_box_no = ""; @@ -2840,7 +2847,7 @@ public class CheckOutBillServiceImpl implements CheckOutBillService { order_no = jsonSub.getString("sale_order_name"); // 规格: 厚度*幅宽 - String material_spec = jsonSub.getString("thickness") + "*" + jsonSub.getString("width"); + String material_spec = jsonSub.getString("thickness_request") + "*" + jsonSub.getString("width"); // 箱号 String box_no = json.getString("box_no"); String sub_box_no = ""; 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 eaa958ccb..56a4315d0 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 @@ -343,13 +343,19 @@ task.task_status, task.task_type, point2.point_code, - sub.sap_pcsn + sub.sap_pcsn, + attr.out_order_seq, + attr.row_num, + attr.col_num, + attr.layer_num, + attr.block_num FROM ST_IVT_IOStorInvDis dis LEFT JOIN ST_IVT_IOStorInv ios ON ios.iostorinv_id = dis.iostorinv_id LEFT JOIN md_me_materialbase mb ON mb.material_id = dis.material_id LEFT JOIN SCH_BASE_Task task ON task.task_id = dis.task_id LEFT JOIN SCH_BASE_Point point2 ON point2.point_id = dis.point_id + LEFT JOIN st_ivt_structattr attr ON attr.struct_id = dis.struct_id LEFT JOIN pdm_bi_subpackagerelation sub ON sub.container_name = dis.pcsn WHERE 1 = 1 @@ -375,7 +381,7 @@ dis.work_status <= 输入.bill_status ENDOPTION - order by dis.struct_code ASC + order by attr.row_num,attr.out_order_seq ASC ENDSELECT ENDQUERY ENDIF diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/wql/ST_OUTIVT03.wql b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/wql/ST_OUTIVT03.wql index 16d0762d7..8a13a055d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/wql/ST_OUTIVT03.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/outbill/wql/ST_OUTIVT03.wql @@ -84,7 +84,7 @@ st_ivt_structattr sa3 WHERE IFNULL( sa3.storagevehicle_code, '' ) <> '' - AND AND sa3.lock_type = '1' + AND sa3.lock_type = '1' ) c WHERE c.block_num = a.block_num @@ -137,7 +137,7 @@ st_ivt_structattr sa2 WHERE IFNULL( sa2.storagevehicle_code, '' ) <> '' - AND AND sa2.lock_type = '1' + AND sa2.lock_type = '1' ) b WHERE b.block_num = a.block_num 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 5fcf2bdce..c301c3b9f 100644 --- a/lms/nladmin-ui/src/views/wms/st/outbill/DivDialog.vue +++ b/lms/nladmin-ui/src/views/wms/st/outbill/DivDialog.vue @@ -482,13 +482,33 @@ export default { }, setPoint() { if (this.form2.point_code === '') { - this.crud.notify('请先选择检验站点!', CRUD.NOTIFICATION_TYPE.INFO) + this.crud.notify('请先选择站点!', CRUD.NOTIFICATION_TYPE.INFO) return } if (this.currentDis.point_code) { this.crud.notify('站点已设置!', CRUD.NOTIFICATION_TYPE.INFO) return } + if (this.currentDis.work_status !== '00') { + this.crud.notify('任务已生成!', CRUD.NOTIFICATION_TYPE.INFO) + return + } + // 根据此仓位的 ‘相同块、相同排、相同层’ 判断上一个任务是否生成 + const tab = this.tabledis + for (let i = 0; i < tab.length; i++) { + debugger + const item = tab[i] + if (this.currentDis.block_num === item.block_num && this.currentDis.row_num === item.row_num && this.currentDis.layer_num === item.layer_num) { + const out_order_seq = parseInt(this.currentDis.out_order_seq) - 1 + if (parseInt(item.out_order_seq) === out_order_seq) { + if (item.work_status === '00') { + this.crud.notify('请先生成上一个任务:' + item.struct_code, CRUD.NOTIFICATION_TYPE.INFO) + return + } + } + } + } + if (this.currentDis.iostorinvdis_id !== null) { this.currentDis.point_code = this.form2.point_code checkoutbill.setPoint(this.currentDis).then(res => {