烧制、分拣工序
This commit is contained in:
@@ -104,6 +104,13 @@ public class AcsToWmsController {
|
||||
return new ResponseEntity<>(acsToWmsService.getDeviceCodeByVehicleType(whereJson), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/getVehicleInfoBycode")
|
||||
@Log("根据设备编码编码获取托盘信息")
|
||||
@ApiOperation("根据设备编码编码获取托盘信息")
|
||||
public ResponseEntity<Object> getVehicleInfoByDevice_code(@RequestBody Map whereJson) {
|
||||
return new ResponseEntity<>(acsToWmsService.getVehicleInfoByDeviceCode(whereJson), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/againApply")
|
||||
@Log("二次申请任务")
|
||||
@ApiOperation("二次申请任务")
|
||||
|
||||
@@ -79,5 +79,12 @@ public class WmsToAcsController {
|
||||
return new ResponseEntity<>(wmsToAcsService.getPointStatus(whereJson), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/queryTray")
|
||||
@Log("WMS向acs发送获取载具")
|
||||
@ApiOperation("WMS向acs发送获取载具")
|
||||
public ResponseEntity<Object> getTray(@RequestBody JSONArray whereJson) {
|
||||
return new ResponseEntity<>(wmsToAcsService.getTray(whereJson), HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -92,4 +92,12 @@ public interface AcsToWmsService {
|
||||
* @param whereJson
|
||||
*/
|
||||
void reverseGroup(JSONObject whereJson);
|
||||
|
||||
/**
|
||||
* 根据设备编码获取托盘信息
|
||||
*
|
||||
* @param jsonObject 条件
|
||||
* @return Map<String, Object>
|
||||
*/
|
||||
Map<String, Object> getVehicleInfoByDeviceCode(Map jsonObject);
|
||||
}
|
||||
|
||||
@@ -55,4 +55,11 @@ public interface WmsToAcsService {
|
||||
* @return
|
||||
*/
|
||||
JSONObject getPointStatus(JSONArray whereJson);
|
||||
|
||||
/**
|
||||
* 获取木托盘
|
||||
* @param whereJson
|
||||
* @return
|
||||
*/
|
||||
JSONObject getTray(JSONArray whereJson);
|
||||
}
|
||||
|
||||
@@ -22,11 +22,11 @@ import org.nl.wms.sch.manage.RegionEnum;
|
||||
import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||
import org.nl.wms.sch.manage.WorkOrderEnum;
|
||||
import org.nl.wms.sch.service.TaskService;
|
||||
import org.nl.wms.sch.tasks.PointUpdateUtil;
|
||||
import org.nl.wms.sch.tasks.callEmpty.FjCallEmptyVehicleTask;
|
||||
import org.nl.wms.sch.tasks.callEmpty.HnCallEmptyVehicleTask;
|
||||
import org.nl.wms.sch.tasks.callEmpty.YzjCallEmptyVehicleTask;
|
||||
import org.nl.wms.sch.tasks.callMaterial.FjCallMaterialTask;
|
||||
import org.nl.wms.sch.tasks.callMaterial.SzCallMaterialTask;
|
||||
import org.nl.wms.sch.tasks.callMaterial.YzjCallMaterialTask;
|
||||
import org.nl.wms.sch.tasks.sendEmpty.DpSendEmpVehicleTask;
|
||||
import org.nl.wms.sch.tasks.sendEmpty.FjSendEmpVehicleTask;
|
||||
@@ -185,62 +185,23 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
String weight = whereJson.getString("weight");
|
||||
String qty = whereJson.getString("qty");
|
||||
|
||||
|
||||
if (ObjectUtil.isEmpty(type)) throw new BadRequestException("类型不能为空");
|
||||
if (ObjectUtil.isEmpty(point_code)) throw new BadRequestException("点位不能为空");
|
||||
|
||||
// 类型映射
|
||||
/**
|
||||
* 类型映射
|
||||
* 1: 送料入库
|
||||
* 2: 叫料出库
|
||||
* 3: 送空托盘
|
||||
* 4: 叫空托盘
|
||||
*/
|
||||
String regionId = WQLObject
|
||||
.getWQLObject("sch_base_point")
|
||||
.query("point_code = '" + point_code + "'")
|
||||
.uniqueResult(0)
|
||||
.getString("region_id");
|
||||
switch (type) {
|
||||
case "1":
|
||||
// 设备送料入库
|
||||
if (StrUtil.equals(regionId, RegionEnum.HNQ.getId())) {
|
||||
type = "1";
|
||||
} else if (StrUtil.equals(regionId, RegionEnum.YZQ.getId())) {
|
||||
type = "5";
|
||||
} else if (StrUtil.equals(regionId, RegionEnum.YQ.getId())) {
|
||||
type = "8";
|
||||
} else if (StrUtil.equals(regionId, RegionEnum.ZDCDX.getId())) {
|
||||
type = "11";
|
||||
}
|
||||
break;
|
||||
case "2":
|
||||
// 设备叫料出库
|
||||
if (StrUtil.equals(regionId, RegionEnum.YZQ.getId())) {
|
||||
type = "3";
|
||||
} else if (StrUtil.equals(regionId, RegionEnum.YQ.getId())) {
|
||||
type = "7";
|
||||
} else if (StrUtil.equals(regionId, RegionEnum.ZDCDX.getId())) {
|
||||
type = "9";
|
||||
}
|
||||
break;
|
||||
case "3":
|
||||
// 设备送空托盘
|
||||
if (StrUtil.equals(regionId, RegionEnum.YZQ.getId())) {
|
||||
type = "4";
|
||||
} else if (StrUtil.equals(regionId, RegionEnum.ZDCDX.getId())) {
|
||||
type = "10";
|
||||
} else if (StrUtil.equals(regionId, RegionEnum.KGTDPQ.getId())) {
|
||||
type = "13";
|
||||
}
|
||||
break;
|
||||
case "4":
|
||||
// 设备叫空托盘
|
||||
if (StrUtil.equals(regionId, RegionEnum.HNQ.getId())) {
|
||||
type = "2";
|
||||
} else if (StrUtil.equals(regionId, RegionEnum.YZQ.getId())) {
|
||||
type = "6";
|
||||
} else if (StrUtil.equals(regionId, RegionEnum.ZDCDX.getId())) {
|
||||
type = "12";
|
||||
}
|
||||
break;
|
||||
default:
|
||||
throw new BadRequestException("ACS任务类型错误");
|
||||
}
|
||||
|
||||
RegionEnum regionEnum = RegionEnum.get(regionId);
|
||||
|
||||
// 参数统一获取
|
||||
JSONObject param = new JSONObject();
|
||||
@@ -257,7 +218,6 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
* 4.压制机上料位送空盅
|
||||
* 5.压制机满料入库
|
||||
* 6.压制机呼叫空钢托盘
|
||||
* 7.烧制叫料出库
|
||||
* 8.烧制送料入库
|
||||
* 9.分拣叫料出库
|
||||
* 10.分拣送空钢托盘
|
||||
@@ -267,76 +227,99 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
*/
|
||||
switch (type) {
|
||||
case "1":
|
||||
// 1.混碾机送料入库:混碾机物料送到困料货架
|
||||
// 创建任务
|
||||
param.put("point_code1", point_code); // 起点
|
||||
SpringContextHolder.getBean(HnSendMaterialTask.class).createTask(param);
|
||||
switch (regionEnum) {
|
||||
case HNQ:
|
||||
// 1.混碾机送料入库:混碾机物料送到困料货架
|
||||
// 创建任务
|
||||
param.put("point_code1", point_code); // 起点
|
||||
SpringContextHolder.getBean(HnSendMaterialTask.class).createTask(param);
|
||||
break;
|
||||
case YZQ:
|
||||
// 5.压制机满料入库
|
||||
param.put("point_code1", point_code); // 起点
|
||||
param.put("group_id", whereJson.getString("group_id")); // 组盘标识 - 机械手过来的
|
||||
// 创建任务
|
||||
SpringContextHolder.getBean(YzjSendMaterialTask.class).createTask(param);
|
||||
break;
|
||||
case YQ:
|
||||
// 8.烧制送料入库
|
||||
param.put("point_code1", point_code); // 起点
|
||||
SpringContextHolder.getBean(SzSendMaterialTask.class).createTask(param);
|
||||
break;
|
||||
case ZDCDX:
|
||||
// 11.分拣送料入库
|
||||
param.put("point_code1", point_code); // 起点
|
||||
param.put("group_id", whereJson.getString("group_id")); // 组盘标识 - 机械手过来的
|
||||
SpringContextHolder.getBean(FjSendMaterialTask.class).createTask(param);
|
||||
break;
|
||||
default:
|
||||
throw new BadRequestException("ACS任务类型错误");
|
||||
}
|
||||
break;
|
||||
case "2":
|
||||
param.put("point_code2", point_code); // 终点
|
||||
// 创建任务
|
||||
SpringContextHolder.getBean(HnCallEmptyVehicleTask.class).createTask(param);
|
||||
switch (regionEnum) {
|
||||
case YZQ:
|
||||
// 3.压制机叫料任务
|
||||
param.put("point_code2", point_code); // 终点
|
||||
// 创建任务
|
||||
SpringContextHolder.getBean(YzjCallMaterialTask.class).createTask(param);
|
||||
break;
|
||||
case ZDCDX:
|
||||
// 9.分拣叫料出库
|
||||
param.put("point_code2", point_code); // 终点
|
||||
SpringContextHolder.getBean(FjCallMaterialTask.class).createTask(param);
|
||||
break;
|
||||
default:
|
||||
throw new BadRequestException("ACS任务类型错误");
|
||||
}
|
||||
break;
|
||||
case "3":
|
||||
// 压制机叫料任务
|
||||
param.put("point_code2", point_code); // 终点
|
||||
// 创建任务
|
||||
SpringContextHolder.getBean(YzjCallMaterialTask.class).createTask(param);
|
||||
switch (regionEnum) {
|
||||
case YZQ:
|
||||
// 4.压制机送空盅
|
||||
param.put("point_code1", point_code); // 起点
|
||||
// 创建任务
|
||||
SpringContextHolder.getBean(YzjSendEmpVehicleTask.class).createTask(param);
|
||||
break;
|
||||
case ZDCDX:
|
||||
// 10.分拣送钢托盘
|
||||
param.put("point_code1", point_code); // 起点
|
||||
SpringContextHolder.getBean(FjSendEmpVehicleTask.class).createTask(param);
|
||||
break;
|
||||
case KGTDPQ:
|
||||
// 13.叠盘区送空钢托盘
|
||||
param.put("point_code1", point_code); // 起点
|
||||
SpringContextHolder.getBean(DpSendEmpVehicleTask.class).createTask(param);
|
||||
break;
|
||||
default:
|
||||
throw new BadRequestException("ACS任务类型错误");
|
||||
}
|
||||
break;
|
||||
case "4":
|
||||
// 压制机送空盅
|
||||
param.put("point_code1", point_code); // 起点
|
||||
// 创建任务
|
||||
SpringContextHolder.getBean(YzjSendEmpVehicleTask.class).createTask(param);
|
||||
break;
|
||||
case "5":
|
||||
// 压制机满料入库
|
||||
param.put("point_code1", point_code); // 起点
|
||||
param.put("group_id", whereJson.getString("group_id")); // 组盘标识
|
||||
// 创建任务
|
||||
SpringContextHolder.getBean(YzjSendMaterialTask.class).createTask(param);
|
||||
break;
|
||||
case "6":
|
||||
// 压制机呼叫空托盘
|
||||
param.put("point_code2", point_code); // 终点
|
||||
// 创建任务
|
||||
SpringContextHolder.getBean(YzjCallEmptyVehicleTask.class).createTask(param);
|
||||
break;
|
||||
case "7":
|
||||
// 烧制叫料出库
|
||||
param.put("point_code2", point_code); // 终点
|
||||
SpringContextHolder.getBean(SzCallMaterialTask.class).createTask(param);
|
||||
break;
|
||||
case "8":
|
||||
// 烧制送料入库
|
||||
param.put("point_code1", point_code); // 起点
|
||||
SpringContextHolder.getBean(SzSendMaterialTask.class).createTask(param);
|
||||
break;
|
||||
case "9":
|
||||
// 分拣叫料出库
|
||||
param.put("point_code2", point_code); // 终点
|
||||
SpringContextHolder.getBean(FjCallMaterialTask.class).createTask(param);
|
||||
break;
|
||||
case "10":
|
||||
// 分拣送钢托盘
|
||||
param.put("point_code1", point_code); // 起点
|
||||
SpringContextHolder.getBean(FjSendEmpVehicleTask.class).createTask(param);
|
||||
break;
|
||||
case "11":
|
||||
// 分拣送料入库
|
||||
param.put("point_code1", point_code); // 起点
|
||||
SpringContextHolder.getBean(FjSendMaterialTask.class).createTask(param);
|
||||
break;
|
||||
case "12":
|
||||
// 分拣呼叫木托盘
|
||||
param.put("point_code2", point_code); // 起点
|
||||
SpringContextHolder.getBean(FjCallEmptyVehicleTask.class).createTask(param);
|
||||
break;
|
||||
case "13":
|
||||
// 叠盘区送空钢托盘
|
||||
param.put("point_code1", point_code); // 起点
|
||||
SpringContextHolder.getBean(DpSendEmpVehicleTask.class).createTask(param);
|
||||
switch (regionEnum) {
|
||||
case HNQ:
|
||||
// 2.混碾机呼叫空托盘
|
||||
param.put("point_code2", point_code); // 终点
|
||||
// 创建任务
|
||||
SpringContextHolder.getBean(HnCallEmptyVehicleTask.class).createTask(param);
|
||||
break;
|
||||
case YZQ:
|
||||
// 6.压制机呼叫空托盘
|
||||
param.put("point_code2", point_code); // 终点
|
||||
// 创建任务
|
||||
SpringContextHolder.getBean(YzjCallEmptyVehicleTask.class).createTask(param);
|
||||
break;
|
||||
case ZDCDX:
|
||||
// 12.分拣呼叫木托盘 -- xxx
|
||||
param.put("point_code2", point_code); // 起点
|
||||
SpringContextHolder.getBean(FjCallEmptyVehicleTask.class).createTask(param);
|
||||
break;
|
||||
default:
|
||||
throw new BadRequestException("ACS任务类型错误");
|
||||
}
|
||||
break;
|
||||
default:
|
||||
throw new BadRequestException("ACS任务类型错误");
|
||||
}
|
||||
return null;
|
||||
}
|
||||
@@ -349,6 +332,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
*/
|
||||
@Override
|
||||
public void manipulatorApply(JSONObject jsonObject) {
|
||||
WQLObject pointTab = WQLObject.getWQLObject("SCH_BASE_Point");
|
||||
WQLObject groupTab = WQLObject.getWQLObject("st_buss_vehiclegroup");
|
||||
//组盘
|
||||
JSONObject produceInfoByCode = new JSONObject();
|
||||
String device_code = (String) jsonObject.get("device_code"); // 对接位
|
||||
@@ -358,99 +343,105 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
produceInfoByCode = this.getProduceInfoByCode(device_code); // 获取设备的
|
||||
String material_id = (String) produceInfoByCode.get("material_id");
|
||||
String cust_id = (String) produceInfoByCode.get("cust_id");
|
||||
String producetask_id = (String) produceInfoByCode.get("producetask_id");
|
||||
WQLObject.getWQLObject("st_buss_vehiclegroup").delete("vehicle_code ='" + vehicle_code + "'");
|
||||
// // 如果上报不了,则去点位上取(木托盘情况)
|
||||
// if (StrUtil.equals("0", vehicle_code)) {
|
||||
// vehicle_code = produceInfoByCode.getString("vehicle_code");
|
||||
// }
|
||||
|
||||
String producetask_id = (String) produceInfoByCode.get("workorder_id");
|
||||
// 物料
|
||||
JSONObject materialObj = WQLObject
|
||||
.getWQLObject("MD_ME_MaterialBase")
|
||||
.query("material_id='" + material_id + "'")
|
||||
.query("material_id = '" + material_id + "'")
|
||||
.uniqueResult(0);
|
||||
JSONObject groubObj = new JSONObject();
|
||||
long nextId = IdUtil.getSnowflake(1, 1).nextId();
|
||||
groubObj.put("group_id", nextId);
|
||||
groubObj.put("vehicle_code", vehicle_code);
|
||||
groubObj.put("material_uuid", material_id);
|
||||
groubObj.put("material_code", materialObj.getString("material_code"));
|
||||
groubObj.put("material_name", materialObj.getString("material_name"));
|
||||
groubObj.put("cust_id", cust_id);
|
||||
groubObj.put("qty", qty);
|
||||
groubObj.put("producetask_id", producetask_id);
|
||||
// groubObj.put("AlongSide", jsonObject.get("AlongSide"));
|
||||
// groubObj.put("BshortSide", jsonObject.get("BshortSide"));
|
||||
// groubObj.put("Htrapezoidal", jsonObject.get("Htrapezoidal"));
|
||||
// groubObj.put("Wthickness", jsonObject.get("Wthickness"));
|
||||
groubObj.put("tray_qty", jsonObject.get("tray_qty"));
|
||||
groubObj.put("crib_category", jsonObject.get("crib_category"));
|
||||
groubObj.put("tray_high", jsonObject.get("tray_high"));
|
||||
groubObj.put("palletX1_line", jsonObject.get("palletX1_line"));
|
||||
groubObj.put("palletY1_row", jsonObject.get("palletY1_row"));
|
||||
groubObj.put("palletA1_angle", jsonObject.get("palletA1_angle"));
|
||||
groubObj.put("palletX2_line", jsonObject.get("palletX2_line"));
|
||||
groubObj.put("palletY2_row", jsonObject.get("palletY2_row"));
|
||||
groubObj.put("palletA2_angle", jsonObject.get("palletA2_angle"));
|
||||
groubObj.put("palletX3_line", jsonObject.get("palletX3_line"));
|
||||
groubObj.put("palletY3_row", jsonObject.get("palletY3_row"));
|
||||
groubObj.put("pressCribX1_line", jsonObject.get("pressCribX1_line"));
|
||||
groubObj.put("palletA3_angle", jsonObject.get("palletA3_angle"));
|
||||
groubObj.put("pressCribY1_row", jsonObject.get("pressCribY1_row"));
|
||||
groubObj.put("pressCribA1_angle", jsonObject.get("pressCribA1_angle"));
|
||||
groubObj.put("pressCribX2_line", jsonObject.get("pressCribX2_line"));
|
||||
groubObj.put("pressCribY2_row", jsonObject.get("pressCribY2_row"));
|
||||
groubObj.put("pressCribA2_angle", jsonObject.get("pressCribA2_angle"));
|
||||
groubObj.put("pressCribX3_line", jsonObject.get("pressCribX3_line"));
|
||||
groubObj.put("pressCribY3_row", jsonObject.get("pressCribY3_row"));
|
||||
groubObj.put("pressCribA3_angle", jsonObject.get("pressCribA3_angle"));
|
||||
groubObj.put("Zoffset", jsonObject.get("Zoffset"));
|
||||
groubObj.put("pallet_layerQty", jsonObject.get("pallet_layerQty"));
|
||||
groubObj.put("pressCrib_layerQty", jsonObject.get("pressCrib_layerQty"));
|
||||
groubObj.put("codeLayerX1_interval", jsonObject.get("codeLayerX1_interval"));
|
||||
groubObj.put("codeLayerY1_interval", jsonObject.get("codeLayerY1_interval"));
|
||||
groubObj.put("pressCrib_layerQty", jsonObject.get("pressCrib_layerQty"));
|
||||
groubObj.put("codeLayerX2_interval", jsonObject.get("codeLayerX2_interval"));
|
||||
groubObj.put("codeLayerY2_interval", jsonObject.get("codeLayerY2_interval"));
|
||||
groubObj.put("codeLayerX3_interval", jsonObject.get("codeLayerX3_interval"));
|
||||
groubObj.put("codeLayerY3_interval", jsonObject.get("codeLayerY3_interval"));
|
||||
groubObj.put("codeLayerY1_offset", jsonObject.get("codeLayerY1_offset"));
|
||||
groubObj.put("codeLayerX1_offset", jsonObject.get("codeLayerX1_offset"));
|
||||
groubObj.put("codeLayerX3_interval", jsonObject.get("codeLayerX3_interval"));
|
||||
groubObj.put("codeLayerX2_offset", jsonObject.get("codeLayerX2_offset"));
|
||||
groubObj.put("codeLayerX3_offset", jsonObject.get("codeLayerX3_offset"));
|
||||
groubObj.put("codeLayerY3_offset", jsonObject.get("codeLayerY3_offset"));
|
||||
groubObj.put("pressLayerX1_interval", jsonObject.get("pressLayerX1_interval"));
|
||||
groubObj.put("pressLayerY1_interval", jsonObject.get("pressLayerY1_interval"));
|
||||
groubObj.put("pressLayerX2_interval", jsonObject.get("pressLayerX2_interval"));
|
||||
groubObj.put("pressLayerY2_interval", jsonObject.get("pressLayerY2_interval"));
|
||||
groubObj.put("pressLayerX3_interval", jsonObject.get("pressLayerX3_interval"));
|
||||
groubObj.put("pressLayerY3_interval", jsonObject.get("pressLayerY3_interval"));
|
||||
groubObj.put("pressLayerX1_offset", jsonObject.get("pressLayerX1_offset"));
|
||||
groubObj.put("pressLayerY1_offset", jsonObject.get("pressLayerY1_offset"));
|
||||
groubObj.put("pressLayerX2_offset", jsonObject.get("pressLayerX2_offset"));
|
||||
groubObj.put("pressLayerY2_offset", jsonObject.get("pressLayerY2_offset"));
|
||||
groubObj.put("pressLayerX3_offset", jsonObject.get("pressLayerX3_offset"));
|
||||
groubObj.put("pressLayerY3_offset", jsonObject.get("pressLayerY3_offset"));
|
||||
groubObj.put("one_cribTotal", jsonObject.get("one_cribTotal"));
|
||||
groubObj.put("two_cribTotal", jsonObject.get("two_cribTotal"));
|
||||
groubObj.put("one_qty", jsonObject.get("one_qty"));
|
||||
groubObj.put("two_qty", jsonObject.get("two_qty"));
|
||||
groubObj.put("tool_coordinate", jsonObject.get("tool_coordinate"));
|
||||
groubObj.put("create_id", SecurityUtils.getCurrentUserId());
|
||||
groubObj.put("create_name", SecurityUtils.getCurrentNickName());
|
||||
groubObj.put("create_time", DateUtil.now());
|
||||
WQLObject.getWQLObject("st_buss_vehiclegroup").insert(groubObj);
|
||||
jsonObject.put("group_id", nextId); // 组盘标识
|
||||
// 判断是分拣还是压制的送料入库
|
||||
if (device_code.startsWith("FJCD")) {
|
||||
jsonObject.put("type", "11");
|
||||
// 机械手下料位
|
||||
JSONObject pointObj = pointTab.query("point_code = '" + device_code + "'").uniqueResult(0);
|
||||
JSONObject groupObj = new JSONObject();
|
||||
if (ObjectUtil.isNotEmpty(pointObj.getString("group_id"))) { // 存在组盘id,表示是半托
|
||||
// 半托只需要修改参数即可
|
||||
groupObj = groupTab.query("group_id = '" + pointObj.getString("group_id") + "'").uniqueResult(0);
|
||||
jsonObject.put("group_id", ObjectUtil.isNotEmpty(pointObj.getString("group_id"))); // 组盘标识
|
||||
} else {
|
||||
jsonObject.put("type", "5");
|
||||
long nextId = IdUtil.getSnowflake(1, 1).nextId();
|
||||
groupObj.put("group_id", nextId);
|
||||
jsonObject.put("group_id", nextId); // 组盘标识
|
||||
}
|
||||
this.apply(jsonObject);
|
||||
groupObj.put("vehicle_code", vehicle_code);
|
||||
groupObj.put("material_uuid", material_id);
|
||||
groupObj.put("material_code", materialObj.getString("material_code"));
|
||||
groupObj.put("material_name", materialObj.getString("material_name"));
|
||||
groupObj.put("cust_id", cust_id);
|
||||
groupObj.put("qty", qty);
|
||||
groupObj.put("producetask_id", producetask_id);
|
||||
groupObj.put("tray_qty", jsonObject.get("tray_qty"));
|
||||
groupObj.put("crib_category", jsonObject.get("crib_category"));
|
||||
groupObj.put("tray_high", jsonObject.get("tray_high"));
|
||||
groupObj.put("palletX1_line", jsonObject.get("palletX1_line"));
|
||||
groupObj.put("palletY1_row", jsonObject.get("palletY1_row"));
|
||||
groupObj.put("palletA1_angle", jsonObject.get("palletA1_angle"));
|
||||
groupObj.put("palletX2_line", jsonObject.get("palletX2_line"));
|
||||
groupObj.put("palletY2_row", jsonObject.get("palletY2_row"));
|
||||
groupObj.put("palletA2_angle", jsonObject.get("palletA2_angle"));
|
||||
groupObj.put("palletX3_line", jsonObject.get("palletX3_line"));
|
||||
groupObj.put("palletY3_row", jsonObject.get("palletY3_row"));
|
||||
groupObj.put("pressCribX1_line", jsonObject.get("pressCribX1_line"));
|
||||
groupObj.put("palletA3_angle", jsonObject.get("palletA3_angle"));
|
||||
groupObj.put("pressCribY1_row", jsonObject.get("pressCribY1_row"));
|
||||
groupObj.put("pressCribA1_angle", jsonObject.get("pressCribA1_angle"));
|
||||
groupObj.put("pressCribX2_line", jsonObject.get("pressCribX2_line"));
|
||||
groupObj.put("pressCribY2_row", jsonObject.get("pressCribY2_row"));
|
||||
groupObj.put("pressCribA2_angle", jsonObject.get("pressCribA2_angle"));
|
||||
groupObj.put("pressCribX3_line", jsonObject.get("pressCribX3_line"));
|
||||
groupObj.put("pressCribY3_row", jsonObject.get("pressCribY3_row"));
|
||||
groupObj.put("pressCribA3_angle", jsonObject.get("pressCribA3_angle"));
|
||||
groupObj.put("Zoffset", jsonObject.get("Zoffset"));
|
||||
groupObj.put("pallet_layerQty", jsonObject.get("pallet_layerQty"));
|
||||
groupObj.put("pressCrib_layerQty", jsonObject.get("pressCrib_layerQty"));
|
||||
groupObj.put("codeLayerX1_interval", jsonObject.get("codeLayerX1_interval"));
|
||||
groupObj.put("codeLayerY1_interval", jsonObject.get("codeLayerY1_interval"));
|
||||
groupObj.put("pressCrib_layerQty", jsonObject.get("pressCrib_layerQty"));
|
||||
groupObj.put("codeLayerX2_interval", jsonObject.get("codeLayerX2_interval"));
|
||||
groupObj.put("codeLayerY2_interval", jsonObject.get("codeLayerY2_interval"));
|
||||
groupObj.put("codeLayerX3_interval", jsonObject.get("codeLayerX3_interval"));
|
||||
groupObj.put("codeLayerY3_interval", jsonObject.get("codeLayerY3_interval"));
|
||||
groupObj.put("codeLayerY1_offset", jsonObject.get("codeLayerY1_offset"));
|
||||
groupObj.put("codeLayerX1_offset", jsonObject.get("codeLayerX1_offset"));
|
||||
groupObj.put("codeLayerX3_interval", jsonObject.get("codeLayerX3_interval"));
|
||||
groupObj.put("codeLayerX2_offset", jsonObject.get("codeLayerX2_offset"));
|
||||
groupObj.put("codeLayerX3_offset", jsonObject.get("codeLayerX3_offset"));
|
||||
groupObj.put("codeLayerY3_offset", jsonObject.get("codeLayerY3_offset"));
|
||||
groupObj.put("pressLayerX1_interval", jsonObject.get("pressLayerX1_interval"));
|
||||
groupObj.put("pressLayerY1_interval", jsonObject.get("pressLayerY1_interval"));
|
||||
groupObj.put("pressLayerX2_interval", jsonObject.get("pressLayerX2_interval"));
|
||||
groupObj.put("pressLayerY2_interval", jsonObject.get("pressLayerY2_interval"));
|
||||
groupObj.put("pressLayerX3_interval", jsonObject.get("pressLayerX3_interval"));
|
||||
groupObj.put("pressLayerY3_interval", jsonObject.get("pressLayerY3_interval"));
|
||||
groupObj.put("pressLayerX1_offset", jsonObject.get("pressLayerX1_offset"));
|
||||
groupObj.put("pressLayerY1_offset", jsonObject.get("pressLayerY1_offset"));
|
||||
groupObj.put("pressLayerX2_offset", jsonObject.get("pressLayerX2_offset"));
|
||||
groupObj.put("pressLayerY2_offset", jsonObject.get("pressLayerY2_offset"));
|
||||
groupObj.put("pressLayerX3_offset", jsonObject.get("pressLayerX3_offset"));
|
||||
groupObj.put("pressLayerY3_offset", jsonObject.get("pressLayerY3_offset"));
|
||||
groupObj.put("one_cribTotal", jsonObject.get("one_cribTotal"));
|
||||
groupObj.put("two_cribTotal", jsonObject.get("two_cribTotal"));
|
||||
groupObj.put("one_qty", jsonObject.get("one_qty"));
|
||||
groupObj.put("two_qty", jsonObject.get("two_qty"));
|
||||
groupObj.put("tool_coordinate", jsonObject.get("tool_coordinate"));
|
||||
groupObj.put("create_id", SecurityUtils.getCurrentUserId());
|
||||
groupObj.put("create_name", SecurityUtils.getCurrentNickName());
|
||||
groupObj.put("create_time", DateUtil.now());
|
||||
if (ObjectUtil.isNotEmpty(pointObj.getString("group_id"))) {
|
||||
groupTab.update(groupObj);
|
||||
// 清除对接位的组盘标识
|
||||
pointObj.put("group_id", null);
|
||||
pointTab.update(pointObj);
|
||||
} else {
|
||||
groupTab.insert(groupObj);
|
||||
}
|
||||
// 物料更新
|
||||
materialObj.put("AlongSide", jsonObject.get("AlongSide"));
|
||||
materialObj.put("BshortSide", jsonObject.get("BshortSide"));
|
||||
materialObj.put("Htrapezoidal", jsonObject.get("Htrapezoidal"));
|
||||
materialObj.put("Wthickness", jsonObject.get("Wthickness"));
|
||||
WQLObject.getWQLObject("MD_ME_MaterialBase").insert(materialObj);
|
||||
// 入库
|
||||
jsonObject.put("type", "1");
|
||||
this.apply((JSONObject) jsonObject);
|
||||
this.apply(jsonObject);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -466,21 +457,17 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
if (StrUtil.isEmpty(vehicle_code)) {
|
||||
throw new BadRequestException("托盘条码不能为空!");
|
||||
}
|
||||
// 组盘表
|
||||
JSONObject vehicleObj = WQLObject.getWQLObject("st_buss_vehiclegroup").query("vehicle_code='" + vehicle_code + "'").uniqueResult(0);
|
||||
// 组盘表 - 对应的是钢托盘
|
||||
JSONObject vehicleObj = WQLObject.getWQLObject("st_buss_vehiclegroup").query("vehicle_code = '" + vehicle_code + "'", "create_time desc").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(vehicleObj)) {
|
||||
throw new BadRequestException("未找到托盘号为'" + vehicle_code + "'的组盘信息!");
|
||||
}
|
||||
// 获取工单
|
||||
String workorder_id = vehicleObj.getString("producetask_id");
|
||||
String workorder_id = vehicleObj.getString("producetask_id"); // workorder_id
|
||||
JSONObject taskObj = WQLObject.getWQLObject("PDM_BD_WorkOrder").query("workorder_id='" + workorder_id + "'").uniqueResult(0);
|
||||
//1代表去出窑,2 是优先包装
|
||||
String is_package = "1";
|
||||
if (StrUtil.equals(taskObj.getString("is_package"), "1")) {
|
||||
is_package = "2";
|
||||
}
|
||||
JSONObject returnjo = new JSONObject();
|
||||
returnjo.put("is_package", is_package);
|
||||
returnjo.put("is_package", taskObj.getString("is_package"));
|
||||
return returnjo;
|
||||
}
|
||||
|
||||
@@ -629,9 +616,49 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
String vehicle_code = whereJson.getString("vehicle_code");
|
||||
JSONObject rywPoint = pointTab.query("point_code = 'RYW'").uniqueResult(0);
|
||||
String group_id = rywPoint.getString("group_id");
|
||||
if (ObjectUtil.isEmpty(group_id)) return;
|
||||
JSONObject group = groupTab.query("group_id = '" + group_id + "'").uniqueResult(0);
|
||||
group.put("vehicle_code", vehicle_code);
|
||||
group.put("create_time", DateUtil.now());
|
||||
groupTab.update(group);
|
||||
// 清理点位
|
||||
rywPoint.put("group_id", null);
|
||||
pointTab.update(rywPoint);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据设备编码获取托盘信息
|
||||
*
|
||||
* @param jsonObject 条件
|
||||
* @return Map<String, Object>
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> getVehicleInfoByDeviceCode(Map jsonObject) {
|
||||
WQLObject groupTab = WQLObject.getWQLObject("st_buss_vehiclegroup");
|
||||
WQLObject pointTab = WQLObject.getWQLObject("SCH_BASE_Point");
|
||||
WQLObject materialTab = WQLObject.getWQLObject("MD_ME_MaterialBase");
|
||||
String point_code = (String) jsonObject.get("device_code");
|
||||
JSONObject point = pointTab.query("point_code = '" + point_code + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(point)) throw new BadRequestException("未找到点位编码为'"+ point_code +"'的点位信息");
|
||||
String group_id = point.getString("group_id");
|
||||
JSONObject vehicleObj = groupTab.query("group_id = '" + group_id + "' AND is_delete='0'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(vehicleObj)){
|
||||
throw new BadRequestException("未找到组盘信息");
|
||||
}
|
||||
// 还需要返回砖型
|
||||
String material_id = point.getString("material_id");
|
||||
JSONObject materialObj = materialTab.query("material_id = '" + material_id + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(materialObj)) {
|
||||
vehicleObj.put("AlongSide", materialObj.get("AlongSide"));
|
||||
vehicleObj.put("BshortSide", materialObj.get("BshortSide"));
|
||||
vehicleObj.put("Htrapezoidal", materialObj.get("Htrapezoidal"));
|
||||
vehicleObj.put("Wthickness", materialObj.get("Wthickness"));
|
||||
}
|
||||
JSONObject result = new JSONObject();
|
||||
result.put("status", HttpStatus.OK.value());
|
||||
result.put("message", "反馈成功!");
|
||||
result.put("data", vehicleObj);
|
||||
return result;
|
||||
}
|
||||
|
||||
private JSONObject getProduceInfoByCode(String code) { // 查找工单
|
||||
|
||||
@@ -54,4 +54,10 @@ public class WmsToAcsServiceImpl implements WmsToAcsService {
|
||||
return AcsUtil.notifyAcs(api, whereJson);
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject getTray(JSONArray whereJson) {
|
||||
String api = "api/wms/queryTray";
|
||||
return AcsUtil.notifyAcs(api, whereJson);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.nl.wms.sch.manage;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
|
||||
@@ -30,4 +31,13 @@ public enum RegionEnum {
|
||||
private String id;
|
||||
private String code;
|
||||
private String name;
|
||||
|
||||
public static RegionEnum get(String id) {
|
||||
for (RegionEnum regionEnum : RegionEnum.values()) {
|
||||
if (StrUtil.equals(regionEnum.id, id)) {
|
||||
return regionEnum;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,10 @@ public enum RegionIOEnum {
|
||||
CREATE_MODE_PC("1", "PC产生"),
|
||||
CREATE_MODE_ACS("2", "ACS申请"),
|
||||
CREATE_MODE_PDA("3", "手持创建"),
|
||||
CREATE_MODE_INTERFACE("4", "外部接口产生");
|
||||
CREATE_MODE_INTERFACE("4", "外部接口产生"),
|
||||
// 计量单位
|
||||
UNIT_ID_B("1", "块"),
|
||||
UNIT_ID_T("2", "吨");
|
||||
|
||||
private final String code;
|
||||
private final String name;
|
||||
|
||||
@@ -19,6 +19,7 @@ import org.nl.wms.sch.service.PointService;
|
||||
import org.nl.wms.sch.service.RegionService;
|
||||
import org.nl.wms.sch.service.dto.PointDto;
|
||||
import org.nl.wms.sch.service.dto.RegionDto;
|
||||
import org.nl.wms.sch.tasks.PointUpdateUtil;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -167,15 +168,16 @@ public class PointServiceImpl implements PointService {
|
||||
String pointStatus = dto.getPoint_status();
|
||||
|
||||
if (ObjectUtil.isNotEmpty(pointStatus) && pointStatus.equals("1")) { // 空位
|
||||
dto.setMaterial_id("");
|
||||
dto.setVehicle_type("");
|
||||
dto.setVehicle_code("");
|
||||
dto.setVehicle_qty("");
|
||||
dto.setPcsn("");
|
||||
dto.setTask_id(null);
|
||||
dto.setIvt_qty(BigDecimal.valueOf(0));
|
||||
dto.setInstorage_time(null);
|
||||
dto.setStanding_time(BigDecimal.valueOf(0));
|
||||
// dto.setMaterial_id("");
|
||||
// dto.setVehicle_type("");
|
||||
// dto.setVehicle_code("");
|
||||
// dto.setVehicle_qty("");
|
||||
// dto.setPcsn("");
|
||||
// dto.setTask_id(null);
|
||||
// dto.setIvt_qty(BigDecimal.valueOf(0));
|
||||
// dto.setInstorage_time(null);
|
||||
// dto.setStanding_time(BigDecimal.valueOf(0));
|
||||
PointUpdateUtil.clearPoint(dto.getPoint_code());
|
||||
} else if (pointStatus.equals("2")) { // 空载具
|
||||
dto.setMaterial_id(null);
|
||||
dto.setInstorage_time(now);
|
||||
|
||||
@@ -1,8 +1,14 @@
|
||||
package org.nl.wms.sch.tasks;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.wms.ext.acs.service.WmsToAcsService;
|
||||
import org.nl.wms.ext.acs.service.impl.WmsToAcsServiceImpl;
|
||||
import org.nl.wms.sch.manage.PointEnum;
|
||||
|
||||
/**
|
||||
@@ -11,7 +17,6 @@ import org.nl.wms.sch.manage.PointEnum;
|
||||
* @Date: 2022/11/23
|
||||
*/
|
||||
public class PointUpdateUtil {
|
||||
|
||||
/**
|
||||
* 清理点位
|
||||
*/
|
||||
@@ -55,4 +60,33 @@ public class PointUpdateUtil {
|
||||
pointObj.put("standing_time", "0");
|
||||
pointTab.update(pointObj);
|
||||
}
|
||||
|
||||
/**
|
||||
* 访问acs获取点位数据更新点位信息:
|
||||
* 分拣呼叫空托盘、空钢托盘叠盘架
|
||||
* @param pointCodes
|
||||
* @deprecated 只更新点位状态和载具类型
|
||||
*/
|
||||
public static void updatePoint(JSONArray pointCodes) {
|
||||
WQLObject pointTable = WQLObject.getWQLObject("sch_base_point");
|
||||
WmsToAcsServiceImpl wmsToAcsService = new WmsToAcsServiceImpl();
|
||||
// 向ACS查询点位状态
|
||||
JSONObject pointStatus = wmsToAcsService.getPointStatus(pointCodes);
|
||||
// 找到对应的载具类型再去下发
|
||||
JSONArray deviceDatas = pointStatus.getJSONArray("data");
|
||||
for (int j = 0; j < deviceDatas.size(); j++) {
|
||||
JSONObject pointObj = deviceDatas.getJSONObject(j);
|
||||
String mode = pointObj.getString("mode"); // 工作状态:0脱机,其他正常
|
||||
String error = pointObj.getString("error"); // 0是正常
|
||||
if (mode.equals("0") || !error.equals("0")) continue; // 点位异常
|
||||
String point_status = pointObj.getString("move"); // 点位状态:0无货,1有货(具体是空载具还是物料不知道)
|
||||
String point_code = pointObj.getString("device_code");
|
||||
//将托盘类型456....
|
||||
String vehicle_type = pointObj.getString("container_type");
|
||||
JSONObject pointObj2 = pointTable.query("point_code = '" + point_code + "'").uniqueResult(0);
|
||||
pointObj2.put("point_status", Integer.parseInt(point_status) + 1); // 1空位, 2空载具
|
||||
pointObj2.put("vehicle_type", vehicle_type);
|
||||
pointTable.update(pointObj2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.nl.wms.sch.tasks.callMaterial;
|
||||
package org.nl.wms.sch.tasks.autoCallMaterial;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
@@ -6,8 +6,6 @@ import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.common.utils.SecurityUtils;
|
||||
import org.nl.modules.system.util.CodeUtil;
|
||||
@@ -18,21 +16,18 @@ import org.nl.wms.sch.manage.*;
|
||||
import org.nl.wms.sch.tasks.AcsTaskDto;
|
||||
import org.nl.wms.sch.tasks.PointUpdateUtil;
|
||||
import org.nl.wms.util.IdUtil;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author: lyd
|
||||
* @description: 烧制工序叫料 - 入窑位
|
||||
* @Date: 2022/11/10
|
||||
* @description: 入窑缓存自动送料
|
||||
* @Date: 2022/11/24
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@Slf4j
|
||||
public class SzCallMaterialTask extends AbstractAcsTask {
|
||||
private final String THIS_CLASS = SzCallMaterialTask.class.getName();
|
||||
public class RykCallMaterialTask extends AbstractAcsTask {
|
||||
private final String THIS_CLASS = RykCallMaterialTask.class.getName();
|
||||
/**
|
||||
* 添加任务进行下发
|
||||
*
|
||||
@@ -79,6 +74,7 @@ public class SzCallMaterialTask extends AbstractAcsTask {
|
||||
|
||||
String task_id = task.getString("task_id");
|
||||
JSONObject taskObj = taskTab.query("task_id = '" + task_id + "'").uniqueResult(0);
|
||||
String point_code2 = taskObj.getString("point_code2");
|
||||
// 物料点
|
||||
JSONObject material_point = pointTab.query("point_code = '" + taskObj.getString("point_code1") + "'").uniqueResult(0);
|
||||
//任务取消
|
||||
@@ -112,7 +108,7 @@ public class SzCallMaterialTask extends AbstractAcsTask {
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
taskTab.update(taskObj);
|
||||
|
||||
JSONObject requestObj = task.getJSONObject("request_param");
|
||||
if (ObjectUtil.isEmpty(material_point)) return;
|
||||
|
||||
//区域出入表【st_ivt_regionIO】
|
||||
WQLObject regionIoTab = WQLObject.getWQLObject("st_ivt_regionIO");
|
||||
@@ -126,10 +122,11 @@ public class SzCallMaterialTask extends AbstractAcsTask {
|
||||
regionIoObj.put("region_name", material_point.getString("region_name"));
|
||||
regionIoObj.put("material_id", taskObj.getString("material_id"));
|
||||
regionIoObj.put("vehicle_code", taskObj.getString("vehicle_code"));
|
||||
regionIoObj.put("qty", requestObj.getString("qty"));
|
||||
regionIoObj.put("qty", material_point.getString("qty"));
|
||||
regionIoObj.put("ivt_weight", material_point.getString("weight"));
|
||||
regionIoObj.put("bill_status", RegionIOEnum.BILL_STATUS_FINISH.getCode());
|
||||
regionIoObj.put("start_point_code", taskObj.getString("point_code1"));
|
||||
regionIoObj.put("end_point_code", taskObj.getString("point_code2"));
|
||||
regionIoObj.put("end_point_code", point_code2);
|
||||
regionIoObj.put("create_mode", RegionIOEnum.CREATE_MODE_ACS.getCode());
|
||||
regionIoObj.put("pcsn", DateUtil.format(DateUtil.parse(DateUtil.today()), "yyyyMMdd"));
|
||||
regionIoObj.put("create_id", SecurityUtils.getCurrentUserId());
|
||||
@@ -137,12 +134,50 @@ public class SzCallMaterialTask extends AbstractAcsTask {
|
||||
regionIoObj.put("create_time", DateUtil.now());
|
||||
regionIoTab.insert(regionIoObj);
|
||||
|
||||
//完成后
|
||||
/**
|
||||
* 完成后将组盘id和任务id赋值到入窑口
|
||||
*/
|
||||
JSONObject uniqueResult = pointTab.query("point_code = '" + point_code2 + "'").uniqueResult(0);
|
||||
uniqueResult.put("group_id", material_point.getString("group_id"));
|
||||
uniqueResult.put("task_id", material_point.getString("task_id"));
|
||||
pointTab.update(uniqueResult);
|
||||
// 物料点位解锁 并设置空位
|
||||
PointUpdateUtil.clearPoint(material_point.getString("point_code"));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 自动生成任务
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void autoCreate() {
|
||||
String point_code2 = "RYW";
|
||||
//任务表【SCH_BASE_Task】
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||
//点位基础表【SCH_BASE_Point】
|
||||
WQLObject pointTab = WQLObject.getWQLObject("SCH_BASE_Point");
|
||||
//判断当前点是否有未完成的任务
|
||||
JSONObject taskObj = taskTab.query("is_delete='0' and point_code2 = '" + point_code2 + "' and task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(taskObj)) return;
|
||||
JSONObject object = pointTab.query("point_code = '" + point_code2 + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(object.getString("group_id"))) return;
|
||||
// todo 判断是否有货
|
||||
SchTaskDto dto = SchTaskDto.builder()
|
||||
.task_id(IdUtil.getLongId())
|
||||
.task_code(CodeUtil.getNewCode("TASK_CODE"))
|
||||
.task_type("task_type")
|
||||
.task_name("烧制出库")
|
||||
.task_status(TaskStatusEnum.SURE_END.getCode())
|
||||
.point_code2(point_code2)
|
||||
.vehicle_type(PointEnum.VEHICLE_TYPE_STEEL_TRAY.getCode())
|
||||
.handle_class(THIS_CLASS)
|
||||
.create_time(DateUtil.now())
|
||||
.build();
|
||||
JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto));
|
||||
taskTab.insert(json);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param form 创建任务需要的参数
|
||||
* @return 返回任务标识
|
||||
@@ -150,9 +185,7 @@ public class SzCallMaterialTask extends AbstractAcsTask {
|
||||
@Override
|
||||
public String createTask(JSONObject form) {
|
||||
String point_code2 = form.getString("point_code2");
|
||||
String vehicle_type = form.getString("vehicle_type");
|
||||
String vehicle_code = form.getString("vehicle_code");
|
||||
String qty = form.getString("material_num");
|
||||
String qty = form.getString("qty");
|
||||
|
||||
//生产工单表【PDM_BD_WorkOrder】
|
||||
WQLObject workOrderTab = WQLObject.getWQLObject("PDM_BD_WorkOrder");
|
||||
@@ -175,10 +208,9 @@ public class SzCallMaterialTask extends AbstractAcsTask {
|
||||
.material_qty(qty)
|
||||
.task_status(TaskStatusEnum.SURE_END.getCode())
|
||||
.point_code2(point_code2)
|
||||
.vehicle_code(vehicle_code)
|
||||
.workorder_id(workOrderObj.getLong("workorder_id"))
|
||||
.material_id(workOrderObj.getLong("material_id"))
|
||||
.vehicle_type(vehicle_type)
|
||||
.vehicle_type(PointEnum.VEHICLE_TYPE_STEEL_TRAY.getCode())
|
||||
.handle_class(THIS_CLASS)
|
||||
.create_time(DateUtil.now())
|
||||
.request_param(form.toJSONString())
|
||||
@@ -199,6 +231,7 @@ public class SzCallMaterialTask extends AbstractAcsTask {
|
||||
*/
|
||||
@Override
|
||||
public void findStartPoint() {
|
||||
|
||||
// 到入窑缓存区找一托物料
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); // 任务表
|
||||
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point"); // 点位表
|
||||
@@ -206,14 +239,12 @@ public class SzCallMaterialTask extends AbstractAcsTask {
|
||||
for (int i = 0; i < taskArr.size(); i++) {
|
||||
JSONObject taskObj = taskArr.getJSONObject(i);
|
||||
String material_id = taskObj.getString("material_id");
|
||||
String vehicle_type = taskObj.getString("vehicle_type");
|
||||
JSONObject queryParam = new JSONObject();
|
||||
queryParam.put("flag", "1");
|
||||
queryParam.put("material_id", material_id);
|
||||
queryParam.put("region_code", "RYZCQ");
|
||||
queryParam.put("vehicle_type", "%" + vehicle_type + "%");
|
||||
// 到入窑暂存区找,优先找满拖的
|
||||
JSONObject json1 = WQL.getWO("QSCH_szCallMaterial_01").addParamMap(queryParam).process().uniqueResult(0);
|
||||
JSONObject json1 = WQL.getWO("QSCH_rykCallMaterial_01").addParamMap(queryParam).process().uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(json1)) {
|
||||
// 拿到点位
|
||||
JSONObject material_point = pointTab.query("point_id = '" + json1.getString("point_id") + "' and lock_type = '1'").uniqueResult(0);
|
||||
@@ -223,8 +254,9 @@ public class SzCallMaterialTask extends AbstractAcsTask {
|
||||
pointTab.update(material_point);
|
||||
|
||||
taskObj.put("point_code1", material_point.getString("point_code"));
|
||||
taskObj.put("material_id", material_point.getString("material_id"));
|
||||
taskObj.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
|
||||
taskObj.put("acs_task_type", "2");
|
||||
taskObj.put("task_id", taskObj.getString("task_id"));
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
taskTab.update(taskObj);
|
||||
} else {
|
||||
@@ -247,11 +279,8 @@ public class SzCallMaterialTask extends AbstractAcsTask {
|
||||
public void forceFinish(String task_id) {
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||
JSONObject taskObj = taskTab.query("task_id = '" + task_id + "' and is_delete = '0' and task_status <> " + TaskStatusEnum.FINISHED.getCode()).uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(taskObj))
|
||||
this.updateTaskStatus(taskObj,"2");
|
||||
else {
|
||||
throw new BadRequestException("未找到该任务或者任务已完成!");
|
||||
}
|
||||
if (ObjectUtil.isEmpty(taskObj))throw new BadRequestException("未找到该任务或者任务已完成!");
|
||||
this.updateTaskStatus(taskObj, UpdateTaskStatusEnum.FORCEFINISH.getCode());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1,5 +1,5 @@
|
||||
[交易说明]
|
||||
交易名: 烧制叫料
|
||||
交易名: 入窑口自动任务 - 叫料
|
||||
所属模块:
|
||||
功能简述:
|
||||
版权所有:
|
||||
@@ -56,16 +56,13 @@
|
||||
AND is_delete = '0'
|
||||
AND lock_type = '1'
|
||||
AND point_status = '3'
|
||||
AND is_full = '1'
|
||||
OPTION 输入.material_id <> ""
|
||||
p.material_id = 输入.material_id
|
||||
ENDOPTION
|
||||
OPTION 输入.region_code <> ""
|
||||
p.region_code = 输入.region_code
|
||||
ENDOPTION
|
||||
OPTION 输入.vehicle_type <> ""
|
||||
p.can_vehicle_type like 输入.vehicle_type
|
||||
ENDOPTION
|
||||
ORDER BY is_full desc
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
@@ -19,6 +19,7 @@ import org.nl.wms.sch.manage.RegionIOEnum;
|
||||
import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||
import org.nl.wms.sch.manage.UpdateTaskStatusEnum;
|
||||
import org.nl.wms.sch.tasks.AcsTaskDto;
|
||||
import org.nl.wms.sch.tasks.PointUpdateUtil;
|
||||
import org.nl.wms.util.IdUtil;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -125,21 +126,9 @@ public class FjCallEmptyVehicleTask extends AbstractAcsTask {
|
||||
regionIoObj.put("create_time", DateUtil.now());
|
||||
regionIoTab.insert(regionIoObj);
|
||||
// 点位更新,起点:空位,解锁;
|
||||
startPoint.put("point_status", "1");
|
||||
PointUpdateUtil.clearPoint(startPoint.getString("point_code"));
|
||||
} else { // 钢托盘每次就一个
|
||||
startPoint.put("lock_type", "1");
|
||||
startPoint.put("task_id", "");
|
||||
startPoint.put("pcsn", "");
|
||||
startPoint.put("ivt_qty", "0");
|
||||
startPoint.put("material_id", "");
|
||||
startPoint.put("instorage_time", "");
|
||||
startPoint.put("is_full", "2");
|
||||
startPoint.put("standing_time", "0");
|
||||
startPoint.put("vehicle_type", "");
|
||||
startPoint.put("vehicle_code", "");
|
||||
} else { // 钢托盘每次就一个 --- 如果是堆叠位5需要更新设备状态??
|
||||
startPoint.put("point_status", "1");
|
||||
startPoint.put("lock_type", "1");
|
||||
startPoint.put("vehicle_qty", "0");
|
||||
}
|
||||
pointTab.update(startPoint);
|
||||
}
|
||||
@@ -162,9 +151,7 @@ public class FjCallEmptyVehicleTask extends AbstractAcsTask {
|
||||
|
||||
|
||||
String point_code2 = form.getString("point_code2");
|
||||
String sub_device_code = point_code2.substring(0, point_code2.indexOf("_"));
|
||||
|
||||
String device_code = pointTab.query("point_code = '" + sub_device_code + "'").uniqueResult(0).getString("device_code");
|
||||
String device_code = pointTab.query("point_code = '" + point_code2 + "'").uniqueResult(0).getString("device_code");
|
||||
|
||||
JSONObject workOrderObj = workOrderTab.query("device_code = '" + device_code + "' and order_status = '3' and is_delete ='0'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(workOrderObj)) throw new BadRequestException("该设备当前未生产或者已删除");
|
||||
@@ -182,6 +169,7 @@ public class FjCallEmptyVehicleTask extends AbstractAcsTask {
|
||||
.task_group_id(org.nl.wms.util.IdUtil.getLongId())
|
||||
.handle_class(THIS_CLASS)
|
||||
.create_time(DateUtil.now())
|
||||
.request_param(form.toJSONString())
|
||||
.build();
|
||||
JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto));
|
||||
taskTab.insert(json);
|
||||
@@ -215,6 +203,7 @@ public class FjCallEmptyVehicleTask extends AbstractAcsTask {
|
||||
if (ObjectUtil.isNotEmpty(noFullPoint)) { // 找到半满托盘,叫料出库
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
taskObj.put("point_code1", noFullPoint.getString("point_code"));
|
||||
taskObj.put("group_id", noFullPoint.getString("group_id")); // 组盘信息挪到任务中
|
||||
taskObj.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
|
||||
taskTab.update(taskObj);
|
||||
|
||||
@@ -223,6 +212,7 @@ public class FjCallEmptyVehicleTask extends AbstractAcsTask {
|
||||
noFullPoint.put("lock_type", "2");
|
||||
pointTab.update(noFullPoint);
|
||||
} else { // 没有就呼叫空的木托盘
|
||||
// todo
|
||||
JSONObject param = new JSONObject();
|
||||
param.put("flag", "2");
|
||||
param.put("region_code", "BZZCQ");
|
||||
@@ -258,11 +248,8 @@ public class FjCallEmptyVehicleTask extends AbstractAcsTask {
|
||||
public void forceFinish(String task_id) {
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||
JSONObject taskObj = taskTab.query("task_id = '" + task_id + "' and is_delete = '0' and task_status <> " + TaskStatusEnum.FINISHED.getCode()).uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(taskObj))
|
||||
this.updateTaskStatus(taskObj,"2");
|
||||
else {
|
||||
throw new BadRequestException("未找到该任务或者任务已完成!");
|
||||
}
|
||||
if (ObjectUtil.isEmpty(taskObj))throw new BadRequestException("未找到该任务或者任务已完成!");
|
||||
this.updateTaskStatus(taskObj, UpdateTaskStatusEnum.FORCEFINISH.getCode());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -233,16 +233,10 @@ public class HnCallEmptyVehicleTask extends AbstractAcsTask {
|
||||
*/
|
||||
@Override
|
||||
public void forceFinish(String task_id) {
|
||||
/*
|
||||
* 强制完成
|
||||
*/
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||
JSONObject taskObj = taskTab.query("task_id = '" + task_id + "' and is_delete = '0' and task_status <> " + TaskStatusEnum.FINISHED.getCode()).uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(taskObj))
|
||||
this.updateTaskStatus(taskObj,UpdateTaskStatusEnum.FORCEFINISH.getCode());
|
||||
else {
|
||||
throw new BadRequestException("未找到该任务或者任务已完成!");
|
||||
}
|
||||
if (ObjectUtil.isEmpty(taskObj))throw new BadRequestException("未找到该任务或者任务已完成!");
|
||||
this.updateTaskStatus(taskObj, UpdateTaskStatusEnum.FORCEFINISH.getCode());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -85,6 +85,7 @@ public class YzjCallEmptyVehicleTask extends AbstractAcsTask {
|
||||
JSONObject taskObj = taskTab.query("task_id = '" + task_id + "'").uniqueResult(0);
|
||||
|
||||
String point_code1 = task.getString("point_code1");
|
||||
String point_code2 = task.getString("point_code2");
|
||||
|
||||
if (StrUtil.equals(status, UpdateTaskStatusEnum.CANCEL.getCode())) {
|
||||
/*
|
||||
@@ -97,7 +98,7 @@ public class YzjCallEmptyVehicleTask extends AbstractAcsTask {
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
taskObj.put("remark", "已取消");
|
||||
taskTab.update(taskObj);
|
||||
if (ObjectUtil.isNotEmpty(point_code1) && !point_code1.equals("KGTDDW05")) {
|
||||
if (ObjectUtil.isNotEmpty(point_code1)) {
|
||||
JSONObject startPoint = pointTab.query("point_code = '" + point_code1 + "'").uniqueResult(0);
|
||||
startPoint.put("lock_type", PointEnum.LOCK_TYPE_FALSE.getCode());
|
||||
pointTab.update(startPoint);
|
||||
@@ -121,9 +122,9 @@ public class YzjCallEmptyVehicleTask extends AbstractAcsTask {
|
||||
taskObj.put("update_optname", SecurityUtils.getCurrentUsername());
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
taskTab.update(taskObj);
|
||||
|
||||
JSONObject startPoint = pointTab.query("point_code = '" + point_code1 + "'").uniqueResult(0);
|
||||
if (point_code1.startsWith("R")) { // 入窑缓存位
|
||||
if (ObjectUtil.isEmpty(startPoint)) return;
|
||||
if (point_code1.startsWith("R")) { // 入窑缓存位 - 半托出库
|
||||
// 插入出库单
|
||||
JSONObject regionIoObj = new JSONObject();
|
||||
regionIoObj.put("iostorinv_id", IdUtil.getLongId());
|
||||
@@ -136,6 +137,7 @@ public class YzjCallEmptyVehicleTask extends AbstractAcsTask {
|
||||
regionIoObj.put("material_id", taskObj.getString("material_id"));
|
||||
regionIoObj.put("vehicle_code", taskObj.getString("vehicle_code"));
|
||||
regionIoObj.put("qty", requestObj.getString("qty"));
|
||||
regionIoObj.put("weight_unit_id", RegionIOEnum.UNIT_ID_B.getCode());
|
||||
regionIoObj.put("bill_status", RegionIOEnum.BILL_STATUS_FINISH.getCode());
|
||||
regionIoObj.put("start_point_code", taskObj.getString("point_code1"));
|
||||
regionIoObj.put("end_point_code", taskObj.getString("point_code2"));
|
||||
@@ -147,7 +149,14 @@ public class YzjCallEmptyVehicleTask extends AbstractAcsTask {
|
||||
regionIoTab.insert(regionIoObj);
|
||||
// 点位更新,起点:空位,解锁;
|
||||
PointUpdateUtil.clearPoint(startPoint.getString("point_code"));
|
||||
// 终点:压制机对接位,将半托的组盘id放进去
|
||||
JSONObject endPoint = pointTab.query("point_code = '" + point_code2 + "'").uniqueResult(0);
|
||||
endPoint.put("group_id", taskObj.getString("group_id"));
|
||||
pointTab.update(endPoint);
|
||||
}
|
||||
// 起点解锁
|
||||
startPoint.put("lock_type", PointEnum.LOCK_TYPE_FALSE.getCode());
|
||||
pointTab.update(startPoint);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -224,6 +233,7 @@ public class YzjCallEmptyVehicleTask extends AbstractAcsTask {
|
||||
JSONObject noFullPoint = WQL.getWO("QSCH_yzjCallEmptyVehicle_01").addParamMap(noFull).process().uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(noFullPoint)) { // 找到半满托盘,叫料出库
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
taskObj.put("group_id", noFullPoint.getString("group_id")); // 组盘信息挪到任务中
|
||||
taskObj.put("point_code1", noFullPoint.getString("point_code"));
|
||||
taskObj.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
|
||||
taskTab.update(taskObj);
|
||||
@@ -233,7 +243,13 @@ public class YzjCallEmptyVehicleTask extends AbstractAcsTask {
|
||||
noFullPoint.put("lock_type", PointEnum.LOCK_TYPE_TRUE.getCode());
|
||||
pointTab.update(noFullPoint);
|
||||
} else { // 到KGTDDW05找空钢托盘
|
||||
// 访问acs更新点位状态
|
||||
// 向ACS查询是否有空钢托盘
|
||||
JSONArray params = new JSONArray();
|
||||
JSONObject deviceCode = new JSONObject();
|
||||
deviceCode.put("device_code", "KGTDDW05");
|
||||
params.add(deviceCode);
|
||||
PointUpdateUtil.updatePoint(params);
|
||||
JSONObject param = new JSONObject();
|
||||
param.put("flag", "2");
|
||||
param.put("region_code", "KGTCPQ");
|
||||
@@ -269,11 +285,8 @@ public class YzjCallEmptyVehicleTask extends AbstractAcsTask {
|
||||
public void forceFinish(String task_id) {
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||
JSONObject taskObj = taskTab.query("task_id = '" + task_id + "' and is_delete = '0' and task_status <> " + TaskStatusEnum.FINISHED.getCode()).uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(taskObj))
|
||||
this.updateTaskStatus(taskObj,"2");
|
||||
else {
|
||||
throw new BadRequestException("未找到该任务或者任务已完成!");
|
||||
}
|
||||
if (ObjectUtil.isEmpty(taskObj))throw new BadRequestException("未找到该任务或者任务已完成!");
|
||||
this.updateTaskStatus(taskObj, UpdateTaskStatusEnum.FORCEFINISH.getCode());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -285,10 +298,7 @@ public class YzjCallEmptyVehicleTask extends AbstractAcsTask {
|
||||
public void cancel(String task_id) {
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||
JSONObject taskObj = taskTab.query("task_id = '" + task_id + "' and is_delete = '0' and task_status <> " + TaskStatusEnum.FINISHED.getCode()).uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(taskObj))
|
||||
this.updateTaskStatus(taskObj,"0");
|
||||
else {
|
||||
throw new BadRequestException("未找到该任务或者任务已完成!");
|
||||
}
|
||||
if (ObjectUtil.isEmpty(taskObj))throw new BadRequestException("未找到该任务或者任务已完成!");
|
||||
this.updateTaskStatus(taskObj, UpdateTaskStatusEnum.CANCEL.getCode());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,13 +52,13 @@
|
||||
lock_type = '1'
|
||||
AND is_used = '1'
|
||||
AND is_delete = '0'
|
||||
AND is_full = '2'
|
||||
AND is_full = '0'
|
||||
AND point_status = '3'
|
||||
AND point_type = '1'
|
||||
OPTION 输入.region_code <> ""
|
||||
p.region_code = 输入.region_code
|
||||
ENDOPTION
|
||||
ORDER BY col_num,row_num,layer_num
|
||||
ORDER BY instorage_time desc
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
@@ -14,9 +14,9 @@ import org.nl.modules.system.util.CodeUtil;
|
||||
import org.nl.modules.wql.WQL;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.wms.sch.SchTaskDto;
|
||||
import org.nl.wms.sch.manage.AbstractAcsTask;
|
||||
import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||
import org.nl.wms.sch.manage.*;
|
||||
import org.nl.wms.sch.tasks.AcsTaskDto;
|
||||
import org.nl.wms.sch.tasks.PointUpdateUtil;
|
||||
import org.nl.wms.util.IdUtil;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -82,7 +82,7 @@ public class FjCallMaterialTask extends AbstractAcsTask {
|
||||
// 物料点
|
||||
JSONObject material_point = pointTab.query("point_code = '" + taskObj.getString("point_code1") + "'").uniqueResult(0);
|
||||
//任务取消
|
||||
if (StrUtil.equals(status, "0")) {
|
||||
if (StrUtil.equals(status, UpdateTaskStatusEnum.CANCEL.getCode())) {
|
||||
// 取消删除任务
|
||||
if (StrUtil.equals(taskObj.getString("task_status"), TaskStatusEnum.FINISHED.getCode())) {
|
||||
throw new BadRequestException("已完成不能取消!");
|
||||
@@ -93,12 +93,12 @@ public class FjCallMaterialTask extends AbstractAcsTask {
|
||||
|
||||
if (ObjectUtil.isNotEmpty(material_point)) {
|
||||
// 点位解锁
|
||||
material_point.put("lock_type", "1");
|
||||
material_point.put("lock_type", PointEnum.LOCK_TYPE_FALSE.getCode());
|
||||
pointTab.update(material_point);
|
||||
}
|
||||
}
|
||||
|
||||
if ("1".equals(status)) {
|
||||
if (UpdateTaskStatusEnum.EXECUTION.getCode().equals(status)) {
|
||||
// 更新任务状态为执行中
|
||||
taskObj.put("task_status", TaskStatusEnum.EXECUTING.getCode());
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
@@ -106,7 +106,7 @@ public class FjCallMaterialTask extends AbstractAcsTask {
|
||||
taskTab.update(taskObj);
|
||||
}
|
||||
|
||||
if (StrUtil.equals(status, "2")) {
|
||||
if (StrUtil.equals(status, UpdateTaskStatusEnum.FORCEFINISH.getCode())) {
|
||||
// 更改任务状态为完成
|
||||
taskObj.put("task_status", TaskStatusEnum.FINISHED.getCode());
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
@@ -120,37 +120,28 @@ public class FjCallMaterialTask extends AbstractAcsTask {
|
||||
regionIoObj.put("iostorinv_id", IdUtil.getLongId());
|
||||
regionIoObj.put("bill_code", CodeUtil.getNewCode("IN_STORE_CODE"));
|
||||
regionIoObj.put("buss_date", DateUtil.today());
|
||||
regionIoObj.put("io_type", "2"); // 出库
|
||||
regionIoObj.put("io_type", RegionIOEnum.IO_TYPE_OUT.getCode()); // 出库
|
||||
regionIoObj.put("region_id", material_point.getString("region_id"));
|
||||
regionIoObj.put("region_code", material_point.getString("region_code"));
|
||||
regionIoObj.put("region_name", material_point.getString("region_name"));
|
||||
regionIoObj.put("material_id", taskObj.getString("material_id"));
|
||||
regionIoObj.put("vehicle_code", taskObj.getString("vehicle_code"));
|
||||
regionIoObj.put("qty", requestObj.getString("qty"));
|
||||
regionIoObj.put("bill_status", "3");
|
||||
regionIoObj.put("weight_unit_id", RegionIOEnum.UNIT_ID_B.getCode());
|
||||
regionIoObj.put("bill_status", RegionIOEnum.BILL_STATUS_FINISH.getCode());
|
||||
regionIoObj.put("start_point_code", taskObj.getString("point_code1"));
|
||||
regionIoObj.put("end_point_code", taskObj.getString("point_code2"));
|
||||
regionIoObj.put("create_mode", "2");
|
||||
regionIoObj.put("create_mode", RegionIOEnum.CREATE_MODE_ACS.getCode());
|
||||
regionIoObj.put("pcsn", DateUtil.format(DateUtil.parse(DateUtil.today()), "yyyyMMdd"));
|
||||
regionIoObj.put("create_id", SecurityUtils.getCurrentUserId());
|
||||
regionIoObj.put("create_name", SecurityUtils.getCurrentNickName());
|
||||
regionIoObj.put("create_time", DateUtil.now());
|
||||
regionIoObj.put("task_id", taskObj.getString("task_id"));
|
||||
regionIoTab.insert(regionIoObj);
|
||||
|
||||
//完成后
|
||||
// 物料点位解锁 并设置空位
|
||||
material_point.put("lock_type", "1");
|
||||
material_point.put("point_status", "1");
|
||||
material_point.put("task_id", "");
|
||||
material_point.put("pcsn", "");
|
||||
material_point.put("ivt_qty", "0");
|
||||
material_point.put("material_id", "");
|
||||
material_point.put("instorage_time", "");
|
||||
material_point.put("is_full", "2");
|
||||
material_point.put("standing_time", "0");
|
||||
material_point.put("vehicle_type", "");
|
||||
material_point.put("vehicle_code", "");
|
||||
pointTab.update(material_point);
|
||||
PointUpdateUtil.clearPoint(material_point.getString("point_code"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -161,16 +152,14 @@ public class FjCallMaterialTask extends AbstractAcsTask {
|
||||
@Override
|
||||
public String createTask(JSONObject form) {
|
||||
String point_code2 = form.getString("point_code2");
|
||||
String vehicle_type = form.getString("vehicle_type");
|
||||
String vehicle_code = form.getString("vehicle_code");
|
||||
String qty = form.getString("material_num");
|
||||
String qty = form.getString("qty");
|
||||
|
||||
//生产工单表【PDM_BD_WorkOrder】
|
||||
WQLObject workOrderTab = WQLObject.getWQLObject("PDM_BD_WorkOrder");
|
||||
//任务表【SCH_BASE_Task】
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||
//判断当前点是否有未完成的任务
|
||||
JSONObject taskObj = taskTab.query("is_delete='0' and point_code2 = '" + point_code2 + "' and task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0);
|
||||
JSONObject taskObj = taskTab.query("is_delete = '0' and point_code2 = '" + point_code2 + "' and task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(taskObj)) throw new BadRequestException("当前点位" + point_code2 + "存在未完成的任务");
|
||||
//点位基础表【SCH_BASE_Point】
|
||||
WQLObject pointTab = WQLObject.getWQLObject("SCH_BASE_Point");
|
||||
@@ -186,10 +175,9 @@ public class FjCallMaterialTask extends AbstractAcsTask {
|
||||
.material_qty(qty)
|
||||
.task_status(TaskStatusEnum.SURE_END.getCode())
|
||||
.point_code2(point_code2)
|
||||
.vehicle_code(vehicle_code)
|
||||
.workorder_id(workOrderObj.getLong("workorder_id"))
|
||||
.material_id(workOrderObj.getLong("material_id"))
|
||||
.vehicle_type(vehicle_type)
|
||||
.vehicle_type(PointEnum.VEHICLE_TYPE_STEEL_TRAY.getCode())
|
||||
.handle_class(THIS_CLASS)
|
||||
.create_time(DateUtil.now())
|
||||
.request_param(form.toJSONString())
|
||||
@@ -213,16 +201,15 @@ public class FjCallMaterialTask extends AbstractAcsTask {
|
||||
// 到出窑缓存区找一托物料
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); // 任务表
|
||||
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point"); // 点位表
|
||||
WQLObject groupTab = WQLObject.getWQLObject("st_buss_vehiclegroup"); // 组盘表
|
||||
JSONArray taskArr = taskTab.query("handle_class = '" + THIS_CLASS + "'and is_delete = '0' and task_status = '" + TaskStatusEnum.SURE_END.getCode() + "'").getResultJSONArray(0);
|
||||
for (int i = 0; i < taskArr.size(); i++) {
|
||||
JSONObject taskObj = taskArr.getJSONObject(i);
|
||||
String material_id = taskObj.getString("material_id");
|
||||
String vehicle_type = taskObj.getString("vehicle_type");
|
||||
JSONObject queryParam = new JSONObject();
|
||||
queryParam.put("flag", "1");
|
||||
queryParam.put("material_id", material_id);
|
||||
queryParam.put("region_code", "CYZCQ");
|
||||
queryParam.put("vehicle_type", "%" + vehicle_type + "%");
|
||||
// 到出窑暂存区找
|
||||
JSONObject json1 = WQL.getWO("QSCH_cyCallMaterial_01").addParamMap(queryParam).process().uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(json1)) {
|
||||
@@ -230,12 +217,16 @@ public class FjCallMaterialTask extends AbstractAcsTask {
|
||||
JSONObject material_point = pointTab.query("point_id = '" + json1.getString("point_id") + "' and lock_type = '1'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(material_point)) throw new BadRequestException("数据错误,请校验!");
|
||||
// 物料点位上锁
|
||||
material_point.put("lock_type", "2");
|
||||
material_point.put("lock_type", PointEnum.LOCK_TYPE_TRUE.getCode());
|
||||
material_point.put("task_id", taskObj.getString("task_id"));
|
||||
pointTab.update(material_point);
|
||||
|
||||
// 将组盘标识赋给任务
|
||||
taskObj.put("group_id", material_point.getString("group_id"));
|
||||
JSONObject object = groupTab.query("group_id = '" + material_point.getString("group_id") + "'").uniqueResult(0);
|
||||
taskObj.put("vehicle_code", object.getString("vehicle_code"));
|
||||
taskObj.put("point_code1", material_point.getString("point_code"));
|
||||
taskObj.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
|
||||
taskObj.put("acs_task_type", "2");
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
taskTab.update(taskObj);
|
||||
} else {
|
||||
@@ -256,7 +247,10 @@ public class FjCallMaterialTask extends AbstractAcsTask {
|
||||
*/
|
||||
@Override
|
||||
public void forceFinish(String task_id) {
|
||||
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||
JSONObject taskObj = taskTab.query("task_id = '" + task_id + "' and is_delete = '0' and task_status <> " + TaskStatusEnum.FINISHED.getCode()).uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(taskObj))throw new BadRequestException("未找到该任务或者任务已完成!");
|
||||
this.updateTaskStatus(taskObj, UpdateTaskStatusEnum.FORCEFINISH.getCode());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -266,6 +260,12 @@ public class FjCallMaterialTask extends AbstractAcsTask {
|
||||
*/
|
||||
@Override
|
||||
public void cancel(String task_id) {
|
||||
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||
JSONObject taskObj = taskTab.query("task_id = '" + task_id + "' and is_delete = '0' and task_status <> " + TaskStatusEnum.FINISHED.getCode()).uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(taskObj))
|
||||
this.updateTaskStatus(taskObj,UpdateTaskStatusEnum.CANCEL.getCode());
|
||||
else {
|
||||
throw new BadRequestException("未找到该任务或者任务已完成!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -126,6 +126,8 @@ public class YzjCallMaterialTask extends AbstractAcsTask {
|
||||
regionIoObj.put("material_id", taskObj.getString("material_id"));
|
||||
regionIoObj.put("vehicle_code", taskObj.getString("vehicle_code"));
|
||||
regionIoObj.put("qty", requestObj.getString("qty"));
|
||||
regionIoObj.put("ivt_weight", requestObj.getString("weight"));
|
||||
regionIoObj.put("weight_unit_id", RegionIOEnum.UNIT_ID_T.getCode());
|
||||
regionIoObj.put("bill_status", RegionIOEnum.BILL_STATUS_FINISH.getCode());
|
||||
regionIoObj.put("start_point_code", taskObj.getString("point_code1"));
|
||||
regionIoObj.put("end_point_code", taskObj.getString("point_code2"));
|
||||
@@ -150,7 +152,7 @@ public class YzjCallMaterialTask extends AbstractAcsTask {
|
||||
String point_code2 = form.getString("point_code2");
|
||||
String vehicle_type = form.getString("vehicle_type");
|
||||
String vehicle_code = form.getString("vehicle_code");
|
||||
String qty = form.getString("material_num");
|
||||
String qty = form.getString("qty");
|
||||
|
||||
//生产工单表【PDM_BD_WorkOrder】
|
||||
WQLObject workOrderTab = WQLObject.getWQLObject("PDM_BD_WorkOrder");
|
||||
@@ -271,11 +273,8 @@ public class YzjCallMaterialTask extends AbstractAcsTask {
|
||||
public void forceFinish(String task_id) {
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||
JSONObject taskObj = taskTab.query("task_id = '" + task_id + "' and is_delete = '0' and task_status <> " + TaskStatusEnum.FINISHED.getCode()).uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(taskObj))
|
||||
this.updateTaskStatus(taskObj,"2");
|
||||
else {
|
||||
throw new BadRequestException("未找到该任务或者任务已完成!");
|
||||
}
|
||||
if (ObjectUtil.isEmpty(taskObj))throw new BadRequestException("未找到该任务或者任务已完成!");
|
||||
this.updateTaskStatus(taskObj, UpdateTaskStatusEnum.FORCEFINISH.getCode());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -62,10 +62,7 @@
|
||||
OPTION 输入.region_code <> ""
|
||||
p.region_code = 输入.region_code
|
||||
ENDOPTION
|
||||
OPTION 输入.vehicle_type <> ""
|
||||
p.can_vehicle_type like 输入.vehicle_type
|
||||
ENDOPTION
|
||||
ORDER BY col_num,row_num,layer_num
|
||||
ORDER BY instorage_time
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
@@ -15,9 +15,11 @@ import org.nl.modules.system.util.CodeUtil;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.wms.sch.SchTaskDto;
|
||||
import org.nl.wms.sch.manage.AbstractAcsTask;
|
||||
import org.nl.wms.sch.manage.PointEnum;
|
||||
import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||
import org.nl.wms.sch.manage.UpdateTaskStatusEnum;
|
||||
import org.nl.wms.sch.tasks.AcsTaskDto;
|
||||
import org.nl.wms.sch.tasks.PointUpdateUtil;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
@@ -109,7 +111,7 @@ public class DpSendEmpVehicleTask extends AbstractAcsTask {
|
||||
pointTab.update(point_2);
|
||||
// 起点设置为空位
|
||||
JSONObject point_1 = pointTab.query("point_code = '" + point_code1 + "'").uniqueResult(0);
|
||||
point_1.put("point_status", "1");
|
||||
point_1.put("point_status", PointEnum.POINT_STATUS_EMPTY_POSITION.getCode());
|
||||
pointTab.update(point_1);
|
||||
}
|
||||
}
|
||||
@@ -126,15 +128,17 @@ public class DpSendEmpVehicleTask extends AbstractAcsTask {
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); // 任务表
|
||||
|
||||
String point_code1 = form.getString("point_code1");
|
||||
//判断当前点是否有未完成的任务
|
||||
JSONObject taskObj = taskTab.query("is_delete='0' and point_code1 = '" + point_code1 + "' and task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(taskObj)) throw new BadRequestException("当前点位" + point_code1 + "存在未完成的任务");
|
||||
|
||||
SchTaskDto dto = SchTaskDto.builder().task_id(org.nl.wms.util.IdUtil.getLongId())
|
||||
.task_code(CodeUtil.getNewCode("TASK_CODE"))
|
||||
.task_type("")
|
||||
.task_name("叠盘空钢托盘入库")
|
||||
.task_name("空钢托叠盘区->空钢托拆盘区")
|
||||
.task_status(TaskStatusEnum.SURE_START.getCode())
|
||||
.point_code1(point_code1)
|
||||
.vehicle_code(form.getString("vehicle_code"))
|
||||
.vehicle_type(form.getString("vehicle_type"))
|
||||
.vehicle_type(PointEnum.VEHICLE_TYPE_STEEL_TRAY.getCode())
|
||||
.vehicle_qty(form.getIntValue("qty"))
|
||||
.handle_class(THIS_CLASS)
|
||||
.create_time(DateUtil.now())
|
||||
@@ -160,8 +164,15 @@ public class DpSendEmpVehicleTask 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 taskObj = taskArr.getJSONObject(i);
|
||||
// 请求acs查看堆叠位是否可以搬运,修改对应点的点位
|
||||
JSONArray params = new JSONArray();
|
||||
JSONObject param = new JSONObject();
|
||||
param.put("device_code", "KGTDDW01");
|
||||
params.add(param);
|
||||
PointUpdateUtil.updatePoint(params);
|
||||
// 直接找
|
||||
JSONObject endPoint = pointTab.query("point_code = 'KGTDDW01' AND lock_type = '1' AND is_used='1'").uniqueResult(0);
|
||||
JSONObject endPoint = pointTab.query("point_code = 'KGTDDW01' AND lock_type = '1' AND is_used = '1' AND is_delete = '0'").uniqueResult(0);
|
||||
|
||||
if (ObjectUtil.isEmpty(endPoint)) {
|
||||
taskObj.put("remark", "钢托盘堆叠位不可用!");
|
||||
taskObj.put("task_status", TaskStatusEnum.SURE_START.getCode());
|
||||
@@ -175,7 +186,7 @@ public class DpSendEmpVehicleTask extends AbstractAcsTask {
|
||||
|
||||
//锁住终点
|
||||
endPoint.put("task_id", taskObj.getString("task_id"));
|
||||
endPoint.put("lock_type", "2");
|
||||
endPoint.put("lock_type", PointEnum.LOCK_TYPE_TRUE.getCode());
|
||||
pointTab.update(endPoint);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,7 +16,9 @@ import org.nl.modules.wql.WQL;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.wms.sch.SchTaskDto;
|
||||
import org.nl.wms.sch.manage.AbstractAcsTask;
|
||||
import org.nl.wms.sch.manage.PointEnum;
|
||||
import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||
import org.nl.wms.sch.manage.UpdateTaskStatusEnum;
|
||||
import org.nl.wms.sch.tasks.AcsTaskDto;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -59,7 +61,7 @@ public class FjSendEmpVehicleTask extends AbstractAcsTask {
|
||||
String point_code2 = taskObj.getString("point_code2");
|
||||
JSONObject jsonTask = taskTab.query("task_id = '" + task_id + "'").uniqueResult(0);
|
||||
|
||||
if (StrUtil.equals(status, "0")) {
|
||||
if (StrUtil.equals(status, UpdateTaskStatusEnum.CANCEL.getCode())) {
|
||||
// 取消删除任务
|
||||
if (StrUtil.equals(jsonTask.getString("task_status"), TaskStatusEnum.FINISHED.getCode())) {
|
||||
throw new BadRequestException("已完成不能取消!");
|
||||
@@ -67,7 +69,7 @@ public class FjSendEmpVehicleTask extends AbstractAcsTask {
|
||||
// 解锁终点位置
|
||||
if (ObjectUtil.isNotEmpty(point_code2)) { // 未找到终点的取消只需要完成任务就行
|
||||
JSONObject point2 = pointTab.query("point_code = '" + point_code2 + "'").uniqueResult(0);
|
||||
point2.put("lock_type", "1");
|
||||
point2.put("lock_type", PointEnum.LOCK_TYPE_FALSE.getCode());
|
||||
pointTab.update(point2);
|
||||
}
|
||||
// 任务设置为完成
|
||||
@@ -76,7 +78,7 @@ public class FjSendEmpVehicleTask extends AbstractAcsTask {
|
||||
taskTab.update(jsonTask);
|
||||
}
|
||||
|
||||
if ("1".equals(status)) {
|
||||
if (UpdateTaskStatusEnum.EXECUTION.getCode().equals(status)) {
|
||||
// 更新任务状态为执行中
|
||||
jsonTask.put("task_status", TaskStatusEnum.EXECUTING.getCode());
|
||||
jsonTask.put("update_time", DateUtil.now());
|
||||
@@ -84,7 +86,7 @@ public class FjSendEmpVehicleTask extends AbstractAcsTask {
|
||||
taskTab.update(jsonTask);
|
||||
}
|
||||
|
||||
if (StrUtil.equals(status, "2")) {
|
||||
if (StrUtil.equals(status, UpdateTaskStatusEnum.FORCEFINISH.getCode())) {
|
||||
// 更改任务状态为完成
|
||||
jsonTask.put("task_status", TaskStatusEnum.FINISHED.getCode());
|
||||
jsonTask.put("update_optid", SecurityUtils.getCurrentUserId());
|
||||
@@ -94,16 +96,8 @@ public class FjSendEmpVehicleTask extends AbstractAcsTask {
|
||||
// 释放点位
|
||||
if (ObjectUtil.isNotEmpty(point_code2)) { // 防止只有确定起点的任务完成
|
||||
JSONObject point_2 = pointTab.query("point_code = '" + point_code2 + "'").uniqueResult(0);
|
||||
point_2.put("lock_type", "1");
|
||||
point_2.put("point_status", "2");
|
||||
point_2.put("vehicle_code", jsonTask.getString("vehicle_code"));
|
||||
point_2.put("lock_type", PointEnum.LOCK_TYPE_FALSE.getCode());
|
||||
point_2.put("vehicle_qty", NumberUtil.add(point_2.getString("vehicle_qty"), jsonTask.getString("vehicle_qty")));
|
||||
point_2.put("instorage_time", DateUtil.now());
|
||||
point_2.put("is_full", "1");
|
||||
point_2.put("ivt_qty", "0");
|
||||
point_2.put("pcsn", "");
|
||||
point_2.put("material_id", "");
|
||||
point_2.put("standing_time", "0");
|
||||
pointTab.update(point_2);
|
||||
}
|
||||
}
|
||||
@@ -119,16 +113,19 @@ public class FjSendEmpVehicleTask extends AbstractAcsTask {
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); // 任务表
|
||||
|
||||
String point_code1 = form.getString("point_code1");
|
||||
//判断当前点是否有未完成的任务
|
||||
JSONObject taskObj = taskTab.query("is_delete = '0' and point_code2 = '" + point_code1 + "' and task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(taskObj)) throw new BadRequestException("当前点位" + point_code1 + "存在未完成的任务");
|
||||
|
||||
SchTaskDto dto = SchTaskDto.builder().task_id(org.nl.wms.util.IdUtil.getLongId())
|
||||
.task_code(CodeUtil.getNewCode("TASK_CODE"))
|
||||
.task_type("")
|
||||
.task_name("分拣空钢托盘入库")
|
||||
.task_name("分拣送空钢托盘")
|
||||
.task_status(TaskStatusEnum.SURE_START.getCode())
|
||||
.point_code1(point_code1)
|
||||
.vehicle_code(form.getString("vehicle_code"))
|
||||
.vehicle_type(form.getString("vehicle_type"))
|
||||
.vehicle_qty(form.getIntValue("qty"))
|
||||
.vehicle_qty(1)
|
||||
.handle_class(THIS_CLASS)
|
||||
.create_time(DateUtil.now())
|
||||
.build();
|
||||
@@ -153,7 +150,7 @@ public class FjSendEmpVehicleTask extends AbstractAcsTask {
|
||||
for (int i = 0; i < taskArr.size(); i++) {
|
||||
JSONObject taskObj = taskArr.getJSONObject(i);
|
||||
// 直接找
|
||||
JSONObject endPoint = pointTab.query("point_code = 'KGTDTW01' AND lock_type = '1' AND is_used='1'").uniqueResult(0);
|
||||
JSONObject endPoint = pointTab.query("point_code = 'KGTDTW01' AND lock_type = '1'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(endPoint)) {
|
||||
taskObj.put("remark", "钢托盘叠托位不可用!");
|
||||
taskObj.put("task_status", TaskStatusEnum.SURE_START.getCode());
|
||||
@@ -167,7 +164,7 @@ public class FjSendEmpVehicleTask extends AbstractAcsTask {
|
||||
|
||||
//锁住终点
|
||||
endPoint.put("task_id", taskObj.getString("task_id"));
|
||||
endPoint.put("lock_type", "2");
|
||||
endPoint.put("lock_type", PointEnum.LOCK_TYPE_TRUE.getCode());
|
||||
pointTab.update(endPoint);
|
||||
}
|
||||
}
|
||||
@@ -182,7 +179,10 @@ public class FjSendEmpVehicleTask extends AbstractAcsTask {
|
||||
*/
|
||||
@Override
|
||||
public void forceFinish(String task_id) {
|
||||
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||
JSONObject taskObj = taskTab.query("task_id = '" + task_id + "' and is_delete = '0' and task_status <> " + TaskStatusEnum.FINISHED.getCode()).uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(taskObj))throw new BadRequestException("未找到该任务或者任务已完成!");
|
||||
this.updateTaskStatus(taskObj, UpdateTaskStatusEnum.FORCEFINISH.getCode());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -192,6 +192,9 @@ public class FjSendEmpVehicleTask extends AbstractAcsTask {
|
||||
*/
|
||||
@Override
|
||||
public void cancel(String task_id) {
|
||||
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||
JSONObject taskObj = taskTab.query("task_id = '" + task_id + "' and is_delete = '0' and task_status <> " + TaskStatusEnum.FINISHED.getCode()).uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(taskObj))throw new BadRequestException("未找到该任务或者任务已完成!");
|
||||
this.updateTaskStatus(taskObj,UpdateTaskStatusEnum.CANCEL.getCode());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -210,16 +210,10 @@ public class YzjSendEmpVehicleTask extends AbstractAcsTask {
|
||||
*/
|
||||
@Override
|
||||
public void forceFinish(String task_id) {
|
||||
/*
|
||||
* 强制完成
|
||||
*/
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||
JSONObject taskObj = taskTab.query("task_id = '" + task_id + "' and is_delete = '0' and task_status <> " + TaskStatusEnum.FINISHED.getCode()).uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(taskObj))
|
||||
this.updateTaskStatus(taskObj,UpdateTaskStatusEnum.FORCEFINISH.getCode());
|
||||
else {
|
||||
throw new BadRequestException("未找到该任务或者任务已完成!");
|
||||
}
|
||||
if (ObjectUtil.isEmpty(taskObj))throw new BadRequestException("未找到该任务或者任务已完成!");
|
||||
this.updateTaskStatus(taskObj, UpdateTaskStatusEnum.FORCEFINISH.getCode());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -13,14 +13,17 @@ import org.nl.modules.common.utils.SecurityUtils;
|
||||
import org.nl.modules.system.util.CodeUtil;
|
||||
import org.nl.modules.wql.WQL;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.wms.ext.acs.service.WmsToAcsService;
|
||||
import org.nl.wms.sch.SchTaskDto;
|
||||
import org.nl.wms.sch.manage.AbstractAcsTask;
|
||||
import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||
import org.nl.wms.sch.manage.*;
|
||||
import org.nl.wms.sch.tasks.AcsTaskDto;
|
||||
import org.nl.wms.sch.tasks.PointUpdateUtil;
|
||||
import org.nl.wms.sch.tasks.sendEmpty.FjSendEmpVehicleTask;
|
||||
import org.nl.wms.util.IdUtil;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -33,6 +36,8 @@ import java.util.List;
|
||||
@Slf4j
|
||||
public class FjSendMaterialTask extends AbstractAcsTask {
|
||||
private final String THIS_CLASS = FjSendEmpVehicleTask.class.getName();
|
||||
|
||||
private final WmsToAcsService wmsToAcsService;
|
||||
/**
|
||||
* 添加任务进行下发
|
||||
*
|
||||
@@ -40,11 +45,32 @@ public class FjSendMaterialTask extends AbstractAcsTask {
|
||||
*/
|
||||
@Override
|
||||
public List<AcsTaskDto> addTask() {
|
||||
return null;
|
||||
/*
|
||||
* 下发给ACS时需要特殊处理
|
||||
*/
|
||||
JSONArray arr = WQLObject.getWQLObject("SCH_BASE_Task").query("handle_class = '" + THIS_CLASS + "' and task_status = '" + TaskStatusEnum.START_AND_POINT.getCode() + "' and is_delete ='0'").getResultJSONArray(0);
|
||||
|
||||
ArrayList<AcsTaskDto> acsTaskArr = new ArrayList<>();
|
||||
for (int i = 0; i < arr.size(); i++) { // 任务
|
||||
JSONObject json = arr.getJSONObject(i);
|
||||
AcsTaskDto dto = AcsTaskDto.builder()
|
||||
.task_id(json.getString("task_id"))
|
||||
.task_code(json.getString("task_code"))
|
||||
.task_type(json.getString("acs_task_type"))
|
||||
.start_device_code(json.getString("point_code1"))
|
||||
.next_device_code(json.getString("point_code2"))
|
||||
.vehicle_code(json.getString("vehicle_code"))
|
||||
.vehicle_type(json.getString("vehicle_type"))
|
||||
.priority(json.getString("priority"))
|
||||
.remark(json.getString("remark"))
|
||||
.build();
|
||||
acsTaskArr.add(dto);
|
||||
}
|
||||
return acsTaskArr;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param taskObj 代表一条任务对象
|
||||
* @param task 代表一条任务对象
|
||||
* @param status 代表wcs任务完成状态: //0:acs,取消,:执行中,2:完成
|
||||
* @return
|
||||
* @discription wcs请求wms任务完成状态反馈接口, 比如agv从a点往b点走。生成任务的时候绑定b的物料信息,任务完成的时候,清除a的物料信息
|
||||
@@ -52,23 +78,26 @@ public class FjSendMaterialTask extends AbstractAcsTask {
|
||||
* @created 2019年4月17日 下午8:51:50
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateTaskStatus(JSONObject task, String status) {
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
|
||||
WQLObject workOrderTab = WQLObject.getWQLObject("PDM_BD_WorkOrder");
|
||||
WQLObject regionIoTab = WQLObject.getWQLObject("st_ivt_regionIO");
|
||||
|
||||
String task_id = task.getString("task_id");
|
||||
JSONObject taskObj = taskTab.query("task_id = '" + task_id + "'").uniqueResult(0);
|
||||
|
||||
//任务取消
|
||||
if (StrUtil.equals(status, "0")) {
|
||||
if (StrUtil.equals(status, UpdateTaskStatusEnum.CANCEL.getCode())) {
|
||||
// 取消删除任务
|
||||
if (StrUtil.equals(taskObj.getString("task_status"), TaskStatusEnum.FINISHED.getCode())) {
|
||||
throw new BadRequestException("已完成不能取消!");
|
||||
}
|
||||
String point_code2 = taskObj.getString("point_code2");
|
||||
if (ObjectUtil.isEmpty(point_code2)) {
|
||||
if (ObjectUtil.isNotEmpty(point_code2)) {
|
||||
JSONObject endPoint = pointTab.query("point_code = '" + point_code2 + "'").uniqueResult(0);
|
||||
endPoint.put("lock_type", "1");
|
||||
endPoint.put("lock_type", PointEnum.LOCK_TYPE_FALSE.getCode());
|
||||
pointTab.update(endPoint);
|
||||
}
|
||||
taskObj.put("task_status", TaskStatusEnum.FINISHED.getCode());
|
||||
@@ -76,7 +105,7 @@ public class FjSendMaterialTask extends AbstractAcsTask {
|
||||
taskTab.update(taskObj);
|
||||
}
|
||||
|
||||
if ("1".equals(status)) {
|
||||
if (UpdateTaskStatusEnum.EXECUTION.getCode().equals(status)) {
|
||||
// 更新任务状态为执行中
|
||||
taskObj.put("task_status", TaskStatusEnum.EXECUTING.getCode());
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
@@ -84,7 +113,11 @@ public class FjSendMaterialTask extends AbstractAcsTask {
|
||||
taskTab.update(taskObj);
|
||||
}
|
||||
|
||||
if (StrUtil.equals(status, "2")) {
|
||||
if (StrUtil.equals(status, UpdateTaskStatusEnum.FORCEFINISH.getCode())) {
|
||||
/**
|
||||
* 任务完成:
|
||||
* 取木托盘完成,送物料完成
|
||||
*/
|
||||
// 更改任务状态为完成
|
||||
taskObj.put("task_status", TaskStatusEnum.FINISHED.getCode());
|
||||
taskObj.put("update_optid", SecurityUtils.getCurrentUserId());
|
||||
@@ -92,52 +125,95 @@ public class FjSendMaterialTask extends AbstractAcsTask {
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
taskTab.update(taskObj);
|
||||
|
||||
String point_code1 = taskObj.getString("point_code1");
|
||||
String point_code2 = taskObj.getString("point_code2");
|
||||
JSONObject point1Obj = pointTab.query("point_code = '" + point_code1 + "'").uniqueResult(0);
|
||||
JSONObject point2Obj = pointTab.query("point_code = '" + point_code2 + "'").uniqueResult(0);
|
||||
JSONObject requestObj = task.getJSONObject("request_param");
|
||||
//工单标识
|
||||
String workorder_id = requestObj.getString("workorder_id");
|
||||
//生产工单表【PDM_BD_WorkOrder】
|
||||
WQLObject workOrderTab = WQLObject.getWQLObject("PDM_BD_WorkOrder");
|
||||
JSONObject workorderObj = workOrderTab.query("workorder_id", workorder_id).uniqueResult(0);
|
||||
|
||||
if (!point_code2.equals("BZX01")) { // 半满到包装暂存区,记录库存
|
||||
//区域出入表【st_ivt_regionIO】
|
||||
WQLObject regionIoTab = WQLObject.getWQLObject("st_ivt_regionIO");
|
||||
String workorder_id = taskObj.getString("workorder_id");
|
||||
JSONObject workorderObj = workOrderTab.query("workorder_id = '" + workorder_id + "'").uniqueResult(0);
|
||||
String sort_seq = taskObj.getString("sort_seq");
|
||||
if (sort_seq.equals("1")) { // 取空托盘任务
|
||||
// 避免没有找到位置
|
||||
if (ObjectUtil.isEmpty(point1Obj)) return;
|
||||
// 需要判断取的是否为半满或者是控盘
|
||||
// 半托
|
||||
if (point1Obj.getString("region_code").equals(RegionEnum.BZZCQ.getCode())) {
|
||||
// 物料出库
|
||||
// 插入出库单
|
||||
JSONObject regionIoObj = new JSONObject();
|
||||
regionIoObj.put("iostorinv_id", IdUtil.getLongId());
|
||||
regionIoObj.put("bill_code", CodeUtil.getNewCode("IN_STORE_CODE"));
|
||||
regionIoObj.put("buss_date", DateUtil.today());
|
||||
regionIoObj.put("io_type", RegionIOEnum.IO_TYPE_OUT.getCode()); // 出库
|
||||
regionIoObj.put("region_id", point1Obj.getString("region_id"));
|
||||
regionIoObj.put("region_code", point1Obj.getString("region_code"));
|
||||
regionIoObj.put("region_name", point1Obj.getString("region_name"));
|
||||
regionIoObj.put("material_id", taskObj.getString("material_id"));
|
||||
regionIoObj.put("vehicle_code", taskObj.getString("vehicle_code"));
|
||||
regionIoObj.put("qty", requestObj.getString("qty"));
|
||||
regionIoObj.put("weight_unit_id", RegionIOEnum.UNIT_ID_B.getCode());
|
||||
regionIoObj.put("bill_status", RegionIOEnum.BILL_STATUS_FINISH.getCode());
|
||||
regionIoObj.put("start_point_code", taskObj.getString("point_code1"));
|
||||
regionIoObj.put("end_point_code", taskObj.getString("point_code2"));
|
||||
regionIoObj.put("create_mode", RegionIOEnum.CREATE_MODE_ACS.getCode());
|
||||
regionIoObj.put("pcsn", DateUtil.format(DateUtil.parse(DateUtil.today()), "yyyyMMdd"));
|
||||
regionIoObj.put("create_id", SecurityUtils.getCurrentUserId());
|
||||
regionIoObj.put("create_name", SecurityUtils.getCurrentNickName());
|
||||
regionIoObj.put("create_time", DateUtil.now());
|
||||
regionIoTab.insert(regionIoObj);
|
||||
// 点位更新,起点:空位,解锁;
|
||||
PointUpdateUtil.clearPoint(point1Obj.getString("point_code"));
|
||||
// 终点:码垛对接位,将半托的组盘id放进去
|
||||
point2Obj.put("group_id", taskObj.getString("group_id"));
|
||||
pointTab.update(point2Obj);
|
||||
}
|
||||
// 起点解锁
|
||||
point1Obj.put("lock_type", PointEnum.LOCK_TYPE_FALSE.getCode());
|
||||
pointTab.update(point1Obj);
|
||||
}
|
||||
if (sort_seq.equals("2")) { // 送物料任务
|
||||
// 避免没有找到位置
|
||||
if (ObjectUtil.isEmpty(point2Obj)) return;
|
||||
JSONObject regionIoObj = new JSONObject();
|
||||
regionIoObj.put("iostorinv_id", IdUtil.getLongId());
|
||||
regionIoObj.put("bill_code", CodeUtil.getNewCode("IN_STORE_CODE"));
|
||||
regionIoObj.put("buss_date", DateUtil.today());
|
||||
regionIoObj.put("io_type", "1");
|
||||
regionIoObj.put("io_type", RegionIOEnum.IO_TYPE_IN.getCode());
|
||||
regionIoObj.put("region_id", point2Obj.getString("region_id"));
|
||||
regionIoObj.put("region_code", point2Obj.getString("region_code"));
|
||||
regionIoObj.put("region_name", point2Obj.getString("region_name"));
|
||||
regionIoObj.put("material_id", taskObj.getString("material_id"));
|
||||
regionIoObj.put("vehicle_code", taskObj.getString("vehicle_code"));
|
||||
regionIoObj.put("qty", requestObj.getString("qty"));
|
||||
regionIoObj.put("bill_status", "3");
|
||||
regionIoObj.put("weight_unit_id", RegionIOEnum.UNIT_ID_B.getCode());
|
||||
regionIoObj.put("bill_status", RegionIOEnum.BILL_STATUS_FINISH.getCode());
|
||||
regionIoObj.put("start_point_code", taskObj.getString("point_code1"));
|
||||
regionIoObj.put("end_point_code", taskObj.getString("point_code3"));
|
||||
regionIoObj.put("create_mode", "2");
|
||||
regionIoObj.put("create_mode", RegionIOEnum.CREATE_MODE_ACS.getCode());
|
||||
regionIoObj.put("pcsn", DateUtil.format(DateUtil.parse(DateUtil.today()), "yyyyMMdd"));
|
||||
regionIoObj.put("create_id", SecurityUtils.getCurrentUserId());
|
||||
regionIoObj.put("create_name", SecurityUtils.getCurrentNickName());
|
||||
regionIoObj.put("create_time", DateUtil.now());
|
||||
regionIoTab.insert(regionIoObj);
|
||||
//完成后入库
|
||||
point2Obj.put("instorage_time", DateUtil.now());
|
||||
point2Obj.put("pcsn", DateUtil.format(DateUtil.parse(DateUtil.today()), "yyyyMMdd"));
|
||||
point2Obj.put("ivt_qty", requestObj.getString("qty"));
|
||||
point2Obj.put("standing_time", workorderObj.getString("standing_time"));
|
||||
point2Obj.put("material_id", workorderObj.getString("material_id"));
|
||||
point2Obj.put("vehicle_type", workorderObj.getString("vehicle_type"));
|
||||
point2Obj.put("vehicle_code", taskObj.getString("vehicle_code"));
|
||||
point2Obj.put("is_full", requestObj.getString("is_full"));
|
||||
point2Obj.put("point_status", "3");
|
||||
if (!point_code2.equals("BZX01")) { // 半满到包装暂存区,记录库存
|
||||
//完成后入库
|
||||
point2Obj.put("instorage_time", DateUtil.now());
|
||||
point2Obj.put("pcsn", DateUtil.format(DateUtil.parse(DateUtil.today()), "yyyyMMdd"));
|
||||
point2Obj.put("ivt_qty", requestObj.getString("qty"));
|
||||
point2Obj.put("standing_time", workorderObj.getString("standing_time"));
|
||||
point2Obj.put("material_id", workorderObj.getString("material_id"));
|
||||
point2Obj.put("vehicle_type", workorderObj.getString("vehicle_type"));
|
||||
point2Obj.put("vehicle_code", taskObj.getString("vehicle_code"));
|
||||
point2Obj.put("group_id", taskObj.getString("group_id")); // 组盘标识
|
||||
point2Obj.put("is_full", requestObj.getString("is_full"));
|
||||
point2Obj.put("point_status", PointEnum.POINT_STATUS_HAVE_MATERIAL.getCode());
|
||||
}
|
||||
// 终点解锁
|
||||
point2Obj.put("lock_type", PointEnum.LOCK_TYPE_FALSE.getCode());
|
||||
pointTab.update(point2Obj);
|
||||
}
|
||||
// 终点解锁
|
||||
point2Obj.put("lock_type", "1");
|
||||
pointTab.update(point2Obj);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -146,6 +222,7 @@ public class FjSendMaterialTask extends AbstractAcsTask {
|
||||
* @return 返回任务标识
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public String createTask(JSONObject form) {
|
||||
String point_code1 = form.getString("point_code1");
|
||||
String vehicle_code = form.getString("vehicle_code");
|
||||
@@ -180,8 +257,11 @@ public class FjSendMaterialTask extends AbstractAcsTask {
|
||||
.workorder_id(workOrderObj.getLong("workorder_id"))
|
||||
.material_id(workOrderObj.getLong("material_id"))
|
||||
.handle_class(THIS_CLASS)
|
||||
.group_id(form.getLong("group_id"))
|
||||
.create_time(DateUtil.now())
|
||||
.request_param(form.toJSONString())
|
||||
.task_group_id(IdUtil.getLongId())
|
||||
.sort_seq(2)
|
||||
.build();
|
||||
JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto));
|
||||
taskTab.insert(json);
|
||||
@@ -197,6 +277,7 @@ public class FjSendMaterialTask extends AbstractAcsTask {
|
||||
* @created 2020年6月12日 下午6:01:06
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void findNextPoint() {
|
||||
// 判断是否满拖:半满->包装暂存区,满->包装线
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||
@@ -207,27 +288,96 @@ public class FjSendMaterialTask extends AbstractAcsTask {
|
||||
JSONObject requestObj = taskObj.getJSONObject("request_param");
|
||||
if (requestObj.getString("is_full").equals("1")) {
|
||||
JSONObject endPoint = pointTab.query("point_code = 'BZX01' AND lock_type = '1'").uniqueResult(0);
|
||||
// 满拖就到包装线
|
||||
// 满拖先生成叫半托,没有在呼叫空托盘的任务,在执行去到包装线
|
||||
SchTaskDto dto = SchTaskDto.builder()
|
||||
.task_id(IdUtil.getLongId())
|
||||
.task_code(CodeUtil.getNewCode("TASK_CODE"))
|
||||
.task_type("task_type")
|
||||
.task_name("分拣呼叫空托盘")
|
||||
.vehicle_type(taskObj.getString("vehicle_type")) // 与满拖的类型一致,因为工单未结束
|
||||
.material_qty(taskObj.getString("material_qty"))
|
||||
.task_status(TaskStatusEnum.SURE_END.getCode())
|
||||
.point_code2(taskObj.getString("point_code2"))
|
||||
.handle_class(THIS_CLASS)
|
||||
.create_time(DateUtil.now())
|
||||
.sort_seq(1)
|
||||
.task_group_id(taskObj.getLong("task_group_id"))
|
||||
.build();
|
||||
JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto));
|
||||
taskTab.insert(json);
|
||||
// 先呼叫半托
|
||||
JSONObject halfTray = pointTab.query("region_code = 'BZZCQ' AND lock_type = '1' " +
|
||||
"AND point_status = '2' AND is_used = '1' AND is_delete = '0'").uniqueResult(0);
|
||||
// 获取任务
|
||||
JSONObject taskEnt = taskTab.query("task_id = '" + dto.getTask_id() + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(halfTray)) { // 半托
|
||||
// 去搬运
|
||||
taskEnt.put("point_code1", halfTray.getString("point_code"));
|
||||
taskEnt.put("update_time", DateUtil.now());
|
||||
taskEnt.put("group_id", halfTray.getString("group_id")); // 半托要把组盘标识记录起来
|
||||
taskEnt.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
|
||||
taskTab.update(taskEnt);
|
||||
// 更新半托点位状态
|
||||
halfTray.put("task_id", taskObj.getString("task_id"));
|
||||
halfTray.put("lock_type", PointEnum.LOCK_TYPE_TRUE.getCode());
|
||||
pointTab.update(halfTray);
|
||||
} else {
|
||||
// 没有半托呼叫空木托盘
|
||||
// 获取所有的托盘堆叠位
|
||||
JSONArray pointCodes = WQL.getWO("QSCH_fjSendMaterial_01").addParam("flag", "2").process().getResultJSONArray(0);
|
||||
// 更新点位
|
||||
PointUpdateUtil.updatePoint(pointCodes);
|
||||
// 找到载具类型符合的覆膜机位置:真正的位置在device_code
|
||||
JSONObject emptyTray = pointTab.query("region_code = 'RGCPQ' AND vehicle_type = '" +
|
||||
taskObj.getString("vehicle_type") + "' AND point_status = '2' " +
|
||||
"AND is_used = '1' AND is_delete = '0' AND lock_type = '1'").uniqueResult(0);
|
||||
|
||||
if (ObjectUtil.isNotEmpty(emptyTray)) {
|
||||
// 向ACS申请传送一个空木托盘
|
||||
JSONArray jsonArray = new JSONArray();
|
||||
JSONObject data = new JSONObject();
|
||||
data.put("device_code", emptyTray.getString("point_code"));
|
||||
jsonArray.add(data);
|
||||
wmsToAcsService.getTray(jsonArray);
|
||||
// 去搬运
|
||||
taskEnt.put("point_code1", emptyTray.getString("device_code"));
|
||||
taskEnt.put("update_time", DateUtil.now());
|
||||
taskEnt.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
|
||||
taskTab.update(taskEnt);
|
||||
// 更新空托盘点位状态
|
||||
emptyTray.put("task_id", taskObj.getString("task_id"));
|
||||
emptyTray.put("lock_type", PointEnum.LOCK_TYPE_TRUE.getCode());
|
||||
pointTab.update(emptyTray);
|
||||
} else {
|
||||
taskEnt.put("remark", "暂无空托盘");
|
||||
taskEnt.put("update_time", DateUtil.now());
|
||||
taskTab.update(taskEnt);
|
||||
// 满拖搬运也不下发
|
||||
taskObj.put("remark", "暂无空托盘");
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
taskTab.update(taskObj);
|
||||
return;
|
||||
}
|
||||
}
|
||||
// 更新送料任务信息
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
taskObj.put("point_code2", endPoint.getString("point_code"));
|
||||
taskObj.put("task_status", TaskStatusEnum.START_AND_POINT.getCode());
|
||||
taskTab.update(taskObj);
|
||||
|
||||
//锁住终点
|
||||
//锁住送料任务终点
|
||||
endPoint.put("task_id", taskObj.getString("task_id"));
|
||||
endPoint.put("lock_type", "2");
|
||||
endPoint.put("lock_type", PointEnum.LOCK_TYPE_TRUE.getCode());
|
||||
pointTab.update(endPoint);
|
||||
} else {
|
||||
// 半满拖就去包装暂存区
|
||||
String vehicle_type = taskObj.getString("vehicle_type");
|
||||
JSONObject param1 = new JSONObject();
|
||||
param1.put("flag", "1");
|
||||
param1.put("region_code", "BZZCQ");
|
||||
param1.put("vehicle_type", "%" + vehicle_type + "%");
|
||||
//1、查找困料货架是否有响应的载具类型和对应的物料
|
||||
JSONObject endPoint = WQL.getWO("QSCH_fjCallEmptyVehicle_01").addParamMap(param1).process().uniqueResult(0);
|
||||
JSONObject endPoint = WQL.getWO("QSCH_fjSendMaterial_01").addParamMap(param1).process().uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(endPoint)) {
|
||||
taskObj.put("remark", "包装暂存区无可用货位!");
|
||||
taskObj.put("remark", "包装暂存区无可用货位");
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
taskTab.update(taskObj);
|
||||
} else {
|
||||
@@ -238,7 +388,7 @@ public class FjSendMaterialTask extends AbstractAcsTask {
|
||||
|
||||
//锁住终点
|
||||
endPoint.put("task_id", taskObj.getString("task_id"));
|
||||
endPoint.put("lock_type", "2");
|
||||
endPoint.put("lock_type", PointEnum.LOCK_TYPE_TRUE.getCode());
|
||||
pointTab.update(endPoint);
|
||||
}
|
||||
}
|
||||
@@ -256,11 +406,8 @@ public class FjSendMaterialTask extends AbstractAcsTask {
|
||||
public void forceFinish(String task_id) {
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||
JSONObject taskObj = taskTab.query("task_id = '" + task_id + "' and is_delete = '0' and task_status <> " + TaskStatusEnum.FINISHED.getCode()).uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(taskObj))
|
||||
this.updateTaskStatus(taskObj,"2");
|
||||
else {
|
||||
throw new BadRequestException("未找到该任务或者任务已完成!");
|
||||
}
|
||||
if (ObjectUtil.isEmpty(taskObj))throw new BadRequestException("未找到该任务或者任务已完成!");
|
||||
this.updateTaskStatus(taskObj, UpdateTaskStatusEnum.FORCEFINISH.getCode());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -272,10 +419,7 @@ public class FjSendMaterialTask extends AbstractAcsTask {
|
||||
public void cancel(String task_id) {
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||
JSONObject taskObj = taskTab.query("task_id = '" + task_id + "' and is_delete = '0' and task_status <> " + TaskStatusEnum.FINISHED.getCode()).uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(taskObj))
|
||||
this.updateTaskStatus(taskObj,"0");
|
||||
else {
|
||||
throw new BadRequestException("未找到该任务或者任务已完成!");
|
||||
}
|
||||
if (ObjectUtil.isEmpty(taskObj))throw new BadRequestException("未找到该任务或者任务已完成!");
|
||||
this.updateTaskStatus(taskObj, UpdateTaskStatusEnum.CANCEL.getCode());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -146,6 +146,7 @@ public class HnSendMaterialTask extends AbstractAcsTask {
|
||||
regionIoObj.put("vehicle_code", taskObj.getString("vehicle_code"));
|
||||
regionIoObj.put("qty", requestObj.getString("qty"));
|
||||
regionIoObj.put("ivt_weight", requestObj.getString("weight"));
|
||||
regionIoObj.put("weight_unit_id", RegionIOEnum.UNIT_ID_T.getCode());
|
||||
regionIoObj.put("bill_status", RegionIOEnum.BILL_STATUS_FINISH.getCode());
|
||||
regionIoObj.put("start_point_code", taskObj.getString("point_code1"));
|
||||
regionIoObj.put("end_point_code", taskObj.getString("point_code2"));
|
||||
@@ -314,16 +315,10 @@ public class HnSendMaterialTask extends AbstractAcsTask {
|
||||
*/
|
||||
@Override
|
||||
public void forceFinish(String task_id) {
|
||||
/*
|
||||
* 强制完成
|
||||
*/
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||
JSONObject taskObj = taskTab.query("task_id = '" + task_id + "' and is_delete = '0' and task_status <> " + TaskStatusEnum.FINISHED.getCode()).uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(taskObj))
|
||||
this.updateTaskStatus(taskObj, UpdateTaskStatusEnum.FORCEFINISH.getCode());
|
||||
else {
|
||||
throw new BadRequestException("未找到该任务或者任务已完成!");
|
||||
}
|
||||
if (ObjectUtil.isEmpty(taskObj))throw new BadRequestException("未找到该任务或者任务已完成!");
|
||||
this.updateTaskStatus(taskObj, UpdateTaskStatusEnum.FORCEFINISH.getCode());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -14,11 +14,11 @@ import org.nl.modules.system.util.CodeUtil;
|
||||
import org.nl.modules.wql.WQL;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.wms.sch.SchTaskDto;
|
||||
import org.nl.wms.sch.manage.AbstractAcsTask;
|
||||
import org.nl.wms.sch.manage.TaskStatusEnum;
|
||||
import org.nl.wms.sch.manage.*;
|
||||
import org.nl.wms.sch.tasks.AcsTaskDto;
|
||||
import org.nl.wms.util.IdUtil;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -73,23 +73,25 @@ public class SzSendMaterialTask extends AbstractAcsTask {
|
||||
* @created 2019年4月17日 下午8:51:50
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateTaskStatus(JSONObject task, String status) {
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
|
||||
WQLObject groupTab = WQLObject.getWQLObject("st_buss_vehiclegroup");
|
||||
|
||||
String task_id = task.getString("task_id");
|
||||
JSONObject taskObj = taskTab.query("task_id = '" + task_id + "'").uniqueResult(0);
|
||||
|
||||
//任务取消
|
||||
if (StrUtil.equals(status, "0")) {
|
||||
if (StrUtil.equals(status, UpdateTaskStatusEnum.CANCEL.getCode())) {
|
||||
// 取消删除任务
|
||||
if (StrUtil.equals(taskObj.getString("task_status"), TaskStatusEnum.FINISHED.getCode())) {
|
||||
throw new BadRequestException("已完成不能取消!");
|
||||
}
|
||||
String point_code2 = taskObj.getString("point_code2");
|
||||
if (ObjectUtil.isEmpty(point_code2)) {
|
||||
if (ObjectUtil.isNotEmpty(point_code2)) {
|
||||
JSONObject endPoint = pointTab.query("point_code = '" + point_code2 + "'").uniqueResult(0);
|
||||
endPoint.put("lock_type", "1");
|
||||
endPoint.put("lock_type", PointEnum.LOCK_TYPE_FALSE.getCode());
|
||||
pointTab.update(endPoint);
|
||||
}
|
||||
taskObj.put("task_status", TaskStatusEnum.FINISHED.getCode());
|
||||
@@ -97,7 +99,7 @@ public class SzSendMaterialTask extends AbstractAcsTask {
|
||||
taskTab.update(taskObj);
|
||||
}
|
||||
|
||||
if ("1".equals(status)) {
|
||||
if (UpdateTaskStatusEnum.EXECUTION.getCode().equals(status)) {
|
||||
// 更新任务状态为执行中
|
||||
taskObj.put("task_status", TaskStatusEnum.EXECUTING.getCode());
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
@@ -105,7 +107,8 @@ public class SzSendMaterialTask extends AbstractAcsTask {
|
||||
taskTab.update(taskObj);
|
||||
}
|
||||
|
||||
if (StrUtil.equals(status, "2")) {
|
||||
if (StrUtil.equals(status, UpdateTaskStatusEnum.FORCEFINISH.getCode())) {
|
||||
String vehicle_code = taskObj.getString("vehicle_code");
|
||||
// 更改任务状态为完成
|
||||
taskObj.put("task_status", TaskStatusEnum.FINISHED.getCode());
|
||||
taskObj.put("update_optid", SecurityUtils.getCurrentUserId());
|
||||
@@ -114,31 +117,28 @@ public class SzSendMaterialTask extends AbstractAcsTask {
|
||||
taskTab.update(taskObj);
|
||||
|
||||
String point_code2 = taskObj.getString("point_code2");
|
||||
if (ObjectUtil.isEmpty(point_code2)) return;
|
||||
JSONObject point2Obj = pointTab.query("point_code = '" + point_code2 + "'").uniqueResult(0);
|
||||
JSONObject requestObj = task.getJSONObject("request_param");
|
||||
//工单标识
|
||||
String workorder_id = requestObj.getString("workorder_id");
|
||||
//生产工单表【PDM_BD_WorkOrder】
|
||||
WQLObject workOrderTab = WQLObject.getWQLObject("PDM_BD_WorkOrder");
|
||||
JSONObject workorderObj = workOrderTab.query("workorder_id", workorder_id).uniqueResult(0);
|
||||
|
||||
JSONObject groupObj = groupTab.query("group_id = '" + taskObj.getString("group_id") + "'").uniqueResult(0);
|
||||
//区域出入表【st_ivt_regionIO】
|
||||
WQLObject regionIoTab = WQLObject.getWQLObject("st_ivt_regionIO");
|
||||
JSONObject regionIoObj = new JSONObject();
|
||||
regionIoObj.put("iostorinv_id", IdUtil.getLongId());
|
||||
regionIoObj.put("bill_code", CodeUtil.getNewCode("IN_STORE_CODE"));
|
||||
regionIoObj.put("buss_date", DateUtil.today());
|
||||
regionIoObj.put("io_type", "1"); // 入库
|
||||
regionIoObj.put("io_type", RegionIOEnum.IO_TYPE_IN.getCode()); // 入库
|
||||
regionIoObj.put("region_id", point2Obj.getString("region_id"));
|
||||
regionIoObj.put("region_code", point2Obj.getString("region_code"));
|
||||
regionIoObj.put("region_name", point2Obj.getString("region_name"));
|
||||
regionIoObj.put("material_id", taskObj.getString("material_id"));
|
||||
regionIoObj.put("vehicle_code", taskObj.getString("vehicle_code"));
|
||||
regionIoObj.put("vehicle_code", vehicle_code);
|
||||
regionIoObj.put("qty", requestObj.getString("qty"));
|
||||
regionIoObj.put("bill_status", "3");
|
||||
regionIoObj.put("weight_unit_id", RegionIOEnum.UNIT_ID_B.getCode());
|
||||
regionIoObj.put("bill_status", RegionIOEnum.BILL_STATUS_FINISH.getCode());
|
||||
regionIoObj.put("start_point_code", taskObj.getString("point_code1"));
|
||||
regionIoObj.put("end_point_code", taskObj.getString("point_code3"));
|
||||
regionIoObj.put("create_mode", "2");
|
||||
regionIoObj.put("create_mode", RegionIOEnum.CREATE_MODE_ACS.getCode());
|
||||
regionIoObj.put("pcsn", DateUtil.format(DateUtil.parse(DateUtil.today()), "yyyyMMdd"));
|
||||
regionIoObj.put("create_id", SecurityUtils.getCurrentUserId());
|
||||
regionIoObj.put("create_name", SecurityUtils.getCurrentNickName());
|
||||
@@ -149,15 +149,16 @@ public class SzSendMaterialTask extends AbstractAcsTask {
|
||||
point2Obj.put("instorage_time", DateUtil.now());
|
||||
point2Obj.put("pcsn", DateUtil.format(DateUtil.parse(DateUtil.today()), "yyyyMMdd"));
|
||||
point2Obj.put("ivt_qty", requestObj.getString("qty"));
|
||||
point2Obj.put("standing_time", workorderObj.getString("standing_time"));
|
||||
point2Obj.put("material_id", workorderObj.getString("material_id"));
|
||||
point2Obj.put("vehicle_type", workorderObj.getString("vehicle_type"));
|
||||
point2Obj.put("material_id", taskObj.getString("material_id"));
|
||||
point2Obj.put("vehicle_type", taskObj.getString("vehicle_type"));
|
||||
point2Obj.put("vehicle_code", taskObj.getString("vehicle_code"));
|
||||
point2Obj.put("is_full", requestObj.getString("is_full"));
|
||||
point2Obj.put("vehicle_qty", "1"); // 入库为1个载具
|
||||
point2Obj.put("is_full", groupObj.getString("is_full"));
|
||||
point2Obj.put("group_id", groupObj.getString("group_id"));
|
||||
|
||||
// 终点解锁
|
||||
point2Obj.put("lock_type", "1");
|
||||
point2Obj.put("point_status", "3");
|
||||
point2Obj.put("lock_type", PointEnum.LOCK_TYPE_FALSE.getCode());
|
||||
point2Obj.put("point_status", PointEnum.POINT_STATUS_HAVE_MATERIAL.getCode());
|
||||
pointTab.update(point2Obj);
|
||||
}
|
||||
}
|
||||
@@ -171,36 +172,28 @@ public class SzSendMaterialTask extends AbstractAcsTask {
|
||||
public String createTask(JSONObject form) {
|
||||
String point_code1 = form.getString("point_code1");
|
||||
String vehicle_code = form.getString("vehicle_code");
|
||||
WQLObject groupTab = WQLObject.getWQLObject("st_buss_vehiclegroup");
|
||||
String qty = form.getString("qty");
|
||||
String is_full = form.getString("is_full");
|
||||
String weight = form.getString("weight");
|
||||
//任务表【SCH_BASE_Task】
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||
//判断当前点是否有未完成的任务
|
||||
JSONObject taskObj = taskTab.query("is_delete='0' and point_code1 = '" + point_code1 + "' and task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(taskObj)) throw new BadRequestException("当前点位" + point_code1 + "存在未完成的任务");
|
||||
|
||||
//生产工单表【PDM_BD_WorkOrder】
|
||||
WQLObject workOrderTab = WQLObject.getWQLObject("PDM_BD_WorkOrder");
|
||||
//点位基础表【SCH_BASE_Point】
|
||||
WQLObject pointTab = WQLObject.getWQLObject("SCH_BASE_Point");
|
||||
// 压制机设备编码
|
||||
String device_code = pointTab.query("point_code = '" + point_code1 + "'").uniqueResult(0).getString("device_code");
|
||||
JSONObject workOrderObj = workOrderTab.query("device_code = '" + device_code + "' and order_status = '3' and is_delete ='0'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(workOrderObj)) throw new BadRequestException("该设备当前未生产或者已删除");
|
||||
|
||||
// 获取到组盘
|
||||
JSONObject groupObj = groupTab.query("vehicle_code = '" + vehicle_code + "'", "create_time desc").uniqueResult(0);
|
||||
SchTaskDto dto = SchTaskDto.builder()
|
||||
.task_id(IdUtil.getLongId())
|
||||
.task_code(CodeUtil.getNewCode("TASK_CODE"))
|
||||
.task_type("task_type")
|
||||
.task_name("烧制入库")
|
||||
.material_id(groupObj.getLong("material_uuid"))
|
||||
.group_id(groupObj.getLong("group_id"))
|
||||
.material_qty(qty)
|
||||
.task_status(TaskStatusEnum.SURE_START.getCode())
|
||||
.point_code1(point_code1)
|
||||
.vehicle_code(vehicle_code)
|
||||
.vehicle_type(workOrderObj.getString("vehicle_type"))
|
||||
.workorder_id(workOrderObj.getLong("workorder_id"))
|
||||
.material_id(workOrderObj.getLong("material_id"))
|
||||
.vehicle_type(PointEnum.VEHICLE_TYPE_STEEL_TRAY.getCode())
|
||||
.handle_class(THIS_CLASS)
|
||||
.create_time(DateUtil.now())
|
||||
.request_param(form.toJSONString())
|
||||
@@ -226,11 +219,9 @@ public class SzSendMaterialTask 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 taskObj = taskArr.getJSONObject(i);
|
||||
String vehicle_type = taskObj.getString("vehicle_type");
|
||||
JSONObject param1 = new JSONObject();
|
||||
param1.put("flag", "1");
|
||||
param1.put("region_code", "CYZCQ");
|
||||
param1.put("vehicle_type", "%" + vehicle_type + "%");
|
||||
//1、查找出窑缓存区的空位
|
||||
JSONObject endPoint = WQL.getWO("QSCH_szSendMaterial_01").addParamMap(param1).process().uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(endPoint)) {
|
||||
@@ -245,7 +236,7 @@ public class SzSendMaterialTask extends AbstractAcsTask {
|
||||
|
||||
//锁住终点
|
||||
endPoint.put("task_id", taskObj.getString("task_id"));
|
||||
endPoint.put("lock_type", "2");
|
||||
endPoint.put("lock_type", PointEnum.LOCK_TYPE_TRUE.getCode());
|
||||
pointTab.update(endPoint);
|
||||
}
|
||||
}
|
||||
@@ -260,16 +251,10 @@ public class SzSendMaterialTask extends AbstractAcsTask {
|
||||
*/
|
||||
@Override
|
||||
public void forceFinish(String task_id) {
|
||||
/*
|
||||
* 强制完成
|
||||
*/
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||
JSONObject taskObj = taskTab.query("task_id = '" + task_id + "' and is_delete = '0' and task_status <> " + TaskStatusEnum.FINISHED.getCode()).uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(taskObj))
|
||||
this.updateTaskStatus(taskObj,"2");
|
||||
else {
|
||||
throw new BadRequestException("未找到该任务或者任务已完成!");
|
||||
}
|
||||
if (ObjectUtil.isEmpty(taskObj))throw new BadRequestException("未找到该任务或者任务已完成!");
|
||||
this.updateTaskStatus(taskObj, UpdateTaskStatusEnum.FORCEFINISH.getCode());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -136,6 +136,7 @@ public class YzjSendMaterialTask extends AbstractAcsTask {
|
||||
regionIoObj.put("vehicle_code", taskObj.getString("vehicle_code"));
|
||||
regionIoObj.put("qty", requestObj.getString("qty"));
|
||||
regionIoObj.put("ivt_weight", requestObj.getString("weight"));
|
||||
regionIoObj.put("weight_unit_id", RegionIOEnum.UNIT_ID_B.getCode());
|
||||
regionIoObj.put("bill_status", RegionIOEnum.BILL_STATUS_FINISH.getCode());
|
||||
regionIoObj.put("start_point_code", taskObj.getString("point_code1"));
|
||||
regionIoObj.put("end_point_code", taskObj.getString("point_code3"));
|
||||
@@ -267,16 +268,10 @@ public class YzjSendMaterialTask extends AbstractAcsTask {
|
||||
*/
|
||||
@Override
|
||||
public void forceFinish(String task_id) {
|
||||
/*
|
||||
* 强制完成
|
||||
*/
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||
JSONObject taskObj = taskTab.query("task_id = '" + task_id + "' and is_delete = '0' and task_status <> " + TaskStatusEnum.FINISHED.getCode()).uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(taskObj))
|
||||
this.updateTaskStatus(taskObj,UpdateTaskStatusEnum.FORCEFINISH.getCode());
|
||||
else {
|
||||
throw new BadRequestException("未找到该任务或者任务已完成!");
|
||||
}
|
||||
if (ObjectUtil.isEmpty(taskObj))throw new BadRequestException("未找到该任务或者任务已完成!");
|
||||
this.updateTaskStatus(taskObj, UpdateTaskStatusEnum.FORCEFINISH.getCode());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -288,10 +283,7 @@ public class YzjSendMaterialTask extends AbstractAcsTask {
|
||||
public void cancel(String task_id) {
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||
JSONObject taskObj = taskTab.query("task_id = '" + task_id + "' and is_delete = '0' and task_status <> " + TaskStatusEnum.FINISHED.getCode()).uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(taskObj))
|
||||
this.updateTaskStatus(taskObj,UpdateTaskStatusEnum.CANCEL.getCode());
|
||||
else {
|
||||
throw new BadRequestException("未找到该任务或者任务已完成!");
|
||||
}
|
||||
if (ObjectUtil.isEmpty(taskObj))throw new BadRequestException("未找到该任务或者任务已完成!");
|
||||
this.updateTaskStatus(taskObj, UpdateTaskStatusEnum.CANCEL.getCode());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
##########################################
|
||||
# 3、业务主过程 #
|
||||
##########################################
|
||||
IF 输入.flag = "1"
|
||||
IF 输入.flag = "1"
|
||||
QUERY
|
||||
SELECT
|
||||
p.point_id,
|
||||
@@ -54,13 +54,23 @@ IF 输入.flag = "1"
|
||||
AND is_delete = '0'
|
||||
AND point_status = '1'
|
||||
AND point_type = '1'
|
||||
OPTION 输入.vehicle_type <> ""
|
||||
p.can_vehicle_type like 输入.vehicle_type
|
||||
ENDOPTION
|
||||
OPTION 输入.region_code <> ""
|
||||
p.region_code = 输入.region_code
|
||||
ENDOPTION
|
||||
ORDER BY col_num,row_num,layer_num
|
||||
ORDER BY p.instorage_time
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "2"
|
||||
QUERY
|
||||
SELECT
|
||||
p.point_code AS device_code
|
||||
FROM
|
||||
SCH_BASE_Point p
|
||||
WHERE
|
||||
region_code = 'RGCPQ'
|
||||
AND point_type = '2'
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
@@ -40,7 +40,7 @@
|
||||
##########################################
|
||||
# 3、业务主过程 #
|
||||
##########################################
|
||||
IF 输入.flag = "1"
|
||||
IF 输入.flag = "1"
|
||||
QUERY
|
||||
SELECT
|
||||
p.point_id,
|
||||
@@ -53,9 +53,6 @@ IF 输入.flag = "1"
|
||||
AND is_used = '1'
|
||||
AND is_delete = '0'
|
||||
AND point_status = '1'
|
||||
OPTION 输入.vehicle_type <> ""
|
||||
p.can_vehicle_type like 输入.vehicle_type
|
||||
ENDOPTION
|
||||
OPTION 输入.region_code <> ""
|
||||
p.region_code = 输入.region_code
|
||||
ENDOPTION
|
||||
|
||||
Binary file not shown.
@@ -159,7 +159,22 @@
|
||||
<el-form-item label="计划数量" prop="plan_qty">
|
||||
<el-input v-model="form.plan_qty" style="width: 200px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="物料类型" prop="vehicle_type">
|
||||
<el-form-item v-if="form.workorder_procedure == 1" label="阈值">
|
||||
<el-input v-model="form.warn_time" style="width: 200px;" />
|
||||
</el-form-item>
|
||||
<el-form-item v-if="form.workorder_procedure == 1" label="静置时间">
|
||||
<el-input v-model="form.standing_time" style="width: 200px;" />
|
||||
</el-form-item>
|
||||
<el-form-item v-if="form.workorder_procedure != 1" label="载具类型" prop="vehicle_type">
|
||||
<el-select v-model="form.vehicle_type" style="width: 200px" filterable placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in dict.vehicle_type"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="form.workorder_procedure == 1" label="物料类型" prop="vehicle_type">
|
||||
<el-select v-model="form.is_new" style="width: 200px" filterable placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in dict.material_type"
|
||||
@@ -168,6 +183,15 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="form.workorder_procedure == 2" label="优先去向" prop="vehicle_type">
|
||||
<el-select v-model="form.is_package" style="width: 200px" filterable placeholder="请选择">
|
||||
<el-option
|
||||
v-for="item in dict.priority_direction"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="工单状态">
|
||||
<el-select
|
||||
v-model="form.order_status"
|
||||
@@ -348,13 +372,16 @@ const defaultForm = {
|
||||
is_canupdate_update: '1',
|
||||
material_spec: null,
|
||||
sale_id: null,
|
||||
is_new: '1'
|
||||
is_new: '1',
|
||||
is_package: '1',
|
||||
warn_time: '0',
|
||||
standing_time: '0'
|
||||
}
|
||||
export default {
|
||||
name: 'Produceshiftorder',
|
||||
components: { pagination, crudOperation, rrOperation, udOperation, MaterDtl, ViewDialog, DeviceDialog },
|
||||
mixins: [presenter(), header(), form(defaultForm), crud()],
|
||||
dicts: ['pdm_workorder_status', 'is_used', 'is_or_not', 'material_type', 'vehicle_type', 'workorder_procedure'],
|
||||
dicts: ['pdm_workorder_status', 'priority_direction', 'is_used', 'is_or_not', 'material_type', 'vehicle_type', 'workorder_procedure'],
|
||||
cruds() {
|
||||
return CRUD({
|
||||
title: '工单', url: 'api/workorder', idField: 'workorder_id', sort: 'workorder_id,desc',
|
||||
|
||||
Reference in New Issue
Block a user