rev: 修改业务

add: 添加对接类
This commit is contained in:
2023-06-15 14:17:37 +08:00
parent 85e5b7d785
commit 6a4a459876
21 changed files with 464 additions and 26 deletions

View File

@@ -0,0 +1,32 @@
package org.nl.wms.autotask;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.config.MapOf;
import org.nl.modules.wql.WQL;
import org.nl.modules.wql.core.bean.WQLObject;
import org.nl.modules.wql.core.engine.object.WO;
import org.springframework.stereotype.Component;
/**
* @Author: lyd
* @Description: 清理非法锁定点
* @Date: 2023/6/12
*/
@Slf4j
@Component
@RequiredArgsConstructor
public class CleanLockPoint {
public void run(){
WQLObject schBasePoint = WQLObject.getWQLObject("sch_base_point");
JSONArray resultJSONArray = WQL.getWO("ExecuteTaskSql").addParamMap(MapOf.of("flag", "1")).process().getResultJSONArray(0);
for (int i = 0; i < resultJSONArray.size(); i++) {
JSONObject jsonObject = resultJSONArray.getJSONObject(i);
jsonObject.put("lock_type", "1");
schBasePoint.update(jsonObject);
}
log.info("自动解锁点位[" + resultJSONArray.size() + "]个,执行成功...!");
}
}

View File

@@ -0,0 +1,59 @@
[交易说明]
交易名: 基础点位分页查询
所属模块:
功能简述:
版权所有:
表引用:
版本经历:
[数据库]
--指定数据库为空采用默认值默认为db.properties中列出的第一个库
[IO定义]
#################################################
## 表字段对应输入参数
#################################################
输入.flag TYPEAS s_string
[临时表]
--这边列出来的临时表就会在运行期动态创建
[临时变量]
--所有中间过程变量均可在此处定义
[业务过程]
##########################################
# 1、输入输出检查 #
##########################################
##########################################
# 2、主过程前处理 #
##########################################
##########################################
# 3、业务主过程 #
##########################################
IF 输入.flag = "1"
PAGEQUERY
SELECT p.*
FROM `sch_base_point` p
WHERE p.lock_type = '2'
AND NOT EXISTS (
SELECT 1
FROM sch_base_task t
WHERE t.task_status <> '7'
AND (
t.point_code1 = p.point_code
OR t.point_code2 = p.point_code
)
AND t.point_code1 <> ''
AND t.point_code1 IS NOT NULL
)
AND p.region_code <> 'SSX01'
ENDSELECT
ENDPAGEQUERY
ENDIF

View File

@@ -0,0 +1,64 @@
package org.nl.wms.ext.mes.rest;
import cn.dev33.satoken.annotation.SaIgnore;
import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.modules.logging.annotation.Log;
import org.nl.wms.ext.mes.service.MesToWmsService;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @Author: lyd
* @Description:
* @Date: 2023/6/7
*/
@RestController
@RequiredArgsConstructor
@Api(tags = "mes请求wms")
@RequestMapping("/api/to/wms")
@Slf4j
@SaIgnore
public class MesToWmsController {
private final MesToWmsService mesToWmsService;
@PostMapping("/workWorder")
@Log("mes下发工单")
@ApiOperation("mes下发工单")
@SaIgnore
public ResponseEntity<Object> issueWorkOrderForMes(@RequestBody JSONObject param) {
mesToWmsService.issueWorkOrderForMes(param);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
@PostMapping("/workWorder/finish")
@Log("mes获取工单反馈")
@ApiOperation("mes获取工单反馈")
@SaIgnore
public ResponseEntity<Object> feedbackWorkOrderToMes(@RequestBody JSONObject param) {
return new ResponseEntity<>(mesToWmsService.feedbackWorkOrderToMes(param), HttpStatus.OK);
}
@PostMapping("/gjxDown")
@Log("供给线下料")
@ApiOperation("供给线下料")
@SaIgnore
public ResponseEntity<Object> gjxAutomaticForMes(@RequestBody JSONObject param) {
return new ResponseEntity<>(mesToWmsService.gjxAutomaticForMes(param), HttpStatus.OK);
}
@PostMapping("/hkxDown")
@Log("豪凯自动线下料")
@ApiOperation("豪凯自动线下料")
@SaIgnore
public ResponseEntity<Object> hawKeAutomaticForMes(@RequestBody JSONObject param) {
return new ResponseEntity<>(mesToWmsService.hawKeAutomaticForMes(param), HttpStatus.OK);
}
}

View File

@@ -0,0 +1,56 @@
package org.nl.wms.ext.mes.rest;
import cn.dev33.satoken.annotation.SaIgnore;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.modules.logging.annotation.Log;
import org.nl.wms.ext.mes.service.WmsToMesService;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @Author: lyd
* @Description: wms对接mes
* @Date: 2023/6/7
*/
@RestController
@RequiredArgsConstructor
@Api(tags = "wms请求mes")
@RequestMapping("/api/to/wms")
@Slf4j
@SaIgnore
public class WmsToMesController {
private final WmsToMesService wmsToMesService;
@PostMapping("/material")
@Log("从MES系统获取物料信息")
@ApiOperation("从MES系统获取物料信息")
@SaIgnore
public ResponseEntity<Object> getMaterialInfoForMes() {
wmsToMesService.getMaterialInfoForMes();
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
@PostMapping("/unit")
@Log("从MES系统获取物料计量单位")
@ApiOperation("从MES系统获取物料计量单位")
@SaIgnore
public ResponseEntity<Object> getUnitInfoForMes() {
wmsToMesService.getUnitInfoForMes();
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
@PostMapping("/device")
@Log("从MES系统获取设备基础信息")
@ApiOperation("从MES系统获取设备基础信息")
@SaIgnore
public ResponseEntity<Object> getDeviceInfoForMes() {
wmsToMesService.getDeviceInfoForMes();
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
}

View File

@@ -0,0 +1,22 @@
package org.nl.wms.ext.mes.service;
import com.alibaba.fastjson.JSONObject;
/**
* @Author: lyd
* @Description:
* @Date: 2023/6/7
*/
public interface MesToWmsService {
/**
* mes下发工单
*/
void issueWorkOrderForMes(JSONObject param);
JSONObject feedbackWorkOrderToMes(JSONObject param);
JSONObject hawKeAutomaticForMes(JSONObject param);
JSONObject gjxAutomaticForMes(JSONObject param);
}

View File

@@ -0,0 +1,24 @@
package org.nl.wms.ext.mes.service;
/**
* @Author: lyd
* @Description: wms对接mes的业务层
* @Date: 2023/6/7
*/
public interface WmsToMesService {
/**
* 从mes获取物料信息 wms请求mes
*/
void getMaterialInfoForMes();
/**
* 单位信息
*/
void getUnitInfoForMes();
/**
* 设备
*/
void getDeviceInfoForMes();
}

View File

@@ -0,0 +1,42 @@
package org.nl.wms.ext.mes.service.impl;
import com.alibaba.fastjson.JSONObject;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.wms.ext.mes.service.MesToWmsService;
import org.springframework.stereotype.Service;
/**
* @Author: lyd
* @Description:
* @Date: 2023/6/7
*/
@Service
@RequiredArgsConstructor
@Slf4j
public class MesToWmsServiceImpl implements MesToWmsService {
@Override
public void issueWorkOrderForMes(JSONObject param) {
//
}
@Override
public JSONObject feedbackWorkOrderToMes(JSONObject param) {
return null;
}
@Override
public JSONObject hawKeAutomaticForMes(JSONObject param) {
return null;
}
@Override
public JSONObject gjxAutomaticForMes(JSONObject param) {
log.info("mes供给线下料参数" + param);
JSONObject result = new JSONObject();
result.put("status", 200);
result.put("message", "操作成功");
result.put("data", param);
return result;
}
}

View File

@@ -0,0 +1,39 @@
package org.nl.wms.ext.mes.service.impl;
import cn.hutool.http.HttpUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.nl.wms.ext.mes.service.WmsToMesService;
import org.springframework.stereotype.Service;
/**
* @Author: lyd
* @Description: 具体实现
* @Date: 2023/6/7
*/
@Service
@RequiredArgsConstructor
@Slf4j
public class WmsToMesServiceImpl implements WmsToMesService {
final String http = "http://example.com/";
@Override
public void getMaterialInfoForMes() {
String url = http + "api/material";
String result = HttpUtil.post(url, "");
System.out.println(result);
}
@Override
public void getUnitInfoForMes() {
String url = http + "api/unit";
String result = HttpUtil.post(url, "");
System.out.println(result);
}
@Override
public void getDeviceInfoForMes() {
String url = http + "api/device";
String result = HttpUtil.post(url, "");
System.out.println(result);
}
}

View File

@@ -111,4 +111,12 @@ public class PointController {
pointService.changeLock(jsonObject); pointService.changeLock(jsonObject);
return new ResponseEntity<>(HttpStatus.NO_CONTENT); return new ResponseEntity<>(HttpStatus.NO_CONTENT);
} }
@Log("清空点位")
@PostMapping("/clearPoint")
@ApiOperation("清空点位")
public ResponseEntity<Object> clearPoint(@RequestBody JSONObject jsonObject) {
pointService.clearPoint(jsonObject);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
} }

View File

@@ -96,4 +96,10 @@ public interface PointService {
* @param jsonObject * @param jsonObject
*/ */
void changeLock(JSONObject jsonObject); void changeLock(JSONObject jsonObject);
/**
* 批量清空点位
* @param jsonObject
*/
void clearPoint(JSONObject jsonObject);
} }

View File

@@ -56,6 +56,7 @@ public class PointServiceImpl implements PointService {
map.put("col_num", whereJson.get("col_num")); map.put("col_num", whereJson.get("col_num"));
map.put("layer_num", whereJson.get("layer_num")); map.put("layer_num", whereJson.get("layer_num"));
map.put("name", whereJson.get("name")); map.put("name", whereJson.get("name"));
map.put("material_id", whereJson.get("material_id"));
JSONObject json = WQL.getWO("QSCH_BASE_POINT").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "point_code asc"); JSONObject json = WQL.getWO("QSCH_BASE_POINT").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "point_code asc");
JSONArray content = json.getJSONArray("content"); JSONArray content = json.getJSONArray("content");
JSONArray res = new JSONArray(); JSONArray res = new JSONArray();
@@ -339,6 +340,37 @@ public class PointServiceImpl implements PointService {
} }
} }
@Override
@Transactional(rollbackFor = Exception.class)
public void clearPoint(JSONObject jsonObject) {
WQLObject wo = WQLObject.getWQLObject("sch_base_Point");
JSONArray data = jsonObject.getJSONArray("data");
JSONObject object = new JSONObject();
object.put("point_status", "1");
object.put("vehicle_type", "");
object.put("vehicle_qty", "0");
object.put("task_id", "");
object.put("material_id", "");
object.put("pcsn", "");
object.put("ivt_qty", "");
object.put("instorage_time", "");
object.put("standing_time", "");
object.put("update_optid", SecurityUtils.getCurrentUserId());
object.put("update_optname", SecurityUtils.getCurrentNickName());
object.put("update_time", DateUtil.now());
String result = "";
for (int i = 0; i < data.size(); i++) {
JSONObject obj = data.getJSONObject(i);
String pointId = obj.getString("point_id");
result += "'" + pointId + "',";
}
// 去除末尾的逗号
if (!result.isEmpty()) {
result = result.substring(0, result.length() - 1);
}
wo.update(object, "point_id IN (" + result + ")");
}
//根据重量返回最大的 级数 //根据重量返回最大的 级数
public String getLoadSeriesByqty(Double qty) { public String getLoadSeriesByqty(Double qty) {
JSONArray dictArr = WQLObject.getWQLObject("sys_dict_detail").query("dict_id ='108'", "label").getResultJSONArray(0); JSONArray dictArr = WQLObject.getWQLObject("sys_dict_detail").query("dict_id ='108'", "label").getResultJSONArray(0);

View File

@@ -217,7 +217,8 @@ public class YqxhcqCallMaterialTask extends AbstractAcsTask {
// 2.1、获取当前快排列的等待点 row:排 // 2.1、获取当前快排列的等待点 row:排
JSONObject waitPoint = WQL.getWO("QSCH_yqxCallMAterial_01") JSONObject waitPoint = WQL.getWO("QSCH_yqxCallMAterial_01")
.addParamMap(MapOf.of("flag", "2", "block_num", materialPoint.getString("block_num"), .addParamMap(MapOf.of("flag", "2", "block_num", materialPoint.getString("block_num"),
"row_num", materialPoint.getString("row_num"))).process() "row_num", materialPoint.getString("row_num"),
"region_code", "YSQA01")).process()
.uniqueResult(0); .uniqueResult(0);
if (ObjectUtil.isEmpty(waitPoint)) throw new BadRequestException("油漆线缓存区判断等待点异常!"); if (ObjectUtil.isEmpty(waitPoint)) throw new BadRequestException("油漆线缓存区判断等待点异常!");
// 2.2、判断等待点 // 2.2、判断等待点
@@ -228,7 +229,8 @@ public class YqxhcqCallMaterialTask extends AbstractAcsTask {
"AND col_num = '" + waitPoint.getString("waitcol") + "' " + "AND col_num = '" + waitPoint.getString("waitcol") + "' " +
"AND is_used = '1' " + "AND is_used = '1' " +
"AND is_delete = '0' " + "AND is_delete = '0' " +
"AND lock_type = '1'").uniqueResult(0); "AND lock_type = '1' " +
"AND region_code = 'YSQA01'").uniqueResult(0);
if (ObjectUtil.isEmpty(waitPoints)) { if (ObjectUtil.isEmpty(waitPoints)) {
taskObj.put("remark", "等待点已被占用"); taskObj.put("remark", "等待点已被占用");
taskObj.put("update_time", DateUtil.now()); taskObj.put("update_time", DateUtil.now());

View File

@@ -114,12 +114,6 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask {
* 1.终点为叠盘架更新叠盘架数量、起点点位状态、等待位状态,更新任务组状态 * 1.终点为叠盘架更新叠盘架数量、起点点位状态、等待位状态,更新任务组状态
* 2.终点为供给线,更新起点载数量 * 2.终点为供给线,更新起点载数量
*/ */
jsonTask.put("task_status", TaskStatusEnum.FINISHED.getCode());
jsonTask.put("update_optid", SecurityUtils.getCurrentUserId());
jsonTask.put("update_optname", SecurityUtils.getCurrentUsername());
jsonTask.put("update_time", DateUtil.now());
taskTab.update(jsonTask);
// 判断终点在哪里 // 判断终点在哪里
String point_code1 = jsonTask.getString("point_code1"); String point_code1 = jsonTask.getString("point_code1");
String point_code2 = jsonTask.getString("point_code2"); String point_code2 = jsonTask.getString("point_code2");
@@ -179,6 +173,9 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask {
jsonStart.put("update_time", DateUtil.now()); jsonStart.put("update_time", DateUtil.now());
pointTab.update(jsonStart); pointTab.update(jsonStart);
} }
jsonTask.put("task_status", TaskStatusEnum.FINISHED.getCode());
jsonTask.put("update_time", DateUtil.now());
taskTab.update(jsonTask);
} }
} }
@@ -365,9 +362,6 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask {
JSONObject taskObj = taskTab.query("is_delete='0' and point_code2 = '" + form.getString("point_code2") + "' and task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0); JSONObject taskObj = taskTab.query("is_delete='0' and point_code2 = '" + form.getString("point_code2") + "' and task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(taskObj)) throw new BadRequestException("当前点位" + form.getString("point_code2") + "存在未完成的任务"); if (ObjectUtil.isNotEmpty(taskObj)) throw new BadRequestException("当前点位" + form.getString("point_code2") + "存在未完成的任务");
String point_code2 = form.getString("point_code2"); String point_code2 = form.getString("point_code2");
String sub_device_code = point_code2.substring(0, point_code2.indexOf("_")); String sub_device_code = point_code2.substring(0, point_code2.indexOf("_"));

View File

@@ -85,6 +85,9 @@
OPTION 输入.row_num <> "" OPTION 输入.row_num <> ""
p.row_num = 输入.row_num p.row_num = 输入.row_num
ENDOPTION ENDOPTION
OPTION 输入.region_code <> ""
p.region_code = 输入.region_code
ENDOPTION
AND p.is_used = '1' AND p.is_used = '1'
AND p.is_delete = '0' AND p.is_delete = '0'
ENDSELECT ENDSELECT

View File

@@ -208,6 +208,13 @@ public class HtSendEmpVehicleTask extends AbstractAcsTask {
JSONArray taskArr = taskTab.query("handle_class = '" + THIS_CLASS + "'and is_delete = '0' and task_status = '2'").getResultJSONArray(0); 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++) { for (int i = 0; i < taskArr.size(); i++) {
JSONObject jsonTask = taskArr.getJSONObject(i); JSONObject jsonTask = taskArr.getJSONObject(i);
String pointCode1 = jsonTask.getString("point_code1");
JSONObject jsonObject = pointTab.query("point_code = '" + pointCode1 + "'").uniqueResult(0);
if (jsonObject.getString("lock_type").equals("2")) { // 查看是否被锁住
jsonTask.put("remark", "货梯已被锁住!");
taskTab.update(jsonTask);
continue;
}
String point_code_ht = ""; String point_code_ht = "";
// 查找组盘信息 // 查找组盘信息
JSONObject groupObj = groupTab.query("vehicle_code = '" + jsonTask.getString("vehicle_code") + "'").uniqueResult(0); JSONObject groupObj = groupTab.query("vehicle_code = '" + jsonTask.getString("vehicle_code") + "'").uniqueResult(0);
@@ -298,7 +305,7 @@ public class HtSendEmpVehicleTask extends AbstractAcsTask {
jsonEnd.put("lock_type", "2"); jsonEnd.put("lock_type", "2");
pointTab.update(jsonEnd); pointTab.update(jsonEnd);
// 锁住送当前货梯所有点 // 锁住送当前货梯所有点
String allPre = jsonTask.getString("point_code1").substring(0, 5); String allPre = pointCode1.substring(0, 5);
JSONObject param2 = new JSONObject(); JSONObject param2 = new JSONObject();
param2.put("lock_type", "2"); param2.put("lock_type", "2");
param2.put("task_id", jsonTask.getString("task_id")); param2.put("task_id", jsonTask.getString("task_id"));

View File

@@ -34,6 +34,7 @@ import java.util.List;
@Slf4j @Slf4j
public class HtSendMaterialTask extends AbstractAcsTask { public class HtSendMaterialTask extends AbstractAcsTask {
private final String THIS_CLASS = HtSendMaterialTask.class.getName(); private final String THIS_CLASS = HtSendMaterialTask.class.getName();
@Override @Override
public List<AcsTaskDto> addTask() { public List<AcsTaskDto> addTask() {
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
@@ -128,13 +129,16 @@ public class HtSendMaterialTask extends AbstractAcsTask {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public String createTask(JSONObject form) { public String createTask(JSONObject form) {
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
WQLObject vehicleInfoTab = WQLObject.getWQLObject("md_pb_vehicle");
String startPointCode = form.getString("point_code1"); String startPointCode = form.getString("point_code1");
String taskId = form.getString("task_id"); String taskId = form.getString("task_id");
String vehicleCode = form.getString("vehicle_code"); String vehicleCode = form.getString("vehicle_code");
//判断当前点是否有未完成的任务 //判断当前点是否有未完成的任务
JSONObject taskObj = taskTab.query("is_delete='0' and point_code1 = '" + startPointCode + "' and task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0); JSONObject taskObj = taskTab.query("is_delete='0' and point_code1 = '" + startPointCode + "' and task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(taskObj)) throw new BadRequestException("当前点位" + startPointCode + "存在未完成的任务"); if (ObjectUtil.isNotEmpty(taskObj))
throw new BadRequestException("当前点位" + startPointCode + "存在未完成的任务");
JSONObject task = taskTab.query("task_id = '" + taskId + "'").uniqueResult(0); JSONObject task = taskTab.query("task_id = '" + taskId + "'").uniqueResult(0);
JSONObject vehicleObj = vehicleInfoTab.query("vehicle_code = '" + vehicleCode + "'").uniqueResult(0);
// 创建任务 // 创建任务
SchTaskDto dto = SchTaskDto.builder().task_id(org.nl.wms.util.IdUtil.getLongId()) SchTaskDto dto = SchTaskDto.builder().task_id(org.nl.wms.util.IdUtil.getLongId())
.task_code(CodeUtil.getNewCode("TASK_CODE")) .task_code(CodeUtil.getNewCode("TASK_CODE"))
@@ -143,9 +147,9 @@ public class HtSendMaterialTask extends AbstractAcsTask {
.task_name("货梯物料入库") .task_name("货梯物料入库")
.task_status(TaskStatusEnum.SURE_START.getCode()) .task_status(TaskStatusEnum.SURE_START.getCode())
.point_code1(startPointCode) .point_code1(startPointCode)
.priority("1") .priority("5")
.material_id(task.getLong("material_id")) .material_id(task.getLong("material_id"))
.vehicle_type(task.getString("vehicle_type")) .vehicle_type(ObjectUtil.isNotEmpty(vehicleObj) ? vehicleObj.getString("vehicle_type") : task.getString("vehicle_type"))
.vehicle_code(vehicleCode) .vehicle_code(vehicleCode)
.vehicle_qty(1) .vehicle_qty(1)
.material_qty(task.getString("material_qty")) .material_qty(task.getString("material_qty"))
@@ -177,14 +181,14 @@ public class HtSendMaterialTask extends AbstractAcsTask {
param1.put("flag", "1"); param1.put("flag", "1");
param1.put("material_id", material_id); param1.put("material_id", material_id);
param1.put("region_code", "YSQB01"); param1.put("region_code", "YSQB01");
param1.put("vehicle_type", vehicle_type ); param1.put("vehicle_type", vehicle_type);
JSONObject json1 = WQL.getWO("QSCH_gjxSendMaterial_01").addParamMap(param1).process().uniqueResult(0); JSONObject json1 = WQL.getWO("QSCH_gjxSendMaterial_01").addParamMap(param1).process().uniqueResult(0);
if (ObjectUtil.isNotEmpty(json1)) { // json1: 对应相同物料的点位 if (ObjectUtil.isNotEmpty(json1)) { // json1: 对应相同物料的点位
Integer block_num = json1.getInteger("block_num"); Integer block_num = json1.getInteger("block_num");
Integer col_num = json1.getInteger("col_num"); // 列 Integer col_num = json1.getInteger("col_num"); // 列
Integer row_num = json1.getInteger("row_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) +"' and lock_type = '1' and point_status = '1' and is_used = '1' and is_delete = '0' and region_code = 'YSQB01'").uniqueResult(0); JSONObject firstRow = pointTab.query("block_num = '" + block_num + "' and row_num = '" + row_num + "'and col_num = '" + (col_num - 1) + "' and lock_type = '1' and point_status = '1' and is_used = '1' and is_delete = '0' and region_code = 'YSQB01'").uniqueResult(0);
if (ObjectUtil.isNotEmpty(firstRow)) { if (ObjectUtil.isNotEmpty(firstRow)) {
taskObj.put("point_code2", firstRow.getString("point_code")); taskObj.put("point_code2", firstRow.getString("point_code"));
taskObj.put("update_time", DateUtil.now()); taskObj.put("update_time", DateUtil.now());
@@ -207,7 +211,7 @@ public class HtSendMaterialTask extends AbstractAcsTask {
JSONObject param2 = new JSONObject(); JSONObject param2 = new JSONObject();
param2.put("flag", "2"); param2.put("flag", "2");
param2.put("region_code", "YSQB01"); param2.put("region_code", "YSQB01");
param2.put("vehicle_type",vehicle_type); param2.put("vehicle_type", vehicle_type);
//1、查找整列为空的货位 //1、查找整列为空的货位
JSONObject json2 = WQL.getWO("QSCH_gjxSendMaterial_01").addParamMap(param2).process().uniqueResult(0); JSONObject json2 = WQL.getWO("QSCH_gjxSendMaterial_01").addParamMap(param2).process().uniqueResult(0);
if (ObjectUtil.isEmpty(json2)) { if (ObjectUtil.isEmpty(json2)) {

View File

@@ -96,7 +96,7 @@ public class YqxSendMaterialTask extends AbstractAcsTask {
param2.put("lock_type", "1"); param2.put("lock_type", "1");
param2.put("task_id", ""); param2.put("task_id", "");
pointTab.update(param2, "point_code like '" + allPre + "%' " + pointTab.update(param2, "point_code like '" + allPre + "%' " +
"AND point_code <> '" + allPre + "' " + "AND point_code like '" + allPre + "%' " +
"AND point_code <> '" + point_code2 + "'"); "AND point_code <> '" + point_code2 + "'");
} }
param.put("point_status", "3"); param.put("point_status", "3");

View File

@@ -19,6 +19,7 @@
输入.name TYPEAS s_string 输入.name TYPEAS s_string
输入.point_type TYPEAS s_string 输入.point_type TYPEAS s_string
输入.point_status TYPEAS s_string 输入.point_status TYPEAS s_string
输入.material_id TYPEAS s_string
输入.block_num TYPEAS s_string 输入.block_num TYPEAS s_string
输入.row_num TYPEAS s_string 输入.row_num TYPEAS s_string
输入.col_num TYPEAS s_string 输入.col_num TYPEAS s_string
@@ -97,6 +98,9 @@
OPTION 输入.layer_num <> "" OPTION 输入.layer_num <> ""
point.layer_num = 输入.layer_num point.layer_num = 输入.layer_num
ENDOPTION ENDOPTION
OPTION 输入.material_id <> ""
point.material_id = 输入.material_id
ENDOPTION
OPTION 输入.name <> "" OPTION 输入.name <> ""
( point.point_code like "%" 输入.name "%" or point.point_name like "%" 输入.name "%" ) ( point.point_code like "%" 输入.name "%" or point.point_name like "%" 输入.name "%" )
ENDOPTION ENDOPTION

View File

@@ -68,4 +68,12 @@ export function changeLock(data) {
}) })
} }
export default { add, edit, del, changeActive, findPoints, getPoint, getRegion, changeUsed, changeLock } export function clearPoint(data) {
return request({
url: 'api/point/clearPoint',
method: 'post',
data: data
})
}
export default { add, edit, del, changeActive, findPoints, getPoint, getRegion, changeUsed, changeLock, clearPoint }

View File

@@ -69,6 +69,9 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="物料柜号" prop="vehicle_code">
<el-input v-model="query.material_code" clearable @focus="getMaterialQuery" />
</el-form-item>
<el-form-item <el-form-item
v-if="(query.region_id=='1663803432005406720' || query.region_id=='1557539288307077120' || query.region_id=='1582909373552922624')" v-if="(query.region_id=='1663803432005406720' || query.region_id=='1557539288307077120' || query.region_id=='1582909373552922624')"
label="块" label="块"
@@ -192,6 +195,17 @@
> >
解锁 解锁
</el-button> </el-button>
<el-button
slot="right"
class="filter-item"
size="mini"
type="warning"
icon="el-icon-refresh"
:disabled="crud.selections.length === 0"
@click="clearPoint(crud.selections, 0)"
>
清空点位
</el-button>
</crudOperation> </crudOperation>
<!--表单组件--> <!--表单组件-->
<el-dialog <el-dialog
@@ -357,7 +371,7 @@
{{ scope.row.is_used == '1' ? '是' : '否' }} {{ scope.row.is_used == '1' ? '是' : '否' }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="update_name" label="修改人" /> <el-table-column prop="update_optname" label="修改人" />
<el-table-column prop="update_time" label="修改时间" width="150" /> <el-table-column prop="update_time" label="修改时间" width="150" />
<el-table-column <el-table-column
v-permission="[]" v-permission="[]"
@@ -378,6 +392,7 @@
<pagination /> <pagination />
</div> </div>
<MaterialDialog :dialog-show.sync="materialDialog" @tableChanged3="tableChanged" /> <MaterialDialog :dialog-show.sync="materialDialog" @tableChanged3="tableChanged" />
<MaterialDialog :dialog-show.sync="materialDialogQuery" @tableChanged3="tableChanged2" />
<WorkOrderDialog :dialog-show.sync="workOrderDialog" @tableChanged4="tableChanged" /> <WorkOrderDialog :dialog-show.sync="workOrderDialog" @tableChanged4="tableChanged" />
<ViewDialog ref="viewDialog" /> <ViewDialog ref="viewDialog" />
</div> </div>
@@ -443,6 +458,7 @@ export default {
syncLoading: false, syncLoading: false,
materialDialog: false, materialDialog: false,
workOrderDialog: false, workOrderDialog: false,
materialDialogQuery: false,
choose: '物料', choose: '物料',
invtypelist: [], invtypelist: [],
pointStatusList: [], pointStatusList: [],
@@ -573,9 +589,25 @@ export default {
this.workOrderDialog = true this.workOrderDialog = true
} }
}, },
getMaterialQuery() {
this.materialDialogQuery = true
},
tableChanged(row) { tableChanged(row) {
this.form.material_name = row.material_name this.form.material_name = row.material_name
this.form.material_id = row.material_id this.form.material_id = row.material_id
},
tableChanged2(row) {
this.query.material_id = row.material_id
this.query.material_code = row.material_code
},
clearPoint(data) {
console.log(data)
const param = {}
param.data = data
crudPoint.clearPoint(param).then(res => {
this.crud.notify('操作成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
this.crud.toQuery()
})
} }
} }
} }

View File

@@ -151,11 +151,11 @@
align="center" align="center"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <!-- <el-button-->
type="text" <!-- type="text"-->
icon="el-icon-upload" <!-- icon="el-icon-upload"-->
@click="doOperate(scope.row, 'c')" <!-- @click="doOperate(scope.row, 'c')"-->
>下发</el-button> <!-- >下发</el-button>-->
<el-button <el-button
type="text" type="text"
icon="el-icon-success" icon="el-icon-success"