This commit is contained in:
2023-01-08 16:13:29 +08:00
parent 730ff3dcbb
commit a513b1a058
7 changed files with 80 additions and 38 deletions

View File

@@ -9,6 +9,7 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.modules.common.exception.BadRequestException;
import org.nl.modules.system.util.CodeUtil;
import org.nl.modules.wql.WQL;
import org.nl.modules.wql.core.bean.WQLObject;
import org.nl.modules.wql.util.SpringContextHolder;
@@ -194,7 +195,6 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
if (ObjectUtil.isEmpty(type)) throw new BadRequestException("ACS申请任务失败任务类型不能为空");
if (ObjectUtil.isEmpty(device_code)) throw new BadRequestException("ACS申请任务失败点位不能为空");
if (ObjectUtil.isEmpty(vehicle_code)) throw new BadRequestException("ACS申请任务失败载具不能为空");
/*
* 根据type判断是什么业务类型
@@ -204,15 +204,33 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
* 4.出库口申请入发货区任务
*/
if (type.equals("1")) {
if (ObjectUtil.isEmpty(vehicle_code)) throw new BadRequestException("ACS申请任务失败载具不能为空");
//通过该木箱码查询对应的分配明细
JSONArray dis_rows = WQLObject.getWQLObject("st_ivt_iostorinvdis").query("work_status = '00' AND box_no = '" + vehicle_code + "'").getResultJSONArray(0);
if (ObjectUtil.isEmpty(dis_rows)) {
throw new BadRequestException("未查询到木箱:" + vehicle_code + "相关入库分配明细记录!");
}
ArrayList<HashMap> dis_list = new ArrayList<>();
for (int i = 0; i < dis_rows.size(); i++) {
HashMap<String,String> dis_map = new HashMap<>();
JSONObject dis_row = dis_rows.getJSONObject(i);
dis_map.put("box_no",dis_row.getString("box_no"));
dis_map.put("point_code",device_code);
dis_map.put("sect_id",dis_row.getString("sect_id"));
dis_map.put("sect_code",dis_row.getString("sect_code"));
dis_map.put("sect_name",dis_row.getString("sect_name"));
dis_map.put("struct_id",dis_row.getString("struct_id"));
dis_map.put("struct_code",dis_row.getString("struct_code"));
dis_map.put("struct_name",dis_row.getString("struct_name"));
dis_map.put("iostorinv_id",dis_row.getString("iostorinv_id"));
dis_list.add(dis_map);
}
Map map = new HashMap();
ArrayList<String> list = (ArrayList<String>) JSONObject.parseArray(dis_rows.toJSONString(),String.class);
map.put("tableMater", list);
//查询主存区的sect
JSONObject sect_jo = WQLObject.getWQLObject("st_ivt_sectattr").query("sect_type_attr = '00' AND is_used = '1'").uniqueResult(0);
map.put("tableMater", dis_list);
map.put("point_code", device_code);
map.put("sect_id", sect_jo.getString("sect_id"));
map.put("checked", true);
map.put("auto_issue", "1");
//自动分配货位并下发任务
@@ -227,6 +245,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
b、没有则优先找空的巷道按空位置顺序分配
3、任务下发判断巷道的任务类型只能为空盘入库或者无任务类型
* */
vehicle_code = CodeUtil.getNewCode("VEHICCLE_CODE_KTP");
JSONObject empty_row = WQL.getWO("QST_IVT_RAWASSISTISTOR").addParam("flag", "21").process().uniqueResult(0);
JSONObject struct_jo = new JSONObject();
@@ -277,9 +296,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
String placement_type = empty_row.getString("placement_type");
if (placement_type.equals("01") || placement_type.equals("03")) {
struct_jo = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num + "'AND placement_type = '" + placement_type + "' AND row_num = '" + row_num + "' AND is_delete = '0' AND is_used = '1' AND IFNULL(storagevehicle_code,'') = '' order by out_order_seq").uniqueResult(0);
struct_jo = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num + "'AND placement_type = '" + placement_type + "' AND row_num = '" + row_num + "' AND is_delete = '0' AND is_used = '1' AND IFNULL(storagevehicle_code,'') <> '' order by out_order_seq").uniqueResult(0);
} else {
struct_jo = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num + "'AND placement_type = '" + placement_type + "' AND row_num = '" + row_num + "' AND is_delete = '0' AND is_used = '1' AND IFNULL(storagevehicle_code,'') = '' order by out_order_seq desc").uniqueResult(0);
struct_jo = WQLObject.getWQLObject("st_ivt_structattr").query("lock_type = '1' AND block_num = '" + block_num + "'AND placement_type = '" + placement_type + "' AND row_num = '" + row_num + "' AND is_delete = '0' AND is_used = '1' AND IFNULL(storagevehicle_code,'') <> '' order by out_order_seq desc").uniqueResult(0);
}
}
if (ObjectUtil.isEmpty(struct_jo)) {
@@ -290,7 +309,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
task_jo.put("point_code1", struct_jo.getString("struct_code"));
task_jo.put("point_code2", device_code);
task_jo.put("task_type", "010504");
task_jo.put("vehicle_code", struct_jo.getString("vehicle_code"));
task_jo.put("vehicle_code", struct_jo.getString("storagevehicle_code"));
EmptyVehicleTask task = new EmptyVehicleTask();
task.createTask(task_jo);
@@ -389,10 +408,12 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
String box_length = sub_jo.getString("box_length");
String box_width = sub_jo.getString("box_width");
String box_high = sub_jo.getString("box_high");
result.put("box_length", box_length);
result.put("box_width", box_width);
result.put("box_high", box_high);
result.put("bundle_times", 2);
JSONObject data = new JSONObject();
data.put("box_length", box_length);
data.put("box_width", box_width);
data.put("box_high", box_high);
data.put("bundle_times", 2);
result.put("data",data);
} else if (type.equals("3")) {
//烘箱出箱任务
String device_code = whereJson.getString("device_code");

View File

@@ -160,7 +160,8 @@ public class ProductInstorServiceImpl implements ProductInstorService {
//创建二楼去一楼的任务
JSONObject form = new JSONObject();
form.put("point_code1", point_code);
form.put("point_code2", "TBJ01");
form.put("point_code2", "NTB01");
form.put("vehicle_code", box_no);
form.put("task_type", "010507");
cutConveyorTask.createTask(form);
} else {

View File

@@ -41,15 +41,27 @@ public class EmptyVehicleTask extends AbstractAcsTask {
for (int i = 0; i < arr.size(); i++) {
JSONObject json = arr.getJSONObject(i);
//判断该任务所在的块、排存在其他任务
String point_code2 = json.getString("point_code2");
JSONObject struct_jo = WQLObject.getWQLObject("ST_IVT_StructAttr").query("struct_code = '"+point_code2+"'").uniqueResult(0);
String row_num = struct_jo.getString("row_num");
String block_num = struct_jo.getString("block_num");
JSONObject task_jo = WQLObject.getWQLObject("ST_IVT_StructAttr").query("block_num = '"+block_num+"' AND row_num = '"+row_num+"' AND lock_type in ('3','6')").uniqueResult(0);
if (ObjectUtil.isNotEmpty(task_jo)){
continue;
}
JSONObject struct_jo = new JSONObject();
/*//判断该任务所在的块、排存在其他任务
if (json.getString("task_type").equals("010502")){
String point_code2 = json.getString("point_code2");
struct_jo = WQLObject.getWQLObject("ST_IVT_StructAttr").query("struct_code = '"+point_code2+"'").uniqueResult(0);
String row_num = struct_jo.getString("row_num");
String block_num = struct_jo.getString("block_num");
JSONObject task_jo = WQLObject.getWQLObject("ST_IVT_StructAttr").query("block_num = '"+block_num+"' AND row_num = '"+row_num+"' AND lock_type in ('3','6')").uniqueResult(0);
if (ObjectUtil.isNotEmpty(task_jo)){
continue;
}
}else {
String point_code1 = json.getString("point_code1");
struct_jo = WQLObject.getWQLObject("ST_IVT_StructAttr").query("struct_code = '"+point_code1+"'").uniqueResult(0);
String row_num = struct_jo.getString("row_num");
String block_num = struct_jo.getString("block_num");
JSONObject task_jo = WQLObject.getWQLObject("ST_IVT_StructAttr").query("block_num = '"+block_num+"' AND row_num = '"+row_num+"' AND lock_type in ('3','6')").uniqueResult(0);
if (ObjectUtil.isNotEmpty(task_jo)){
continue;
}
}*/
char dtl_type = json.getString("task_type").charAt(json.getString("task_type").length()-1);
AcsTaskDto dto = AcsTaskDto.builder()
@@ -77,34 +89,38 @@ public class EmptyVehicleTask extends AbstractAcsTask {
String currentUserId = SecurityUtils.getCurrentUserId();
String nickName = SecurityUtils.getCurrentNickName();
String now = DateUtil.now();
JSONObject task_jo = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '"+taskObj.getString("task_id")+"'").uniqueResult(0);
HashMap map = new HashMap();
//1:执行中,2:完成 ,3:acs取消
if (status.equals("1")) {
map.put("task_status", "03");
if (status.equals(TaskStatusEnum.EXECUTING.getCode())) {
map.put("task_status", TaskStatusEnum.EXECUTING.getCode());
}
if (status.equals("2")) {
if (status.equals(TaskStatusEnum.FINISHED.getCode())) {
map.put("task_status", TaskStatusEnum.FINISHED.getCode());
//解锁货位、点位。更新点位仓位状态
if (taskObj.getString("task_type").equals("010502")){
String vehicle_code = taskObj.getString("vehicle_code");
if (task_jo.getString("task_type").equals("010502")){
String vehicle_code = task_jo.getString("vehicle_code");
map.put("lock_type", "1");
map.put("point_status", "03");
map.put("point_status", "3");
map.put("vehicle_code", vehicle_code);
point_table.update(map, "point_code = '" + taskObj.getString("point_code2") + "'");
point_table.update(map, "point_code = '" + task_jo.getString("point_code2") + "'");
HashMap<String, String> struct_map = new HashMap<>();
struct_map.put("lock_type", "1");
struct_map.put("storagevehicle_code", vehicle_code);
struct_table.update(struct_map, "struct_code = '" + taskObj.getString("point_code2") + "'");
struct_map.put("is_emptyvehicle", "1");
struct_table.update(struct_map, "struct_code = '" + task_jo.getString("point_code2") + "'");
}
if (taskObj.getString("task_type").equals("010504")){
if (task_jo.getString("task_type").equals("010504")){
map.put("lock_type", "1");
map.put("point_status", "01");
map.put("point_status", "1");
map.put("vehicle_code", "");
point_table.update(map, "point_code = '" + taskObj.getString("point_code2") + "'");
point_table.update(map, "point_code = '" + task_jo.getString("point_code1") + "'");
HashMap<String, String> struct_map = new HashMap<>();
struct_map.put("lock_type", "1");
struct_map.put("storagevehicle_code", "");
struct_table.update(struct_map, "struct_code = '" + taskObj.getString("point_code2") + "'");
struct_map.put("is_emptyvehicle", "0");
struct_table.update(struct_map, "struct_code = '" + task_jo.getString("point_code1") + "'");
}
}

View File

@@ -75,8 +75,8 @@ public class InTask extends AbstractAcsTask {
String nickName = SecurityUtils.getCurrentNickName();
String now = DateUtil.now();
HashMap map = new HashMap();
//1:执行中,2:完成 ,3:acs取消
if (status.equals("1")) {
//1:执行中,2:完成 ,0:acs取消
if (status.equals(TaskStatusEnum.EXECUTING.getCode())) {
map.put("task_status", TaskStatusEnum.EXECUTING.getCode());
//更新入库单分配任务状态
HashMap dis_map = new HashMap();
@@ -84,7 +84,7 @@ public class InTask extends AbstractAcsTask {
dis_map.put("is_issued", "1");
WQLObject.getWQLObject("ST_IVT_IOStorInvDis").update(dis_map, "task_id = '" + taskObj.getString("task_id") + "'");
}
if (status.equals("2")) {
if (status.equals(TaskStatusEnum.FINISHED.getCode())) {
map.put("task_status", TaskStatusEnum.FINISHED.getCode());
//调用入库分配确认方法
InbillServiceImpl inbillService = SpringContextHolder.getBean(InbillServiceImpl.class);
@@ -92,6 +92,10 @@ public class InTask extends AbstractAcsTask {
dis_form.put("task_id", taskObj.getString("task_id"));
inbillService.confirmDis(dis_form);
}
if (StrUtil.equals(status, "0")) {
// 更新删除字段
map.put("is_delete","1");
}
map.put("update_optid", currentUserId);
map.put("update_optname", nickName);
map.put("update_time", now);

View File

@@ -717,13 +717,13 @@ public class HandMoveStorServiceImpl implements HandMoveStorService {
JSONObject from_start = new JSONObject();
from_start.put("lock_type", "1");
from_start.put("storagevehicle_code", jo.getString("storagevehicle_code"));
from_start.put("is_free", "1");
from_start.put("struct_id", jo.getString("turnout_struct_id"));
storPublicService.updateStructAndPoint(from_start);
//解锁终点点位、仓位,添加载具
JSONObject from_end = new JSONObject();
from_end.put("lock_type", "1");
from_end.put("struct_id", jo.getString("turnin_struct_id"));
from_start.put("is_free", "1");
from_end.put("storagevehicle_code", jo.getString("storagevehicle_code"));
storPublicService.updateStructAndPoint(from_end);

View File

@@ -24,7 +24,7 @@ export default {
this.timmer = setTimeout(() => {
sessionStorage.clear()
this.logout()
}, 1000 * 60 * 15) // 15分钟 https://blog.csdn.net/qq_42345108/article/details/103496456
}, 1000 * 60 * 30) // 15分钟 https://blog.csdn.net/qq_42345108/article/details/103496456
},
logout() {
this.$store.dispatch('LogOut').then(() => {

View File

@@ -98,7 +98,7 @@
<el-form-item label="业务日期" prop="biz_date">
<el-date-picker v-model="form.biz_date" type="date" placeholder="选择日期" style="width: 210px" value-format="yyyy-MM-dd" :disabled="crud.status.view > 0" />
</el-form-item>
<el-form-item label="移入仓库" prop="out_stor_id" v-if="form.bill_type === '1004'">
<el-form-item label="移入仓库" prop="out_stor_id" v-if="form.bill_type === '1004'" required="true">
<label slot="label">移入仓库:</label>
<el-select
v-model="form.out_stor_id"