json = new HashMap<>();
+ json.put("vehicle_code", vehicle_code);
+ json.put("cacheLine_code", cacheLine_code);
+ json.put("vehmaterial_id", IdUtil.getStringId());
+ json.put("create_time", DateUtil.now());
+ // 入满箱扫码异常
+ if("1".equals(inOut_type)) {
+ //5.通过缓存线位置表当前执行任务id,获取任务信息中的物料信息
+ JSONObject positionInfo = positionTab.query("vehicle_code = '" + vehicle_code + "'").uniqueResult(0);
+ //查不到点位信息
+ if(null == positionInfo) {
+ throw new BadRequestException("未找到该缓存线的点位信息!");
+ }
+ //获取当前任务信息
+ JSONObject instructObj = WQLObject.getWQLObject("sch_base_task").query("task_id = '" + positionInfo.getString("task_id") + "'").uniqueResult(0);
+ //查不到点位信息
+ if(null == instructObj) {
+ throw new BadRequestException("未找到该任务信息!");
+ }
+ //获取物料信息
+ JSONObject meObj = WQLObject.getWQLObject("md_me_materialbase").query("material_id = '" + instructObj.get("material_id") + "'").uniqueResult(0);
+ //查不到点位信息
+ if(null == meObj) {
+ throw new BadRequestException("未找到该物料信息!");
+ }
+ //6.重新新建该缓存线位置上的料箱为满箱及所属工序,生产区域等信息
+ json.put("material_uuid", meObj.getString("material_id"));
+ json.put("material_code", meObj.getString("material_code"));
+ json.put("material_spec", meObj.getString("material_spec"));
+ json.put("material_name", meObj.getString("material_name"));
+ json.put("quantity", instructObj.getString("material_qty"));
+ json.put("product_area", instructObj.getString("product_area"));
+ json.put("vehicle_status", "2");
+ }
+ // 出满箱扫码异常
+ if("2".equals(inOut_type)) {
+ //5.重新新建该缓存线位置上的料箱为空箱子,是空料箱没有放物料等其他信息
+ json.put("vehicle_status", "1");
+ json.put("material_uuid", "");
+ json.put("material_code", "");
+ json.put("material_spec", "");
+ json.put("material_name", "");
+ json.put("weight", "0");
+ json.put("quantity", "0");
+ json.put("workprocedure_code", "");
+ json.put("workprocedure_name", "");
+ json.put("product_area", "");
+ }
+ int result = ivtTab.insert(json).getSucess();
+ return Integer.toString(result);
}
/**
* AGV入箱子异常,(怎么判断入箱子异常) 缓存线编码 wcsdevice_code 满箱码 vehicle_code
*/
@Override
- public Object agvInBoxExceptionQuery(JSONObject param) {
- // String vehicle_code = param.optString("vehicle_code");
- // String wcsdevice_code = param.optString("wcsdevice_code");
- // WQLObject instructTab = WQLObject.getWQLObject("IF_WCS_InstructPoint");
- // String where = "nextwcsdevice_code = '" + wcsdevice_code + "' and invehicle_code = '" + vehicle_code + "' and instruct_status <> '06'";
- // if(uString.isEmpty(vehicle_code)) {
- // where = "nextwcsdevice_code = '" + wcsdevice_code + "' and instruct_status <> '06'";
- // }
- // JSONArray arr = instructTab.query(where).getResultJSONArray(0);
- // JSONArray result = new JSONArray();
- // for(int i = 0; i < arr.size(); i++) {
- // JSONObject row = arr.getJSONObject(i);
- // JSONObject json = new JSONObject();
- // json.put("instruct_uuid", row.optString("instruct_uuid"));
- // json.put("instructorder_no", row.optString("instructorder_no"));
- // json.put("wcsdevice_code", row.optString("nextwcsdevice_code"));
- // json.put("startpoint_code", row.optString("startpoint_code"));
- // json.put("nextpoint_code", row.optString("nextpoint_code"));
- // json.put("nextpoint_code2", row.optString("nextpoint_code2"));
- // result.add(json);
- // }
- // srb.addJSONArray("result", result);
- return null;
+ public JSONArray agvInBoxExceptionQuery(JSONObject param) {
+ String vehicle_code = param.getString("vehicle_code");
+ String wcsdevice_code = param.getString("wcsdevice_code");
+ WQLObject instructTab = WQLObject.getWQLObject("sch_base_task");
+ String where = "point_code2 = '" + wcsdevice_code + "' and vehicle_code = '" + vehicle_code + "' and task_status <> '7'";
+ if(StringUtils.isEmpty(vehicle_code)) {
+ where = "point_code2 = '" + wcsdevice_code + "' and task_status <> '7'";
+ }
+ JSONArray arr = instructTab.query(where).getResultJSONArray(0);
+ JSONArray result = new JSONArray();
+ for(int i = 0; i < arr.size(); i++) {
+ JSONObject row = arr.getJSONObject(i);
+ JSONObject json = new JSONObject();
+ json.put("instruct_uuid", row.getString("task_id"));
+ json.put("instructorder_no", row.getString("task_code"));
+ json.put("wcsdevice_code", row.getString("point_code2"));
+ json.put("point_code1", row.getString("point_code1"));
+ json.put("nextpoint_code", row.getString("point_code2"));
+ json.put("nextpoint_code2", row.getString("point_code3"));
+ result.add(json);
+ }
+ return result;
}
/**
@@ -584,111 +739,54 @@ public class CacheLineHandServiceImpl implements CacheLineHandService{
* "empty_vehicle_code": "10002", "instruct_uuid": "uuid_0101" }
*/
@Override
- public Object agvInBoxExceptionConfirm(JSONObject param) {
- //
- // WQLObject instructTab = WQLObject.getWQLObject("IF_WCS_InstructPoint");
- // String instruct_uuid = param.optString("instruct_uuid");
- // String extdevice_code = param.optString("wcsdevice_code");
- // String empty_vehicle_code = param.optString("empty_vehicle_code");
- // String full_vehicle_code = param.optString("full_vehicle_code");
- // // 缓存线位置表【IF_CacheLine_Position】
- // WQLObject positionTab = WQLObject.getWQLObject("IF_CacheLine_Position");
- //
- //
- // /*
- // * JSONObject emptyObj = positionTab
- // * .query("is_active = '1' and is_delete = '0' and vehicle_code = '" +
- // * empty_vehicle_code + "'") .uniqueResult(0);
- // *
- // * // 判断箱子是否存在 if (emptyObj == null) { srb.setFailure(); srb.setDesc("条码【" +
- // * empty_vehicle_code + "】不存在,操作失败"); return null; } JSONObject fullObj =
- // * positionTab .query("is_active = '1' and is_delete = '0' and vehicle_code = '"
- // * + full_vehicle_code + "'") .uniqueResult(0); // 判断箱子是否存在 if (fullObj == null)
- // * { srb.setFailure(); srb.setDesc("条码【" + full_vehicle_code + "】不存在,操作失败");
- // * return null; }
- // */
- // JSONObject instObj = instructTab.query("instruct_uuid = '" + instruct_uuid + "'").uniqueResult(0);
- // // 缓存线载具物料表【IF_CacheLine_VehileMaterial】
- // WQLObject ivtTab = WQLObject.getWQLObject("IF_CacheLine_VehileMaterial");
- // // 出的空箱子
- // /*
- // * JSONObject emptyBoxObj =
- // * ivtTab.query("vehicle_status = '01' AND extdevice_code = '" + extdevice_code
- // * + "' and outvehicle_code = '" + empty_vehicle_code + "'").uniqueResult(0); if
- // * (emptyBoxObj == null ||
- // * uString.isEmpty(emptyBoxObj.optString("vehicle_code"))) { srb.setFailure();
- // * srb.setDesc("缓存线内的空箱:" + empty_vehicle_code + "不存在,操作失败"); return null; }
- // *
- // * // 找到空位子入满箱 JSONObject fullBoxObj =
- // * ivtTab.query("is_blank = '1' AND extdevice_code = '" + extdevice_code + "'")
- // * .uniqueResult(0); if (fullBoxObj == null) { srb.setFailure();
- // * srb.setDesc("在缓存线:" + extdevice_code + "未找到可用的货位进行满箱入库!"); return null; }
- // */
- // // 删除出的空箱
- // /*
- // * ivtTab.delete(("vehicle_status = '01' AND extdevice_code = '" +
- // * extdevice_code + "' and vehicle_code = '" + empty_vehicle_code + "'")); //
- // * 更新入库物料信息 JSONObject afterIvt = new JSONObject();
- // * afterIvt.put("vehmaterial_uuid", WDK.getUUID()); afterIvt.put("vehicle_code",
- // * full_vehicle_code); afterIvt.put("vehicle_uuid", full_vehicle_code);
- // * afterIvt.put("vehicle_status", "02"); afterIvt.put("produceorder_uuid",
- // * instObj.optString("produceorder_uuid")); afterIvt.put("produceorder_code",
- // * instObj.optString("produceorder_code")); afterIvt.put("workprocedure_uuid",
- // * instObj.optString("startworkprocedure_uuid"));
- // * afterIvt.put("workprocedure_code",
- // * instObj.optString("startworkprocedure_code"));
- // * afterIvt.put("workprocedure_name",
- // * instObj.optString("startworkprocedure_name")); afterIvt.put("material_uuid",
- // * instObj.optString("processmaterial_uuid")); afterIvt.put("material_code",
- // * instObj.optString("processmaterial_code")); afterIvt.put("material_name",
- // * instObj.optString("processmaterial_name")); afterIvt.put("material_spec",
- // * instObj.optString("processmaterial_spec"));
- // * afterIvt.put("deviceprocess_series",
- // * instObj.optString("deviceprocess_series")); afterIvt.put("quantity",
- // * instObj.optString("quantity")); afterIvt.put("weight",
- // * instObj.optString("weight")); afterIvt.put("update_time", WDK.getDateTime());
- // * afterIvt.put("create_time", WDK.getDateTime());
- // *
- // * ivtTab.insert(afterIvt);
- // */
- // AgvTwoInst inst = new AgvTwoInst();
- // instObj.put("inboxtxm", full_vehicle_code);
- // instObj.put("outboxtxm", empty_vehicle_code);
- // inst.updateInstStatus(instObj, "1");
- // inst.updateInstStatus(instObj, "2");
- return null;
+ public void agvInBoxExceptionConfirm(JSONObject param) {
+ WQLObject instructTab = WQLObject.getWQLObject("sch_base_task");
+ String instruct_uuid = param.getString("task_id");
+ String cacheLine_code = param.getString("wcsdevice_code");
+ String empty_vehicle_code = param.getString("empty_vehicle_code");
+ String full_vehicle_code = param.getString("full_vehicle_code");
+ // 缓存线位置表
+ WQLObject positionTab = WQLObject.getWQLObject("sch_cacheline_position");
+ // 缓存线载具物料表
+ WQLObject ivtTab = WQLObject.getWQLObject("sch_cacheline_vehilematerial");
+ JSONObject instObj = instructTab.query("task_id = '" + instruct_uuid + "'").uniqueResult(0);
+ //TOFIX
+ //AgvTwoInst inst = new AgvTwoInst();
+ instObj.put("inboxtxm", full_vehicle_code);
+ instObj.put("outboxtxm", empty_vehicle_code);
+ // inst.updateInstStatus(instObj, "1");
+ // inst.updateInstStatus(instObj, "2");
}
/**
* AGV出空箱异常
*/
@Override
- public Object agvOutBoxExceptionQuery(JSONObject param) {
- // String vehicle_code = param.optString("vehicle_code");
- // String wcsdevice_code = param.optString("wcsdevice_code");
- // JSONArray arr = new JSONArray();
- // WQLObject instructTab = WQLObject.getWQLObject("IF_WCS_InstructPoint");
- // if(uString.isEmpty(vehicle_code)) {
- // arr = instructTab.query("startwcsdevice_code = '" + wcsdevice_code + "' and instruct_status <> '06'").getResultJSONArray(0);
- // }
- // else{
- // arr = instructTab.query("startwcsdevice_code = '" + wcsdevice_code + "' and outvehicle_code = '" + vehicle_code + "' and instruct_status <> '06'").getResultJSONArray(0);
- // }
- // JSONArray result = new JSONArray();
- // for(int i = 0; i < arr.size(); i++) {
- // JSONObject row = arr.getJSONObject(i);
- // JSONObject json = new JSONObject();
- // json.put("instruct_uuid", row.optString("instruct_uuid"));
- // json.put("instructorder_no", row.optString("instructorder_no"));
- // json.put("wcsdevice_code", row.optString("startwcsdevice_code"));
- // json.put("vehicle_code", row.optString("outvehicle_code"));
- // json.put("startpoint_code", row.optString("startpoint_code"));
- // json.put("nextpoint_code", row.optString("nextpoint_code"));
- // json.put("nextpoint_code2", row.optString("nextpoint_code2"));
- // result.add(json);
- // }
- // srb.addJSONArray("result", result);
- return null;
+ public JSONArray agvOutBoxExceptionQuery(JSONObject param) {
+ String vehicle_code = param.getString("vehicle_code");
+ String wcsdevice_code = param.getString("wcsdevice_code");
+ JSONArray arr;
+ WQLObject instructTab = WQLObject.getWQLObject("sch_base_task");
+ if(StringUtils.isEmpty(vehicle_code)) {
+ arr = instructTab.query("point_code1 = '" + wcsdevice_code + "' and task_status <> '7'").getResultJSONArray(0);
+ }
+ else{
+ arr = instructTab.query("point_code1 = '" + wcsdevice_code + "' and vehicle_code = '" + vehicle_code + "' and task_status <> '7'").getResultJSONArray(0);
+ }
+ JSONArray result = new JSONArray();
+ for(int i = 0; i < arr.size(); i++) {
+ JSONObject row = arr.getJSONObject(i);
+ JSONObject json = new JSONObject();
+ json.put("instruct_uuid", row.getString("task_id"));
+ json.put("instructorder_no", row.getString("task_code"));
+ json.put("wcsdevice_code", row.getString("point_code1"));
+ json.put("vehicle_code", row.getString("vehicle_code"));
+ json.put("startpoint_code", row.getString("point_code1"));
+ json.put("nextpoint_code", row.getString("point_code2"));
+ json.put("nextpoint_code2", row.getString("point_code3"));
+ result.add(json);
+ }
+ return result;
}
/**
@@ -696,190 +794,72 @@ public class CacheLineHandServiceImpl implements CacheLineHandService{
* "vehicle_code": "10001", "instruct_uuid": "222" }
*/
@Override
- public Object agvOutBoxExceptionConfirm(JSONObject param) {
- //
- // WQLObject instructTab = WQLObject.getWQLObject("IF_WCS_InstructPoint");
- // String instruct_uuid = param.optString("instruct_uuid");
- // String vehicle_code = param.optString("vehicle_code");
- // String extdevice_code = param.optString("wcsdevice_code");
- // JSONObject instObj = instructTab.query("instruct_uuid = '" + instruct_uuid + "'").uniqueResult(0);
- //
- // /*
- // * // 缓存线载具物料表【IF_CacheLine_VehileMaterial】 WQLObject ivtTab =
- // * WQLObject.getWQLObject("IF_CacheLine_VehileMaterial"); //
- // * 缓存线位置表【IF_CacheLine_Position】 WQLObject positionTab =
- // * WQLObject.getWQLObject("IF_CacheLine_Position"); // 查看是否有空位入 JSONObject
- // * positionObj = positionTab.query("is_blank = '1' AND extdevice_code = '" +
- // * extdevice_code + "'") .uniqueResult(0);
- // *
- // * if (positionObj == null) {
- // * srb.setFailure(); srb.setDesc("缓存线无剩余位置,操作失败"); return null;
- // *
- // * }
- // *
- // * // 入的空箱子 JSONObject afterIvt = new JSONObject();
- // * afterIvt.put("vehmaterial_uuid", WDK.getUUID()); afterIvt.put("vehicle_uuid",
- // * vehicle_code); afterIvt.put("vehicle_code", vehicle_code);
- // * afterIvt.put("extdevice_code", extdevice_code);
- // *
- // * afterIvt.put("vehicle_status", "01"); afterIvt.put("produceorder_uuid", "");
- // * afterIvt.put("produceorder_code", ""); afterIvt.put("workprocedure_uuid",
- // * ""); afterIvt.put("workprocedure_code", "");
- // * afterIvt.put("workprocedure_name", ""); afterIvt.put("material_uuid", "");
- // * afterIvt.put("material_code", ""); afterIvt.put("material_name", "");
- // * afterIvt.put("material_spec", ""); afterIvt.put("deviceprocess_series", "");
- // * afterIvt.put("quantity", "0"); afterIvt.put("weight", "0");
- // * afterIvt.put("update_time", WDK.getDateTime()); ivtTab.insert(afterIvt);
- // */
- // AgvTwoInst inst = new AgvTwoInst();
- // // 出箱的时候入箱码和出箱码相同
- // instObj.put("inboxtxm", vehicle_code);
- // instObj.put("outboxtxm", vehicle_code);
- // inst.updateInstStatus(instObj, "1");
- // inst.updateInstStatus(instObj, "2");
- return null;
- }
-
- /**
- * 缓存线出箱异常查询
- *
- * {"wcsdevice_code":"HCX01","agv_no":"2"}
- *
- * 入满箱查找空箱,出满箱查找满箱时,如果电气经过一圈后查找不到指定条码的箱子,则报警提示; 入满箱空箱找不到: 1、
- * 人工先将满箱拿下放在缓存线边上,然后人工找个有条码的空箱拿到满箱的专机上; 2、
- * 通过手持选择缓存线设备,输入agv车号,查询出agv正在执行的指令,点击确认按钮,mes完成该任务,进行满箱物料条码和缓存线设备的绑定;同时wcs和agv删除指令。
- *
- * 3、 Mes系统需要将指令中下发的空箱条码全部设置为异常,指令也标识为异常; 4、
- * 人工还需要将缓存线锁定的任务状态进行复位操作,不影响其他任务的进行;(只有先复位,才能进行盘点,两者冲突) 5、
- * 此时空箱说明已经没有了,管理人员必须立即处理,进行盘点检查缓存线物料和箱子信息,通过手持盘点操作保证缓存线有空箱,才能让缓存线设备继续进行出入操作。
- * 出满箱找不到满箱: 1、
- * 通过手持选择缓存线设备,输入agv车号,查询出agv正在执行的指令,点击确认按钮,mes将指令标识为异常;同时wcs和agv删除指令。 2、
- * Mes系统需要将指令中下发的满箱条码全部设置为异常; 3、
- * 人工还需要将缓存线锁定的任务状态进行复位操作,不影响其他任务的进行;(只有先复位,才能进行盘点,两者冲突) 4、
- * 此时满箱说明已经没有了,管理人员必须立即处理,进行盘点检查缓存线物料和箱子信息,通过手持盘点操作保证缓存线满箱物料和mes系统物料一致,才能让缓存线设备继续进行出入操作。
- */
- @Override
- public Object cacheLineOutBoxExceptionQuery(
- JSONObject param) {
- //
- // String agv_no = param.optString("agv_no");
- // String wcsdevice_code = param.optString("wcsdevice_code");
- // WQLObject instructTab = WQLObject.getWQLObject("IF_WCS_InstructPoint");
- // JSONArray arr = instructTab.query("(startwcsdevice_code = '" + wcsdevice_code + "' or nextwcsdevice_code = '" + wcsdevice_code + "') and instruct_status <> '06' and agv_no like '%" + agv_no + "%'").getResultJSONArray(0);
- // JSONArray result = new JSONArray();
- // for(int i = 0; i < arr.size(); i++) {
- // JSONObject row = arr.getJSONObject(i);
- // JSONObject json = new JSONObject();
- // json.put("instruct_uuid", row.optString("instruct_uuid"));
- // json.put("instructorder_no", row.optString("instructorder_no"));
- // json.put("wcsdevice_code", row.optString("startwcsdevice_code"));
- // json.put("vehicle_code", "0");
- // json.put("startpoint_code", row.optString("startpoint_code"));
- // json.put("nextpoint_code", row.optString("nextpoint_code"));
- // json.put("nextpoint_code2", row.optString("nextpoint_code2"));
- // result.add(json);
- // }
- // srb.addJSONArray("result", result);
- return null;
- }
-
- /**
- * 缓存线出箱异常确认
- */
- @Override
- public Object cacheLineOutBoxExceptionConfirm(
- JSONObject param) {
- //
- // WQLObject instructTab = WQLObject.getWQLObject("IF_WCS_InstructPoint");
- // String instruct_uuid = param.optString("instruct_uuid");
- // JSONObject instObj = instructTab.query("instruct_uuid = '" + instruct_uuid + "'").uniqueResult(0);
- // if(instObj != null) {
- // instObj.put("instruct_status", "06");
- // instObj.put("instructfinish_mode", "02");
- // instObj.put("update_time", WDK.getDateTime());
- // instObj.put("remark", "缓存线出箱异常确认完成!");
- // instructTab.update(instObj);
- // // 把所以来该缓存线的AGV指令都完成掉
- // if(instObj.optString("nextwcsdevice_code").contains("HCX")) {
- // HashMap map = new HashMap<>();
- // map.put("instruct_status", "06");
- // map.put("instructfinish_mode", "02");
- // map.put("update_time", WDK.getDateTime());
- // map.put("remark", "缓存线出箱异常确认完成!");
- // instructTab.update(map, "nextwcsdevice_code = '" + instObj.optString("nextwcsdevice_code") + "' and instruct_status <> '06'");
- // }
- // // 把所以从该缓存线出AGV指令都完成掉
- // if(instObj.optString("startwcsdevice_code").contains("HCX")) {
- // HashMap map = new HashMap<>();
- // map.put("instruct_status", "06");
- // map.put("instructfinish_mode", "02");
- // map.put("update_time", WDK.getDateTime());
- // map.put("remark", "缓存线出箱异常确认完成!");
- // instructTab.update(map, "startwcsdevice_code = '" + instObj.optString("startwcsdevice_code") + "' and instruct_status <> '06'");
- // }
- // // 得到异常的载具号
- // String vehicle_codeStr = instObj.optString("vehicle_code");
- // String[] arr = vehicle_codeStr.split(",");
- // // 缓存线载具物料表【IF_CacheLine_VehileMaterial】
- // WQLObject ivtTab = WQLObject.getWQLObject("IF_CacheLine_VehileMaterial");
- // for(String vehicle_code : arr) {
- // HashMap map = new HashMap<>();
- // // 异常
- // map.put("vehicle_status", "03");
- // ivtTab.update(map, "vehicle_code = '" + vehicle_code + "'");
- // }
- // }
- return null;
+ public void agvOutBoxExceptionConfirm(JSONObject param) {
+ WQLObject instructTab = WQLObject.getWQLObject("sch_base_task");
+ String instruct_uuid = param.getString("instruct_uuid");
+ String vehicle_code = param.getString("vehicle_code");
+ JSONObject instObj = instructTab.query("task_id = '" + instruct_uuid + "'").uniqueResult(0);
+ //TOFIX
+ // AgvTwoInst inst = new AgvTwoInst();
+ // inst.updateInstStatus(instObj, "1");
+ //出箱的时候入箱码和出箱码相同
+ instObj.put("inboxtxm", vehicle_code);
+ instObj.put("outboxtxm", vehicle_code);
+ // inst.updateInstStatus(instObj, "1");
+ // inst.updateInstStatus(instObj, "2");
}
@Override
- public Object cacheLineExcepOpt(JSONObject param) {
- // // 缓存线编码
- // String wcsdevice_code = param.optString("wcsdevice_code");
- // // 01-暂停、02-启动
- // String opt_type = param.optString("opt_type");
- // System.out.println("操作类型:" + opt_type);
- // Object[] objs = new Object[2];
- // objs[0] = wcsdevice_code;
- // // 类型:恢复是0,暂停是1
- // String type = "1";
- // if("02".equals(opt_type)) {
- // type = "0";
- // }
- // objs[1] = type;
- // // 下发给wcs
- // uWcsSchedule.notifyWcs(99, 1000, objs);
- return null;
- }
-
- /**
- * public static HttpContext getHttpContext(Pageable pageable) { HttpContext ctx
- * = new HttpContext(getUUID()); ctx.setPage(pageable.getPageNumber() + 1 + "");
- * ctx.setRows(pageable.getPageSize() + ""); return ctx; }
- */
- @Override
- public Object pourMaterial(JSONObject param) {
- // // 指令标识
- // String instruct_uuid = param.optString("instruct_uuid");
- // // 指令点位表【IF_WCS_InstructPoint】
- // JSONObject instObj = WQLObject.getWQLObject("IF_WCS_InstructPoint").query("instruct_uuid = '" + instruct_uuid + "'").uniqueResult(0);
- // int putquantity = instObj.optInt("quantity");
- // String producer = instObj.optString("nextwcsdevice_code");
- // Object[] objs = new Object[2];
- // objs[0] = producer;
- // objs[1] = putquantity;
- // // 下发给wcs
- // uWcsSchedule.notifyWcs(99, 3002, objs);
- return null;
+ public void pourMaterial(JSONObject param) {
+ // 指令标识
+ String instruct_uuid = param.getString("instruct_uuid");
+ // 指令点位表【sch_base_task】
+ JSONObject instObj = WQLObject.getWQLObject("sch_base_task").query("task_id = '" + instruct_uuid + "'").uniqueResult(0);
+ int putquantity = instObj.getInteger("material_qty");
+ String producer = instObj.getString("point_code2");
+ JSONArray jsonArray = new JSONArray();
+ JSONObject jsonObject = new JSONObject();
+ jsonObject.put("producer", producer);
+ jsonObject.put("putquantity", putquantity);
+ jsonArray.add(jsonObject);
+ //TOFIX 等确定api后,换成下发的url
+ AcsUtil.notifyAcs("api", jsonArray);
}
@Override
- public Object cacheLineOutBoxExceptionQuery(String account_uuid, JSONObject param) {
- return null;
+ public JSONArray getCacheLine(JSONObject param) {
+ // 生产区域
+ String product_area = param.getString("product_area");
+ JSONArray resultJSONArray = WQL.getWO("PDA_QUERY").addParamMap(MapOf.of("flag", "7", "product_area", product_area)).process().getResultJSONArray(0);
+ return resultJSONArray;
}
@Override
- public Object cacheLineOutBoxExceptionConfirm(String account_uuid, JSONObject param) {
- return null;
+ public JSONArray getCacheLineMaterialInfo(JSONObject param) {
+ // 缓存线编码 point_code
+ String pointCode = param.getString("wcsdevice_code");
+ String productArea = param.getString("product_area");
+ AtomicReference res = new AtomicReference<>(new JSONArray());
+ RedissonUtils.lock(()->{
+ // 生产区域
+ res.set(WQL.getWO("PDA_QUERY").addParamMap(MapOf.of("flag", "8", "product_area", productArea, "cacheLine_code", pointCode)).process().getResultJSONArray(0));
+ },pointCode,3);
+ return res.get();
+ }
+
+ @Override
+ public JSONArray getProductArea() {
+ JSONArray res = WQL.getWO("PDA_QUERY").addParamMap(MapOf.of("flag", "9")).process().getResultJSONArray(0);
+ return res;
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void deleteBox(JSONObject param) {
+ WQLObject cvTab = WQLObject.getWQLObject("SCH_CacheLine_VehileMaterial");
+ String vehicleCode = param.getString("vehicle_code");
+ if(ObjectUtil.isNotEmpty(vehicleCode)) {
+ cvTab.delete("vehicle_code = '" + vehicleCode + "'");
+ }
}
}
diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda/wql/PDA_QUERY.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda/wql/PDA_QUERY.wql
index fbe79220..2b215acb 100644
--- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda/wql/PDA_QUERY.wql
+++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pda/wql/PDA_QUERY.wql
@@ -15,6 +15,16 @@
#################################################
输入.flag TYPEAS s_string
输入.condition TYPEAS s_string
+ 输入.cacheLine_code TYPEAS s_string
+ 输入.product_area TYPEAS s_string
+ 输入.status TYPEAS s_string
+ 输入.inst_num TYPEAS s_string
+ 输入.start_point TYPEAS s_string
+ 输入.end_point TYPEAS s_string
+ 输入.start_date TYPEAS s_string
+ 输入.end_date TYPEAS s_string
+ 输入.task_id TYPEAS s_string
+
[临时表]
@@ -49,7 +59,7 @@
WHERE
is_delete = '0'
OPTION 输入.condition <> ""
- material_spec LIKE CONCAT ( '%', 输入.condition, '%' )
+ material_spec LIKE CONCAT ('%', 输入.condition, '%')
ENDOPTION
GROUP BY material_spec
ENDSELECT
@@ -59,7 +69,7 @@
IF 输入.flag = "2"
QUERY
SELECT
- workprocedure_id value,
+ workprocedure_id `value`,
workprocedure_name text,
workprocedure_code
FROM
@@ -67,8 +77,8 @@
WHERE
is_used = '1'
OPTION 输入.condition <> ""
- workprocedure_code LIKE CONCAT ( '%', 输入.condition, '%' )
- OR workprocedure_name LIKE CONCAT ( '%', 输入.condition, '%' )
+ workprocedure_code LIKE CONCAT ('%', 输入.condition, '%')
+ OR workprocedure_name LIKE CONCAT ('%', 输入.condition, '%')
ENDOPTION
ENDSELECT
ENDQUERY
@@ -77,14 +87,14 @@
IF 输入.flag = "3"
QUERY
SELECT
- dict_id value,
+ dict_id `value`,
label text
FROM
sys_dict
WHERE
CODE = 'task_status'
OPTION 输入.condition <> ""
- label LIKE CONCAT ( '%', 输入.condition, '%' )
+ label LIKE CONCAT ('%', 输入.condition, '%')
ENDOPTION
ORDER BY dict_sort
ENDSELECT
@@ -94,14 +104,14 @@
IF 输入.flag = "4"
QUERY
SELECT
- device_code value,
+ device_code `value`,
device_name text
FROM
`pdm_bi_device`
WHERE
is_delete = '0'
OPTION 输入.condition <> ""
- device_name LIKE CONCAT ( '%', 输入.condition, '%' )
+ device_name LIKE CONCAT ('%', 输入.condition, '%')
ENDOPTION
ORDER BY device_code DESC
ENDSELECT
@@ -111,22 +121,159 @@
IF 输入.flag = "5"
QUERY
SELECT
- mb.material_id,
- mb.material_code,
- mb.material_spec,
- mb.material_name,
- class.class_name
+ MB.MATERIAL_ID,
+ MB.MATERIAL_CODE,
+ MB.MATERIAL_SPEC,
+ MB.MATERIAL_NAME,
+ CLASS.CLASS_NAME
FROM
- md_me_materialbase mb
- LEFT JOIN MD_PB_ClassStandard class ON class.class_id = mb.material_type_id
+ MD_ME_MATERIALBASE MB
+ LEFT JOIN MD_PB_CLASSSTANDARD CLASS ON CLASS.CLASS_ID = MB.MATERIAL_TYPE_ID
WHERE
- mb.is_delete = '0'
+ MB.IS_DELETE = '0'
ENDSELECT
ENDQUERY
ENDIF
-
-
+ IF 输入.flag = "6"
+ QUERY
+ SELECT
+ mb.material_id,
+ mb.material_code,
+ mb.material_spec,
+ mb.material_name,
+ class.class_name
+ FROM
+ md_me_materialbase mb
+ LEFT JOIN MD_PB_ClassStandard class ON class.class_id = mb.material_type_id
+ WHERE
+ mb.is_delete = '0'
+ ORDER BY
+ mb.material_id desc
+ LIMIT 1000
+ OPTION 输入.condition <> ""
+ mb.material_name LIKE CONCAT ('%', 输入.condition, '%')
+ OR mb.material_code LIKE CONCAT ('%', 输入.condition, '%')
+ OR mb.material_spec LIKE CONCAT ('%', 输入.condition, '%')
+ OR class.class_name LIKE CONCAT ('%', 输入.condition, '%')
+ ENDOPTION
+ ENDSELECT
+ ENDQUERY
+ ENDIF
+ IF 输入.flag = "7"
+ QUERY
+ SELECT
+ p.point_code as value,
+ p.point_name as text
+ FROM
+ sch_base_point p
+ WHERE
+ p.region_code = 'A1_HCX'
+ OPTION 输入.product_area <> ""
+ p.product_area = 输入.product_area
+ ENDOPTION
+ ORDER BY
+ p.point_code
+ ENDSELECT
+ ENDQUERY
+ ENDIF
+ IF 输入.flag = "8"
+ QUERY
+ SELECT
+ sch_cacheline_position.cacheLine_code as wcsdevice_code,
+ sch_cacheline_position.position_code,
+ sch_cacheline_position.position_name,
+ sch_cacheline_position.vehicle_code,
+ sch_cacheline_position.layer_num,
+ sch_cacheline_position.positionorder_no as seat_order_num,
+ sch_cacheline_vehilematerial.workprocedure_code,
+ sch_cacheline_vehilematerial.workprocedure_name,
+ sch_cacheline_vehilematerial.material_uuid,
+ sch_cacheline_vehilematerial.material_code,
+ sch_cacheline_vehilematerial.material_name,
+ sch_cacheline_vehilematerial.material_spec,
+ sch_cacheline_vehilematerial.quantity,
+ sch_cacheline_vehilematerial.weight,
+ IF(length(sch_cacheline_position.vehicle_code) > 0, IFNULL(sch_cacheline_vehilematerial.vehicle_status, 4), 5) AS vehicle_status
+ FROM
+ sch_cacheline_position
+ LEFT JOIN sch_cacheline_vehilematerial ON sch_cacheline_position.vehicle_code = sch_cacheline_vehilematerial.vehicle_code
+ WHERE
+ 1 = 1
+ OPTION 输入.product_area <> ""
+ sch_cacheline_position.product_area = 输入.product_area
+ ENDOPTION
+ OPTION 输入.cacheLine_code <> ""
+ sch_cacheline_position.cacheLine_code = 输入.cacheLine_code
+ ENDOPTION
+ ORDER BY
+ sch_cacheline_position.cacheLine_code
+ ENDSELECT
+ ENDQUERY
+ ENDIF
+ IF 输入.flag = "9"
+ QUERY
+ SELECT
+ d.value,
+ d.label as text
+ FROM
+ sys_dict d
+ WHERE
+ code = 'product_area'
+ ENDSELECT
+ ENDQUERY
+ ENDIF
+
+ IF 输入.flag = "10"
+ PAGEQUERY
+ SELECT
+ task.task_id as instruct_uuid,
+ task.task_code as instructoperate_num,
+ task.task_name as mes_no,
+ task.vehicle_code as invehicle_code,
+ task.vehicle_code2 as outvehicle_code,
+ task.create_time,
+ dict.label as status_name,
+ mater.material_code as processmaterial_code,
+ point1.point_name as startpoint_code,
+ point2.point_name as nextpoint_code,
+ point3.point_name as nextpoint_code2
+ FROM
+ sch_base_task task
+ left join sch_base_point point1 on task.point_code1 = point1.point_code
+ left join sch_base_point point2 on task.point_code2 = point2.point_code
+ left join sch_base_point point3 on task.point_code3 = point3.point_code
+ left join md_me_materialbase mater on task.material_id = mater.material_id
+ left join sys_dict dict on dict.`value` = task.task_status
+ and dict.`code` = 'task_status'
+ WHERE task.is_delete = '0'
+ OPTION 输入.status <> ""
+ find_in_set(task.task_status,输入.status)
+ ENDOPTION
+ OPTION 输入.inst_num <> ""
+ (task.task_code like CONCAT ('%', 输入.inst_num, '%'))
+ ENDOPTION
+ OPTION 输入.vehicle_code <> ""
+ (task.vehicle_code like CONCAT ('%', 输入.vehicle_code, '%'))
+ ENDOPTION
+ OPTION 输入.start_point <> ""
+ (task.point_code1 like CONCAT ('%', 输入.start_point, '%'))
+ ENDOPTION
+ OPTION 输入.task_id <> ""
+ (task.task_id = 输入.task_id )
+ ENDOPTION
+ OPTION 输入.end_point <> ""
+ (task.point_code2 like CONCAT ('%', 输入.end_point, '%'))
+ ENDOPTION
+ OPTION 输入.start_date <> ""
+ task.create_time >= 输入.start_date
+ ENDOPTION
+ OPTION 输入.end_date <> ""
+ task.create_time <= 输入.end_date
+ ENDOPTION
+ ENDSELECT
+ ENDPAGEQUERY
+ ENDIF
diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/wql/pdm.xls b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/wql/pdm.xls
index 1c827962..17b8d79f 100644
Binary files a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/wql/pdm.xls and b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/wql/pdm.xls differ
diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/AbstractAcsTask.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/AbstractAcsTask.java
index cbef8cfb..499a3f97 100644
--- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/AbstractAcsTask.java
+++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/AbstractAcsTask.java
@@ -16,6 +16,8 @@ import lombok.extern.slf4j.Slf4j;
*/
@Slf4j
public abstract class AbstractAcsTask {
+
+
private static final String OPT_NAME = "acs回调#";
public abstract void updateTaskStatus(JSONObject taskObj,String status);
diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/rest/RegionController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/rest/RegionController.java
index 8727d465..c470ad07 100644
--- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/rest/RegionController.java
+++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/sch/rest/RegionController.java
@@ -1,5 +1,6 @@
package org.nl.wms.sch.rest;
+import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
@@ -79,5 +80,12 @@ public class RegionController {
return new ResponseEntity<>(regionService.getPointTypeSelectByCode(region_code), HttpStatus.CREATED);
}
+ @PostMapping("/getRegionSelect")
+ @Log("获取区域下拉框")
+ @ApiOperation("获取区域下拉框")
+ public ResponseEntity