This commit is contained in:
2022-12-23 09:23:44 +08:00
7 changed files with 85 additions and 40 deletions

View File

@@ -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<String> 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<TaskDto> sortTask(List<TaskDto> taskDtos){
public List<TaskDto> sortTask(List<TaskDto> taskDtos) {
Collections.sort(taskDtos, new Comparator<TaskDto>() {
@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());
}

View File

@@ -108,6 +108,7 @@ public interface TaskService {
* 根据设备号查询未执行的任务
*/
List<TaskDto> queryTaskByStartDeviceCode(String start_device_code);
List<TaskDto> queryTaskByBackDeviceCode(String back_start_device_code);
/**
* 根据设备号和任务状态查询

View File

@@ -248,7 +248,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
public List<TaskDto> queryAllUnfinished(Map whereJson) {
WQLObject wo = WQLObject.getWQLObject("acs_task");
JSONArray arr = wo.query("task_status < 2 ").getResultJSONArray(0);
List<TaskDto> list =arr.toJavaList(TaskDto.class);
List<TaskDto> list = arr.toJavaList(TaskDto.class);
return list;
}
@@ -286,6 +286,19 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
return list;
}
@Override
public List<TaskDto> queryTaskByBackDeviceCode(String back_start_device_code) {
List<TaskDto> list = new ArrayList<>();
Iterator<TaskDto> 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<TaskDto> queryTaskByDeviceCodeAndStatus(String device_code) {
List<TaskDto> 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<TaskDto> queryTaskByStartAndIntStatus(String head_start_device_code){
public List<TaskDto> queryTaskByStartAndIntStatus(String head_start_device_code) {
List<TaskDto> list = new ArrayList<>();
Iterator<TaskDto> 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<TaskDto> queryTaskByNextAndIntStatus(String back_start_device_code){
public List<TaskDto> queryTaskByNextAndIntStatus(String back_start_device_code) {
List<TaskDto> list = new ArrayList<>();
Iterator<TaskDto> 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);

View File

@@ -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 = "";

View File

@@ -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

View File

@@ -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

View File

@@ -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 => {