混碾、压制工序代码更新,表格数据改动
This commit is contained in:
@@ -1,23 +0,0 @@
|
||||
package org.nl.config;
|
||||
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/*
|
||||
* @author ZZQ
|
||||
* @Date 2022/11/16 4:32 下午
|
||||
*/
|
||||
@Configuration
|
||||
public class ConfigParam {
|
||||
|
||||
//旧料盅叫料跟空盅入库都从公共点位回去
|
||||
public static Map<String,String> YZJ_OLD_POINT = new HashMap<>();
|
||||
|
||||
@PostConstruct
|
||||
public void initData(){
|
||||
//数据库更新该配置数据YZJ_OLD_POINT
|
||||
}
|
||||
}
|
||||
@@ -97,6 +97,11 @@ public class MaterialbaseDto implements Serializable {
|
||||
|
||||
private String material_height_type;
|
||||
|
||||
private String AlongSide; // A长边
|
||||
private String BshortSide; // B短边
|
||||
private String Htrapezoidal; // H梯形高
|
||||
private String Wthickness; // W厚度
|
||||
|
||||
private Long ass_unit_id;
|
||||
|
||||
private Long product_series;
|
||||
|
||||
@@ -56,7 +56,7 @@ public class AcsToWmsController {
|
||||
@PostMapping("/manipulatorApply")
|
||||
@Log("ACS机械手给WMS发送任务")
|
||||
@ApiOperation("ACS机械手给WMS发送任务")
|
||||
public ResponseEntity<Object> manipulatorApply(@RequestBody Map whereJson) {
|
||||
public ResponseEntity<Object> manipulatorApply(@RequestBody JSONObject whereJson) {
|
||||
acsToWmsService.manipulatorApply(whereJson);
|
||||
JSONObject result = new JSONObject();
|
||||
result.put("status", HttpStatus.OK.value());
|
||||
@@ -64,6 +64,18 @@ public class AcsToWmsController {
|
||||
return new ResponseEntity<>(result, HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/reverseGroup")
|
||||
@Log("入窑口反向组盘")
|
||||
@ApiOperation("入窑口反向组盘")
|
||||
public ResponseEntity<Object> reverseGroup(@RequestBody JSONObject whereJson) {
|
||||
acsToWmsService.reverseGroup(whereJson);
|
||||
JSONObject result = new JSONObject();
|
||||
result.put("status", HttpStatus.OK.value());
|
||||
result.put("message", "发送任务成功");
|
||||
return new ResponseEntity<>(result, HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
@PostMapping("/ispackage")
|
||||
@Log("ACS给WMS请求是否优先包装")
|
||||
@ApiOperation("ACS给WMS请求是否优先包装")
|
||||
|
||||
@@ -56,7 +56,7 @@ public interface AcsToWmsService {
|
||||
* 组盘
|
||||
* @param whereJson
|
||||
*/
|
||||
void manipulatorApply(Map whereJson);
|
||||
void manipulatorApply(JSONObject whereJson);
|
||||
|
||||
/**
|
||||
* ACS给WMS请求是否优先包装
|
||||
@@ -86,4 +86,10 @@ public interface AcsToWmsService {
|
||||
* @return Map<String, Object>
|
||||
*/
|
||||
Map<String, Object> getDeviceCodeByVehicleType(Map jsonObject);
|
||||
|
||||
/**
|
||||
* 入窑口反向组盘
|
||||
* @param whereJson
|
||||
*/
|
||||
void reverseGroup(JSONObject whereJson);
|
||||
}
|
||||
|
||||
@@ -199,8 +199,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
* 根据type判断是什么业务类型:
|
||||
* 1.混碾机送料入库-困料货架
|
||||
* 2.混碾机呼叫空托盘
|
||||
* 3.压制机下料位叫料出库
|
||||
* 4.压制机下料位送空托盘
|
||||
* 3.压制机上料位叫料出库
|
||||
* 4.压制机上料位送空盅
|
||||
* 5.压制机满料入库
|
||||
* 6.压制机呼叫空钢托盘
|
||||
* 7.烧制叫料出库
|
||||
@@ -214,13 +214,11 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
switch (type) {
|
||||
case "1":
|
||||
// 1.混碾机送料入库:混碾机物料送到困料货架
|
||||
if (ObjectUtil.isEmpty(point_code)) throw new BadRequestException("设备号不能为空");
|
||||
// 创建任务
|
||||
param.put("point_code1", point_code); // 起点
|
||||
SpringContextHolder.getBean(HnSendMaterialTask.class).createTask(param);
|
||||
break;
|
||||
case "2":
|
||||
if (ObjectUtil.isEmpty(point_code)) throw new BadRequestException("设备号不能为空");
|
||||
param.put("point_code2", point_code); // 终点
|
||||
// 创建任务
|
||||
SpringContextHolder.getBean(HnCallEmptyVehicleTask.class).createTask(param);
|
||||
@@ -232,7 +230,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
SpringContextHolder.getBean(YzjCallMaterialTask.class).createTask(param);
|
||||
break;
|
||||
case "4":
|
||||
// 压制机送空托盘
|
||||
// 压制机送空盅
|
||||
param.put("point_code1", point_code); // 起点
|
||||
// 创建任务
|
||||
SpringContextHolder.getBean(YzjSendEmpVehicleTask.class).createTask(param);
|
||||
@@ -240,6 +238,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
case "5":
|
||||
// 压制机满料入库
|
||||
param.put("point_code1", point_code); // 起点
|
||||
param.put("group_id", whereJson.getString("group_id")); // 组盘标识
|
||||
// 创建任务
|
||||
SpringContextHolder.getBean(YzjSendMaterialTask.class).createTask(param);
|
||||
break;
|
||||
@@ -295,28 +294,30 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
* @param jsonObject
|
||||
*/
|
||||
@Override
|
||||
public void manipulatorApply(Map jsonObject) {
|
||||
public void manipulatorApply(JSONObject jsonObject) {
|
||||
//组盘
|
||||
JSONObject produceInfoByCode = new JSONObject();
|
||||
String device_code = (String) jsonObject.get("device_code");
|
||||
String device_code = (String) jsonObject.get("device_code"); // 对接位
|
||||
// vehicle_code:不一定有,分拣码垛会提供木托盘载具号、压制码垛是不提供载具号
|
||||
String vehicle_code = (String) jsonObject.get("vehicle_code");
|
||||
String qty = String.valueOf(jsonObject.get("qty"));
|
||||
produceInfoByCode = this.getProduceInfoByCode(device_code);
|
||||
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");
|
||||
}
|
||||
// // 如果上报不了,则去点位上取(木托盘情况)
|
||||
// if (StrUtil.equals("0", vehicle_code)) {
|
||||
// vehicle_code = produceInfoByCode.getString("vehicle_code");
|
||||
// }
|
||||
|
||||
JSONObject materialObj = WQLObject
|
||||
.getWQLObject("MD_ME_Material")
|
||||
.getWQLObject("MD_ME_MaterialBase")
|
||||
.query("material_id='" + material_id + "'")
|
||||
.uniqueResult(0);
|
||||
JSONObject groubObj = new JSONObject();
|
||||
groubObj.put("group_id", IdUtil.getSnowflake(1, 1).nextId());
|
||||
|
||||
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"));
|
||||
@@ -324,10 +325,10 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
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("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"));
|
||||
@@ -386,13 +387,14 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
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");
|
||||
} else {
|
||||
jsonObject.put("type", "5");
|
||||
}
|
||||
this.apply((JSONObject) jsonObject);
|
||||
this.apply(jsonObject);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -558,14 +560,32 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
return returnjo;
|
||||
}
|
||||
|
||||
private JSONObject getProduceInfoByCode(String code) {
|
||||
/**
|
||||
* 入窑口反向组盘
|
||||
*
|
||||
* @param whereJson
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void reverseGroup(JSONObject whereJson) {
|
||||
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
|
||||
WQLObject groupTab = WQLObject.getWQLObject("st_buss_vehiclegroup");
|
||||
String vehicle_code = whereJson.getString("vehicle_code");
|
||||
JSONObject rywPoint = pointTab.query("point_code = 'RYW'").uniqueResult(0);
|
||||
String group_id = rywPoint.getString("group_id");
|
||||
JSONObject group = groupTab.query("group_id = '" + group_id + "'").uniqueResult(0);
|
||||
group.put("vehicle_code", vehicle_code);
|
||||
groupTab.update(group);
|
||||
}
|
||||
|
||||
private JSONObject getProduceInfoByCode(String code) { // 查找工单
|
||||
//根据 设备点位去找生产任务信息
|
||||
//1 根据点位去找设备,去找对应的设备信息
|
||||
JSONObject pointObj = WQLObject.getWQLObject("sch_base_point").query("point_code ='" + code + "'").uniqueResult(0);
|
||||
String device_code = pointObj.getString("device_code");
|
||||
//2 根据设备去找对应的生产任务 1-未生产、2-已下发、3-生产中、4-暂停、5-完成
|
||||
JSONObject productTaskObj = WQLObject.getWQLObject("PDM_BD_WorkOrder")
|
||||
.query("device_code ='" + device_code + "' and producetask_status in ('3','2','4')", "seq_no")
|
||||
.query("device_code ='" + device_code + "' and order_status in ('3','2','4')", "workorder_procedure")
|
||||
.uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(productTaskObj)) {
|
||||
throw new BadRequestException("未找到点位为'" + code + "'的生产任务!");
|
||||
|
||||
@@ -55,6 +55,9 @@ public class WorkorderDto implements Serializable {
|
||||
/** 工单状态 */
|
||||
private String order_status;
|
||||
|
||||
/** 新旧物料 */
|
||||
private String is_new;
|
||||
|
||||
/** 是否搬运 */
|
||||
private String is_needmove;
|
||||
|
||||
@@ -90,4 +93,10 @@ public class WorkorderDto implements Serializable {
|
||||
|
||||
/** 修改时间 */
|
||||
private String update_time;
|
||||
|
||||
/** 静置时间 */
|
||||
private String standing_time;
|
||||
|
||||
/** 阈值时间 */
|
||||
private String warn_time;
|
||||
}
|
||||
|
||||
@@ -63,9 +63,14 @@ public class SchTaskDto implements Serializable {
|
||||
private String point_code4;
|
||||
|
||||
/**
|
||||
* 物料详细信息,满料请求,取工单标识,组盘时候取组盘表
|
||||
* 物料详细信息,满料请求,工单标识
|
||||
*/
|
||||
private Long material_info_id;
|
||||
private Long workorder_id;
|
||||
|
||||
/**
|
||||
* 组盘标识
|
||||
*/
|
||||
private Long group_id;
|
||||
|
||||
/**
|
||||
* 物料标识
|
||||
|
||||
@@ -11,7 +11,10 @@ public enum WorkOrderEnum {
|
||||
ORDER_STATUS_DELIVERED("2", "已下发"),
|
||||
ORDER_STATUS_PRODUCING("3", "生产中"),
|
||||
ORDER_STATUS_STOP("4", "停止"),
|
||||
ORDER_STATUS_FINISH("5", "完成")
|
||||
ORDER_STATUS_FINISH("5", "完成"),
|
||||
|
||||
IS_NEW_MATERIAL("1", "新物料"),
|
||||
IS_OLD_MATERIAL("2", "旧物料")
|
||||
;
|
||||
private final String code;
|
||||
private final String name;
|
||||
|
||||
@@ -142,6 +142,12 @@ public class PointDto implements Serializable {
|
||||
/** 计量单位标识 */
|
||||
private Long qty_unit_id;
|
||||
|
||||
/** 库存数 */
|
||||
private BigDecimal ivt_weight;
|
||||
|
||||
/** 计量单位标识 */
|
||||
private Long weight_unit_id;
|
||||
|
||||
/** 入库时间 */
|
||||
private String instorage_time;
|
||||
|
||||
@@ -150,4 +156,7 @@ public class PointDto implements Serializable {
|
||||
|
||||
/** 是否关联库存表 */
|
||||
private String is_ref_ivt;
|
||||
|
||||
/** 组盘标识 */
|
||||
private Long group_id;
|
||||
}
|
||||
|
||||
@@ -172,6 +172,7 @@ public class PointServiceImpl implements PointService {
|
||||
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));
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
package org.nl.wms.sch.tasks;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
import org.nl.wms.sch.manage.PointEnum;
|
||||
|
||||
/**
|
||||
* @author: lyd
|
||||
* @description: 点位更新工具类
|
||||
* @Date: 2022/11/23
|
||||
*/
|
||||
public class PointUpdateUtil {
|
||||
|
||||
/**
|
||||
* 清理点位
|
||||
*/
|
||||
public static void clearPoint(String point_code) {
|
||||
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
|
||||
JSONObject pointObj = pointTab.query("point_code = '" + point_code + "'").uniqueResult(0);
|
||||
pointObj.put("point_status", PointEnum.POINT_STATUS_EMPTY_POSITION.getCode());
|
||||
pointObj.put("lock_type", PointEnum.LOCK_TYPE_FALSE.getCode());
|
||||
pointObj.put("vehicle_type", null);
|
||||
pointObj.put("vehicle_code", null);
|
||||
pointObj.put("vehicle_qty", "0");
|
||||
pointObj.put("material_id", null);
|
||||
pointObj.put("pcsn", null);
|
||||
pointObj.put("ivt_qty", "0");
|
||||
pointObj.put("qty_unit_id", null);
|
||||
pointObj.put("ivt_weight", "0");
|
||||
pointObj.put("weight_unit_id", null);
|
||||
pointObj.put("instorage_time", null);
|
||||
pointObj.put("is_full", "0");
|
||||
pointObj.put("standing_time", "0");
|
||||
pointObj.put("warn_time", "0");
|
||||
pointObj.put("group_id", null);
|
||||
pointTab.update(pointObj);
|
||||
}
|
||||
|
||||
/**
|
||||
* 点位:空载具
|
||||
*/
|
||||
public static void setVehicle(JSONObject jsonObject) {
|
||||
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point");
|
||||
JSONObject pointObj = pointTab.query("point_code = '" + jsonObject.getString("point_code") + "'").uniqueResult(0);
|
||||
pointObj.put("lock_type", PointEnum.LOCK_TYPE_FALSE.getCode());
|
||||
pointObj.put("point_status", PointEnum.POINT_STATUS_EMPTY_VEHICLE.getCode());
|
||||
pointObj.put("vehicle_code", jsonObject.getString("vehicle_code"));
|
||||
pointObj.put("vehicle_qty", "1");
|
||||
pointObj.put("instorage_time", DateUtil.now());
|
||||
pointObj.put("is_full", "1");
|
||||
pointObj.put("ivt_qty", "0");
|
||||
pointObj.put("pcsn", null);
|
||||
pointObj.put("material_id", null);
|
||||
pointObj.put("standing_time", "0");
|
||||
pointTab.update(pointObj);
|
||||
}
|
||||
}
|
||||
@@ -16,8 +16,11 @@ 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.nl.wms.sch.tasks.PointUpdateUtil;
|
||||
import org.nl.wms.sch.tasks.RegionTypeEnum;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -83,7 +86,7 @@ public class HnCallEmptyVehicleTask extends AbstractAcsTask {
|
||||
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())) {
|
||||
/*
|
||||
* 取消任务
|
||||
*/
|
||||
@@ -92,9 +95,9 @@ public class HnCallEmptyVehicleTask extends AbstractAcsTask {
|
||||
}
|
||||
|
||||
String point_code1 = task.getString("point_code1");
|
||||
if (ObjectUtil.isEmpty(point_code1)) {
|
||||
if (ObjectUtil.isNotEmpty(point_code1)) {
|
||||
JSONObject endPoint = pointTab.query("point_code = '" + point_code1 + "'").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());
|
||||
@@ -103,7 +106,7 @@ public class HnCallEmptyVehicleTask 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());
|
||||
@@ -111,7 +114,7 @@ public class HnCallEmptyVehicleTask extends AbstractAcsTask {
|
||||
taskTab.update(taskObj);
|
||||
}
|
||||
|
||||
if (StrUtil.equals(status, "2")) {
|
||||
if (StrUtil.equals(status, UpdateTaskStatusEnum.FORCEFINISH.getCode())) {
|
||||
/*
|
||||
* 更改任务状态为完成
|
||||
*/
|
||||
@@ -122,13 +125,11 @@ public class HnCallEmptyVehicleTask extends AbstractAcsTask {
|
||||
taskTab.update(taskObj);
|
||||
|
||||
/**
|
||||
* 点位更新,起点:空位,解锁;
|
||||
* 点位更新,起点:空位
|
||||
*/
|
||||
String point_code1 = taskObj.getString("point_code1");
|
||||
JSONObject startPoint = pointTab.query("point_code = '" + point_code1 + "'").uniqueResult(0);
|
||||
startPoint.put("point_status", "1");
|
||||
startPoint.put("lock_type", "1");
|
||||
pointTab.update(startPoint);
|
||||
if (ObjectUtil.isEmpty(point_code1)) return;
|
||||
PointUpdateUtil.clearPoint(point_code1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -165,8 +166,9 @@ public class HnCallEmptyVehicleTask extends AbstractAcsTask {
|
||||
.task_status(TaskStatusEnum.SURE_END.getCode())
|
||||
.point_code2(point_code2)
|
||||
.acs_task_type("2")
|
||||
.workorder_id(workOrderObj.getLong("workorder_id"))
|
||||
.vehicle_code(form.getString("vehicle_code"))
|
||||
.vehicle_type(workOrderObj.getString("vehicle_type"))//载具类型统一用载具表维护
|
||||
.vehicle_type(workOrderObj.getString("is_new"))//载具类型统一用载具表维护
|
||||
.vehicle_qty(form.getIntValue("qty"))
|
||||
.task_group_id(org.nl.wms.util.IdUtil.getLongId())
|
||||
.handle_class(THIS_CLASS)
|
||||
@@ -197,9 +199,8 @@ public class HnCallEmptyVehicleTask extends AbstractAcsTask {
|
||||
// 创建任务
|
||||
JSONObject taskObj = taskArr.getJSONObject(i);
|
||||
// 获取工单
|
||||
String point_code2 = taskObj.getString("point_code2");
|
||||
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);
|
||||
String workorder_id = taskObj.getString("workorder_id");
|
||||
JSONObject workOrderObj = workOrderTab.query("workorder_id = '" + workorder_id + "'").uniqueResult(0);
|
||||
|
||||
JSONObject param1 = new JSONObject();
|
||||
param1.put("flag", "1");
|
||||
@@ -219,7 +220,7 @@ public class HnCallEmptyVehicleTask extends AbstractAcsTask {
|
||||
|
||||
//锁住起点
|
||||
startPoint.put("task_id", taskObj.getString("task_id"));
|
||||
startPoint.put("lock_type", "2");
|
||||
startPoint.put("lock_type", PointEnum.LOCK_TYPE_TRUE.getCode());
|
||||
pointTab.update(startPoint);
|
||||
}
|
||||
}
|
||||
@@ -240,7 +241,7 @@ public class HnCallEmptyVehicleTask extends AbstractAcsTask {
|
||||
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");
|
||||
this.updateTaskStatus(taskObj,UpdateTaskStatusEnum.FORCEFINISH.getCode());
|
||||
else {
|
||||
throw new BadRequestException("未找到该任务或者任务已完成!");
|
||||
}
|
||||
@@ -256,7 +257,7 @@ public class HnCallEmptyVehicleTask extends AbstractAcsTask {
|
||||
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");
|
||||
this.updateTaskStatus(taskObj,UpdateTaskStatusEnum.CANCEL.getCode());
|
||||
else {
|
||||
throw new BadRequestException("未找到该任务或者任务已完成!");
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -86,26 +86,25 @@ public class YzjCallEmptyVehicleTask extends AbstractAcsTask {
|
||||
|
||||
String point_code1 = task.getString("point_code1");
|
||||
|
||||
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("已完成不能取消!");
|
||||
}
|
||||
if (ObjectUtil.isNotEmpty(point_code1)) {
|
||||
taskObj.put("task_status", TaskStatusEnum.FINISHED.getCode());
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
taskObj.put("remark", "已取消");
|
||||
taskTab.update(taskObj);
|
||||
|
||||
taskObj.put("task_status", TaskStatusEnum.FINISHED.getCode());
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
taskObj.put("remark", "已取消");
|
||||
taskTab.update(taskObj);
|
||||
if (ObjectUtil.isNotEmpty(point_code1) && !point_code1.equals("KGTDDW05")) {
|
||||
JSONObject startPoint = pointTab.query("point_code = '" + point_code1 + "'").uniqueResult(0);
|
||||
startPoint.put("lock_type", "1");
|
||||
startPoint.put("lock_type", PointEnum.LOCK_TYPE_FALSE.getCode());
|
||||
pointTab.update(startPoint);
|
||||
}
|
||||
}
|
||||
|
||||
if ("1".equals(status)) {
|
||||
if (UpdateTaskStatusEnum.EXECUTION.getCode().equals(status)) {
|
||||
// 更新任务状态为执行中
|
||||
taskObj.put("task_status", TaskStatusEnum.EXECUTING.getCode());
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
@@ -113,7 +112,7 @@ public class YzjCallEmptyVehicleTask extends AbstractAcsTask {
|
||||
taskTab.update(taskObj);
|
||||
}
|
||||
|
||||
if (StrUtil.equals(status,"2")) {
|
||||
if (StrUtil.equals(status,UpdateTaskStatusEnum.FORCEFINISH.getCode())) {
|
||||
/*
|
||||
* 更改任务状态为完成
|
||||
*/
|
||||
@@ -124,46 +123,31 @@ public class YzjCallEmptyVehicleTask extends AbstractAcsTask {
|
||||
taskTab.update(taskObj);
|
||||
|
||||
JSONObject startPoint = pointTab.query("point_code = '" + point_code1 + "'").uniqueResult(0);
|
||||
if (point_code1.startsWith("L")) { // 入窑缓存位
|
||||
if (point_code1.startsWith("R")) { // 入窑缓存位
|
||||
// 插入出库单
|
||||
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", "2"); // 出库
|
||||
regionIoObj.put("io_type", RegionIOEnum.IO_TYPE_OUT.getCode()); // 出库
|
||||
regionIoObj.put("region_id", startPoint.getString("region_id"));
|
||||
regionIoObj.put("region_code", startPoint.getString("region_code"));
|
||||
regionIoObj.put("region_name", startPoint.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("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());
|
||||
regionIoTab.insert(regionIoObj);
|
||||
// 点位更新,起点:空位,解锁;
|
||||
startPoint.put("point_status", "1");
|
||||
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");
|
||||
PointUpdateUtil.clearPoint(startPoint.getString("point_code"));
|
||||
}
|
||||
pointTab.update(startPoint);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -187,11 +171,8 @@ public class YzjCallEmptyVehicleTask extends AbstractAcsTask {
|
||||
JSONObject taskObj = taskTab.query("is_delete='0' and point_code2 = '" + form.getString("point_code2") + "' and task_status <> '" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isNotEmpty(taskObj)) throw new BadRequestException("当前点位" + form.getString("point_code2") + "存在未完成的任务");
|
||||
|
||||
|
||||
String point_code2 = form.getString("point_code2");
|
||||
String sub_device_code = point_code2.substring(0, point_code2.indexOf("_"));
|
||||
|
||||
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("该设备当前未生产或者已删除");
|
||||
@@ -203,11 +184,13 @@ public class YzjCallEmptyVehicleTask extends AbstractAcsTask {
|
||||
.task_status(TaskStatusEnum.SURE_END.getCode())
|
||||
.point_code2(point_code2)
|
||||
.acs_task_type("2")
|
||||
.vehicle_code(form.getString("vehicle_code"))
|
||||
.vehicle_type(workOrderObj.getString("vehicle_type"))
|
||||
.material_id(workOrderObj.getLong("material_id"))
|
||||
.workorder_id(workOrderObj.getLong("workorder_id"))
|
||||
.vehicle_type(PointEnum.VEHICLE_TYPE_STEEL_TRAY.getCode())
|
||||
.vehicle_qty(form.getIntValue("qty"))
|
||||
.task_group_id(org.nl.wms.util.IdUtil.getLongId())
|
||||
.handle_class(THIS_CLASS)
|
||||
.request_param(form.toJSONString())
|
||||
.create_time(DateUtil.now())
|
||||
.build();
|
||||
JSONObject json = JSONObject.parseObject(JSON.toJSONString(dto));
|
||||
@@ -247,9 +230,10 @@ public class YzjCallEmptyVehicleTask extends AbstractAcsTask {
|
||||
|
||||
//锁住起点
|
||||
noFullPoint.put("task_id", taskObj.getString("task_id"));
|
||||
noFullPoint.put("lock_type", "2");
|
||||
noFullPoint.put("lock_type", PointEnum.LOCK_TYPE_TRUE.getCode());
|
||||
pointTab.update(noFullPoint);
|
||||
} else { // 到KGTDDW05找空钢托盘
|
||||
// 向ACS查询是否有空钢托盘
|
||||
JSONObject param = new JSONObject();
|
||||
param.put("flag", "2");
|
||||
param.put("region_code", "KGTCPQ");
|
||||
@@ -263,7 +247,7 @@ public class YzjCallEmptyVehicleTask extends AbstractAcsTask {
|
||||
|
||||
//锁住起点
|
||||
kgtPoint.put("task_id", taskObj.getString("task_id"));
|
||||
kgtPoint.put("lock_type", "2");
|
||||
kgtPoint.put("lock_type", PointEnum.LOCK_TYPE_TRUE.getCode());
|
||||
pointTab.update(kgtPoint);
|
||||
} else {
|
||||
taskObj.put("remark", "未找到可用的载具!");
|
||||
|
||||
@@ -48,17 +48,16 @@ IF 输入.flag = "1"
|
||||
p.point_name
|
||||
FROM
|
||||
SCH_BASE_Point p
|
||||
LEFT JOIN md_pb_vehicle vehicle ON vehicle.vehicle_code = p.vehicle_code
|
||||
WHERE
|
||||
lock_type = '1'
|
||||
AND is_used = '1'
|
||||
lock_type = '1'
|
||||
AND is_used = '1'
|
||||
AND is_delete = '0'
|
||||
AND point_status = '2'
|
||||
OPTION 输入.region_code <> ""
|
||||
p.region_code = 输入.region_code
|
||||
ENDOPTION
|
||||
OPTION 输入.is_new <> ""
|
||||
vehicle.vehicle_type = 输入.is_new
|
||||
p.vehicle_type = 输入.is_new
|
||||
ENDOPTION
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
|
||||
@@ -51,9 +51,9 @@
|
||||
WHERE
|
||||
lock_type = '1'
|
||||
AND is_used = '1'
|
||||
AND is_full = '2'
|
||||
AND is_full = '0'
|
||||
AND is_delete = '0'
|
||||
AND point_status = '2'
|
||||
AND point_status = '3'
|
||||
OPTION 输入.region_code <> ""
|
||||
p.region_code = 输入.region_code
|
||||
ENDOPTION
|
||||
|
||||
@@ -187,7 +187,7 @@ public class FjCallMaterialTask extends AbstractAcsTask {
|
||||
.task_status(TaskStatusEnum.SURE_END.getCode())
|
||||
.point_code2(point_code2)
|
||||
.vehicle_code(vehicle_code)
|
||||
.material_info_id(workOrderObj.getLong("workorder_id"))
|
||||
.workorder_id(workOrderObj.getLong("workorder_id"))
|
||||
.material_id(workOrderObj.getLong("material_id"))
|
||||
.vehicle_type(vehicle_type)
|
||||
.handle_class(THIS_CLASS)
|
||||
|
||||
@@ -14,10 +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.UpdateTaskStatusEnum;
|
||||
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;
|
||||
|
||||
@@ -94,7 +93,7 @@ public class SzCallMaterialTask 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);
|
||||
}
|
||||
}
|
||||
@@ -121,17 +120,17 @@ public class SzCallMaterialTask 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("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());
|
||||
@@ -140,18 +139,7 @@ public class SzCallMaterialTask extends AbstractAcsTask {
|
||||
|
||||
//完成后
|
||||
// 物料点位解锁 并设置空位
|
||||
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"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -188,7 +176,7 @@ public class SzCallMaterialTask extends AbstractAcsTask {
|
||||
.task_status(TaskStatusEnum.SURE_END.getCode())
|
||||
.point_code2(point_code2)
|
||||
.vehicle_code(vehicle_code)
|
||||
.material_info_id(workOrderObj.getLong("workorder_id"))
|
||||
.workorder_id(workOrderObj.getLong("workorder_id"))
|
||||
.material_id(workOrderObj.getLong("material_id"))
|
||||
.vehicle_type(vehicle_type)
|
||||
.handle_class(THIS_CLASS)
|
||||
@@ -231,7 +219,7 @@ public class SzCallMaterialTask 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());
|
||||
pointTab.update(material_point);
|
||||
|
||||
taskObj.put("point_code1", material_point.getString("point_code"));
|
||||
|
||||
@@ -9,22 +9,20 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.config.ConfigParam;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
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.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;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.function.BiConsumer;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
/**
|
||||
* @author: lyd
|
||||
@@ -36,8 +34,6 @@ import java.util.function.Predicate;
|
||||
@Slf4j
|
||||
public class YzjCallMaterialTask extends AbstractAcsTask {
|
||||
private final String THIS_CLASS = YzjCallMaterialTask.class.getName();
|
||||
//start point,[endpoint1,endpoin2]
|
||||
public static Map<String,String> YZJ_OLD_POINT = new HashMap<>();
|
||||
/**
|
||||
* 添加任务进行下发
|
||||
*
|
||||
@@ -87,7 +83,7 @@ public class YzjCallMaterialTask 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("已完成不能取消!");
|
||||
@@ -96,12 +92,13 @@ public class YzjCallMaterialTask extends AbstractAcsTask {
|
||||
taskObj.put("remark", "已取消");
|
||||
taskTab.update(taskObj);
|
||||
|
||||
// 点位解锁
|
||||
material_point.put("lock_type", "1");
|
||||
if (ObjectUtil.isEmpty(material_point)) return;
|
||||
// 解锁
|
||||
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());
|
||||
@@ -109,52 +106,38 @@ public class YzjCallMaterialTask 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());
|
||||
taskTab.update(taskObj);
|
||||
|
||||
if (ObjectUtil.isEmpty(material_point)) return;
|
||||
JSONObject requestObj = task.getJSONObject("request_param");
|
||||
|
||||
插入区域表:{
|
||||
//区域出入表【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", "2"); // 出库
|
||||
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("start_point_code", taskObj.getString("point_code1"));
|
||||
regionIoObj.put("end_point_code", taskObj.getString("point_code2"));
|
||||
regionIoObj.put("create_mode", "2");
|
||||
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);
|
||||
}
|
||||
// 区域出入表【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", 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", 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);
|
||||
//完成后
|
||||
// 物料点位解锁 并设置空位
|
||||
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"));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -181,20 +164,21 @@ public class YzjCallMaterialTask extends AbstractAcsTask {
|
||||
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("该设备当前未生产或者已删除");
|
||||
String oldMatSendPoint = ConfigParam.YZJ_OLD_POINT.get(point_code2);//旧料盅终点
|
||||
if (StringUtils.isNotEmpty(oldMatSendPoint)){
|
||||
point_code2=oldMatSendPoint;
|
||||
}
|
||||
|
||||
SchTaskDto dto = SchTaskDto.builder()
|
||||
.task_id(IdUtil.getLongId())
|
||||
.task_code(CodeUtil.getNewCode("TASK_CODE"))
|
||||
.task_type("task_type")
|
||||
.task_name("压制机叫料")
|
||||
.material_qty(qty)
|
||||
.acs_task_type("2")
|
||||
.vehicle_type(workOrderObj.getString("is_new"))
|
||||
.workorder_id(workOrderObj.getLong("workorder_id"))
|
||||
.task_status(TaskStatusEnum.SURE_END.getCode())
|
||||
.point_code2(point_code2)
|
||||
.vehicle_code(vehicle_code)
|
||||
.material_info_id(workOrderObj.getLong("workorder_id"))
|
||||
.vehicle_type(workOrderObj.getString("vehicle_type"))
|
||||
.workorder_id(workOrderObj.getLong("workorder_id"))
|
||||
.material_id(workOrderObj.getLong("material_id"))
|
||||
.vehicle_type(vehicle_type)
|
||||
.handle_class(THIS_CLASS)
|
||||
@@ -216,25 +200,39 @@ public class YzjCallMaterialTask extends AbstractAcsTask {
|
||||
* @created 2020年6月12日 下午6:01:30
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void findStartPoint() {
|
||||
/*
|
||||
/**
|
||||
* 根据业务找对应的起点,直接到困料货架获取
|
||||
* 如果是普通压制机:区分新旧物料、新料有对接位,旧料需要查找放到哪个旧盅货架
|
||||
* 如果是液压机:手持呼叫,到困料货架查找相同物料的料盅(这里只能是新料盅)
|
||||
*/
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); // 任务表
|
||||
WQLObject pointTab = WQLObject.getWQLObject("sch_base_point"); // 点位表
|
||||
WQLObject workOrderTab = WQLObject.getWQLObject("PDM_BD_WorkOrder"); // 工单表
|
||||
WQLObject deviceTab = WQLObject.getWQLObject("PDM_BI_Device"); // 设备表
|
||||
|
||||
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);
|
||||
// 获取工单
|
||||
// point_code2是对应的上料点
|
||||
String point_code2 = taskObj.getString("point_code2");
|
||||
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);
|
||||
JSONObject point = pointTab.query("point_code = '" + point_code2 + "'").uniqueResult(0);
|
||||
String device_code = point.getString("device_code");
|
||||
// 获取工单
|
||||
JSONObject workOrderObj = workOrderTab.query("workorder_id = '" + taskObj.getString("workorder_id") + "'").uniqueResult(0);
|
||||
JSONObject deviceObj = deviceTab.query("device_code = '" + device_code + "'").uniqueResult(0);
|
||||
if (deviceObj.getString("device_model").equals("3")) { // 普通压制机:区分新旧物料
|
||||
// 新物料終点不用修改
|
||||
if (workOrderObj.getString("is_new").equals(WorkOrderEnum.IS_OLD_MATERIAL.getCode())) { // 旧物料
|
||||
// 查找该设备对应的旧盅位
|
||||
JSONObject endPoint = pointTab.query("region_code = 'KLHJ' AND point_type = '4' AND device_code LIKE '%" +
|
||||
point_code2 + "%' AND point_status = '1' AND is_used = '1' AND is_delete = '0' AND lock_type = '1'").uniqueResult(0);
|
||||
point_code2 = endPoint.getString("point_code"); // 未锁的旧盅货架位
|
||||
}
|
||||
}
|
||||
|
||||
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);
|
||||
@@ -243,23 +241,22 @@ public class YzjCallMaterialTask extends AbstractAcsTask {
|
||||
JSONObject json1 = WQL.getWO("QSCH_yzjCallMaterial_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);
|
||||
JSONObject material_point = pointTab.query("point_id = '" + json1.getString("point_id") + "'").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("point_code2", point_code2);
|
||||
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 {
|
||||
taskObj.put("remark", "困料货架无所需物料");
|
||||
taskObj.put("update_time", DateUtil.now());
|
||||
taskTab.update(taskObj);
|
||||
}
|
||||
|
||||
taskTab.update(taskObj);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
WHERE
|
||||
p.is_used = '1'
|
||||
AND is_delete = '0'
|
||||
AND lock_type='1'
|
||||
AND lock_type = '1'
|
||||
AND point_status = '3'
|
||||
OPTION 输入.material_id <> ""
|
||||
p.material_id = 输入.material_id
|
||||
@@ -65,7 +65,7 @@
|
||||
OPTION 输入.vehicle_type <> ""
|
||||
p.can_vehicle_type like 输入.vehicle_type
|
||||
ENDOPTION
|
||||
ORDER BY is_full desc,col_num,row_num,layer_num
|
||||
ORDER BY is_full desc
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
@@ -49,11 +49,12 @@
|
||||
FROM
|
||||
SCH_BASE_Point p
|
||||
WHERE
|
||||
p.is_used = '1'
|
||||
lock_type = '1'
|
||||
AND p.is_used = '1'
|
||||
AND standing_time is not null
|
||||
AND now() > DATE_ADD(instorage_time,INTERVAL standing_time MINUTE)
|
||||
AND is_delete = '0'
|
||||
AND lock_type='1'
|
||||
AND point_type = '1'
|
||||
AND point_status = '3'
|
||||
OPTION 输入.material_id <> ""
|
||||
p.material_id = 输入.material_id
|
||||
|
||||
@@ -9,7 +9,6 @@ import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.nl.config.ConfigParam;
|
||||
import org.nl.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.common.utils.SecurityUtils;
|
||||
import org.nl.modules.system.util.CodeUtil;
|
||||
@@ -17,9 +16,11 @@ 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.nl.wms.sch.tasks.RegionTypeEnum;
|
||||
import org.nl.wms.sch.tasks.PointUpdateUtil;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -83,7 +84,7 @@ public class YzjSendEmpVehicleTask 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("已完成不能取消!");
|
||||
@@ -91,7 +92,7 @@ public class YzjSendEmpVehicleTask 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);
|
||||
}
|
||||
// 任务设置为完成
|
||||
@@ -100,7 +101,7 @@ public class YzjSendEmpVehicleTask extends AbstractAcsTask {
|
||||
taskTab.update(jsonTask);
|
||||
}
|
||||
|
||||
if (TaskStatusEnum.EXECUTING.getCode().equals(status)) {
|
||||
if (UpdateTaskStatusEnum.EXECUTION.getCode().equals(status)) {
|
||||
// 更新任务状态为执行中
|
||||
jsonTask.put("task_status", TaskStatusEnum.EXECUTING.getCode());
|
||||
jsonTask.put("update_time", DateUtil.now());
|
||||
@@ -108,7 +109,7 @@ public class YzjSendEmpVehicleTask extends AbstractAcsTask {
|
||||
taskTab.update(jsonTask);
|
||||
}
|
||||
|
||||
if (StrUtil.equals(status, TaskStatusEnum.FINISHED.getCode())) {
|
||||
if (StrUtil.equals(status, UpdateTaskStatusEnum.FORCEFINISH.getCode())) {
|
||||
// 更改任务状态为完成
|
||||
jsonTask.put("task_status", TaskStatusEnum.FINISHED.getCode());
|
||||
jsonTask.put("update_optid", SecurityUtils.getCurrentUserId());
|
||||
@@ -117,18 +118,10 @@ public class YzjSendEmpVehicleTask extends AbstractAcsTask {
|
||||
taskTab.update(jsonTask);
|
||||
// 释放点位
|
||||
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("vehicle_qty", "1");
|
||||
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);
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("point_code", point_code2);
|
||||
jsonObject.put("vehicle_code", jsonTask.getString("vehicle_code"));
|
||||
PointUpdateUtil.setVehicle(jsonObject);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -147,17 +140,13 @@ public class YzjSendEmpVehicleTask extends AbstractAcsTask {
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); // 任务表
|
||||
|
||||
String point_code1 = form.getString("point_code1");
|
||||
String oldMatSendPoint = ConfigParam.YZJ_OLD_POINT.get(point_code1);//旧空料盅的回库的话从公共点位返回
|
||||
if (StringUtils.isNotEmpty(oldMatSendPoint)){
|
||||
point_code1=oldMatSendPoint;
|
||||
}
|
||||
SchTaskDto dto = SchTaskDto.builder().task_id(org.nl.wms.util.IdUtil.getLongId())
|
||||
.task_code(CodeUtil.getNewCode("TASK_CODE"))
|
||||
.task_type("")
|
||||
.task_name("压制机空盅入库")
|
||||
.task_status(TaskStatusEnum.SURE_START.getCode())
|
||||
.point_code1(point_code1)
|
||||
.vehicle_code(form.getString("vehicle_code"))
|
||||
.vehicle_code(form.getString("vehicle_code")) // 送空盅需要
|
||||
.vehicle_type(form.getString("vehicle_type"))
|
||||
.vehicle_qty(form.getIntValue("qty"))
|
||||
.handle_class(THIS_CLASS)
|
||||
@@ -206,7 +195,7 @@ public class YzjSendEmpVehicleTask 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);
|
||||
}
|
||||
}
|
||||
@@ -221,7 +210,16 @@ 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("未找到该任务或者任务已完成!");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -231,6 +229,12 @@ public class YzjSendEmpVehicleTask 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("未找到该任务或者任务已完成!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
WHERE
|
||||
p.is_used = '1'
|
||||
AND is_delete = '0'
|
||||
AND lock_type='1'
|
||||
AND lock_type = '1'
|
||||
AND point_status = '1'
|
||||
OPTION 输入.material_id <> ""
|
||||
p.material_id = 输入.material_id
|
||||
|
||||
@@ -96,7 +96,7 @@ public class FjSendMaterialTask extends AbstractAcsTask {
|
||||
JSONObject point2Obj = pointTab.query("point_code = '" + point_code2 + "'").uniqueResult(0);
|
||||
JSONObject requestObj = task.getJSONObject("request_param");
|
||||
//工单标识
|
||||
String workorder_id = requestObj.getString("material_info_id");
|
||||
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);
|
||||
@@ -177,7 +177,7 @@ public class FjSendMaterialTask extends AbstractAcsTask {
|
||||
.point_code1(point_code1)
|
||||
.vehicle_code(vehicle_code)
|
||||
.vehicle_type(workOrderObj.getString("vehicle_type"))
|
||||
.material_info_id(workOrderObj.getLong("workorder_id"))
|
||||
.workorder_id(workOrderObj.getLong("workorder_id"))
|
||||
.material_id(workOrderObj.getLong("material_id"))
|
||||
.handle_class(THIS_CLASS)
|
||||
.create_time(DateUtil.now())
|
||||
|
||||
@@ -126,7 +126,7 @@ public class HnSendMaterialTask extends AbstractAcsTask {
|
||||
JSONObject point2Obj = pointTab.query("point_code = '" + point_code2 + "'").uniqueResult(0);
|
||||
JSONObject requestObj = task.getJSONObject("request_param");
|
||||
// 工单标识
|
||||
String workorder_id = taskObj.getString("material_info_id");
|
||||
String workorder_id = taskObj.getString("workorder_id");
|
||||
JSONObject workorderObj = workOrderTab.query("workorder_id = '" + workorder_id + "'").uniqueResult(0);
|
||||
// 物料
|
||||
JSONObject materialObj = materialTab.query("material_id = '" + workorderObj.getString("material_id") + "'").uniqueResult(0);
|
||||
@@ -145,7 +145,7 @@ public class HnSendMaterialTask 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("is_new", workorderObj.getString("is_new"));
|
||||
regionIoObj.put("ivt_weight", requestObj.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"));
|
||||
@@ -160,6 +160,7 @@ public class HnSendMaterialTask extends AbstractAcsTask {
|
||||
point2Obj.put("instorage_time", taskObj.getString("create_time")); // 入库时间为任务生成的时间
|
||||
point2Obj.put("pcsn", DateUtil.format(DateUtil.parse(DateUtil.today()), "yyyyMMdd"));
|
||||
point2Obj.put("ivt_qty", requestObj.getString("qty"));
|
||||
point2Obj.put("ivt_weight", requestObj.getString("weight"));
|
||||
point2Obj.put("standing_time", materialObj.getString("standing_time"));
|
||||
point2Obj.put("warn_time", materialObj.getString("warn_time"));
|
||||
point2Obj.put("material_id", workorderObj.getString("material_id"));
|
||||
@@ -186,7 +187,7 @@ public class HnSendMaterialTask extends AbstractAcsTask {
|
||||
String vehicle_code = form.getString("vehicle_code");
|
||||
String qty = form.getString("qty");
|
||||
String is_full = form.getString("is_full");
|
||||
String weight = form.getString("weight"); // 未存
|
||||
String weight = form.getString("weight");
|
||||
//任务表【SCH_BASE_Task】
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||
//判断当前点是否有未完成的任务
|
||||
@@ -212,7 +213,7 @@ public class HnSendMaterialTask extends AbstractAcsTask {
|
||||
.point_code1(point_code1)
|
||||
.vehicle_code(vehicle_code)
|
||||
.vehicle_type(workOrderObj.getString("vehicle_type"))
|
||||
.material_info_id(workOrderObj.getLong("workorder_id"))
|
||||
.workorder_id(workOrderObj.getLong("workorder_id"))
|
||||
.material_id(workOrderObj.getLong("material_id"))
|
||||
.handle_class(THIS_CLASS)
|
||||
.create_time(DateUtil.now())
|
||||
@@ -235,7 +236,8 @@ public class HnSendMaterialTask extends AbstractAcsTask {
|
||||
public void findNextPoint() {
|
||||
/**
|
||||
* 根据业务找到相应的终点
|
||||
* 高速混碾机下料先找高速压制机旁边的三个困料位,没有位置则去公共货架
|
||||
* 高速混碾机下料先判断高速压制机的工单生产的是不是相同的,是的话判断坤料货架是否有相同物料,
|
||||
* 没有就去旁边的三个困料位,没有位置则去公共货架;工单不同或者困料货架没有相同物料则去公共货架
|
||||
* 普通混碾机下料直接送到公共困料货架
|
||||
*/
|
||||
WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task");
|
||||
@@ -243,12 +245,47 @@ public class HnSendMaterialTask 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 paramObj = new JSONObject();
|
||||
paramObj.put("flag", "1");
|
||||
paramObj.put("material_id", taskObj.getString("material_id"));
|
||||
JSONArray workerOrders = WQL.getWO("QSCH_hnSendMaterial_01").addParamMap(paramObj).process().getResultJSONArray(0);
|
||||
for (int j = 0; j < workerOrders.size(); j++) {
|
||||
JSONObject workerOrder = workerOrders.getJSONObject(j);
|
||||
// 判断仓库是否有该物料
|
||||
JSONObject param2 = new JSONObject();
|
||||
param2.put("flag", "2");
|
||||
param2.put("material_id", workerOrder.getString("material_id"));
|
||||
param2.put("point_type", "1"); // 公用货架
|
||||
param2.put("point_status", PointEnum.POINT_STATUS_HAVE_MATERIAL.getCode()); // 有料
|
||||
JSONArray ivts = WQL.getWO("QSCH_hnSendMaterial_01").addParamMap(param2).process().getResultJSONArray(0);
|
||||
if (ivts.size() > 0) continue;
|
||||
// 判断是否有空位
|
||||
JSONObject param3 = new JSONObject();
|
||||
param3.put("flag", "2");
|
||||
param3.put("device_code", workerOrder.getString("device_code"));
|
||||
param3.put("point_type", "2"); // 液压机旁边三个位置
|
||||
param3.put("point_status", PointEnum.POINT_STATUS_EMPTY_POSITION.getCode()); // 空位
|
||||
JSONObject endPoint = WQL.getWO("QSCH_hnSendMaterial_01").addParamMap(param3).process().uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(endPoint)) continue;
|
||||
|
||||
// 找到位置就可以直接搬
|
||||
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("lock_type", PointEnum.LOCK_TYPE_TRUE.getCode());
|
||||
endPoint.put("task_id", taskObj.getString("task_id"));
|
||||
pointTab.update(endPoint);
|
||||
return;
|
||||
}
|
||||
// 其他情况直接搬到困料货架上
|
||||
JSONObject param1 = new JSONObject();
|
||||
param1.put("flag", "1");
|
||||
param1.put("flag", "3");
|
||||
param1.put("region_code", "KLHJ");
|
||||
param1.put("vehicle_type", "%" + vehicle_type + "%");
|
||||
//1、查找困料货架是否有响应的载具类型和对应的物料
|
||||
// 查找困料货架
|
||||
JSONObject endPoint = WQL.getWO("QSCH_hnSendMaterial_01").addParamMap(param1).process().uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(endPoint)) {
|
||||
taskObj.put("remark", "困料货架无可用货位");
|
||||
|
||||
@@ -111,7 +111,7 @@ public class SendMaterialTask extends AbstractAcsTask {
|
||||
JSONObject point2Obj = pointTab.query("point_code = '" + point_code2 + "'").uniqueResult(0);
|
||||
JSONObject requestObj = task.getJSONObject("request_param");
|
||||
//工单标识
|
||||
String workorder_id = requestObj.getString("material_info_id");
|
||||
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);
|
||||
@@ -193,7 +193,7 @@ public class SendMaterialTask extends AbstractAcsTask {
|
||||
.point_code1(point_code1)
|
||||
.vehicle_code(vehicle_code)
|
||||
.vehicle_type(workOrderObj.getString("vehicle_type"))
|
||||
.material_info_id(workOrderObj.getLong("workorder_id"))
|
||||
.workorder_id(workOrderObj.getLong("workorder_id"))
|
||||
.material_id(workOrderObj.getLong("material_id"))
|
||||
.handle_class(THIS_CLASS)
|
||||
.create_time(DateUtil.now())
|
||||
|
||||
@@ -117,7 +117,7 @@ public class SzSendMaterialTask extends AbstractAcsTask {
|
||||
JSONObject point2Obj = pointTab.query("point_code = '" + point_code2 + "'").uniqueResult(0);
|
||||
JSONObject requestObj = task.getJSONObject("request_param");
|
||||
//工单标识
|
||||
String workorder_id = requestObj.getString("material_info_id");
|
||||
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);
|
||||
@@ -199,7 +199,7 @@ public class SzSendMaterialTask extends AbstractAcsTask {
|
||||
.point_code1(point_code1)
|
||||
.vehicle_code(vehicle_code)
|
||||
.vehicle_type(workOrderObj.getString("vehicle_type"))
|
||||
.material_info_id(workOrderObj.getLong("workorder_id"))
|
||||
.workorder_id(workOrderObj.getLong("workorder_id"))
|
||||
.material_id(workOrderObj.getLong("material_id"))
|
||||
.handle_class(THIS_CLASS)
|
||||
.create_time(DateUtil.now())
|
||||
|
||||
@@ -14,8 +14,7 @@ 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;
|
||||
@@ -81,15 +80,15 @@ public class YzjSendMaterialTask extends AbstractAcsTask {
|
||||
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 +96,7 @@ public class YzjSendMaterialTask 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 +104,7 @@ public class YzjSendMaterialTask 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());
|
||||
@@ -115,9 +114,10 @@ public class YzjSendMaterialTask extends AbstractAcsTask {
|
||||
|
||||
String point_code2 = taskObj.getString("point_code2");
|
||||
JSONObject point2Obj = pointTab.query("point_code = '" + point_code2 + "'").uniqueResult(0);
|
||||
if (ObjectUtil.isEmpty(point2Obj)) return;
|
||||
JSONObject requestObj = task.getJSONObject("request_param");
|
||||
//工单标识
|
||||
String workorder_id = requestObj.getString("material_info_id");
|
||||
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);
|
||||
@@ -128,17 +128,18 @@ public class YzjSendMaterialTask 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", "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("ivt_weight", requestObj.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_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 +150,18 @@ public class YzjSendMaterialTask 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("ivt_weight", requestObj.getString("weight"));
|
||||
point2Obj.put("standing_time", workorderObj.getString("standing_time"));
|
||||
point2Obj.put("warn_time", workorderObj.getString("warn_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("vehicle_qty", "1"); // 入库为1个载具
|
||||
point2Obj.put("is_full", requestObj.getString("is_full"));
|
||||
|
||||
// 终点解锁
|
||||
point2Obj.put("lock_type", "1");
|
||||
point2Obj.put("point_status", "3");
|
||||
point2Obj.put("group_id", taskObj.getString("group_id")); // 组盘标识
|
||||
// 解锁终点
|
||||
point2Obj.put("lock_type", PointEnum.LOCK_TYPE_FALSE.getCode());
|
||||
point2Obj.put("point_status", PointEnum.POINT_STATUS_HAVE_MATERIAL.getCode());
|
||||
pointTab.update(point2Obj);
|
||||
}
|
||||
}
|
||||
@@ -198,8 +202,9 @@ public class YzjSendMaterialTask extends AbstractAcsTask {
|
||||
.task_status(TaskStatusEnum.SURE_START.getCode())
|
||||
.point_code1(point_code1)
|
||||
.vehicle_code(vehicle_code)
|
||||
.vehicle_type(workOrderObj.getString("vehicle_type"))
|
||||
.material_info_id(workOrderObj.getLong("workorder_id"))
|
||||
.group_id(form.getLong("group_id"))
|
||||
.vehicle_type(PointEnum.VEHICLE_TYPE_STEEL_TRAY.getCode())
|
||||
.workorder_id(workOrderObj.getLong("workorder_id"))
|
||||
.material_id(workOrderObj.getLong("material_id"))
|
||||
.handle_class(THIS_CLASS)
|
||||
.create_time(DateUtil.now())
|
||||
@@ -247,11 +252,9 @@ public class YzjSendMaterialTask 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);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -270,7 +273,7 @@ public class YzjSendMaterialTask extends AbstractAcsTask {
|
||||
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");
|
||||
this.updateTaskStatus(taskObj,UpdateTaskStatusEnum.FORCEFINISH.getCode());
|
||||
else {
|
||||
throw new BadRequestException("未找到该任务或者任务已完成!");
|
||||
}
|
||||
@@ -286,7 +289,7 @@ public class YzjSendMaterialTask extends AbstractAcsTask {
|
||||
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");
|
||||
this.updateTaskStatus(taskObj,UpdateTaskStatusEnum.CANCEL.getCode());
|
||||
else {
|
||||
throw new BadRequestException("未找到该任务或者任务已完成!");
|
||||
}
|
||||
|
||||
@@ -14,9 +14,12 @@
|
||||
## 表字段对应输入参数
|
||||
#################################################
|
||||
输入.flag TYPEAS s_string
|
||||
输入.region_code TYPEAS s_string
|
||||
输入.material_id TYPEAS s_string
|
||||
输入.region_code TYPEAS s_string
|
||||
输入.material_id TYPEAS s_string
|
||||
输入.vehicle_type TYPEAS s_string
|
||||
输入.device_code TYPEAS s_string
|
||||
输入.point_type TYPEAS s_string
|
||||
输入.point_status TYPEAS s_string
|
||||
|
||||
|
||||
[临时表]
|
||||
@@ -40,7 +43,49 @@
|
||||
##########################################
|
||||
# 3、业务主过程 #
|
||||
##########################################
|
||||
IF 输入.flag = "1"
|
||||
IF 输入.flag = "1"
|
||||
QUERY
|
||||
SELECT
|
||||
workorder.*
|
||||
FROM
|
||||
pdm_bd_workorder workorder
|
||||
LEFT JOIN pdm_bi_device device ON device.device_code = workorder.device_code
|
||||
WHERE
|
||||
workorder.order_status = '3'
|
||||
AND
|
||||
device.device_model = '4'
|
||||
OPTION 输入.material_id <> ""
|
||||
workorder.material_id = 输入.material_id
|
||||
ENDOPTION
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "2"
|
||||
QUERY
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
`sch_base_point`
|
||||
WHERE
|
||||
lock_type = '1'
|
||||
AND region_code = 'KLHJ'
|
||||
AND is_used = '1'
|
||||
AND is_delete = '0'
|
||||
OPTION 输入.material_id <> ""
|
||||
material_id = 输入.material_id
|
||||
ENDOPTION
|
||||
OPTION 输入.point_type <> ""
|
||||
point_type = 输入.point_type
|
||||
ENDOPTION
|
||||
OPTION 输入.point_status <> ""
|
||||
point_status = 输入.point_status
|
||||
ENDOPTION
|
||||
ENDSELECT
|
||||
ENDQUERY
|
||||
ENDIF
|
||||
|
||||
IF 输入.flag = "3"
|
||||
QUERY
|
||||
SELECT
|
||||
p.point_id,
|
||||
@@ -49,13 +94,10 @@ IF 输入.flag = "1"
|
||||
FROM
|
||||
SCH_BASE_Point p
|
||||
WHERE
|
||||
lock_type = '1'
|
||||
AND is_used = '1'
|
||||
lock_type = '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.
@@ -56,8 +56,8 @@ export default {
|
||||
codeUrl: '',
|
||||
cookiePass: '',
|
||||
loginForm: {
|
||||
username: 'admin',
|
||||
password: '123456',
|
||||
username: '',
|
||||
password: '',
|
||||
rememberMe: false,
|
||||
code: '',
|
||||
uuid: ''
|
||||
|
||||
Reference in New Issue
Block a user