rev: 修改业务
add: 添加对接类
This commit is contained in:
@@ -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() + "]个,执行成功...!");
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -111,4 +111,12 @@ public class PointController {
|
||||
pointService.changeLock(jsonObject);
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -96,4 +96,10 @@ public interface PointService {
|
||||
* @param jsonObject
|
||||
*/
|
||||
void changeLock(JSONObject jsonObject);
|
||||
|
||||
/**
|
||||
* 批量清空点位
|
||||
* @param jsonObject
|
||||
*/
|
||||
void clearPoint(JSONObject jsonObject);
|
||||
}
|
||||
|
||||
@@ -56,6 +56,7 @@ public class PointServiceImpl implements PointService {
|
||||
map.put("col_num", whereJson.get("col_num"));
|
||||
map.put("layer_num", whereJson.get("layer_num"));
|
||||
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");
|
||||
JSONArray content = json.getJSONArray("content");
|
||||
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) {
|
||||
JSONArray dictArr = WQLObject.getWQLObject("sys_dict_detail").query("dict_id ='108'", "label").getResultJSONArray(0);
|
||||
|
||||
@@ -217,7 +217,8 @@ public class YqxhcqCallMaterialTask extends AbstractAcsTask {
|
||||
// 2.1、获取当前快排列的等待点 row:排
|
||||
JSONObject waitPoint = WQL.getWO("QSCH_yqxCallMAterial_01")
|
||||
.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);
|
||||
if (ObjectUtil.isEmpty(waitPoint)) throw new BadRequestException("油漆线缓存区判断等待点异常!");
|
||||
// 2.2、判断等待点
|
||||
@@ -228,7 +229,8 @@ public class YqxhcqCallMaterialTask extends AbstractAcsTask {
|
||||
"AND col_num = '" + waitPoint.getString("waitcol") + "' " +
|
||||
"AND is_used = '1' " +
|
||||
"AND is_delete = '0' " +
|
||||
"AND lock_type = '1'").uniqueResult(0);
|
||||
"AND lock_type = '1' " +
|
||||
"AND region_code = 'YSQA01'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(waitPoints)) {
|
||||
taskObj.put("remark", "等待点已被占用");
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
|
||||
@@ -114,12 +114,6 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask {
|
||||
* 1.终点为叠盘架更新叠盘架数量、起点点位状态、等待位状态,更新任务组状态
|
||||
* 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_code2 = jsonTask.getString("point_code2");
|
||||
@@ -179,6 +173,9 @@ public class GjxCallEmpVehicleTask extends AbstractAcsTask {
|
||||
jsonStart.put("update_time", DateUtil.now());
|
||||
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);
|
||||
if (ObjectUtil.isNotEmpty(taskObj)) throw new BadRequestException("当前点位" + form.getString("point_code2") + "存在未完成的任务");
|
||||
|
||||
|
||||
|
||||
|
||||
String point_code2 = form.getString("point_code2");
|
||||
String sub_device_code = point_code2.substring(0, point_code2.indexOf("_"));
|
||||
|
||||
|
||||
@@ -85,6 +85,9 @@
|
||||
OPTION 输入.row_num <> ""
|
||||
p.row_num = 输入.row_num
|
||||
ENDOPTION
|
||||
OPTION 输入.region_code <> ""
|
||||
p.region_code = 输入.region_code
|
||||
ENDOPTION
|
||||
AND p.is_used = '1'
|
||||
AND p.is_delete = '0'
|
||||
ENDSELECT
|
||||
|
||||
@@ -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);
|
||||
for (int i = 0; i < taskArr.size(); 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 = "";
|
||||
// 查找组盘信息
|
||||
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");
|
||||
pointTab.update(jsonEnd);
|
||||
// 锁住送当前货梯所有点
|
||||
String allPre = jsonTask.getString("point_code1").substring(0, 5);
|
||||
String allPre = pointCode1.substring(0, 5);
|
||||
JSONObject param2 = new JSONObject();
|
||||
param2.put("lock_type", "2");
|
||||
param2.put("task_id", jsonTask.getString("task_id"));
|
||||
|
||||
@@ -34,6 +34,7 @@ import java.util.List;
|
||||
@Slf4j
|
||||
public class HtSendMaterialTask extends AbstractAcsTask {
|
||||
private final String THIS_CLASS = HtSendMaterialTask.class.getName();
|
||||
|
||||
@Override
|
||||
public List<AcsTaskDto> addTask() {
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||
@@ -128,13 +129,16 @@ public class HtSendMaterialTask extends AbstractAcsTask {
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public String createTask(JSONObject form) {
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||
WQLObject vehicleInfoTab = WQLObject.getWQLObject("md_pb_vehicle");
|
||||
String startPointCode = form.getString("point_code1");
|
||||
String taskId = form.getString("task_id");
|
||||
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);
|
||||
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 vehicleObj = vehicleInfoTab.query("vehicle_code = '" + vehicleCode + "'").uniqueResult(0);
|
||||
// 创建任务
|
||||
SchTaskDto dto = SchTaskDto.builder().task_id(org.nl.wms.util.IdUtil.getLongId())
|
||||
.task_code(CodeUtil.getNewCode("TASK_CODE"))
|
||||
@@ -143,9 +147,9 @@ public class HtSendMaterialTask extends AbstractAcsTask {
|
||||
.task_name("货梯物料入库")
|
||||
.task_status(TaskStatusEnum.SURE_START.getCode())
|
||||
.point_code1(startPointCode)
|
||||
.priority("1")
|
||||
.priority("5")
|
||||
.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_qty(1)
|
||||
.material_qty(task.getString("material_qty"))
|
||||
@@ -177,14 +181,14 @@ public class HtSendMaterialTask extends AbstractAcsTask {
|
||||
param1.put("flag", "1");
|
||||
param1.put("material_id", material_id);
|
||||
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);
|
||||
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) +"' 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)) {
|
||||
taskObj.put("point_code2", firstRow.getString("point_code"));
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
@@ -207,7 +211,7 @@ public class HtSendMaterialTask extends AbstractAcsTask {
|
||||
JSONObject param2 = new JSONObject();
|
||||
param2.put("flag", "2");
|
||||
param2.put("region_code", "YSQB01");
|
||||
param2.put("vehicle_type",vehicle_type);
|
||||
param2.put("vehicle_type", vehicle_type);
|
||||
//1、查找整列为空的货位
|
||||
JSONObject json2 = WQL.getWO("QSCH_gjxSendMaterial_01").addParamMap(param2).process().uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(json2)) {
|
||||
|
||||
@@ -96,7 +96,7 @@ public class YqxSendMaterialTask extends AbstractAcsTask {
|
||||
param2.put("lock_type", "1");
|
||||
param2.put("task_id", "");
|
||||
pointTab.update(param2, "point_code like '" + allPre + "%' " +
|
||||
"AND point_code <> '" + allPre + "' " +
|
||||
"AND point_code like '" + allPre + "%' " +
|
||||
"AND point_code <> '" + point_code2 + "'");
|
||||
}
|
||||
param.put("point_status", "3");
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
输入.name TYPEAS s_string
|
||||
输入.point_type TYPEAS s_string
|
||||
输入.point_status TYPEAS s_string
|
||||
输入.material_id TYPEAS s_string
|
||||
输入.block_num TYPEAS s_string
|
||||
输入.row_num TYPEAS s_string
|
||||
输入.col_num TYPEAS s_string
|
||||
@@ -97,6 +98,9 @@
|
||||
OPTION 输入.layer_num <> ""
|
||||
point.layer_num = 输入.layer_num
|
||||
ENDOPTION
|
||||
OPTION 输入.material_id <> ""
|
||||
point.material_id = 输入.material_id
|
||||
ENDOPTION
|
||||
OPTION 输入.name <> ""
|
||||
( point.point_code like "%" 输入.name "%" or point.point_name like "%" 输入.name "%" )
|
||||
ENDOPTION
|
||||
|
||||
@@ -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 }
|
||||
|
||||
@@ -69,6 +69,9 @@
|
||||
/>
|
||||
</el-select>
|
||||
</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
|
||||
v-if="(query.region_id=='1663803432005406720' || query.region_id=='1557539288307077120' || query.region_id=='1582909373552922624')"
|
||||
label="块"
|
||||
@@ -192,6 +195,17 @@
|
||||
>
|
||||
解锁
|
||||
</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>
|
||||
<!--表单组件-->
|
||||
<el-dialog
|
||||
@@ -357,7 +371,7 @@
|
||||
{{ scope.row.is_used == '1' ? '是' : '否' }}
|
||||
</template>
|
||||
</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
|
||||
v-permission="[]"
|
||||
@@ -378,6 +392,7 @@
|
||||
<pagination />
|
||||
</div>
|
||||
<MaterialDialog :dialog-show.sync="materialDialog" @tableChanged3="tableChanged" />
|
||||
<MaterialDialog :dialog-show.sync="materialDialogQuery" @tableChanged3="tableChanged2" />
|
||||
<WorkOrderDialog :dialog-show.sync="workOrderDialog" @tableChanged4="tableChanged" />
|
||||
<ViewDialog ref="viewDialog" />
|
||||
</div>
|
||||
@@ -443,6 +458,7 @@ export default {
|
||||
syncLoading: false,
|
||||
materialDialog: false,
|
||||
workOrderDialog: false,
|
||||
materialDialogQuery: false,
|
||||
choose: '物料',
|
||||
invtypelist: [],
|
||||
pointStatusList: [],
|
||||
@@ -573,9 +589,25 @@ export default {
|
||||
this.workOrderDialog = true
|
||||
}
|
||||
},
|
||||
getMaterialQuery() {
|
||||
this.materialDialogQuery = true
|
||||
},
|
||||
tableChanged(row) {
|
||||
this.form.material_name = row.material_name
|
||||
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()
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -151,11 +151,11 @@
|
||||
align="center"
|
||||
>
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
type="text"
|
||||
icon="el-icon-upload"
|
||||
@click="doOperate(scope.row, 'c')"
|
||||
>下发</el-button>
|
||||
<!-- <el-button-->
|
||||
<!-- type="text"-->
|
||||
<!-- icon="el-icon-upload"-->
|
||||
<!-- @click="doOperate(scope.row, 'c')"-->
|
||||
<!-- >下发</el-button>-->
|
||||
<el-button
|
||||
type="text"
|
||||
icon="el-icon-success"
|
||||
|
||||
Reference in New Issue
Block a user