diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index 8ea2745..cbb1b00 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -39,8 +39,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.springframework.transaction.reactive.TransactionContextManager; -import org.springframework.transaction.support.TransactionSynchronizationManager; import java.util.HashMap; import java.util.Map; @@ -258,7 +256,6 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { e.printStackTrace(); } } - break; case "2": // 叫料出库 @@ -276,7 +273,6 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { // 批次 物料,客户要从排产单里面去取 jsonObject.put("material_id", produceInfoByCode.getString("material_id")); callMaterialTask.createTask((JSONObject) JSON.toJSON(jsonObject)); - break; case "3": @@ -331,41 +327,6 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { } callEmptyVehicleTask.createTask((JSONObject) JSON.toJSON(jsonObject)); break; - // 生产rgv搬运任务 - case "5": - jsonObject.put("next_point_code", device_code); - jsonObject.put("create_mode", "01"); - // 1 判断有没有执行的Rgv搬运任务 - JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_type='04' and is_delete='0' and acs_task_type<>'07'").uniqueResult(0); - if (ObjectUtil.isNotEmpty(taskObj)) { - JSONObject result = new JSONObject(); - result.put("status", HttpStatus.CREATED.value()); - result.put("message", "失败!"); - result.put("data", new JSONObject()); - return result; - } - // 寻找起点 - // 更新所有设备的点位的状态 - // JSONArray pointConveyArr = pointTable.query("area_type='07' and device_point_type ='01' - // ").getResultJSONArray(0); - JSONArray pointConveyArr = WQL.getWO("ACSTOMES_001").addParam("area_type", "07").addParam("flag", "4").process().getResultJSONArray(0); - - PointUpdateUtil.updatePoint(pointConveyArr); - // 假如没有设置哪个输送线先出,没有按照先进先出 - JSONObject param = new JSONObject(); - String rule = WQLObject.getWQLObject("sys_param").query("code='is_outrule'").uniqueResult(0).getString("value"); - if (StrUtil.equals(rule, "1")) { - param = WQL.getWO("ACSTOMES_001").addParam("flag", "3").process().uniqueResult(0); - } else { - param = WQL.getWO("ACSTOMES_001").addParam("flag", "2").process().uniqueResult(0); - } - if (ObjectUtil.isEmpty(param)) { - throw new BadRequestException("未找到合适的输送线可以出!"); - } - jsonObject.put("start_point_code", param.getString("point_code")); - jsonObject.put("vehicle_code", param.getString("vehicle_code")); - rgvTask.createTask((JSONObject) JSON.toJSON(jsonObject)); - break; } JSONObject result = new JSONObject(); result.put("status", HttpStatus.OK.value()); @@ -391,8 +352,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { vehicle_code = jsonObject.get("vehicle_code").toString(); } if (device_code.startsWith("FJJXSXLW") && StrUtil.isNotBlank(vehicle_code)) { - WQLObject.getWQLObject("st_buss_vehiclegroup") - .delete("vehicle_code = '" + vehicle_code + "'"); + WQLObject.getWQLObject("st_buss_vehiclegroup").delete("vehicle_code = '" + vehicle_code + "'"); } String qty = String.valueOf(jsonObject.get("qty")); // 产品编码 @@ -554,7 +514,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { String start_area = taskobj.getString("start_area"); JSONObject requestParam = taskobj.getJSONObject("request_param"); if ("22".equals(start_area)) { - JSONObject materialObj =WQLObject.getWQLObject("MD_ME_Material").query("material_id='" + requestParam.getString("material_id") + "'").uniqueResult(0); + JSONObject materialObj = WQLObject.getWQLObject("MD_ME_Material").query("material_id='" + requestParam.getString("material_id") + "'").uniqueResult(0); groupObj.put("material_code", materialObj.getString("material_code")); groupObj.put("material_name", materialObj.getString("material_name")); groupObj.put("material_spec", materialObj.getString("material_spec")); @@ -604,20 +564,10 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { JSONObject param = new JSONObject(); param.put("start_point_code", device_code); param.put("vehicle_code", vehicle_code); - // 根据起点去找终点 - ConveyorTask task = new ConveyorTask(); WQLObject pointTable = WQLObject.getWQLObject("sch_base_point"); - String device_id = - pointTable - .query("point_code ='" + device_code + "'") - .uniqueResult(0) - .getString("device_id"); - String next_point_code = - pointTable - .query("device_id ='" + device_id + "' and device_point_type ='02'") - .uniqueResult(0) - .getString("point_code"); + String device_id = pointTable.query("point_code ='" + device_code + "'").uniqueResult(0).getString("device_id"); + String next_point_code = pointTable.query("device_id ='" + device_id + "' and device_point_type ='02'").uniqueResult(0).getString("point_code"); param.put("next_point_code", next_point_code); } JSONObject result = new JSONObject(); @@ -652,10 +602,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { if (StrUtil.isEmpty(vehicle_code)) { throw new BadRequestException("托盘条码不能为空!"); } - JSONObject vehicleObj = - WQLObject.getWQLObject("st_buss_vehiclegroup") - .query("vehicle_code='" + vehicle_code + "'") - .uniqueResult(0); + JSONObject vehicleObj = WQLObject.getWQLObject("st_buss_vehiclegroup").query("vehicle_code='" + vehicle_code + "'").uniqueResult(0); if (ObjectUtil.isEmpty(vehicleObj)) { throw new BadRequestException("为找到托盘号为'" + vehicle_code + "'的组盘信息!"); } @@ -741,18 +688,11 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { log.debug("ACS的getVehicleInfoBycode请求参数为:" + jsonObject); String device_code = (String) jsonObject.get("device_code"); WQLObject point_table = WQLObject.getWQLObject("sch_base_point"); - String vehicle_code = - point_table - .query("point_code='" + device_code + "'") - .uniqueResult(0) - .getString("vehicle_code"); + String vehicle_code = point_table.query("point_code='" + device_code + "'").uniqueResult(0).getString("vehicle_code"); if (StrUtil.isEmpty(vehicle_code)) { throw new BadRequestException("未找到该点位上的托盘信息!"); } - JSONObject vehicleObj = - WQLObject.getWQLObject("st_buss_vehiclegroup") - .query("vehicle_code='" + vehicle_code + "' AND is_delete='0'") - .uniqueResult(0); + JSONObject vehicleObj = WQLObject.getWQLObject("st_buss_vehiclegroup").query("vehicle_code='" + vehicle_code + "' AND is_delete='0'").uniqueResult(0); if (ObjectUtil.isEmpty(vehicleObj)) { throw new BadRequestException("未找到托盘号为'" + vehicle_code + "'的托盘信息!"); } @@ -798,23 +738,12 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { if (StrUtil.equals("FJJXS1", device_code) || StrUtil.equals("FJJXS2", device_code) || StrUtil.equals("FJJXS3", device_code)) { - device_id = - WQLObject.getWQLObject("pdm_base_device") - .query("device_code ='" + device_code + "'") - .uniqueResult(0) - .getString("device_id"); + device_id = WQLObject.getWQLObject("pdm_base_device").query("device_code ='" + device_code + "'").uniqueResult(0).getString("device_id"); } else { - device_id = - WQLObject.getWQLObject("sch_base_point") - .query("point_code='" + device_code + "'") - .uniqueResult(0) - .getString("device_id"); + device_id = WQLObject.getWQLObject("sch_base_point").query("point_code='" + device_code + "'").uniqueResult(0).getString("device_id"); } // 根据物料code 去找物料id - JSONObject materiObj = - WQLObject.getWQLObject("MD_ME_Material") - .query("material_code='" + material_code + "'") - .uniqueResult(0); + JSONObject materiObj = WQLObject.getWQLObject("MD_ME_Material").query("material_code='" + material_code + "'").uniqueResult(0); if (!StrUtil.equals(device_id, taskObj.getString("device_id"))) { throw new BadRequestException("设备标识不一样!"); } @@ -836,6 +765,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { // 排产工单完成! if (StrUtil.equals("2", type)) { taskObj.put("producetask_status", "05"); + taskObj.put("producetask_finish_type", "01"); taskObj.put("real_qty", qty); } taskTable.update(taskObj); @@ -940,10 +870,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { if (StrUtil.isEmpty(material_code)) { throw new BadRequestException("物料条码不能为空!"); } - JSONObject returnjo = - WQLObject.getWQLObject("MD_ME_CribbingInfo") - .query("material_code='" + material_code + "'") - .uniqueResult(0); + JSONObject returnjo = WQLObject.getWQLObject("MD_ME_CribbingInfo").query("material_code='" + material_code + "'").uniqueResult(0); if (ObjectUtil.isEmpty(returnjo)) { throw new BadRequestException("未找到物料编码为'" + material_code + "'的垛形参数信息!"); } @@ -980,10 +907,7 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { if (StrUtil.equals(status, "UNKNOWN") || StrUtil.equals("UNAVAILABLE", status)) { device_status = "5"; } - JSONObject statsObj = - deviceStatus_table - .query("device_type ='1' and device_code ='" + agv_no + "'") - .uniqueResult(0); + JSONObject statsObj = deviceStatus_table.query("device_type ='1' and device_code ='" + agv_no + "'").uniqueResult(0); statsObj.put("device_status", device_status); statsObj.put("update_time", DateUtil.now()); deviceStatus_table.update(statsObj); @@ -1000,34 +924,19 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { public Map queryCribbingInfo(Map jsonObject) { log.debug("ACS的queryCribbingInfo请求参数为:" + jsonObject); String device_code = (String) jsonObject.get("device_code"); - JSONObject task = - WQLObject.getWQLObject("sch_base_task") - .query( - "is_delete = '0' AND task_status <> '07' AND next_point_code = '" - + device_code - + "'") - .uniqueResult(0); + JSONObject task = WQLObject.getWQLObject("sch_base_task").query( + "is_delete = '0' AND task_status <> '07' AND next_point_code = '" + device_code + "'").uniqueResult(0); if (ObjectUtil.isNotEmpty(task)) { throw new BadRequestException("当前点位有空托任务未完成!"); } WQLObject pointTable = WQLObject.getWQLObject("sch_base_point"); - // JSONObject produceInfoByCode = this.getProduceInfoByCode(device_code); - // 根据点位获取排产单 - // String material_id = produceInfoByCode.getString("material_id"); - String vehicle_code = - pointTable - .query("point_code = '" + device_code + "'") - .uniqueResult(0) - .getString("vehicle_code"); + + String vehicle_code = pointTable.query("point_code = '" + device_code + "'").uniqueResult(0).getString("vehicle_code"); WQLObject group_table = WQLObject.getWQLObject("st_buss_vehiclegroup"); // 从组盘表里面去获取组盘信息 JSONObject result = group_table.query("vehicle_code = '" + vehicle_code + "'").uniqueResult(0); if (ObjectUtil.isNotEmpty(result)) { - String product_code = - WQLObject.getWQLObject("md_me_cribbinginfo") - .query("material_id = " + result.getString("material_id")) - .uniqueResult(0) - .getString("product_code"); + String product_code = WQLObject.getWQLObject("md_me_cribbinginfo").query("material_id = " + result.getString("material_id")).uniqueResult(0).getString("product_code"); result.put("product_code", product_code); } JSONObject resultJSON = new JSONObject(); @@ -1041,17 +950,9 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { public Map queryPrintInfoByCode(Map jsonObject) { log.debug("ACS的queryPrintInfoByCode请求参数为:" + jsonObject); // 找出最近的一个到包装位的任务 - JSONObject taskObj = - WQLObject.getWQLObject("sch_base_task") - .query( - "next_point_code='BZSLW' and is_delete='0' and task_type='07'", "update_time desc") - .uniqueResult(0); - JSONObject result = - WQL.getWO("ACSTOMES_001") - .addParam("flag", "9") - .addParam("task_id", taskObj.getString("task_id")) - .process() - .uniqueResult(0); + JSONObject taskObj = WQLObject.getWQLObject("sch_base_task").query( + "next_point_code='BZSLW' and is_delete='0' and task_type='07'", "update_time desc").uniqueResult(0); + JSONObject result = WQL.getWO("ACSTOMES_001").addParam("flag", "9").addParam("task_id", taskObj.getString("task_id")).process().uniqueResult(0); return result; } @@ -1064,17 +965,13 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { WQLObject group_table = WQLObject.getWQLObject("st_buss_vehiclegroup"); WQLObject point_table = WQLObject.getWQLObject("sch_base_point"); - JSONObject taskObj = - task_table - .query("task_code ='" + task_code + "' and task_status='06'and is_delete='0'") - .uniqueResult(0); + JSONObject taskObj = task_table.query("task_code ='" + task_code + "' and task_status='06'and is_delete='0'").uniqueResult(0); if (ObjectUtil.isEmpty(taskObj)) { throw new BadRequestException("任务号为'" + task_code + "' 执行中的任务未找到"); } String start_point_code = taskObj.getString("start_point_code"); String next_point_code = taskObj.getString("next_point_code"); - JSONObject startObj = - point_table.query("point_code ='" + start_point_code + "'").uniqueResult(0); + JSONObject startObj = point_table.query("point_code ='" + start_point_code + "'").uniqueResult(0); if (!StrUtil.equals(startObj.getString("area_type"), AreaEnum.YZQY.getCode())) { throw new BadRequestException("只能取消任务类型为下料任务!"); @@ -1084,13 +981,11 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { nextObj.put("lock_type", "00"); point_table.update(nextObj); task_table.delete(taskObj); - JSONObject groupObj = - group_table.query("task_id ='" + taskObj.getString("task_id") + "'").uniqueResult(0); + JSONObject groupObj = group_table.query("task_id ='" + taskObj.getString("task_id") + "'").uniqueResult(0); if (ObjectUtil.isEmpty(groupObj)) { throw new BadRequestException("找不到task_id为" + taskObj.getString("task_id") + "的盘信息"); } group_table.delete(groupObj); - JSONObject result = new JSONObject(); result.put("status", HttpStatus.OK.value()); result.put("message", "任务状态反馈成功!"); diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/CallEmptyVehicleTask.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/CallEmptyVehicleTask.java index 57ecfb5..2cab11f 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/CallEmptyVehicleTask.java +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/CallEmptyVehicleTask.java @@ -47,8 +47,7 @@ public class CallEmptyVehicleTask extends AbstractAcsTask { taskTab.update(jsonTask); HashMap map = new HashMap(); map.put("bill_status", "40"); - WQLObject.getWQLObject("st_buss_EmptyVehicleRecord") - .update(map, "task_uuid='" + jsonTask.getString("task_id") + "'"); + WQLObject.getWQLObject("st_buss_EmptyVehicleRecord").update(map, "task_uuid='" + jsonTask.getString("task_id") + "'"); } if (TaskStatusEnum.FINISHED.getCode().equals(status)) { @@ -60,8 +59,7 @@ public class CallEmptyVehicleTask extends AbstractAcsTask { /// 审核单据 HashMap map = new HashMap(); map.put("bill_status", "50"); - WQLObject.getWQLObject("st_buss_EmptyVehicleRecord") - .update(map, "task_uuid='" + jsonTask.getString("task_id") + "'"); + WQLObject.getWQLObject("st_buss_EmptyVehicleRecord").update(map, "task_uuid='" + jsonTask.getString("task_id") + "'"); // 解锁仓位,托盘信息,回写到点位上去 String vehicle_code = jsonTask.getString("vehicle_code"); // 插入刚托盘木托盘表 diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/CallMaterialTask.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/CallMaterialTask.java index cb42d8b..1f0f4ec 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/CallMaterialTask.java +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/CallMaterialTask.java @@ -6,15 +6,14 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import org.nl.common.utils.UserInfoUtil; import org.nl.exception.BadRequestException; import org.nl.modules.system.util.CodeUtil; -import org.nl.common.utils.UserInfoUtil; import org.nl.utils.SpringContextHolder; import org.nl.wms.WorkProcedureEnum; import org.nl.wms.common.PointUpdateUtil; import org.nl.wms.common.SortingUtil; import org.nl.wms.common.StructFindUtil; -import org.nl.wms.ext.acs.service.impl.WmsToAcsServiceImpl; import org.nl.wms.ext.acs.service.impl.WmsToJnServiceImpl; import org.nl.wms.sch.manage.AbstractAcsTask; import org.nl.wms.sch.manage.AreaEnum; @@ -27,10 +26,13 @@ import org.nl.wms.st.ivt.StoreIvtServiceImpl; import org.nl.wql.WQL; import org.nl.wql.core.bean.WQLObject; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; import java.util.HashMap; +/** + * 1、半托缓存到分拣机械手 + * + */ @Service public class CallMaterialTask extends AbstractAcsTask { private final String THIS_CLASS = CallMaterialTask.class.getName(); @@ -169,15 +171,7 @@ public class CallMaterialTask extends AbstractAcsTask { public void findStartPoint() { String task_status = TaskStatusEnum.SURE_START.getCode(); WQLObject taskTab = WQLObject.getWQLObject("SCH_BASE_Task"); - JSONArray taskArry = - taskTab - .query( - "task_status='" - + task_status - + "' AND handle_class='" - + THIS_CLASS - + "' AND is_delete='0' ") - .getResultJSONArray(0); + JSONArray taskArry = taskTab.query("task_status='" + task_status + "' AND handle_class='" + THIS_CLASS + "' AND is_delete='0' ").getResultJSONArray(0); for (int i = 0; i < taskArry.size(); i++) { JSONObject taskObj = taskArry.getJSONObject(i); String task_id = taskObj.getString("task_id"); @@ -203,8 +197,7 @@ public class CallMaterialTask extends AbstractAcsTask { // 终点加锁 HashMap lock_map = new HashMap(); lock_map.put("lock_type", "01"); - WQLObject.getWQLObject("sch_base_point") - .update(lock_map, "point_code = '" + inStructObj.getString("struct_code") + "'"); + WQLObject.getWQLObject("sch_base_point").update(lock_map, "point_code = '" + inStructObj.getString("struct_code") + "'"); // 修改任务状态 taskObj.put("task_status", TaskStatusEnum.START_AND_POINT.getCode()); taskObj.put("update_optid", UserInfoUtil.getCurrentUserId()); @@ -251,6 +244,9 @@ public class CallMaterialTask extends AbstractAcsTask { if (ObjectUtil.isNotEmpty(beforTaskObj)) { throw new BadRequestException("存在指令号为'" + beforTaskObj.getString("task_code") + "' 未完成!"); } + + + PointServiceImpl pointService = SpringContextHolder.getBean(PointServiceImpl.class); String task_id = IdUtil.getSnowflake(1, 1).nextId() + ""; String start_area = ""; @@ -347,6 +343,14 @@ public class CallMaterialTask extends AbstractAcsTask { qty_unit_id = outStructObj.getString("qty_unit_id"); start_point_code = outStructObj.getString("struct_code"); + + // 判断起点有没有未完成的指令 + JSONObject beforTaskObj2 = taskTable.query("is_delete='0' and start_point_code='" + start_point_code + "' and task_status <>'" + TaskStatusEnum.FINISHED.getCode() + "'") + .uniqueResult(0); + if (ObjectUtil.isNotEmpty(beforTaskObj2)) { + throw new BadRequestException("存在指令号为'" + beforTaskObj2.getString("task_code") + "' 未完成!"); + } + vehicle_code = outStructObj.getString("vehicle_code"); // 创建出库单据 JSONObject iosObj = new JSONObject(); @@ -430,10 +434,7 @@ public class CallMaterialTask extends AbstractAcsTask { @Override public void forceFinish(String task_id) { - JSONObject taskObj = - WQLObject.getWQLObject("SCH_BASE_Task") - .query("task_id = '" + task_id + "'") - .uniqueResult(0); + JSONObject taskObj = WQLObject.getWQLObject("SCH_BASE_Task").query("task_id = '" + task_id + "'").uniqueResult(0); this.updateTaskStatus(taskObj, TaskStatusEnum.FINISHED.getCode()); } diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/ConveyorTask.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/ConveyorTask.java deleted file mode 100644 index 398712b..0000000 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/ConveyorTask.java +++ /dev/null @@ -1,117 +0,0 @@ -package org.nl.wms.sch.manage.buss; - -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.IdUtil; -import cn.hutool.core.util.StrUtil; -import com.alibaba.fastjson.JSONObject; -import org.nl.common.utils.UserInfoUtil; -import org.nl.exception.BadRequestException; -import org.nl.wms.sch.manage.AbstractAcsTask; -import org.nl.wms.sch.manage.AreaEnum; -import org.nl.wms.sch.manage.TaskStatusEnum; -import org.nl.wql.core.bean.WQLObject; -import org.springframework.stereotype.Service; - -/** - * - */ -@Service -public class ConveyorTask extends AbstractAcsTask { - private final String THIS_CLASS = ConveyorTask.class.getName(); - - @Override - public void updateTaskStatus(JSONObject taskObj, String status) { - /** - *改变任务状态 - **/ - String task_id = taskObj.getString("task_id"); - WQLObject taskTab = WQLObject.getWQLObject("sch_base_task"); - JSONObject jsonTask = taskTab.query("task_id='" + task_id + "'").uniqueResult(0); - if (TaskStatusEnum.EXECUTING.getCode().equals(status)) { - //更新任务状态为执行中 - jsonTask.put("task_status", TaskStatusEnum.EXECUTING.getCode()); - jsonTask.put("update_time", DateUtil.now()); - taskTab.update(jsonTask); - } - - if (TaskStatusEnum.FINISHED.getCode().equals(status)) { - // 更新任务状态为完成 - jsonTask.put("task_status", TaskStatusEnum.FINISHED.getCode()); - jsonTask.put("taskfinish_mode", taskObj.getString("taskfinish_mode")); - jsonTask.put("update_time", DateUtil.now()); - jsonTask.put("remark", "任务执行完成"); - taskTab.update(jsonTask); - } - - } - - @Override - public void findStartPoint() { - - } - - @Override - public void findNextPoint() { - } - - @Override - public String createTask(JSONObject form) { - JSONObject taskObj = new JSONObject(); - //只需要传起点就好,跟载具 - String vehicle_code = form.getString("vehicle_code"); - String start_point_code = form.getString("start_point_code"); - String next_point_code = form.getString("next_point_code"); - if (StrUtil.isEmpty(vehicle_code)) { - throw new BadRequestException("载具不能为空!"); - } - if (StrUtil.isEmpty(start_point_code)) { - throw new BadRequestException("起点不能为空!"); - } - taskObj.put("task_id", IdUtil.getSnowflake(1, 1).nextId() + ""); - String task_status = TaskStatusEnum.EXECUTING.getCode(); - taskObj.put("task_code", IdUtil.getSnowflake(1, 1).nextId() + ""); - taskObj.put("task_type", "06"); - //输送任务 - taskObj.put("acs_task_type", "2"); - String start_area = AreaEnum.RYSSXQ.getCode(); - String next_area = AreaEnum.RYSSXQ.getCode(); - taskObj.put("task_status", task_status); - taskObj.put("start_point_code", start_point_code); - taskObj.put("start_area", start_area); - taskObj.put("next_area", next_area); - taskObj.put("next_point_code", next_point_code); - taskObj.put("vehicle_code", vehicle_code); - taskObj.put("create_name", UserInfoUtil.getNickName()); - taskObj.put("create_id", UserInfoUtil.getCurrentUserId()); - taskObj.put("create_time", DateUtil.now()); - taskObj.put("update_optid", UserInfoUtil.getCurrentUserId()); - taskObj.put("update_name", UserInfoUtil.getNickName()); - taskObj.put("update_time", DateUtil.now()); - taskObj.put("handle_class", THIS_CLASS); - //任务基础表【sch_base_task】 - WQLObject.getWQLObject("sch_base_task").insert(taskObj); - return taskObj.getString("task_id"); - - } - - - @Override - public void forceFinish(String task_id) { - if (StrUtil.isEmpty(task_id)) { - throw new BadRequestException("任务id不能为空!"); - } - JSONObject taskjo = WQLObject.getWQLObject("sch_base_task").query("task_id='" + task_id + "'").uniqueResult(0); - taskjo.getString("taskfinish_mode"); - this.updateTaskStatus(taskjo, TaskStatusEnum.FINISHED.getCode()); - } - - @Override - public void pullBack(String task_id) { - - } - - @Override - public void cancel(String task_id) { - - } -} diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/FmjToPackIngTask.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/FmjToPackIngTask.java index 93a341f..d013854 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/FmjToPackIngTask.java +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/FmjToPackIngTask.java @@ -26,6 +26,11 @@ import org.springframework.stereotype.Service; import java.util.HashMap; +/** + * {"is_full":"1","device_code":"BTHCW02","type":"1","vehicle_code":"0000","start_point_code":"BTHCW02","create_mode":"01"} + * 半托缓存到包装线送料 + * 如半托缓存位上的料呆太久了,通过电器触发强制从半托缓存到包装线 + */ @Service @RequiredArgsConstructor @Slf4j @@ -134,7 +139,6 @@ public class FmjToPackIngTask extends AbstractAcsTask { } String next_point_code = "BZSLW"; String material_id = ivtObj.getString("material_id"); - String is_full = ivtObj.getString("is_full"); String qty = ivtObj.getString("canuse_qty"); String pcsn = ivtObj.getString("pcsn"); String vehicle_code = ivtObj.getString("vehicle_code"); diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/RgvTask.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/RgvTask.java index 604da81..1c0983d 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/RgvTask.java +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/RgvTask.java @@ -68,9 +68,7 @@ public class RgvTask extends AbstractAcsTask { if (StrUtil.isEmpty(start_point_code)) { throw new BadRequestException("起点不能为空!"); } - JSONObject beforTaskObj = WQLObject.getWQLObject("sch_base_task"). - query("is_delete='0' and start_point_code='" + start_point_code + "' and task_status <>'" + TaskStatusEnum.FINISHED.getCode() + "'") - .uniqueResult(0); + JSONObject beforTaskObj = WQLObject.getWQLObject("sch_base_task").query("is_delete='0' and start_point_code='" + start_point_code + "' and task_status <>'" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0); if (ObjectUtil.isNotEmpty(beforTaskObj)) { throw new BadRequestException("存在指令号为'" + beforTaskObj.getString("task_code") + "' 未完成!"); } diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/SendEmptyVehicleTask.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/SendEmptyVehicleTask.java index 3b68374..7aa3ba5 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/SendEmptyVehicleTask.java +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/SendEmptyVehicleTask.java @@ -131,7 +131,6 @@ public class SendEmptyVehicleTask extends AbstractAcsTask { throw new BadRequestException("存在指令号为'" + beforTaskObj.getString("task_code") + "' 未完成!"); } if (StrUtil.isNotEmpty(next_point_code)) { - PointDto nextPoint = pointService.findByCode(next_point_code); task_status = TaskStatusEnum.START_AND_POINT.getCode(); // 锁定终点 HashMap lock_map = new HashMap(); diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/StructToConveyorTask.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/StructToConveyorTask.java index 9a512bc..cb18292 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/StructToConveyorTask.java +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/StructToConveyorTask.java @@ -170,9 +170,7 @@ public class StructToConveyorTask extends AbstractAcsTask { throw new BadRequestException("终点不能为空!"); } //判断起点有没有未完成的指令 - JSONObject beforTaskObj = taskTable. - query("is_delete='0' and start_point_code='" + start_point_code + "' and task_status <>'" + TaskStatusEnum.FINISHED.getCode() + "'") - .uniqueResult(0); + JSONObject beforTaskObj = taskTable.query("is_delete='0' and start_point_code='" + start_point_code + "' and task_status <>'" + TaskStatusEnum.FINISHED.getCode() + "'").uniqueResult(0); if (ObjectUtil.isNotEmpty(beforTaskObj)) { throw new BadRequestException("存在指令号为'" + beforTaskObj.getString("task_code") + "' 未完成!"); } diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/ToConveyorTask.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/ToConveyorTask.java index eb8aaaa..c0add2a 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/ToConveyorTask.java +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/ToConveyorTask.java @@ -18,10 +18,8 @@ import org.nl.wms.sch.service.dto.PointDto; import org.nl.wql.core.bean.WQLObject; import org.springframework.stereotype.Service; -import java.util.HashMap; - /** - * 压机到货架 + * 压机到到输送线任务 */ @Service @Slf4j diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/ToPackIngTask.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/ToPackIngTask.java index 3e6d22a..a00e622 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/ToPackIngTask.java +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/manage/buss/ToPackIngTask.java @@ -20,6 +20,11 @@ import org.springframework.stereotype.Service; import java.util.HashMap; +/** + * 1、分拣机械手满料 + * 分拣机械手到包装 + */ + @Service @RequiredArgsConstructor @Slf4j diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/PointServiceImpl.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/PointServiceImpl.java index 548b542..d28cc00 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/PointServiceImpl.java +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/sch/service/impl/PointServiceImpl.java @@ -8,6 +8,7 @@ import com.alibaba.fastjson.JSON; import lombok.RequiredArgsConstructor; import org.nl.exception.BadRequestException; import org.nl.wms.sch.AcsUtil; +import org.nl.wms.sch.manage.TaskStatusEnum; import org.nl.wms.sch.service.PointService; import org.nl.wms.sch.service.dto.PointDto; import org.nl.wql.WQL; @@ -131,6 +132,19 @@ public class PointServiceImpl implements PointService { throw new BadRequestException("编码已存在!"); } + // 点位修改 + JSONObject point = wo.query("point_id = '" + dto.getPoint_id() + "'").uniqueResult(0); + //判断是否有未完成的任务,如果有,不让修改 + // 判断起点有没有未完成的指令 + WQLObject taskTable = WQLObject.getWQLObject("SCH_BASE_Task"); + + JSONObject beforTaskObj = taskTable.query("is_delete='0' and (start_point_code='" + point.getString("point_code")+"' or next_point_code= '"+ point.getString("point_code")+ "') and task_status <>'" + TaskStatusEnum.FINISHED.getCode() + "'") + .uniqueResult(0); + if (ObjectUtil.isNotEmpty(beforTaskObj)) { + throw new BadRequestException("任务号【'" + beforTaskObj.getString("task_code") + "'】未完成,无法修改!"); + } + + Long currentUserId = UserInfoUtil.getCurrentUserId(); String nickName = UserInfoUtil.getNickName(); diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/st/basedata/service/impl/KilnServiceImpl.java b/wms/hd/nladmin-system/src/main/java/org/nl/wms/st/basedata/service/impl/KilnServiceImpl.java index 3f3bc31..8640d79 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/st/basedata/service/impl/KilnServiceImpl.java +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/st/basedata/service/impl/KilnServiceImpl.java @@ -6,6 +6,7 @@ import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; import org.nl.exception.BadRequestException; import org.nl.common.utils.UserInfoUtil; +import org.nl.wms.sch.manage.TaskStatusEnum; import org.nl.wms.st.basedata.service.KilnService; import org.nl.wql.WQL; import org.nl.wql.core.bean.WQLObject; @@ -28,8 +29,8 @@ public class KilnServiceImpl implements KilnService { public Map kilnCacheQuery(Map whereJson, Pageable page) { JSONObject map = new JSONObject(); map.put("flag", "1"); - if (ObjectUtil.isNotEmpty(whereJson.get("point_code"))) - map.put("point_code", "%" + whereJson.get("point_code") + "%"); + if (ObjectUtil.isNotEmpty(whereJson.get("search"))) + map.put("point_code", "%" + whereJson.get("search") + "%"); map.put("point_status", whereJson.get("point_status")); map.put("lock_type", whereJson.get("lock_type")); map.put("is_used", whereJson.get("is_used")); @@ -95,8 +96,8 @@ public class KilnServiceImpl implements KilnService { } //先删除库存 永远插入库存 - structIvtTab.delete("struct_id = '"+jsonObject.getString("struct_id")+"'"); - stockrecordId=""; + structIvtTab.delete("struct_id = '" + jsonObject.getString("struct_id") + "'"); + stockrecordId = ""; if (ObjectUtil.isEmpty(stockrecordId)) { // 仓位库存id为空,就插入 JSONObject structIvt = new JSONObject(); structIvt.put("stockrecord_id", IdUtil.getSnowflake(1, 1).nextId()); @@ -141,7 +142,7 @@ public class KilnServiceImpl implements KilnService { // 存在相应载具的话删掉在存 if (ObjectUtil.isNotEmpty(vehicle_code)) { vehicleGroupTab.delete("vehicle_code = '" + vehicle_code + "'"); - structIvtTab.delete("vehicle_code <> '" + vehicle_code + "' and struct_id = '"+jsonObject.getString("struct_id")+"'"); + structIvtTab.delete("vehicle_code <> '" + vehicle_code + "' and struct_id = '" + jsonObject.getString("struct_id") + "'"); } JSONObject vehicleGroup = new JSONObject(); @@ -152,7 +153,7 @@ public class KilnServiceImpl implements KilnService { vehicleGroup.put("material_code", materialObj.getString("material_code")); vehicleGroup.put("material_name", materialObj.getString("material_name")); vehicleGroup.put("material_spec", materialObj.getString("material_spec")); - vehicleGroup.put("task_id", IdUtil.getSnowflake(1,1).nextId()); + vehicleGroup.put("task_id", IdUtil.getSnowflake(1, 1).nextId()); vehicleGroup.put("create_id", currentUserId); vehicleGroup.put("create_name", nickName); vehicleGroup.put("create_time", now); @@ -163,11 +164,22 @@ public class KilnServiceImpl implements KilnService { vehicleGroup.put("device_id", jsonObject.getString("device_id")); vehicleGroup.put("qty", ivt_qty); vehicleGroup.put("is_full", is_full); - vehicleGroup.put("material_move_id", IdUtil.getSnowflake(1,1).nextId()); + vehicleGroup.put("material_move_id", IdUtil.getSnowflake(1, 1).nextId()); vehicleGroupTab.insert(vehicleGroup); } // 点位修改 JSONObject point = pointTab.query("point_id = '" + jsonObject.getString("point_id") + "'").uniqueResult(0); + //判断是否有未完成的任务,如果有,不让修改 + // 判断起点有没有未完成的指令 + WQLObject taskTable = WQLObject.getWQLObject("SCH_BASE_Task"); + + JSONObject beforTaskObj = taskTable.query("is_delete='0' and (start_point_code='" + point.getString("point_code") + "' or next_point_code= '" + point.getString("point_code") + "') and task_status <>'" + TaskStatusEnum.FINISHED.getCode() + "'") + .uniqueResult(0); + if (ObjectUtil.isNotEmpty(beforTaskObj)) { + throw new BadRequestException("任务号【'" + beforTaskObj.getString("task_code") + "'】未完成,无法修改!"); + } + + if (ObjectUtil.isEmpty(point)) throw new BadRequestException("被删除或无权限,操作失败!"); point.put("point_status", point_status); point.put("lock_type", jsonObject.getString("lock_type")); diff --git a/wms/hd/nladmin-system/src/main/java/org/nl/wms/st/basedata/service/wql/SCH_Base_Kiln01.wql b/wms/hd/nladmin-system/src/main/java/org/nl/wms/st/basedata/service/wql/SCH_Base_Kiln01.wql index 879ebb4..5adcfbe 100644 --- a/wms/hd/nladmin-system/src/main/java/org/nl/wms/st/basedata/service/wql/SCH_Base_Kiln01.wql +++ b/wms/hd/nladmin-system/src/main/java/org/nl/wms/st/basedata/service/wql/SCH_Base_Kiln01.wql @@ -61,9 +61,9 @@ WHERE area_type = 输入.area_type OPTION 输入.point_code <> "" - point.point_code LIKE 输入.point_code + ( point.point_code LIKE 输入.point_code OR - point.point_name LIKE 输入.point_code + point.point_name LIKE 输入.point_code) ENDOPTION OPTION 输入.point_status <> "" point.point_status = 输入.point_status