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);
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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());
|
||||||
|
|||||||
@@ -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("_"));
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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"));
|
||||||
|
|||||||
@@ -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)) {
|
||||||
|
|||||||
@@ -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");
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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-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()
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
Reference in New Issue
Block a user