代码修改,去除养生区整列锁定、添加供给线判断去货梯口还是养生区

This commit is contained in:
2023-01-29 10:10:50 +08:00
parent 17721a9269
commit a94a274cbf
24 changed files with 193 additions and 108 deletions

View File

@@ -182,9 +182,7 @@ public class HailiangSmartplcTestDeviceDriver extends AbstractOpcDeviceDriver im
break;
case 4:
//申请空盘
System.out.println("执行到mode = 4了,此时move = " + move + ",requireSucess = " + requireSucess);
if (move == 0 && !requireSucess) {
System.out.println("进入到申请空盘的任务了,mode = " + mode);
Date date = new Date();
if (date.getTime() - this.instruction_require_time.getTime() < (long) this.instruction_require_time_out) {
log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out);
@@ -200,17 +198,13 @@ public class HailiangSmartplcTestDeviceDriver extends AbstractOpcDeviceDriver im
if (res_jo.getString("status").equals("200")) {
logServer.deviceExecuteLog(device_code, "", "", "空盘任务申请成功-");
requireSucess = true;
} else {
System.out.println("申请满托入库失败" + String.valueOf(res_jo));
}
}
}
break;
case 5:
System.out.println("执行到mode = 5了,此时move = " + move + ",requireSucessFullIn = " + requireSucessFullIn);
//满托入库
if (move == 1 && !requireSucessFullIn) {
System.out.println("进入到申请空盘的任务了,mode = " + mode);
Date date = new Date();
if (date.getTime() - this.instruction_require_time.getTime() < (long) this.instruction_require_time_out) {
log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out);
@@ -227,8 +221,6 @@ public class HailiangSmartplcTestDeviceDriver extends AbstractOpcDeviceDriver im
if (res_jo.getString("status").equals("200")) {
requireSucessFullIn = true;
logServer.deviceExecuteLog(device_code, "", "", "满托入库任务申请成功-");
} else {
System.out.println("申请满托入库失败" + String.valueOf(res_jo));
}
}
}

View File

@@ -88,7 +88,6 @@ public class WmsToAcsServiceImpl implements WmsToAcsService {
String task_type = task.getString("task_type");
String remark = task.getString("remark");
String params = task.getString("params");
String vehicle_qty = task.getString("vehicle_qty");
if (start_point_code.indexOf("-") > 0) {
String str[] = start_point_code.split("-");
@@ -138,7 +137,6 @@ public class WmsToAcsServiceImpl implements WmsToAcsService {
jo.put("vehicle_type", vehicle_type);
jo.put("remark", remark);
jo.put("params", params);
jo.put("emptypallet_num", vehicle_qty);
jo.put("task_type", StrUtil.isEmpty(task_type) ? 1 : Integer.parseInt(task_type));
if (!StrUtil.isEmpty(ext_task_id)) {

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;
}
@@ -390,7 +390,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);
@@ -492,7 +492,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, "")) {
@@ -523,7 +523,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);
@@ -787,7 +787,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
JSONObject feed_jo = new JSONObject();
feed_jo.put("ext_task_id", entity.getExt_task_id());
feed_jo.put("task_code", entity.getTask_code());
feed_jo.put("task_status", "0");
feed_jo.put("task_status", entity.getTask_status());
JSONArray ja = new JSONArray();
ja.add(feed_jo);
acstowmsService.feedbackTaskStatusToWms(ja);
@@ -1215,7 +1215,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
}
@Override
public Integer queryStartNum(String start_code, String next_code) {
public Integer queryStartNum(String start_code,String next_code) {
int num = 0;
Iterator<TaskDto> iterator = tasks.iterator();
while (iterator.hasNext()) {
@@ -1228,7 +1228,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
}
@Override
public Integer queryEndNum(String next_code, String start_code) {
public Integer queryEndNum(String next_code,String start_code) {
int num = 0;
Iterator<TaskDto> iterator = tasks.iterator();
while (iterator.hasNext()) {

View File

@@ -145,6 +145,7 @@ public class MaterialbaseServiceImpl implements MaterialbaseService {
dto.setUpdate_optname(nickName);
dto.setUpdate_time(now);
dto.setCreate_time(now);
dto.setBase_unit_id(15);
WQLObject wo = WQLObject.getWQLObject("md_me_materialbase");
JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto));
wo.insert(json);

View File

@@ -90,4 +90,7 @@ public class WorkorderDto implements Serializable {
/** 修改时间 */
private String update_time;
/** 工单类型 **/
private String workorder_type;
}

View File

@@ -2,7 +2,6 @@
package org.nl.wms.sch.rest;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;

View File

@@ -54,6 +54,10 @@ public class TaskServiceImpl implements TaskService {
if (StrUtil.isNotEmpty(task_status)) {
task_status = task_status.replace("[\"", "").replace("\"]", "").replace("\"", "");
}
String moreTaskStatus = whereJson.getString("more_task_status");
if (ObjectUtil.isNotEmpty(moreTaskStatus)) {
task_status = moreTaskStatus;
}
map.put("task_status", task_status);
//处理状态为未完成
if (StrUtil.isNotEmpty(task_status) && task_status.contains("-1")) {

View File

@@ -28,5 +28,7 @@ public class AcsTaskDto {
private String params;
//路由类型
private String route_plan_code;
// 载具数量
private String vehicle_qty;
}

View File

@@ -181,7 +181,7 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask {
// 创建任务
JSONObject jsonTask = taskArr.getJSONObject(i);
String vehicle_type = jsonTask.getString("vehicle_type");
// 更新点位
// 更新点位 更新所有叠盘架B
Map query = new HashMap<>();
query.put("flag", "2");
query.put("region_code", RegionTypeEnum.DPJQB.getCode());
@@ -192,7 +192,8 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask {
JSONObject jsonDpjStart = pointTab.query("region_code = '" + RegionTypeEnum.DPJQB.getCode() + "' and can_vehicle_type = '" + vehicle_type + "' and lock_type = '1' and is_used = '1' and is_delete = '0' and vehicle_qty <> '0'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(jsonDpjStart)) {
// 判断叠盘架是否有任务 有就下一个任务
// todo
// 判断叠盘架是否有任务 有就下一个任务 : 可以去除
boolean is_point = this.isTask(jsonDpjStart.getString("point_code"));
if (!is_point) continue;
@@ -210,10 +211,12 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask {
JSONObject jsonDpjStart2 = pointTab.query("region_id = '" + RegionTypeEnum.DPJQB.getId() + "' and can_vehicle_type = '" + vehicle_type + "' and lock_type = '1' and is_used = '1' and is_delete = '0' and vehicle_qty = '0'").uniqueResult(0);
if (ObjectUtil.isEmpty(jsonDpjStart2)) continue;
// todo: 删除任务校验
// 判断叠盘架是否有任务
boolean is_point = this.isTask(jsonDpjStart2.getString("point_code"));
if (!is_point) continue;
// todo: 如何知道缓存位是否有空托盘
// 找叠盘架暂存位是否有空托盘
JSONObject map = new JSONObject();
map.put("flag", "1");
@@ -357,7 +360,7 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask {
.acs_task_type("2")
.vehicle_code(form.getString("vehicle_code"))
.vehicle_type(workOrderObj.getString("vehicle_type"))
.vehicle_qty(form.getIntValue("qty"))
.vehicle_qty(1)
.task_group_id(IdUtil.getLongId())
.handle_class(THIS_CLASS)
.create_time(DateUtil.now())
@@ -420,6 +423,7 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask {
.vehicle_type(json.getString("vehicle_type"))
.priority(json.getString("priority"))
.remark(json.getString("remark"))
.vehicle_qty(json.getString("vehicle_qty"))
.build();
resultList.add(dto);
}

View File

@@ -89,7 +89,7 @@ public class YqxCallEmpVehicleTask extends AbstractAcsTask {
taskTab.delete("task_id = '" + task_id + "'");
}
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
if (StrUtil.equals(status, "1")) {
// 更新任务状态为执行中
jsonTask.put("task_status", TaskStatusEnum.EXECUTING.getCode());
jsonTask.put("update_time", DateUtil.now());
@@ -97,7 +97,7 @@ public class YqxCallEmpVehicleTask extends AbstractAcsTask {
taskTab.update(jsonTask);
}
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
if (StrUtil.equals(status, "2")) {
/*
* 更改任务状态为完成
* 1.终点为叠盘架更新叠盘架数量、起点点位状态、等待位状态,更新任务组状态
@@ -364,7 +364,7 @@ public class YqxCallEmpVehicleTask extends AbstractAcsTask {
.acs_task_type("2")
.vehicle_code(form.getString("vehicle_code"))
.vehicle_type(workOrderObj.getString("vehicle_type"))
.vehicle_qty(form.getIntValue("qty"))
.vehicle_qty(1)
.task_group_id(org.nl.wms.util.IdUtil.getLongId())
.handle_class(THIS_CLASS)
.create_time(DateUtil.now())
@@ -427,6 +427,7 @@ public class YqxCallEmpVehicleTask extends AbstractAcsTask {
.vehicle_type(json.getString("vehicle_type"))
.priority(json.getString("priority"))
.remark(json.getString("remark"))
.vehicle_qty(json.getString("vehicle_qty"))
.build();
resultList.add(dto);
}

View File

@@ -61,7 +61,7 @@ public class HtSendEmpVehicleTask extends AbstractAcsTask {
taskTab.delete("task_id = '" + task_id + "'");
}
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
if (StrUtil.equals(status, "1")) {
// 更新任务状态为执行中
jsonTask.put("task_status", TaskStatusEnum.EXECUTING.getCode());
jsonTask.put("update_time", DateUtil.now());
@@ -69,7 +69,7 @@ public class HtSendEmpVehicleTask extends AbstractAcsTask {
taskTab.update(jsonTask);
}
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
if (StrUtil.equals(status, "2")) {
// 更改任务状态为完成
jsonTask.put("task_status", TaskStatusEnum.FINISHED.getCode());
jsonTask.put("update_time", DateUtil.now());

View File

@@ -59,7 +59,7 @@ public class YqxSendEmpVehicleTask extends AbstractAcsTask {
taskTab.delete("task_id = '" + task_id + "'");
}
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
if (StrUtil.equals(status, "1")) {
// 更新任务状态为执行中
jsonTask.put("task_status", TaskStatusEnum.EXECUTING.getCode());
jsonTask.put("update_time", DateUtil.now());
@@ -67,7 +67,7 @@ public class YqxSendEmpVehicleTask extends AbstractAcsTask {
taskTab.update(jsonTask);
}
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
if (StrUtil.equals(status, "2")) {
// 更改任务状态为完成
jsonTask.put("task_status", TaskStatusEnum.FINISHED.getCode());
jsonTask.put("update_time", DateUtil.now());

View File

@@ -17,6 +17,7 @@ import org.nl.wms.sch.SchTaskDto;
import org.nl.wms.sch.manage.AbstractAcsTask;
import org.nl.wms.sch.manage.TaskStatusEnum;
import org.nl.wms.sch.tasks.AcsTaskDto;
import org.nl.wms.sch.tasks.utils.PointUpdateUtil;
import org.nl.wms.util.IdUtil;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -40,10 +41,11 @@ public class GjxSendMaterialTask extends AbstractAcsTask {
public void updateTaskStatus(JSONObject task, String status) {
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
WQLObject orderTab = WQLObject.getWQLObject("PDM_BD_WorkOrder");
String task_id = task.getString("task_id");
JSONObject taskObj = taskTab.query("task_id = '" + task_id + "'").uniqueResult(0);
String workOrderId = taskObj.getString("material_info_id");
//任务取消
if (StrUtil.equals(status, "0")) {
// 取消删除任务
@@ -84,8 +86,19 @@ public class GjxSendMaterialTask extends AbstractAcsTask {
// 更改任务状态为完成
taskObj.put("task_status", TaskStatusEnum.FINISHED.getCode());
taskObj.put("update_time", DateUtil.now());
taskObj.put("remark", "任务执行完成");
taskTab.update(taskObj);
JSONObject order = orderTab.query("workorder_id = '" + workOrderId + "'").uniqueResult(0);
if (order.getString("workorder_type").equals("1")) {
// 货梯口
String point_code2 = taskObj.getString("point_code2");
JSONObject param = new JSONObject();
param.put("lock_type", "1");
param.put("point_status", "3");
pointTab.update(param, "point_code = '" + point_code2 + "'");
}
String point_code2 = taskObj.getString("point_code2");
JSONObject endPoint = pointTab.query("point_code = '" + point_code2 + "'").uniqueResult(0);
@@ -146,24 +159,56 @@ public class GjxSendMaterialTask extends AbstractAcsTask {
public void findNextPoint() {
//判断共挤线是否有执行中的任务,如果任务数>=3,则不生成任务
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
/*
WQLObject orderTab = WQLObject.getWQLObject("PDM_BD_WorkOrder");
/**
* 根据业务找对应的终点
*/
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
JSONArray taskArr = taskTab.query("handle_class = '" + THIS_CLASS + "'and is_delete = '0' and task_status = '2'").getResultJSONArray(0);
for (int i = 0; i < taskArr.size(); i++) {
JSONObject taskObj = taskArr.getJSONObject(i);
String task_id = taskObj.getString("task_id");
String material_id = taskObj.getString("material_id");
String vehicle_type = taskObj.getString("vehicle_type");
String workOrderId = taskObj.getString("material_info_id"); // 工单号
// 获取工单判断是去养生区还是货梯口
JSONObject workOrder = orderTab.query("workorder_id = '" + workOrderId + "'").uniqueResult(0);
if (ObjectUtil.isEmpty(workOrder)) throw new BadRequestException("工单不能为空");
if (workOrder.getString("workorder_type").equals("1")) { // 机采去货梯扣
// 更新点位
JSONArray ssxArray = WQL.getWO("QSCH_yqxSendMaterial_01").addParam("flag", "2").process().getResultJSONArray(0);
PointUpdateUtil.updatePoint(ssxArray);
JSONObject param = new JSONObject();
param.put("flag", "1");
JSONObject endPoint = WQL.getWO("QSCH_yqxSendMaterial_01").addParamMap(param).process().uniqueResult(0);
if (ObjectUtil.isEmpty(endPoint)) {
taskObj.put("remark", "电梯无可用点");
taskObj.put("update_time", DateUtil.now());
taskTab.update(taskObj);
} else {
//锁住点位
endPoint.put("lock_type", "2");
endPoint.put("task_id", task_id);
pointTab.update(endPoint);
//修改任务状态
taskObj.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
taskObj.put("remark", "");
taskObj.put("point_code2", endPoint.getString("point_code"));
taskObj.put("update_time", DateUtil.now());
taskTab.update(taskObj);
}
return;
}
JSONObject param1 = new JSONObject();
param1.put("flag", "1");
param1.put("material_id", material_id);
param1.put("region_code", "YSQA01");
param1.put("vehicle_type", "%" + vehicle_type + "%");
param1.put("vehicle_type", vehicle_type );
//1、查找库区类是否有响应的载具类型和对应的物料
// json1: 对应相同物料的点位
JSONObject json1 = WQL.getWO("QSCH_gjxSendMaterial_01").addParamMap(param1).process().uniqueResult(0);
//判断是否有到同一列的相同物料SKU的AGV任务如果有则等待
JSONArray taskIngs = taskTab.query("is_delete='0' and material_id = '" + material_id + "' and (task_status = '4' or task_status = '5' or task_status = '6' )").getResultJSONArray(0);
@@ -181,59 +226,68 @@ public class GjxSendMaterialTask extends AbstractAcsTask {
}
if (ObjectUtil.isNotEmpty(json1)) {
if (ObjectUtil.isNotEmpty(json1)) { // json1: 对应相同物料的点位
Integer block_num = json1.getInteger("block_num");
Integer col_num = json1.getInteger("col_num");
Integer row_num = json1.getInteger("row_num");
JSONObject firstRow = pointTab.query("block_num = '" + block_num + "' and row_num = '" + row_num + "' and col_num ='" + (col_num - 1) + "'").uniqueResult(0);
if (ObjectUtil.isEmpty(firstRow)) throw new BadRequestException("数据错误,请校验!");
taskObj.put("point_code2", firstRow.getString("point_code"));
taskObj.put("update_time", DateUtil.now());
taskObj.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
//二楼普通任务
taskTab.update(taskObj);
//锁住相关货位
JSONObject point = new JSONObject();
point.put("lock_type", "2");
point.put("task_id", taskObj.getString("task_id"));
pointTab.update(point, "block_num = '" + block_num + "' and row_num = '" + row_num + "' and col_num <= '" + (col_num - 1) + "'");
} else {//找空位入
if (ObjectUtil.isNotEmpty(taskIngs) && taskIngs.size() > 1) {
taskObj.put("remark", "相应列有AGV在工作,等待执行!");
taskObj.put("update_time", DateUtil.now());
taskTab.update(taskObj);
continue;
}
JSONObject param2 = new JSONObject();
param2.put("flag", "2");
param2.put("region_code", "YSQA01");
param2.put("vehicle_type", "%" + vehicle_type + "%");
//1、查找整列为空的货位
JSONObject json2 = WQL.getWO("QSCH_gjxSendMaterial_01").addParamMap(param2).process().uniqueResult(0);
if (ObjectUtil.isEmpty(json2)) {
taskObj.put("remark", "养生A区无可用货位");
taskObj.put("update_time", DateUtil.now());
taskTab.update(taskObj);
} else {
Integer block_num = json2.getInteger("block_num");
Integer row_num = json2.getInteger("row_num");
JSONObject firstRow = pointTab.query("block_num = '" + block_num + "' and row_num = '" + row_num + "' and col_num ='9'").uniqueResult(0);
if (col_num != 1) {// 物料位在第一个位置说明已经叠满了
// 因为找到的是对应相同的物料点,所以是下一个位置
JSONObject firstRow = pointTab.query("block_num = '" + block_num + "' and row_num = '" + row_num + "' and lock_type = '1' and point_status = '1' and is_used = '1' and is_delete = '0'", "col_num desc").uniqueResult(0); // and col_num ='" + (col_num - 1) + "'
if (ObjectUtil.isEmpty(firstRow)) throw new BadRequestException("数据错误,请校验!");
taskObj.put("point_code2", firstRow.getString("point_code"));
//二楼普通任务
taskObj.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
taskObj.put("update_time", DateUtil.now());
taskObj.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
//二楼普通任务
taskTab.update(taskObj);
//锁住相关货位
JSONObject point = new JSONObject();
point.put("lock_type", "2");
point.put("task_id", taskObj.getString("task_id"));
pointTab.update(point, "block_num = '" + block_num + "' and row_num = '" + row_num + "' and col_num <= '" + 9 + "'");
pointTab.update(point, "point_code = '" + firstRow.getString("point_code") + "'");
return;
// JSONObject point = new JSONObject();
// point.put("lock_type", "2");
// point.put("task_id", taskObj.getString("task_id"));
// pointTab.update(point, "block_num = '" + block_num + "' and row_num = '" + row_num + "' and col_num <= '" + (col_num - 1) + "'");
}
}
//找空位入: 物料点查找在第一列或者是没有找到物料点
if (ObjectUtil.isNotEmpty(taskIngs) && taskIngs.size() > 1) {
taskObj.put("remark", "相应列有AGV在工作,等待执行!");
taskObj.put("update_time", DateUtil.now());
taskTab.update(taskObj);
continue;
}
JSONObject param2 = new JSONObject();
param2.put("flag", "2");
param2.put("region_code", "YSQA01");
param2.put("vehicle_type",vehicle_type);
//1、查找整列为空的货位
JSONObject json2 = WQL.getWO("QSCH_gjxSendMaterial_01").addParamMap(param2).process().uniqueResult(0);
if (ObjectUtil.isEmpty(json2)) {
taskObj.put("remark", "养生A区无可用货位");
taskObj.put("update_time", DateUtil.now());
taskTab.update(taskObj);
} else {
Integer block_num = json2.getInteger("block_num");
Integer row_num = json2.getInteger("row_num");
Integer sum = json2.getInteger("sum");
JSONObject firstRow = pointTab.query("block_num = '" + block_num + "' and row_num = '" + row_num + "' and lock_type = '1' and point_status = '1' and is_used = '1' and is_delete = '0'", "col_num desc").uniqueResult(0); // and col_num = '" + sum + "'
taskObj.put("point_code2", firstRow.getString("point_code"));
//二楼普通任务
taskObj.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
taskObj.put("update_time", DateUtil.now());
taskTab.update(taskObj);
//锁住相关货位
JSONObject point = new JSONObject();
point.put("lock_type", "2");
pointTab.update(point, "point_code = '" + firstRow.getString("point_code") + "'");
// JSONObject point = new JSONObject();
// point.put("lock_type", "2");
// point.put("task_id", taskObj.getString("task_id"));
// pointTab.update(point, "block_num = '" + block_num + "' and row_num = '" + row_num + "' and col_num <= '" + sum + "'"); // 9
}
}
}
@@ -273,7 +327,6 @@ public class GjxSendMaterialTask extends AbstractAcsTask {
@Override
public String createTask(JSONObject whereJson) {
String point_code1 = whereJson.getString("point_code1");
String vehicle_type = whereJson.getString("vehicle_type");
String vehicle_code = whereJson.getString("vehicle_code");
String qty = whereJson.getString("qty");

View File

@@ -67,7 +67,7 @@ public class YqxSendMaterialTask extends AbstractAcsTask {
taskTab.update(jsonTask);
}
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
if (StrUtil.equals(status, "1")) {
//更新任务状态为执行中
jsonTask.put("task_status", TaskStatusEnum.EXECUTING.getCode());
jsonTask.put("update_time", DateUtil.now());
@@ -75,7 +75,7 @@ public class YqxSendMaterialTask extends AbstractAcsTask {
taskTab.update(jsonTask);
}
if (TaskStatusEnum.FINISHED.getCode().equals(status)) {
if (StrUtil.equals(status, "2")) {
// 更新任务状态为完成
jsonTask.put("task_status", TaskStatusEnum.FINISHED.getCode());
jsonTask.put("taskfinish_mode", taskObj.getString("taskfinish_mode"));
@@ -130,8 +130,7 @@ public class YqxSendMaterialTask extends AbstractAcsTask {
//修改任务状态
taskObj.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
taskObj.put("point_code2", endPoint.getString("point_code"));
taskObj.put("update_optid", SecurityUtils.getCurrentUserId());
taskObj.put("update_optname", SecurityUtils.getCurrentNickName());
taskObj.put("remark", "");
taskObj.put("update_time", DateUtil.now());
taskTab.update(taskObj);
}

View File

@@ -57,7 +57,7 @@
AND is_delete = '0'
AND lock_type = '1'
AND point_status = '3'
and col_num>1
and col_num>=1
OPTION 输入.material_id <> ""
p.material_id = 输入.material_id
ENDOPTION
@@ -65,7 +65,7 @@
p.region_code = 输入.region_code
ENDOPTION
OPTION 输入.vehicle_type <> ""
p.can_vehicle_type like 输入.vehicle_type
p.can_vehicle_type like "%" 输入.vehicle_type "%"
ENDOPTION
ORDER BY block_num,row_num,col_num
ENDSELECT
@@ -87,10 +87,10 @@
AND point_status = '1'
AND lock_type = '1'
OPTION 输入.vehicle_type <> ""
p.can_vehicle_type like 输入.vehicle_type
p.can_vehicle_type like "%" 输入.vehicle_type "%"
ENDOPTION
GROUP BY block_num,row_num
HAVING sum = 9
HAVING sum in ('9','13')
ORDER BY block_num,row_num
ENDSELECT
ENDQUERY

View File

@@ -32,6 +32,7 @@ public class PointUpdateUtil {
if (pointObj2.getString("region_code").equals(RegionTypeEnum.DPJQB.getCode())) { // 碟盘机
String vehicleNum = pointObj.getString("vehicle_num");
pointObj2.put("vehicle_qty", vehicleNum);
pointObj2.put("point_status", vehicleNum.equals("0")?"1":"2");
pointTable.update(pointObj2);
} else if (pointObj2.getString("region_code").equals(RegionTypeEnum.SSX.getCode())) {
String move = pointObj.getString("move");

View File

@@ -54,7 +54,9 @@
SELECT
point.*,
d3.label as lock_type_name,
ma.material_name
ma.material_name,
ma.material_code,
ma.material_spec
FROM
sch_base_point point
LEFT JOIN SCH_BASE_Region region ON point.region_id = region.region_id

View File

@@ -72,7 +72,7 @@
task.create_time <= 输入.end_time
ENDOPTION
OPTION 输入.unFinish <> ""
task.task_status <> '07'
task.task_status <> '7'
ENDOPTION
OPTION 输入.task_status <> ""
find_in_set( task.task_status, 输入.task_status)

View File

@@ -202,8 +202,9 @@ export default {
// 打印纸张大小设置https://www.it610.com/article/2094844.html
LODOP.SET_PRINT_PAGESIZE(1, '100mm', '60mm', '1')
// LODOP.ADD_PRINT_RECT('0mm', '0mm', '50mm', '30mm', 0, 1)
LODOP.ADD_PRINT_BARCODE('4.3mm', '6.2mm', '60mm', '40mm', '128Auto', item)
LODOP.ADD_PRINT_BARCODE('10mm', '15mm', '80mm', '38mm', '128Auto', item)
LODOP.SET_PRINT_STYLEA(0, 'Horient', 2) // 设置对象在纸张范围内水平居中
LODOP.SET_PRINT_STYLEA(0, 'Vorient', 2)
// LODOP.PREVIEW()// 预览
LODOP.PRINT()// 打印
})
@@ -225,8 +226,9 @@ export default {
// 打印纸张大小设置https://www.it610.com/article/2094844.html
LODOP.SET_PRINT_PAGESIZE(1, '100mm', '60mm', '')
// LODOP.ADD_PRINT_RECT('0mm', '0mm', '48mm', '28mm', 0, 1)
LODOP.ADD_PRINT_BARCODE('4.3mm', '8.2mm', '60mm', '40mm', '128Auto', code)
LODOP.ADD_PRINT_BARCODE('10mm', '15mm', '80mm', '38mm', '128Auto', code)
LODOP.SET_PRINT_STYLEA(0, 'Horient', 2) // 设置对象在纸张范围内水平居中
LODOP.SET_PRINT_STYLEA(0, 'Vorient', 2)
// LODOP.PREVIEW()// 预览
LODOP.PRINT()// 打印
this.crud.notify('打印成功', CRUD.NOTIFICATION_TYPE.SUCCESS)

View File

@@ -200,6 +200,22 @@
/>
</el-select>
</el-form-item>
<el-form-item label="工单类型">
<el-select
v-model="form.workorder_type"
clearable
filterable
size="mini"
class="filter-item"
style="width: 200px"
>
<el-option
v-for="item in dict.workorder_type"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item label="计划开始时间" prop="planproducestart_date">
<el-date-picker
v-model="form.planproducestart_date"
@@ -253,6 +269,11 @@
{{ dict.label.pdm_workorder_status[scope.row.order_status] }}
</template>
</el-table-column>
<el-table-column prop="workorder_type" label="工单类型">
<template slot-scope="scope">
{{ dict.label.workorder_type[scope.row.workorder_type] }}
</template>
</el-table-column>
<el-table-column prop="produce_date" label="生产日期" width="100px" />
<el-table-column prop="plan_qty" label="计划数量" />
<el-table-column prop="real_qty" label="实际数量" />
@@ -342,13 +363,14 @@ const defaultForm = {
device_code: null,
is_canupdate_update: '1',
material_spec: null,
sale_id: null
sale_id: null,
workorder_type: '1'
}
export default {
name: 'Produceshiftorder',
components: { pagination, crudOperation, rrOperation, udOperation, MaterDtl, ViewDialog, DeviceDialog },
mixins: [presenter(), header(), form(defaultForm), crud()],
dicts: ['pdm_workorder_status', 'is_used', 'is_or_not', 'vehicle_type', 'workorder_procedure'],
dicts: ['pdm_workorder_status', 'is_used', 'is_or_not', 'vehicle_type', 'workorder_procedure', 'workorder_type'],
cruds() {
return CRUD({
title: '工单', url: 'api/workorder', idField: 'workorder_id', sort: 'workorder_id,desc',

View File

@@ -56,30 +56,30 @@
</div>
<el-form ref="form" disabled :inline="true" :model="form" :rules="rules" size="mini" label-width="100px">
<el-form-item label="物料编码">
<el-input v-model="form.region_code" style="width: 200px;"/>
<el-form-item label="物料柜号">
<el-input v-model="form.material_code" style="width: 200px;"/>
</el-form-item>
<el-form-item label="物料名称">
<el-input v-model="form.region_name" style="width: 200px;"/>
<el-input v-model="form.material_name" style="width: 200px;"/>
</el-form-item>
<el-form-item label="物料规格">
<el-input v-model="form.point_code" style="width: 200px;"/>
<el-input v-model="form.material_spec" style="width: 200px;"/>
</el-form-item>
<el-form-item label="物料批次">
<el-input v-model="form.point_name" style="width: 200px;"/>
<el-input v-model="form.pcsn" style="width: 200px;"/>
</el-form-item>
<el-form-item label="库存量">
<el-input v-model="form.point_type_name" style="width: 200px;"/>
<el-input v-model="form.ivt_qty" style="width: 200px;"/>
</el-form-item>
<el-form-item label="计量单位">
<el-input v-model="form.point_status_name" style="width: 200px;"/>
</el-form-item>
<el-form-item label="入库时间">
<el-input v-model="form.lock_type_name" style="width: 200px;"/>
<el-input v-model="form.instorage_time" style="width: 200px;"/>
</el-form-item>
<el-form-item label="静置时间(分)">
<el-input v-model="form.lock_type_name" style="width: 200px;"/>
<el-input v-model="form.standing_time" style="width: 200px;"/>
</el-form-item>
</el-form>
</el-card>

View File

@@ -315,6 +315,7 @@
</el-table-column>
<el-table-column prop="point_name" label="点位名称" width="150" sortable show-overflow-tooltip />
<el-table-column prop="region_name" label="区域名称" min-width="120" show-overflow-tooltip />
<el-table-column prop="material_name" label="物料名称" min-width="120" show-overflow-tooltip />
<el-table-column prop="point_type_name" label="点位类型" />
<el-table-column prop="point_status_name" label="点位状态" />
<el-table-column prop="lock_type_name" label="锁定类型" />

View File

@@ -132,10 +132,10 @@
</template>
</el-table-column>
<el-table-column prop="vehicle_code" label="载具编码" min-width="100" show-overflow-tooltip />
<el-table-column prop="point_code1" label="点位1" width="100" />
<el-table-column prop="point1_region_name" label="区域1" width="120" />
<el-table-column prop="point_code2" label="点位2" min-width="100" show-overflow-tooltip />
<el-table-column prop="point2_region_name" label="区域2" min-width="120" show-overflow-tooltip />
<el-table-column prop="point_code1" label="点" width="100" />
<el-table-column prop="point1_region_name" label="起点区域" width="120" />
<el-table-column prop="point_code2" label="点" min-width="100" show-overflow-tooltip />
<el-table-column prop="point2_region_name" label="终点区域" min-width="120" show-overflow-tooltip />
<!--<el-table-column prop="point_code3" label="点位3" min-width="100" show-overflow-tooltip />
<el-table-column prop="point3_region_name" label="区域3" min-width="120" show-overflow-tooltip />-->
<!--<el-table-column prop="point_code3" label="点位3" width="85" />
@@ -179,11 +179,11 @@
width="30%"
>
<!-- 组件-->
<component
:is="currentComponent"
:task-uuid="task_id"
:dialog-visible="viewDialogVisible"
/>
<!-- <component-->
<!-- :is="currentComponent"-->
<!-- :task-uuid="task_id"-->
<!-- :dialog-visible="viewDialogVisible"-->
<!-- />-->
<span slot="footer" class="dialog-footer">
<el-button @click="viewDialogVisible = false"> </el-button>
<el-button type="primary" @click="viewDialogVisible = false"> </el-button>
@@ -254,8 +254,8 @@ export default {
crudTask.getFinishType().then(data => {
this.finishTypeList = data
})
this.crud.query.task_status = ['-1']
this.crud.toQuery()
// this.crud.query.task_status = ['-1']
// this.crud.toQuery()
},
methods: {
initClass1() {
@@ -298,8 +298,9 @@ export default {
this.crud.toQuery()
},
handTaskStatus(value) {
this.crud.query.more_task_status = null
if (value) {
this.query.task_status = this.task_status.toString()
this.crud.query.more_task_status = value.toString()
}
this.crud.toQuery()
},